at master 82 lines 1.8 kB view raw
1{ 2 lib, 3 python3Packages, 4 fetchFromGitHub, 5 wrapGAppsHook4, 6 gobject-introspection, 7 gtk4, 8 glib, 9 makeDesktopItem, 10 copyDesktopItems, 11 networkmanager, 12}: 13 14python3Packages.buildPythonApplication rec { 15 pname = "nmgui"; 16 version = "1.0.0"; 17 format = "other"; 18 19 src = fetchFromGitHub { 20 owner = "s-adi-dev"; 21 repo = "nmgui"; 22 tag = "v${version}"; 23 hash = "sha256-HS/n40Ng8S5N14DtEH/upwlxdzwCoOEJA40EMdCcLw4=io"; 24 }; 25 26 nativeBuildInputs = [ 27 wrapGAppsHook4 28 gobject-introspection 29 copyDesktopItems 30 ]; 31 32 buildInputs = [ 33 gtk4 34 glib 35 ]; 36 37 dependencies = with python3Packages; [ 38 pygobject3 39 nmcli 40 ]; 41 42 desktopItems = [ 43 (makeDesktopItem { 44 name = "nmgui"; 45 exec = "nmgui"; 46 icon = "network-wireless-symbolic"; 47 comment = "GTK4-based Network Manager GUI using nmcli"; 48 desktopName = "NM GUI"; 49 categories = [ 50 "Network" 51 "GTK" 52 ]; 53 startupNotify = true; 54 }) 55 ]; 56 57 installPhase = '' 58 runHook preInstall 59 mkdir -p $out/{bin,share/applications,opt/nmgui} 60 # Copy the app files 61 cp -r app $out/opt/nmgui/ 62 63 runHook postInstall 64 ''; 65 66 postFixup = '' 67 makeWrapper ${python3Packages.python.interpreter} $out/bin/nmgui \ 68 --add-flags "$out/opt/nmgui/app/main.py" \ 69 --prefix PYTHONPATH : "$PYTHONPATH" \ 70 "''${gappsWrapperArgs[@]}" 71 ''; 72 73 meta = { 74 description = "Python library for interacting with NetworkManager CLI"; 75 homepage = "https://github.com/s-adi-dev/nmgui"; 76 license = lib.licenses.gpl3Plus; 77 maintainers = with lib.maintainers; [ ktechmidas ]; 78 mainProgram = "nmgui"; 79 inherit (networkmanager.meta) platforms; 80 changelog = "https://github.com/s-adi-dev/nmgui/releases/tag/v${version}"; 81 }; 82}