From 753c1f5a975b9d62bcaf78e8f5c082860b1f342d Mon Sep 17 00:00:00 2001 From: genofire Date: Fri, 26 Nov 2021 23:09:33 +0100 Subject: [PATCH] gnomeExtensions.pop-shell: init at unstable-2021-11-30 --- .../gnome/extensions/manuallyPackaged.nix | 1 + .../gnome/extensions/pop-shell/default.nix | 36 ++++++++++ .../gnome/extensions/pop-shell/fix-gjs.patch | 67 +++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 pkgs/desktops/gnome/extensions/pop-shell/default.nix create mode 100644 pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch diff --git a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix index 1c648e4a047c..a47fb16011d0 100644 --- a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix +++ b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix @@ -15,6 +15,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 000000000000..759deb98b19d --- /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 000000000000..e1e6fb7a839a --- /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 { + 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 ++}