X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/fb18f32e5a3a80e809e369ec148b5a8a87d10c86..7829fc779b6013e6b81809624e31cbaa7722fc1b:/gnu/packages/gnome-xyz.scm diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 06af41aea6..673b8cf1d7 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -3,6 +3,9 @@ ;;; Copyright © 2019 Alexandros Theodotou ;;; Copyright © 2019 Giacomo Leidi ;;; Copyright © 2020 Alex Griffin +;;; Copyright © 2020 Jack Hill +;;; Copyright © 2020 Ekaitz Zarraga +;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,15 +26,20 @@ #: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)) @@ -84,7 +92,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) @@ -93,21 +101,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 @@ -119,7 +125,7 @@ the Obsidian icon theme.") (define-public gnome-shell-extension-appindicator (package (name "gnome-shell-extension-appindicator") - (version "30") + (version "33") (source (origin (method git-fetch) (uri (git-reference @@ -128,21 +134,13 @@ the Obsidian icon theme.") (commit (string-append "v" version)))) (sha256 (base32 - "1fjhx23jqwv3d0smwhnjvc35gqhwk9p5f96ic22pfax653cn5vh8")) + "0qm77s080nbf4gqnfzpwp8a7jf7lliz6fxbsd3lasvrr11pgsk87")) (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 @@ -150,6 +148,94 @@ GNOME Shell.") (home-page "https://github.com/ubuntu/gnome-shell-extension-appindicator/") (license license:gpl2+))) +(define-public gnome-shell-extension-clipboard-indicator + (package + (name "gnome-shell-extension-clipboard-indicator") + (version "34") + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/Tudmotu/" + "gnome-shell-extension-clipboard-indicator.git")) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0i00psc1ky70zljd14jzr627y7nd8xwnwrh4xpajl1f6djabh12s")) + (modules '((guix build utils))) + (snippet + ;; Remove pre-compiled settings schemas and translations from + ;; source, as they are generated as part of build. Upstream + ;; includes them for people who want to run the software + ;; directly from source tree. + '(begin (delete-file "schemas/gschemas.compiled") + (for-each delete-file (find-files "locale" "\\.mo$")) + #t)))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("." "share/gnome-shell/extensions/clipboard-indicator@tudmotu.com" + #:include-regexp ("\\.css$" "\\.compiled$" "\\.js(on)?$" "\\.mo$" "\\.xml$"))) + #:phases + (modify-phases %standard-phases + (add-before 'install 'compile-schemas + (lambda _ + (with-directory-excursion "schemas" + (invoke "glib-compile-schemas" ".")) + #t)) + (add-before 'install 'compile-locales + (lambda _ (invoke "./compile-locales.sh") + #t))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin"))) ; for glib-compile-schemas + (home-page "https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator") + (synopsis "Clipboard manager extension for GNOME Shell") + (description "Clipboard Indicator is a clipboard manager for GNOME Shell +that caches clipboard history.") + (license license:expat))) + +(define-public gnome-shell-extension-topicons-redux + (package + (name "gnome-shell-extension-topicons-redux") + (version "6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/pop-planet/TopIcons-Redux.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dli9xb545n3xlj6q4wl0y5gzkm903zs47p8fiq71pdvbr6v38rj")))) + (build-system gnu-build-system) + (native-inputs + `(("glib" ,glib "bin"))) + (arguments + `(#:tests? #f ;no test defined in the project + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke "make" + "install" + (string-append + "INSTALL_PATH=" + out + "/share/gnome-shell/extensions")))))))) + (home-page "https://gitlab.com/pop-planet/TopIcons-Redux") + (synopsis "Display legacy tray icons in the GNOME Shell top panel") + (description "Many applications, such as chat clients, downloaders, and +some media players, are meant to run long-term in the background even after you +close their window. These applications remain accessible by adding an icon to +the GNOME Shell Legacy Tray. However, the Legacy Tray was removed in GNOME +3.26. TopIcons Redux brings those icons back into the top panel so that it's +easier to keep track of apps running in the backround.") + (license license:gpl2+))) + (define-public gnome-shell-extension-dash-to-dock (package (name "gnome-shell-extension-dash-to-dock") @@ -187,6 +273,99 @@ 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") + ;; v33 is the last version to support GNOME 3.34 + (version "33") + (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 + "1q03axhn75i864vgmd6myhmgwrmnpf01gsd1wl0di5x9q8mic2zn")))) + (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) + ("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")) @@ -226,7 +405,7 @@ faster window switching.") (propagated-inputs `(("glib" ,glib))) (synopsis "Hide app icon from GNOME's panel") - (description "This extension allows to hide the icon and/or title of the + (description "This extension hides the icon and/or title of the currently focused application in the top panel of the GNOME shell.") (home-page "https://github.com/michael-rapp/gnome-shell-extension-hide-app-icon/") @@ -288,20 +467,12 @@ 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))) @@ -309,7 +480,7 @@ It uses ES6 syntax and claims to be more actively maintained than others.") (define-public gnome-shell-extension-paperwm (package (name "gnome-shell-extension-paperwm") - (version "34.3") + (version "36.0") (source (origin (method git-fetch) (uri (git-reference @@ -318,13 +489,24 @@ It uses ES6 syntax and claims to be more actively maintained than others.") (file-name (git-file-name name version)) (sha256 (base32 - "1qry75f696pgmd9yzqvwhq5h6cipin2fvk7h881g29cjcpxim37a")))) + "1ssnabwxrns36c61ppspjkr9i3qifv08pf2jpwl7cjv3pvyn4kly")) + (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$"))))) + "\\.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 @@ -332,9 +514,9 @@ 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 +(define-public numix-gtk-theme (package - (name "numix-theme") + (name "numix-gtk-theme") (version "2.6.7") (source (origin (method git-fetch) @@ -347,11 +529,14 @@ notebooks and tiling window managers.") "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7")))) (build-system gnu-build-system) (arguments - '(#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) + '(#:make-flags + (list (string-append "INSTALL_DIR=" + (assoc-ref %outputs "out") + "/share/themes/Numix")) + #:tests? #f #:phases (modify-phases %standard-phases - (delete 'configure) - (delete 'check)))) + (delete 'configure)))) ; no configure script (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas ("gnome-shell" ,gnome-shell) @@ -364,6 +549,9 @@ dark elements. It supports GNOME, Unity, Xfce, and Openbox.") (home-page "https://numixproject.github.io") (license license:gpl3+))) +(define-public numix-theme + (deprecated-package "numix-theme" numix-gtk-theme)) + (define-public papirus-icon-theme (let ((version "0.0.0") ;; The package does not use semver (revision "0")