about summary refs log tree commit diff
path: root/pkgs/applications/misc/nwg-look
diff options
context:
space:
mode:
authormax-amb <maxpeterambaum@gmail.com>2023-09-09 05:53:18 +0100
committermax-amb <maxpeterambaum@gmail.com>2023-09-09 05:53:18 +0100
commit3b77dfcc7e271c94da22fabe8e2b4f29cf80016d (patch)
tree04810404489f75cd6fd4cf70cc9207e7f74de09c /pkgs/applications/misc/nwg-look
parented02e79bbe031a7ce9cf863660f10d3ef70b8636 (diff)
nwg-look: init at v0.2.4
Diffstat (limited to 'pkgs/applications/misc/nwg-look')
-rw-r--r--pkgs/applications/misc/nwg-look/default.nix72
-rw-r--r--pkgs/applications/misc/nwg-look/fix-paths.patch35
-rw-r--r--pkgs/applications/misc/nwg-look/go.mod10
3 files changed, 117 insertions, 0 deletions
diff --git a/pkgs/applications/misc/nwg-look/default.nix b/pkgs/applications/misc/nwg-look/default.nix
new file mode 100644
index 0000000000000..b9c092fa5939c
--- /dev/null
+++ b/pkgs/applications/misc/nwg-look/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, buildGoModule
+, go
+, glib
+, pkg-config
+, cairo
+, gtk3
+, xcur2png
+, libX11
+, zlib
+}:
+
+buildGoModule rec {
+  pname = "nwg-look";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "nwg-piotr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-wUI58qYkVYgES87HQ4octciDlOJ10oJldbUkFgxRUd4=";
+  };
+
+  vendorHash = "sha256-dev+TV6FITd29EfknwHDNI0gLao7gsC95Mg+3qQs93E=";
+
+  # Replace /usr/ directories with the packages output location
+  # This means it references the correct path
+  patches = [ ./fix-paths.patch ];
+
+  postPatch = ''
+    sed -i 's|@out@|'"''${out}"'|g' main.go tools.go
+  '';
+
+  ldflags = [ "-s" "-w" ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    cairo
+    xcur2png
+    libX11.dev
+    zlib
+    gtk3
+  ];
+
+  CGO_ENABLED = 1;
+
+  postInstall = ''
+    mkdir -p $out/share
+    mkdir -p $out/share/nwg-look/langs
+    mkdir -p $out/share/applications
+    mkdir -p $out/share/pixmaps
+    cp stuff/main.glade $out/share/nwg-look/
+    cp langs/* $out/share/nwg-look/langs
+    cp stuff/nwg-look.desktop $out/share/applications
+    cp stuff/nwg-look.svg $out/share/pixmaps
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/nwg-piotr/nwg-look";
+    description = "Nwg-look is a GTK3 settings editor, designed to work properly in wlroots-based Wayland environment.";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ max-amb ];
+    mainProgram = "nwg-look";
+  };
+}
diff --git a/pkgs/applications/misc/nwg-look/fix-paths.patch b/pkgs/applications/misc/nwg-look/fix-paths.patch
new file mode 100644
index 0000000000000..3b56e00522137
--- /dev/null
+++ b/pkgs/applications/misc/nwg-look/fix-paths.patch
@@ -0,0 +1,35 @@
+diff --git a/main.go b/main.go
+index 23c4756..c52e9c3 100644
+--- a/main.go
++++ b/main.go
+@@ -335,7 +335,7 @@ func main() {
+
+ 	gtkSettings, _ = gtk.SettingsGetDefault()
+
+-	builder, _ := gtk.BuilderNewFromFile("/usr/share/nwg-look/main.glade")
++	builder, _ := gtk.BuilderNewFromFile("@out@/share/nwg-look/main.glade")
+ 	win, _ := getWindow(builder, "window")
+
+ 	win.Connect("destroy", func() {
+diff --git a/tools.go b/tools.go
+index e6e7665..59d6f35 100644
+--- a/tools.go
++++ b/tools.go
+@@ -1034,7 +1034,7 @@ func getDataDirs() []string {
+ 	if os.Getenv("XDG_DATA_DIRS") != "" {
+ 		xdgDataDirs = os.Getenv("XDG_DATA_DIRS")
+ 	} else {
+-		xdgDataDirs = "/usr/local/share/:/usr/share/"
++		xdgDataDirs = "@out@/local/share/:@out@/share/"
+ 	}
+
+ 	for _, d := range strings.Split(xdgDataDirs, ":") {
+@@ -1280,7 +1280,7 @@ func detectLang() string {
+ }
+
+ func loadVocabulary(lang string) map[string]string {
+-	langsDir := "/usr/share/nwg-look/langs/"
++	langsDir := "@out@/share/nwg-look/langs/"
+ 	enUSFile := filepath.Join(langsDir, "en_US.json")
+ 	if pathExists(enUSFile) {
+ 		log.Infof(">>> Loading basic lang from '%s'", enUSFile)
diff --git a/pkgs/applications/misc/nwg-look/go.mod b/pkgs/applications/misc/nwg-look/go.mod
new file mode 100644
index 0000000000000..0446058e56c22
--- /dev/null
+++ b/pkgs/applications/misc/nwg-look/go.mod
@@ -0,0 +1,10 @@
+module github.com/nwg-piotr/nwg-look
+
+go 1.20
+
+require (
+	github.com/gotk3/gotk3 v0.6.2
+	github.com/sirupsen/logrus v1.9.3
+)
+
+require golang.org/x/sys v0.6.0 // indirect