diff --git a/pkgs/applications/misc/nwg-bar/default.nix b/pkgs/applications/misc/nwg-bar/default.nix new file mode 100644 index 000000000000..28e736b008fb --- /dev/null +++ b/pkgs/applications/misc/nwg-bar/default.nix @@ -0,0 +1,39 @@ +{ lib, buildGoModule, fetchFromGitHub, pkg-config, gtk3, gtk-layer-shell }: + +buildGoModule rec { + pname = "nwg-bar"; + version = "unstable-2021-09-23"; + + src = fetchFromGitHub { + owner = "nwg-piotr"; + repo = pname; + rev = "7dd7df3cd9a9e78fe477e88e0f3cb97309d50ff5"; + sha256 = "sha256-piysF19WDjb/EGI9MBepYrOrQL9C1fsoq05AP8CYN58="; + }; + + patches = [ ./fix-paths.patch ]; + postPatch = '' + substituteInPlace config/bar.json --subst-var out + substituteInPlace tools.go --subst-var out + ''; + + vendorSha256 = "sha256-dgOwflNRb+11umFykozL8DQ50dLbhbMCmCyKmLlW7rw="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ gtk3 gtk-layer-shell ]; + + preInstall = '' + mkdir -p $out/share/nwg-bar + cp -r config/* images $out/share/nwg-bar + ''; + + meta = with lib; { + description = + "GTK3-based button bar for sway and other wlroots-based compositors"; + homepage = "https://github.com/nwg-piotr/nwg-bar"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ sei40kr ]; + }; +} diff --git a/pkgs/applications/misc/nwg-bar/fix-paths.patch b/pkgs/applications/misc/nwg-bar/fix-paths.patch new file mode 100644 index 000000000000..9d4e98e9a7b7 --- /dev/null +++ b/pkgs/applications/misc/nwg-bar/fix-paths.patch @@ -0,0 +1,47 @@ +diff --git a/config/bar.json b/config/bar.json +index 6c456e7..98527cb 100644 +--- a/config/bar.json ++++ b/config/bar.json +@@ -2,21 +2,21 @@ + { + "label": "Lock", + "exec": "swaylock -f -c 000000", +- "icon": "/usr/share/nwg-bar/images/system-lock-screen.svg" ++ "icon": "@out@/share/nwg-bar/images/system-lock-screen.svg" + }, + { + "label": "Logout", + "exec": "swaymsg exit", +- "icon": "/usr/share/nwg-bar/images/system-log-out.svg" ++ "icon": "@out@/share/nwg-bar/images/system-log-out.svg" + }, + { + "label": "Reboot", + "exec": "systemctl reboot", +- "icon": "/usr/share/nwg-bar/images/system-reboot.svg" ++ "icon": "@out@/share/nwg-bar/images/system-reboot.svg" + }, + { + "label": "Shutdown", + "exec": "systemctl -i poweroff", +- "icon": "/usr/share/nwg-bar/images/system-shutdown.svg" ++ "icon": "@out@/share/nwg-bar/images/system-shutdown.svg" + } + ] +\ No newline at end of file +diff --git a/tools.go b/tools.go +index f97751e..987163e 100644 +--- a/tools.go ++++ b/tools.go +@@ -45,10 +45,7 @@ func configDir() string { + } + + func getDataHome() string { +- if os.Getenv("XDG_DATA_HOME") != "" { +- return os.Getenv("XDG_DATA_HOME") +- } +- return "/usr/share/" ++ return "@out@/share/" + } + + func createDir(dir string) { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 30cde8d13e42..c17bc68750d4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -29655,6 +29655,8 @@ with pkgs; novnc = callPackage ../applications/networking/novnc { }; + nwg-bar = callPackage ../applications/misc/nwg-bar { }; + nwg-drawer = callPackage ../applications/misc/nwg-drawer { }; nwg-launchers = callPackage ../applications/misc/nwg-launchers { };