summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorpiegames <git@piegames.de>2021-12-01 11:33:56 +0100
committerGitHub <noreply@github.com>2021-12-01 11:33:56 +0100
commit461a7d223c7f32b4eb9727e07a93f873568ff0ad (patch)
tree058262107a7fa9bafae8107f18e4c8a882acb939 /pkgs/desktops
parente89d789748cf3094e22e56e6abd986ebe7739c61 (diff)
parent753c1f5a975b9d62bcaf78e8f5c082860b1f342d (diff)
downloadnixpkgs-461a7d223c7f32b4eb9727e07a93f873568ff0ad.tar
nixpkgs-461a7d223c7f32b4eb9727e07a93f873568ff0ad.tar.gz
nixpkgs-461a7d223c7f32b4eb9727e07a93f873568ff0ad.tar.bz2
nixpkgs-461a7d223c7f32b4eb9727e07a93f873568ff0ad.tar.lz
nixpkgs-461a7d223c7f32b4eb9727e07a93f873568ff0ad.tar.xz
nixpkgs-461a7d223c7f32b4eb9727e07a93f873568ff0ad.tar.zst
nixpkgs-461a7d223c7f32b4eb9727e07a93f873568ff0ad.zip
Merge pull request #147542: gnomeExtensions.pop-shell: init
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/gnome/extensions/manuallyPackaged.nix1
-rw-r--r--pkgs/desktops/gnome/extensions/pop-shell/default.nix36
-rw-r--r--pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch67
3 files changed, 104 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
index 553d51de14d..a08af5734e4 100644
--- a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
+++ b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -14,6 +14,7 @@
   "no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
   "paperwm@hedning:matrix.org" = callPackage ./paperwm { };
   "pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
+  "pop-shell@system76.com" = callPackage ./pop-shell { };
   "sound-output-device-chooser@kgshank.net" = callPackage ./sound-output-device-chooser { };
   "system-monitor@paradoxxx.zero.gmail.com" = callPackage ./system-monitor { };
   "taskwhisperer-extension@infinicode.de" = callPackage ./taskwhisperer { };
diff --git a/pkgs/desktops/gnome/extensions/pop-shell/default.nix b/pkgs/desktops/gnome/extensions/pop-shell/default.nix
new file mode 100644
index 00000000000..759deb98b19
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/pop-shell/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, glib, nodePackages, gjs }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-pop-shell";
+  version = "unstable-2021-11-30";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "shell";
+    rev = "4b65ee865d01436ec75a239a0586a2fa6051b8c3";
+    sha256 = "DHmp3kzBgbyxRe0TjER/CAqyUmD9LeRqAFQ9apQDzfk=";
+  };
+
+  nativeBuildInputs = [ glib nodePackages.typescript gjs ];
+
+  buildInputs = [ gjs ];
+
+  patches = [
+    ./fix-gjs.patch
+  ];
+
+  makeFlags = [ "XDG_DATA_HOME=$(out)/share" ];
+
+  passthru = {
+    extensionUuid = "pop-shell@system76.com";
+    extensionPortalSlug = "pop-shell";
+  };
+
+  meta = with lib; {
+    description = "Keyboard-driven layer for GNOME Shell";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.genofire ];
+    homepage = "https://github.com/pop-os/shell";
+  };
+}
diff --git a/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch b/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch
new file mode 100644
index 00000000000..e1e6fb7a839
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch
@@ -0,0 +1,67 @@
+diff --git a/src/color_dialog/src/main.ts b/src/color_dialog/src/main.ts
+index 9522499..9911530 100644
+--- a/src/color_dialog/src/main.ts
++++ b/src/color_dialog/src/main.ts
+@@ -1,4 +1,4 @@
+-#!/usr/bin/gjs
++#!/usr/bin/env gjs
+ 
+ imports.gi.versions.Gtk = '3.0';
+ 
+@@ -84,4 +84,4 @@ function launch_color_dialog() {
+ 
+ Gtk.init(null);
+ 
+-launch_color_dialog()
+\ No newline at end of file
++launch_color_dialog()
+diff --git a/src/extension.ts b/src/extension.ts
+index 7417c46..00d5829 100644
+--- a/src/extension.ts
++++ b/src/extension.ts
+@@ -534,7 +534,7 @@ export class Ext extends Ecs.System<ExtEvent> {
+             return true
+         }
+ 
+-        const ipc = utils.async_process_ipc(["gjs", path])
++        const ipc = utils.async_process_ipc([path])
+ 
+         if (ipc) {
+             const generator = (stdout: any, res: any) => {
+diff --git a/src/floating_exceptions/src/main.ts b/src/floating_exceptions/src/main.ts
+index f298ec7..87a6bc4 100644
+--- a/src/floating_exceptions/src/main.ts
++++ b/src/floating_exceptions/src/main.ts
+@@ -1,4 +1,4 @@
+-#!/usr/bin/gjs
++#!/usr/bin/env gjs
+ 
+ imports.gi.versions.Gtk = '3.0'
+ 
+@@ -329,4 +329,4 @@ function main() {
+     Gtk.main()
+ }
+ 
+-main()
+\ No newline at end of file
++main()
+diff --git a/src/panel_settings.ts b/src/panel_settings.ts
+index 83ff56c..1bc1e98 100644
+--- a/src/panel_settings.ts
++++ b/src/panel_settings.ts
+@@ -338,7 +338,7 @@ function color_selector(ext: Ext, menu: any) {
+     color_selector_item.add_child(color_button);
+     color_button.connect('button-press-event', () => {
+         let path = Me.dir.get_path() + "/color_dialog/main.js";
+-        let resp = GLib.spawn_command_line_async(`gjs ${path}`);
++        let resp = GLib.spawn_command_line_async(path);
+         if (!resp) {
+ 
+             return null;
+@@ -353,4 +353,4 @@ function color_selector(ext: Ext, menu: any) {
+     });
+ 
+     return color_selector_item;
+-}
+\ No newline at end of file
++}