commit fef09667cd8f6dd08199499a5780c327fdf75672
parent f8fddc5f3d35998044e23cf0eed3446bffcac446
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Tue, 2 Sep 2025 21:30:23 +0200
parent f8fddc5f3d35998044e23cf0eed3446bffcac446
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Tue, 2 Sep 2025 21:30:23 +0200
packages: add `nmgui`
1 file changed, 83 insertions(+), 0 deletions(-)
A
|
83
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/packages/nmgui/package.nix b/packages/nmgui/package.nix @@ -0,0 +1,83 @@ +{ + lib, + python3Packages, + fetchFromGitHub, + wrapGAppsHook4, + gobject-introspection, + gtk4, + glib, + makeDesktopItem, + copyDesktopItems, + networkmanager, + ... +}: + +python3Packages.buildPythonApplication rec { + pname = "nmgui"; + version = "1.0.0"; + format = "other"; + + src = fetchFromGitHub { + owner = "s-adi-dev"; + repo = "nmgui"; + tag = "v${version}"; + hash = "sha256-HS/n40Ng8S5N14DtEH/upwlxdzwCoOEJA40EMdCcLw4=io"; + }; + + nativeBuildInputs = [ + wrapGAppsHook4 + gobject-introspection + copyDesktopItems + ]; + + buildInputs = [ + gtk4 + glib + ]; + + dependencies = with python3Packages; [ + pygobject3 + nmcli + ]; + + desktopItems = [ + (makeDesktopItem { + name = "nmgui"; + exec = "nmgui"; + icon = "network-wireless-symbolic"; + comment = "GTK4-based Network Manager GUI using nmcli"; + desktopName = "NM GUI"; + categories = [ + "Network" + "GTK" + ]; + startupNotify = true; + }) + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,share/applications,opt/nmgui} + # Copy the app files + cp -r app $out/opt/nmgui/ + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${python3Packages.python.interpreter} $out/bin/nmgui \ + --add-flags "$out/opt/nmgui/app/main.py" \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + "''${gappsWrapperArgs[@]}" + ''; + + meta = { + description = "Python library for interacting with NetworkManager CLI"; + homepage = "https://github.com/s-adi-dev/nmgui"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ ktechmidas ]; + mainProgram = "nmgui"; + inherit (networkmanager.meta) platforms; + changelog = "https://github.com/s-adi-dev/nmgui/releases/tag/v${version}"; + }; +}