diff options
Diffstat (limited to 'gnu/packages/gnome-xyz.scm')
-rw-r--r-- | gnu/packages/gnome-xyz.scm | 199 |
1 files changed, 160 insertions, 39 deletions
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 7f375fefc5..b8cd32db08 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -2,6 +2,8 @@ ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at> ;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> +;;; Copyright © 2020 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,15 +23,21 @@ (define-module (gnu packages gnome-xyz) #:use-module (guix build-system trivial) #:use-module (guix build-system gnu) + #:use-module (guix build-system copy) + #:use-module (guix build-system meson) #:use-module (guix git-download) #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages ssh) + #:use-module (gnu packages tls) #:use-module (gnu packages ruby) #:use-module (gnu packages xml)) @@ -82,7 +90,7 @@ like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.") (define-public delft-icon-theme (package (name "delft-icon-theme") - (version "1.10") + (version "1.11") (source (origin (method git-fetch) @@ -91,21 +99,19 @@ like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.") (commit (string-append "v" version)))) (sha256 (base32 - "0vw3yw9f9ygzfd2k3zrfih3r0vkzlhk1bmsk8sapvk7np24i1z9s")) + "1m3r4i4m3y3xsjb5f4bik0ylmi64amkfyr0y8pjbvv6gyj492mi6")) (file-name (git-file-name name version)))) - (build-system trivial-build-system) + (build-system copy-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (copy-recursively (assoc-ref %build-inputs "source") "icons") - (substitute* "icons/Delft/index.theme" - (("gnome") "Adwaita")) - (delete-file "icons/README.md") - (delete-file "icons/LICENSE") - (delete-file "icons/logo.jpg") - (copy-recursively "icons" (string-append %output "/share/icons"))))) + `(#:install-plan + `(("." "share/icons" #:exclude ("README.md" "LICENSE" "logo.jpg"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-index.theme + (lambda _ + (substitute* "Delft/index.theme" + (("gnome") "Adwaita")) + #t))))) (home-page "https://www.gnome-look.org/p/1199881/") (synopsis "Continuation of Faenza icon theme with up to date app icons") (description "Delft is a fork of the popular icon theme Faenza with up to @@ -128,19 +134,11 @@ the Obsidian icon theme.") (base32 "1fjhx23jqwv3d0smwhnjvc35gqhwk9p5f96ic22pfax653cn5vh8")) (file-name (git-file-name name version)))) - (build-system trivial-build-system) + (build-system copy-build-system) (arguments - '(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let* ((source (assoc-ref %build-inputs "source")) - (install-dir (string-append (assoc-ref %outputs "out") - "/share/gnome-shell/extensions" - "/appindicatorsupport@rgcjonas.gmail.com"))) - (mkdir-p install-dir) - (copy-recursively source install-dir) - #t)))) + `(#:install-plan + '(("." ,(string-append "share/gnome-shell/extensions/" + "appindicatorsupport@rgcjonas.gmail.com"))))) (synopsis "Adds KStatusNotifierItem support to GNOME Shell") (description "This extension integrates Ubuntu AppIndicators and KStatusNotifierItems (KDE's successor of the systray) into @@ -185,6 +183,100 @@ faster window switching.") (home-page "https://micheleg.github.io/dash-to-dock/") (license license:gpl2+))) +(define-public gnome-shell-extension-gsconnect + (package + (name "gnome-shell-extension-gsconnect") + ;; v28 is the last version to support GNOME 3.32 + (version "28") + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/andyholmes" + "/gnome-shell-extension-gsconnect.git")) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0grqkzqm7mlkbzin4nx9w7bh5cgygph8pn0cvim4a4gg99nfcp5z")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags + (let* ((out (assoc-ref %outputs "out")) + (name+version (strip-store-file-name out)) + (gschema-dir (string-append out + "/share/gsettings-schemas/" + name+version + "/glib-2.0/schemas")) + (gnome-shell (assoc-ref %build-inputs "gnome-shell")) + (openssh (assoc-ref %build-inputs "openssh")) + (openssl (assoc-ref %build-inputs "openssl"))) + (list + (string-append "-Dgnome_shell_libdir=" gnome-shell "/lib") + (string-append "-Dgsettings_schemadir=" gschema-dir) + (string-append "-Dopenssl_path=" openssl "/bin/openssl") + (string-append "-Dsshadd_path=" openssh "/bin/ssh-add") + (string-append "-Dsshkeygen_path=" openssh "/bin/ssh-keygen") + (string-append "-Dsession_bus_services_dir=" out "/share/dbus-1/services") + "-Dpost_install=true")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let* ((glib (assoc-ref inputs "glib:bin")) + (gapplication (string-append glib "/bin/gapplication")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (substitute* "data/org.gnome.Shell.Extensions.GSConnect.desktop" + (("gapplication") gapplication)) + (for-each + (lambda (file) + (substitute* file + (("'use strict';") + (string-append "'use strict';\n\n" + "'" gi-typelib-path "'.split(':').forEach(" + "path => imports.gi.GIRepository.Repository." + "prepend_search_path(path));")))) + '("src/extension.js" "src/prefs.js")) + #t))) + (add-after 'install 'wrap-daemons + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (service-dir + (string-append out "/share/gnome-shell/extensions" + "/gsconnect@andyholmes.github.io/service")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append service-dir "/daemon.js") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))) + #t)))))) + (inputs + `(("at-spi2-core" ,at-spi2-core) + ("caribou" ,caribou) + ("evolution-data-server" ,evolution-data-server) + ("folks" ,folks) + ("gjs" ,gjs) + ("glib" ,glib) + ("glib:bin" ,glib "bin") + ("gsound" ,gsound) + ("gnome-shell" ,gnome-shell) + ("gtk+" ,gtk+) + ("nautilus" ,nautilus) + ("openssh" ,openssh) + ("openssl" ,openssl) + ("python-nautilus" ,python-nautilus) + ("python-pygobject" ,python-pygobject) + ("upower" ,upower))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection) + ("libxml2" ,libxml2) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki") + (synopsis "Connect GNOME Shell with your Android phone") + (description "GSConnect is a complete implementation of KDE Connect +especially for GNOME Shell, allowing devices to securely share content, like +notifications or files, and other features like SMS messaging and remote +control.") + (license license:gpl2))) + (define-public gnome-shell-extension-hide-app-icon (let ((commit "4188aa5f4ba24901a053a0c3eb0d83baa8625eab") (revision "0")) @@ -286,24 +378,53 @@ into a single panel, similar to that found in KDE Plasma and Windows 7+.") (base32 "0fa8l3xlh8kbq07y4385wpb908zm6x53z81q16xlmin97dln32hh")) (file-name (git-file-name name version)))) - (build-system trivial-build-system) + (build-system copy-build-system) (arguments - '(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((dst (string-append - (assoc-ref %outputs "out") - "/share/gnome-shell/extensions/" - "noannoyance@daase.net"))) - (mkdir-p dst) - (copy-recursively (assoc-ref %build-inputs "source") dst))))) - (synopsis "Removes 'Window is ready' annotation") - (description "One of the many extensions, that remove this message. + '(#:install-plan + '(("." "share/gnome-shell/extensions/noannoyance@daase.net")))) + (synopsis "Remove 'Window is ready' annotation") + (description "One of the many extensions that remove this message. It uses ES6 syntax and claims to be more actively maintained than others.") (home-page "https://extensions.gnome.org/extension/2182/noannoyance/") (license license:gpl2))) +(define-public gnome-shell-extension-paperwm + (package + (name "gnome-shell-extension-paperwm") + (version "34.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/paperwm/PaperWM.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qry75f696pgmd9yzqvwhq5h6cipin2fvk7h881g29cjcpxim37a")) + (snippet + '(begin (delete-file "schemas/gschemas.compiled"))))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("." "share/gnome-shell/extensions/paperwm@hedning:matrix.org" + #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$" + "\\.xml$" "\\.compiled$"))) + #:phases + (modify-phases %standard-phases + (add-before 'install 'compile-schemas + (lambda _ + (with-directory-excursion "schemas" + (invoke "make")) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin"))) ; for glib-compile-schemas + (home-page "https://github.com/paperwm/PaperWM") + (synopsis "Tiled scrollable window management for GNOME Shell") + (description "PaperWM is an experimental GNOME Shell extension providing +scrollable tiling of windows and per monitor workspaces. It's inspired by paper +notebooks and tiling window managers.") + (license license:gpl3))) + (define-public numix-theme (package (name "numix-theme") |