diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome-3/extensions')
34 files changed, 1217 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix new file mode 100644 index 000000000000..cf9ca9999d74 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-appindicator"; + version = "33"; + + src = fetchFromGitHub { + owner = "Ubuntu"; + repo = "gnome-shell-extension-appindicator"; + rev = "v${version}"; + sha256 = "B039bgg5b63oaHp1Z36k9Dh5FLr8fmfxI25ZgIA+p2I="; + }; + + # This package has a Makefile, but it's used for building a zip for + # publication to extensions.gnome.org. Disable the build phase so + # installing doesn't build an unnecessary release. + dontBuild = true; + + uuid = "appindicatorsupport@rgcjonas.gmail.com"; + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions/${uuid} + cp *.js $out/share/gnome-shell/extensions/${uuid} + cp -r interfaces-xml $out/share/gnome-shell/extensions/${uuid} + cp metadata.json $out/share/gnome-shell/extensions/${uuid} + ''; + + meta = with stdenv.lib; { + description = "AppIndicator/KStatusNotifierItem support for GNOME Shell"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ jonafato ]; + platforms = gnome3.gnome-shell.meta.platforms; + homepage = "https://github.com/Ubuntu/gnome-shell-extension-appindicator"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix new file mode 100644 index 000000000000..db1741e72bb5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitLab, glib, gettext, substituteAll, gnome-menus }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-arc-menu"; + version = "43"; + + src = fetchFromGitLab { + owner = "LinxGem33"; + repo = "Arc-Menu"; + rev = "v${version}-Stable"; + sha256 = "1rspl89bxqy0wla8cj0h1d29gp38xg1vmvhc1qg7bl46ank4yp5q"; + }; + + patches = [ + (substituteAll { + src = ./fix_gmenu.patch; + gmenu_path = "${gnome-menus}/lib/girepository-1.0"; + }) + ]; + + buildInputs = [ + glib gettext + ]; + + makeFlags = [ "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions" ]; + + meta = with stdenv.lib; { + description = "Gnome shell extension designed to replace the standard menu found in Gnome 3"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ dkabot ]; + homepage = "https://gitlab.com/LinxGem33/Arc-Menu"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch new file mode 100644 index 000000000000..7f6b8489ea8b --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch @@ -0,0 +1,12 @@ +--- a/extension.js ++++ b/extension.js +@@ -29,6 +29,8 @@ + * https://github.com/The-Panacea-Projects/Gnomenu + */ + ++ ++imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@'); + + // Import Libraries + const Main = imports.ui.main; + diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix new file mode 100644 index 000000000000..44b3f04f79d6 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-battery-status"; + version = "6"; + + src = fetchFromGitHub { + owner = "milliburn"; + repo = "gnome-shell-extension-battery_status"; + rev = "v${version}"; + sha256 = "1w83h863mzffjnmk322xq90qf3y9dzay1w9yw5r0qnbsq1ljl8p4"; + }; + + uuid = "battery_status@milliburn.github.com"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions/ + ''; + + meta = with stdenv.lib; { + description = "Configurable lightweight battery charge indicator and autohider"; + license = licenses.gpl2; + broken = true; # not compatable with latest GNOME + maintainers = with maintainers; [ jonafato ]; + homepage = "https://github.com/milliburn/gnome-shell-extension-battery_status"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix new file mode 100644 index 000000000000..608d44a2892f --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, glib, gettext, bash, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-caffeine-unstable"; + version = "2020-03-13"; + + src = fetchFromGitHub { + owner = "eonpatapon"; + repo = "gnome-shell-extension-caffeine"; + rev = "f25fa5cd586271f080c2304d0ad1273b55e864f5"; + sha256 = "12a76g1ydw677pjnj00r3vw31k4xybc63ynqzx3s4g0wi6lipng7"; + }; + + uuid = "caffeine@patapon.info"; + + nativeBuildInputs = [ + glib gettext + ]; + + buildPhase = '' + ${bash}/bin/bash ./update-locale.sh + glib-compile-schemas --strict --targetdir=caffeine@patapon.info/schemas/ caffeine@patapon.info/schemas + ''; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "Fill the cup to inhibit auto suspend and screensaver"; + license = licenses.gpl2; + maintainers = with maintainers; [ eperuffo ]; + homepage = "https://github.com/eonpatapon/gnome-shell-extension-caffeine"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix new file mode 100644 index 000000000000..1e3815705cd3 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix @@ -0,0 +1,44 @@ +{stdenv, fetchurl, cmake, ninja, jq, python3, gnome3, wrapGAppsHook}: + +let + version = "10.1"; + + inherit (python3.pkgs) python pygobject3 requests; +in stdenv.mkDerivation rec { + pname = "chrome-gnome-shell"; + inherit version; + + src = fetchurl { + url = "mirror://gnome/sources/chrome-gnome-shell/${version}/${pname}-${version}.tar.xz"; + sha256 = "0f54xyamm383ypbh0ndkza0pif6ljddg2f947p265fkqj3p4zban"; + }; + + nativeBuildInputs = [ cmake ninja jq wrapGAppsHook ]; + buildInputs = [ gnome3.gnome-shell python pygobject3 requests ]; + + preConfigure = '' + substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc" + ''; + # cmake setup hook changes /etc/opt into /var/empty + dontFixCmake = true; + + cmakeFlags = [ "-DBUILD_EXTENSION=OFF" ]; + wrapPrefixVariables = [ "PYTHONPATH" ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "chrome-gnome-shell"; + }; + }; + + meta = with stdenv.lib; { + description = "GNOME Shell integration for Chrome"; + homepage = "https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome"; + longDescription = '' + To use the integration, install the <link xlink:href="https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation">browser extension</link>, and then set <option>services.gnome3.chrome-gnome-shell.enable</option> to <literal>true</literal>. + ''; + license = licenses.gpl3; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix new file mode 100644 index 000000000000..1cc06be6ec99 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-clipboard-indicator"; + version = "30"; + + src = fetchFromGitHub { + owner = "Tudmotu"; + repo = "gnome-shell-extension-clipboard-indicator"; + rev = "v${version}"; + sha256 = "1fmgmxv2y678bj0kmymkgnnglcpqk8ww053izlq46xg7s27jjdf6"; + }; + + uuid = "clipboard-indicator@tudmotu.com"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions/${uuid} + cp -r * $out/share/gnome-shell/extensions/${uuid} + ''; + + meta = with stdenv.lib; { + description = "Adds a clipboard indicator to the top panel and saves clipboard history"; + license = licenses.mit; + maintainers = with maintainers; [ jonafato ]; + platforms = platforms.linux; + homepage = "https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix new file mode 100644 index 000000000000..d508222188b8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, glib, gettext }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-dash-to-dock-unstable"; + version = "2020-03-19"; + + src = fetchFromGitHub { + owner = "micheleg"; + repo = "dash-to-dock"; + # rev = "extensions.gnome.org-v" + version; + rev = "8c94a8d6db47ebc1273e690f4e0ba5e592f7f268"; + sha256 = "7nNfxAINqOIJCgYXYaPck2EJ1IOmzt6AkfDFknZ8GaI="; + }; + + nativeBuildInputs = [ + glib gettext + ]; + + makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ]; + + meta = with stdenv.lib; { + description = "A dock for the Gnome Shell"; + license = licenses.gpl2; + maintainers = with maintainers; [ eperuffo ]; + homepage = "https://micheleg.github.io/dash-to-dock/"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix new file mode 100644 index 000000000000..84662505a374 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, glib, gettext }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-dash-to-panel"; + version = "31"; + + src = fetchFromGitHub { + owner = "home-sweet-gnome"; + repo = "dash-to-panel"; + rev = "v${version}"; + sha256 = "A8Ft+tLNv8KlTnVUzrWGavBWpP0u2rhkuG5LZls1A24="; + }; + + buildInputs = [ + glib gettext + ]; + + makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ]; + + meta = with stdenv.lib; { + description = "An icon taskbar for Gnome Shell"; + license = licenses.gpl2; + maintainers = with maintainers; [ mounium ]; + homepage = "https://github.com/jderose9/dash-to-panel"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/draw-on-your-screen/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/draw-on-your-screen/default.nix new file mode 100644 index 000000000000..5e6f7b89e1d9 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/draw-on-your-screen/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchgit, gettext, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-draw-on-your-screen"; + version = "6"; + + src = fetchgit { + url = "https://framagit.org/abakkk/DrawOnYourScreen/"; + rev = "v${version}"; + sha256 = "05i20ii8lv6mg56rz8lng80dx35l6g45j8wr7jgbp591hg0spj1w"; + }; + + uuid = "drawOnYourScreen@abakkk.framagit.org"; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/gnome-shell/extensions/${uuid} + cp -r . $out/share/gnome-shell/extensions/${uuid} + runHook postInstall + ''; + + meta = with stdenv.lib; { + description = "A drawing extension for GNOME Shell"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ ericdallo ]; + platforms = gnome3.gnome-shell.meta.platforms; + homepage = "https://framagit.org/abakkk/DrawOnYourScreen"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix new file mode 100644 index 000000000000..fb7132015944 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, substituteAll, gjs, vte, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-drop-down-terminal"; + version = "unstable-2020-03-25"; + + src = fetchFromGitHub { + owner = "zzrough"; + repo = "gs-extensions-drop-down-terminal"; + rev = "a59669afdb395b3315619f62c1f740f8b2f0690d"; + sha256 = "0igfxgrjdqq6z6xg4rsawxn261pk25g5dw2pm3bhwz5sqsy4bq3i"; + }; + + uuid = "drop-down-terminal@gs-extensions.zzrough.org"; + + patches = [ + (substituteAll { + src = ./fix_vte_and_gjs.patch; + inherit gjs vte; + }) + ]; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions/ + ''; + + meta = with stdenv.lib; { + description = "Configurable drop down terminal shell"; + license = licenses.gpl3; + maintainers = with maintainers; [ ericdallo ]; + homepage = "https://github.com/zzrough/gs-extensions-drop-down-terminal"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch new file mode 100644 index 000000000000..3544c91ee895 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch @@ -0,0 +1,32 @@ +--- a/drop-down-terminal@gs-extensions.zzrough.org/extension.js ++++ b/drop-down-terminal@gs-extensions.zzrough.org/extension.js +@@ -15,6 +15,8 @@ + + // Author: Stéphane Démurget <stephane.demurget@free.fr> + ++imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0') ++ + const Lang = imports.lang; + const Gettext = imports.gettext.domain("drop-down-terminal"); + const Mainloop = imports.mainloop; +@@ -653,7 +655,7 @@ const DropDownTerminalExtension = new Lang.Class({ + this._killingChild = false; + + // finds the forking arguments +- let args = ["gjs", GLib.build_filenamev([Me.path, "terminal.js"]), Me.path]; ++ let args = ["@gjs@/bin/gjs", GLib.build_filenamev([Me.path, "terminal.js"]), Me.path]; + + // forks the process + debug("forking '" + args.join(" ") + "'"); +--- a/drop-down-terminal@gs-extensions.zzrough.org/terminal.js ++++ b/drop-down-terminal@gs-extensions.zzrough.org/terminal.js +@@ -14,6 +14,9 @@ + // along with this program. If not, see <http://www.gnu.org/licenses/>. + + // Author: Stéphane Démurget <stephane.demurget@free.fr> ++ ++imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0') ++ + const Lang = imports.lang; + + const Pango = imports.gi.Pango; diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix new file mode 100644 index 000000000000..baaca39a4c4f --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchFromGitHub, substituteAll, python3, openssl, gsound +, meson, ninja, libxml2, pkgconfig, gobject-introspection, wrapGAppsHook +, glib, gtk3, at-spi2-core, upower, openssh, gnome3, gjs }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-gsconnect"; + version = "35"; + + src = fetchFromGitHub { + owner = "andyholmes"; + repo = "gnome-shell-extension-gsconnect"; + rev = "v${version}"; + sha256 = "GqM2S9FIOHw+8AK2K7fpEBq34JqgKRCsW8I9Ve6c6IM="; + }; + + patches = [ + # Make typelibs available in the extension + (substituteAll { + src = ./fix-paths.patch; + gapplication = "${glib.bin}/bin/gapplication"; + }) + ]; + + nativeBuildInputs = [ + meson ninja pkgconfig + gobject-introspection # for locating typelibs + wrapGAppsHook # for wrapping daemons + libxml2 # xmllint + ]; + + buildInputs = [ + glib # libgobject + gtk3 + at-spi2-core # atspi + gnome3.nautilus # TODO: this contaminates the package with nautilus and gnome-autoar typelibs but it is only needed for the extension + gnome3.nautilus-python + gsound + upower + gnome3.caribou + gjs # for running daemon + gnome3.evolution-data-server # for libebook-contacts typelib + ]; + + mesonFlags = [ + "-Dgnome_shell_libdir=${gnome3.gnome-shell}/lib" + "-Dgsettings_schemadir=${glib.makeSchemaPath (placeholder "out") "${pname}-${version}"}" + "-Dchrome_nmhdir=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts" + "-Dchromium_nmhdir=${placeholder "out"}/etc/chromium/native-messaging-hosts" + "-Dopenssl_path=${openssl}/bin/openssl" + "-Dsshadd_path=${openssh}/bin/ssh-add" + "-Dsshkeygen_path=${openssh}/bin/ssh-keygen" + "-Dsession_bus_services_dir=${placeholder "out"}/share/dbus-1/services" + "-Dpost_install=true" + ]; + + postPatch = '' + patchShebangs meson/nmh.sh + patchShebangs meson/post-install.sh + + # TODO: do not include every typelib everywhere + # for example, we definitely do not need nautilus + for file in src/extension.js src/prefs.js; do + substituteInPlace "$file" \ + --subst-var-by typelibPath "$GI_TYPELIB_PATH" + done + ''; + + postFixup = '' + # Let’s wrap the daemons + for file in $out/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/{daemon,nativeMessagingHost}.js; do + echo "Wrapping program $file" + wrapGApp "$file" + done + ''; + + meta = with stdenv.lib; { + description = "KDE Connect implementation for Gnome Shell"; + homepage = "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki"; + license = licenses.gpl2; + maintainers = with maintainers; [ etu ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch new file mode 100644 index 000000000000..629d34b6f68a --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch @@ -0,0 +1,31 @@ +--- a/data/org.gnome.Shell.Extensions.GSConnect.desktop ++++ b/data/org.gnome.Shell.Extensions.GSConnect.desktop +@@ -1,7 +1,7 @@ + [Desktop Entry] + Type=Application + Name=GSConnect +-Exec=gapplication launch org.gnome.Shell.Extensions.GSConnect %U ++Exec=@gapplication@ launch org.gnome.Shell.Extensions.GSConnect %U + Terminal=false + NoDisplay=true + Icon=org.gnome.Shell.Extensions.GSConnect +--- a/src/extension.js ++++ b/src/extension.js +@@ -1,5 +1,7 @@ + 'use strict'; + ++'@typelibPath@'.split(':').forEach(path => imports.gi.GIRepository.Repository.prepend_search_path(path)); ++ + const Gio = imports.gi.Gio; + const GLib = imports.gi.GLib; + const Gtk = imports.gi.Gtk; +--- a/src/prefs.js ++++ b/src/prefs.js +@@ -1,5 +1,7 @@ + 'use strict'; + ++'@typelibPath@'.split(':').forEach(path => imports.gi.GIRepository.Repository.prepend_search_path(path)); ++ + const Gio = imports.gi.Gio; + const GLib = imports.gi.GLib; + const Gtk = imports.gi.Gtk; diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix new file mode 100644 index 000000000000..efaef03f3b11 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-icon-hider"; + version = "23"; + + src = fetchFromGitHub { + owner = "ikalnytskyi"; + repo = "gnome-shell-extension-icon-hider"; + rev = "v${version}"; + sha256 = "18c8zkdrmdbghqqz7b450vhgpykgz25mgigwn2nggcb2lxmvm9ks"; + }; + + uuid = "icon-hider@kalnitsky.org"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "Icon Hider is a GNOME Shell extension for managing status area items"; + license = licenses.bsd3; + maintainers = with maintainers; [ jonafato ]; + platforms = gnome3.gnome-shell.meta.platforms; + homepage = "https://github.com/ikalnytskyi/gnome-shell-extension-icon-hider"; + broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34 + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix new file mode 100644 index 000000000000..230498f5d7bc --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, glib }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-impatience"; + version = "unstable-2019-09-23"; + + src = fetchFromGitHub { + owner = "timbertson"; + repo = "gnome-shell-impatience"; + rev = "43e4e0a1e0eeb334a2da5224ce3ab4fdddf4f1b2"; + sha256 = "0kvdhlz41fjyqdgcfw6mrr9nali6wg2qwji3dvykzfi0aypljzpx"; + }; + + buildInputs = [ + glib + ]; + + buildPhase = '' + make schemas + ''; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r impatience $out/share/gnome-shell/extensions/${uuid} + ''; + + uuid = "impatience@gfxmonk.net"; + + meta = with stdenv.lib; { + description = "Speed up builtin gnome-shell animations"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ timbertson tiramiseb ]; + homepage = "http://gfxmonk.net/dist/0install/gnome-shell-impatience.xml"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix new file mode 100644 index 000000000000..c16f7bc42090 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix @@ -0,0 +1,32 @@ +{ stdenv +, fetchFromGitHub +, gnome3 +}: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-mpris-indicator-button-unstable"; + version = "2020-03-21"; + + src = fetchFromGitHub { + owner = "JasonLG1979"; + repo = "gnome-shell-extension-mpris-indicator-button"; + rev = "de54160e7d905b8c48c0fe30a437f7c51efc1aa3"; + sha256 = "k/NLmDrlaOsMkwLye7YGQhaQvOMNfhCsDVh2F0qnuFg="; + }; + + uuid = "mprisindicatorbutton@JasonLG1979.github.io"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "A simple MPRIS indicator button for GNOME Shell"; + license = licenses.gpl3; + maintainers = with maintainers; [ worldofpeace ]; + platforms = gnome3.gnome-shell.meta.platforms; + homepage = "https://github.com/JasonLG1979/gnome-shell-extension-mpris-indicator-button"; + broken = versionOlder gnome3.gnome-shell.version "3.34"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix new file mode 100644 index 000000000000..be6c1916ab42 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitLab }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-night-theme-switcher"; + version = "19"; + + src = fetchFromGitLab { + owner = "rmnvgr"; + repo = "nightthemeswitcher-gnome-shell-extension"; + rev = "v${version}"; + sha256 = "1ll0yf1skf51wa10mlrajd1dy459w33kx0i3vhfcx2pdk7mw5a3c"; + }; + + # makefile tries to do install in home directory using + # `gnome-extensions install` + dontBuild = true; + + uuid = "nightthemeswitcher@romainvigier.fr"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions/ + cp -r src/ $out/share/gnome-shell/extensions/${uuid} + ''; + + meta = with stdenv.lib; { + description = "Automatically change the GTK theme to dark variant when Night Light activates"; + license = licenses.gpl3; + maintainers = with maintainers; [ jonafato ]; + homepage = "https://gitlab.com/rmnvgr/nightthemeswitcher-gnome-shell-extension/"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix new file mode 100644 index 000000000000..c876b22c12c1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, substituteAll, glib, gettext, xorg }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-no-title-bar"; + version = "9"; + + src = fetchFromGitHub { + owner = "franglais125"; + repo = "no-title-bar"; + rev = "v${version}"; + sha256 = "02zm61fg40r005fn2rvgrbsz2hbcsmp2hkhyilqbmpilw35y0nbq"; + }; + + nativeBuildInputs = [ + glib gettext + ]; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + xprop = "${xorg.xprop}/bin/xprop"; + xwininfo = "${xorg.xwininfo}/bin/xwininfo"; + }) + ]; + + makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ]; + + meta = with stdenv.lib; { + description = "Integrates maximized windows with the top panel"; + homepage = "https://github.com/franglais125/no-title-bar"; + license = licenses.gpl2; + broken = true; # https://github.com/franglais125/no-title-bar/issues/114 + maintainers = with maintainers; [ jonafato svsdep ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch new file mode 100644 index 000000000000..9a53d63860da --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch @@ -0,0 +1,56 @@ +--- a/decoration.js ++++ b/decoration.js +@@ -181,7 +181,7 @@ + let act = win.get_compositor_private(); + let xwindow = act && act['x-window']; + if (xwindow) { +- let xwininfo = GLib.spawn_command_line_sync('xwininfo -children -id 0x%x'.format(xwindow)); ++ let xwininfo = GLib.spawn_command_line_sync('@xwininfo@ -children -id 0x%x'.format(xwindow)); + if (xwininfo[0]) { + let str = xwininfo[1].toString(); + +@@ -207,7 +207,7 @@ + // Try enumerating all available windows and match the title. Note that this + // may be necessary if the title contains special characters and `x-window` + // is not available. +- let result = GLib.spawn_command_line_sync('xprop -root _NET_CLIENT_LIST'); ++ let result = GLib.spawn_command_line_sync('@xprop@ -root _NET_CLIENT_LIST'); + if (result[0]) { + let str = result[1].toString(); + +@@ -218,7 +218,7 @@ + + // For each window ID, check if the title matches the desired title. + for (var i = 0; i < windowList.length; ++i) { +- let cmd = 'xprop -id "' + windowList[i] + '" _NET_WM_NAME _NO_TITLE_BAR_ORIGINAL_STATE'; ++ let cmd = '@xprop@ -id "' + windowList[i] + '" _NET_WM_NAME _NO_TITLE_BAR_ORIGINAL_STATE'; + let result = GLib.spawn_command_line_sync(cmd); + + if (result[0]) { +@@ -258,7 +258,7 @@ + } + + let id = this._guessWindowXID(win); +- let cmd = 'xprop -id ' + id; ++ let cmd = '@xprop@ -id ' + id; + + let xprops = GLib.spawn_command_line_sync(cmd); + if (!xprops[0]) { +@@ -277,7 +277,7 @@ + m = str.match(/^_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED(\(CARDINAL\))? = ([0-9]+)$/m); + if (m) { + let state = !!parseInt(m[2]); +- cmd = ['xprop', '-id', id, ++ cmd = ['@xprop@', '-id', id, + '-f', '_NO_TITLE_BAR_ORIGINAL_STATE', '32c', + '-set', '_NO_TITLE_BAR_ORIGINAL_STATE', + (state ? '0x1' : '0x0')]; +@@ -358,7 +358,7 @@ + let winXID = this._guessWindowXID(win); + if (winXID == null) + return; +- let cmd = ['xprop', '-id', winXID, ++ let cmd = ['@xprop@', '-id', winXID, + '-f', '_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED', '32c', + '-set', '_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED', + (hide ? '0x1' : '0x0')]; diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix new file mode 100644 index 000000000000..7a79b691a4df --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-paperwm"; + version = "36.0"; + + src = fetchFromGitHub { + owner = "paperwm"; + repo = "PaperWM"; + rev = version; + sha256 = "1ssnabwxrns36c61ppspjkr9i3qifv08pf2jpwl7cjv3pvyn4kly"; + }; + + uuid = "paperwm@hedning:matrix.org"; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions/${uuid} + cp -r . $out/share/gnome-shell/extensions/${uuid} + ''; + + meta = with stdenv.lib; { + description = "Tiled scrollable window management for Gnome Shell"; + homepage = "https://github.com/paperwm/PaperWM"; + license = licenses.gpl3; + maintainers = with maintainers; [ hedning zowoq ]; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix new file mode 100644 index 000000000000..dbc65044c1bc --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, glib, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-pidgin-im-integration"; + version = "32"; + + src = fetchFromGitHub { + owner = "muffinmad"; + repo = "pidgin-im-gnome-shell-extension"; + rev = "v${version}"; + sha256 = "1jyg8r0s1v83sgg6y0jbsj2v37mglh8rvd8vi27fxnjq9xmg8kpc"; + }; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + share_dir="$prefix/share" + extensions_dir="$share_dir/gnome-shell/extensions/pidgin@muffinmad" + mkdir -p "$extensions_dir" + mv *.js metadata.json dbus.xml schemas locale "$extensions_dir" + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/muffinmad/pidgin-im-gnome-shell-extension"; + description = "Make Pidgin IM conversations appear in the Gnome Shell message tray"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34 + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix new file mode 100644 index 000000000000..acb0e3624298 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-remove-dropdown-arrows"; + version = "13"; + + src = fetchFromGitHub { + owner = "mpdeimos"; + repo = "gnome-shell-remove-dropdown-arrows"; + rev = "version/${version}"; + sha256 = "09b2hnfbqym20pb1sfc8xiz7gs2kbs6b1s7xl8swc8dydhsbambk"; + }; + + # This package has a Makefile, but it's used for publishing and linting, not + # for building. Disable the build phase so installing doesn't attempt to + # publish the extension. + dontBuild = true; + + uuid = "remove-dropdown-arrows@mpdeimos.com"; + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions/${uuid} + cp extension.js $out/share/gnome-shell/extensions/${uuid} + cp metadata.json $out/share/gnome-shell/extensions/${uuid} + ''; + + meta = with stdenv.lib; { + description = "Remove dropdown arrows from GNOME Shell Menus"; + license = licenses.gpl3; + maintainers = with maintainers; [ jonafato ]; + homepage = "https://github.com/mpdeimos/gnome-shell-remove-dropdown-arrows"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix new file mode 100644 index 000000000000..6fa1840bbb17 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix @@ -0,0 +1,41 @@ +{ stdenv +, substituteAll +, fetchFromGitHub +, libpulseaudio +, python3 +}: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-sound-output-device-chooser"; + version = "28"; + + src = fetchFromGitHub { + owner = "kgshank"; + repo = "gse-sound-output-device-chooser"; + rev = version; + sha256 = "JmDUi6xTMbkMzW+hYJuKtjQj4ERctaiHr6eLsl5Fru4="; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + libpulse = "${libpulseaudio}/lib/libpulse.so"; + python = python3.interpreter; + }) + ]; + + dontBuild = true; + + uuid = "sound-output-device-chooser@kgshank.net"; + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "GNOME Shell extension adding audio device chooser to panel"; + license = licenses.gpl3; + maintainers = with maintainers; [ jtojnar ]; + homepage = "https://github.com/kgshank/gse-sound-output-device-chooser"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch new file mode 100644 index 000000000000..a0a6551fcf81 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch @@ -0,0 +1,22 @@ +--- a/sound-output-device-chooser@kgshank.net/convenience.js ++++ b/sound-output-device-chooser@kgshank.net/convenience.js +@@ -111,7 +111,7 @@ function refreshCards() { + log("New logic"); + let pyLocation = Me.dir.get_child('utils/pa_helper.py').get_path(); + try { +- let [result, out, err, exit_code] = GLib.spawn_command_line_sync('python ' + pyLocation); ++ let [result, out, err, exit_code] = GLib.spawn_command_line_sync('@python@ ' + pyLocation); + // log("result" + result +" out"+out + " exit_code" + exit_code + " + // err" +err); + if(result && !exit_code) { +--- a/sound-output-device-chooser@kgshank.net/utils/libpulse_introspect.py ++++ b/sound-output-device-chooser@kgshank.net/utils/libpulse_introspect.py +@@ -86,7 +86,7 @@ else: + + _libraries = {} + +-libpulse_library_name = find_library('pulse') ++libpulse_library_name = '@libpulse@' + if libpulse_library_name is None: + raise Exception('No libpulse.so library found!') + diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix new file mode 100644 index 000000000000..489a4c5587fa --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix @@ -0,0 +1,48 @@ +{ stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-system-monitor"; + version = "38"; + + src = fetchFromGitHub { + owner = "paradoxxxzero"; + repo = "gnome-shell-system-monitor-applet"; + rev = "v${version}"; + sha256 = "1sdj2kxb418mgq44a6lf6jic33wlfbnn3ja61igmx0jj1530iknv"; + }; + + buildInputs = [ + glib + glib-networking + libgtop + ]; + + patches = [ + (substituteAll { + src = ./paths_and_nonexisting_dirs.patch; + gtop_path = "${libgtop}/lib/girepository-1.0"; + glib_net_path = "${glib-networking}/lib/girepository-1.0"; + }) + ]; + + buildPhase = '' + glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas + ''; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + uuid = "system-monitor@paradoxxx.zero.gmail.com"; + + meta = with stdenv.lib; { + description = "Display system informations in gnome shell status bar"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ tiramiseb ]; + homepage = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet"; + # 3.36 support not yet ready + # https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/pull/564 + broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.34"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch new file mode 100644 index 000000000000..82e3d7c541ba --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch @@ -0,0 +1,23 @@ +diff --git a/system-monitor@paradoxxx.zero.gmail.com/extension.js b/system-monitor@paradoxxx.zero.gmail.com/extension.js +index b4b7f15..d139135 100644 +--- a/system-monitor@paradoxxx.zero.gmail.com/extension.js ++++ b/system-monitor@paradoxxx.zero.gmail.com/extension.js +@@ -18,6 +18,9 @@ + + // Author: Florian Mounier aka paradoxxxzero + ++imports.gi.GIRepository.Repository.prepend_search_path('@gtop_path@'); ++imports.gi.GIRepository.Repository.prepend_search_path('@glib_net_path@'); ++ + /* Ugly. This is here so that we don't crash old libnm-glib based shells unnecessarily + * by loading the new libnm.so. Should go away eventually */ + const libnm_glib = imports.gi.GIRepository.Repository.get_default().is_registered("NMClient", "1.0"); +@@ -386,7 +389,7 @@ const smMountsMonitor = new Lang.Class({ + connected: false, + _init: function () { + this._volumeMonitor = Gio.VolumeMonitor.get(); +- let sys_mounts = ['/home', '/tmp', '/boot', '/usr', '/usr/local']; ++ let sys_mounts = ['/home', '/tmp', '/boot']; + this.base_mounts = ['/']; + sys_mounts.forEach(Lang.bind(this, function (sMount) { + if (this.is_sys_mount(sMount + '/')) { diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix new file mode 100644 index 000000000000..b4b690c3007c --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix @@ -0,0 +1,43 @@ +{ stdenv, substituteAll, fetchFromGitHub, taskwarrior, gettext, runtimeShell, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-taskwhisperer"; + version = "12"; + + src = fetchFromGitHub { + owner = "cinatic"; + repo = "taskwhisperer"; + rev = "v${version}"; + sha256 = "187p6p498dd258avsfqqsm322g58y75pc2wbhb4jpmm9insqm1bj"; + }; + + nativeBuildInputs = [ + gettext + ]; + + buildInputs = [ + taskwarrior + ]; + + uuid = "taskwhisperer-extension@infinicode.de"; + + makeFlags = [ + "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions" + ]; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + task = "${taskwarrior}/bin/task"; + shell = runtimeShell; + }) + ]; + + meta = with stdenv.lib; { + description = "GNOME Shell TaskWarrior GUI"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ jonafato ]; + homepage = "https://github.com/cinatic/taskwhisperer"; + broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesnt't support 3.34 + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/fix-paths.patch new file mode 100644 index 000000000000..2ea54f4b0897 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/fix-paths.patch @@ -0,0 +1,99 @@ +diff --git a/taskwhisperer-extension@infinicode.de/extra/create.sh b/taskwhisperer-extension@infinicode.de/extra/create.sh +index a69e369..35d5ea1 100755 +--- a/taskwhisperer-extension@infinicode.de/extra/create.sh ++++ b/taskwhisperer-extension@infinicode.de/extra/create.sh +@@ -1 +1 @@ +-bash -c "task add $1" ++bash -c "@task@ add $1" +diff --git a/taskwhisperer-extension@infinicode.de/extra/modify.sh b/taskwhisperer-extension@infinicode.de/extra/modify.sh +index 7964a26..8edd21b 100755 +--- a/taskwhisperer-extension@infinicode.de/extra/modify.sh ++++ b/taskwhisperer-extension@infinicode.de/extra/modify.sh +@@ -1 +1 @@ +-bash -c "task $1 modify $2" ++bash -c "@task@ $1 modify $2" +diff --git a/taskwhisperer-extension@infinicode.de/taskService.js b/taskwhisperer-extension@infinicode.de/taskService.js +index ead7a12..aa36db4 100644 +--- a/taskwhisperer-extension@infinicode.de/taskService.js ++++ b/taskwhisperer-extension@infinicode.de/taskService.js +@@ -182,7 +182,7 @@ const TaskService = class TaskService { + + let project = projectName ? "project:" + projectName : ""; + +- let command = ['task', 'rc.json.array=on', status, project, 'export']; ++ let command = ['@task@', 'rc.json.array=on', status, project, 'export']; + let reader = new SpawnReader.SpawnReader(); + + let buffer = ""; +@@ -220,7 +220,7 @@ const TaskService = class TaskService { + break; + } + +- let shellProc = Gio.Subprocess.new(['task', status, 'projects'], Gio.SubprocessFlags.STDOUT_PIPE); ++ let shellProc = Gio.Subprocess.new(['@task@', status, 'projects'], Gio.SubprocessFlags.STDOUT_PIPE); + + shellProc.wait_async(null, function (obj, result) { + let shellProcExited = true; +@@ -261,7 +261,7 @@ const TaskService = class TaskService { + return; + } + +- let shellProc = Gio.Subprocess.new(['task', taskID.toString(), 'done'], Gio.SubprocessFlags.STDOUT_PIPE); ++ let shellProc = Gio.Subprocess.new(['@task@', taskID.toString(), 'done'], Gio.SubprocessFlags.STDOUT_PIPE); + + shellProc.wait_async(null, function (obj, result) { + let shellProcExited = true; +@@ -290,7 +290,7 @@ const TaskService = class TaskService { + return; + } + +- let shellProc = Gio.Subprocess.new(['task', 'modify', taskID.toString(), 'status:pending'], Gio.SubprocessFlags.STDOUT_PIPE); ++ let shellProc = Gio.Subprocess.new(['@task@', 'modify', taskID.toString(), 'status:pending'], Gio.SubprocessFlags.STDOUT_PIPE); + + shellProc.wait_async(null, function (obj, result) { + let shellProcExited = true; +@@ -318,7 +318,7 @@ const TaskService = class TaskService { + if (!taskID) { + return; + } +- let shellProc = Gio.Subprocess.new(['task', taskID.toString(), 'start'], Gio.SubprocessFlags.STDOUT_PIPE); ++ let shellProc = Gio.Subprocess.new(['@task@', taskID.toString(), 'start'], Gio.SubprocessFlags.STDOUT_PIPE); + shellProc.wait_async(null, function (obj, result) { + let shellProcExited = true; + shellProc.wait_finish(result); +@@ -344,7 +344,7 @@ const TaskService = class TaskService { + if (!taskID) { + return; + } +- let shellProc = Gio.Subprocess.new(['task', taskID.toString(), 'stop'], Gio.SubprocessFlags.STDOUT_PIPE); ++ let shellProc = Gio.Subprocess.new(['@task@', taskID.toString(), 'stop'], Gio.SubprocessFlags.STDOUT_PIPE); + shellProc.wait_async(null, function (obj, result) { + let shellProcExited = true; + shellProc.wait_finish(result); +@@ -374,7 +374,7 @@ const TaskService = class TaskService { + // FIXME: Gio.Subprocess: due to only passing string vector is allowed, it's not possible to directly pass the + // input of the user to subprocess (why & how, if you can answer then please send msg to fh@infinicode.de) + // bypassing problem with own shell script +- let shellProc = Gio.Subprocess.new(['/bin/sh', EXTENSIONDIR + '/extra/modify.sh', taskID.toString(), params], Gio.SubprocessFlags.STDOUT_PIPE + Gio.SubprocessFlags.STDERR_MERGE); ++ let shellProc = Gio.Subprocess.new(['@shell@', EXTENSIONDIR + '/extra/modify.sh', taskID.toString(), params], Gio.SubprocessFlags.STDOUT_PIPE + Gio.SubprocessFlags.STDERR_MERGE); + + shellProc.wait_async(null, function (obj, result) { + let shellProcExited = true; +@@ -403,7 +403,7 @@ const TaskService = class TaskService { + // FIXME: Gio.Subprocess: due to only passing string vector is allowed, it's not possible to directly pass the + // input of the user to subprocess (why & how, if you can answer then please send msg to fh@infinicode.de) + // bypassing problem with own shell script +- let shellProc = Gio.Subprocess.new(['/bin/sh', EXTENSIONDIR + '/extra/create.sh', params], Gio.SubprocessFlags.STDOUT_PIPE + Gio.SubprocessFlags.STDERR_MERGE); ++ let shellProc = Gio.Subprocess.new(['@shell@', EXTENSIONDIR + '/extra/create.sh', params], Gio.SubprocessFlags.STDOUT_PIPE + Gio.SubprocessFlags.STDERR_MERGE); + + shellProc.wait_async(null, function (obj, result) { + let shellProcExited = true; +@@ -432,7 +432,7 @@ const TaskService = class TaskService { + let shellProc; + + try { +- shellProc = Gio.Subprocess.new(['task', 'sync'], Gio.SubprocessFlags.STDOUT_PIPE); ++ shellProc = Gio.Subprocess.new(['@task@', 'sync'], Gio.SubprocessFlags.STDOUT_PIPE); + } catch (err) { + onError(err); + return; diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix new file mode 100644 index 000000000000..60ca1dcbef37 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchFromGitHub, glib, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-tilingnome-unstable"; + version = "unstable-2019-09-19"; + + src = fetchFromGitHub { + owner = "rliang"; + repo = "gnome-shell-extension-tilingnome"; + rev = "f401c20c9721d85e6b3e30d1e822a200db370407"; + sha256 = "1hq9g9bxqpzqrdj9zm0irld8r6q4w1m4b00jya7wsny8rzb1s0y2"; + }; + + nativeBuildInputs = [ glib ]; + + buildPhase = '' + glib-compile-schemas . + ''; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions/${uuid} + cp -r * $out/share/gnome-shell/extensions/${uuid}/ + ''; + + uuid = "tilingnome@rliang.github.com"; + + meta = with stdenv.lib; { + description = "Tiling window management for GNOME Shell"; + license = licenses.gpl2; + maintainers = with maintainers; [ benley ]; + homepage = "https://github.com/rliang/gnome-shell-extension-tilingnome"; + platforms = gnome3.gnome-shell.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix new file mode 100644 index 000000000000..6ac9a4a0331e --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-timepp"; + version = "unstable-2019-03-30"; + + src = fetchFromGitHub { + owner = "zagortenay333"; + repo = "timepp__gnome"; + rev = "f90fb5573b37ac89fb57bf62e07d6d3bdb6a2c63"; + sha256 = "0p6rsbm6lf61vzly775qkwc2rcjjl38bkqdxnv4sccqmw2wwclnp"; + }; + + uuid = "timepp@zagortenay333"; + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions/${uuid} + cp -r . $out/share/gnome-shell/extensions/${uuid} + ''; + + meta = with stdenv.lib; { + description = "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarms gnome-shell extension."; + homepage = "https://github.com/zagortenay333/timepp__gnome"; + license = licenses.gpl3; + maintainers = with maintainers; [ svsdep ]; + broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Dosen't support 3.34 https://github.com/zagortenay333/timepp__gnome/issues/113 + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix new file mode 100644 index 000000000000..6a1c87abf93d --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, glib, gnome3, gettext }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-topicons-plus"; + version = "22"; + + src = fetchFromGitHub { + owner = "phocean"; + repo = "TopIcons-plus"; + rev = "v${version}"; + sha256 = "196s1gdir52gbc444pzrb5l7gn5xr5vqk5ajqaiqryqlmp3i8vil"; + }; + + buildInputs = [ glib ]; + + nativeBuildInputs = [ gettext ]; + + makeFlags = [ "INSTALL_PATH=$(out)/share/gnome-shell/extensions" ]; + + meta = with stdenv.lib; { + description = "Brings all icons back to the top panel, so that it's easier to keep track of apps running in the backround"; + license = licenses.gpl2; + maintainers = with maintainers; [ eperuffo ]; + homepage = "https://github.com/phocean/TopIcons-plus"; + # Unmaintained and no longer working with GNOME Shell 3.34+ + broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.32"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix new file mode 100644 index 000000000000..44402fc6e135 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-window-corner-preview"; + version = "unstable-2019-04-03"; + + src = fetchFromGitHub { + owner = "medenagan"; + repo = "window-corner-preview"; + rev = "a95bb1389d94474efab7509aac592fb58fff6006"; + sha256 = "03v18j9l0fb64xrg3swf1vcgl0kpgwjlp8ddn068bpvghrsvgfah"; + }; + + dontBuild = true; + + uuid = "window-corner-preview@fabiomereu.it"; + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "GNOME Shell extension showing a video preview on the corner of the screen"; + license = licenses.mit; + maintainers = with maintainers; [ jtojnar ]; + homepage = "https://github.com/medenagan/window-corner-preview"; + broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34 + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix new file mode 100644 index 000000000000..adcaf3126f38 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, findutils, glib }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-workspace-matrix"; + version = "4.0.0"; + + src = fetchFromGitHub { + owner = "mzur"; + repo = "gnome-shell-wsmatrix"; + rev = "v${version}"; + sha256 = "LTDkKSKvReJxBzAERE+vV+uJBNZw6UyhiB7kN48BZCo="; + }; + + uuid = "wsmatrix@martin.zurowietz.de"; + + nativeBuildInputs = [ + findutils + glib + ]; + + buildFlags = "schemas"; + + installPhase = '' + mkdir -p $out/share/gnome-shell/extensions + cp -r ${uuid} $out/share/gnome-shell/extensions + ''; + + meta = with stdenv.lib; { + description = "Arrange workspaces in a two dimensional grid with workspace thumbnails"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ chkno ]; + homepage = "https://github.com/mzur/gnome-shell-wsmatrix"; + }; +} |