gnu: sssd: Update to 2.7.4.
[jackhill/guix/guix.git] / gnu / packages / gnome-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
3 ;;; Copyright © 2019, 2021 Alexandros Theodotou <alex@zrythm.org>
4 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
5 ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
6 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
7 ;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
8 ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
9 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
10 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
11 ;;; Copyright © 2020 Ellis Kenyo <me@elken.dev>
12 ;;; Copyright © 2020 Stefan Reichör <stefan@xsteve.at>
13 ;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
14 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
15 ;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml>
16 ;;; Copyright © 2021, 2022 Justin Veilleux <terramorpha@cock.li>
17 ;;; Copyright © 2021 Attila Lendvai <attila@lendvai.name>
18 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
19 ;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
20 ;;; Copyright © 2022 Sughosha <sughosha@proton.me>
21 ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
22 ;;;
23 ;;; This file is part of GNU Guix.
24 ;;;
25 ;;; GNU Guix is free software; you can redistribute it and/or modify it
26 ;;; under the terms of the GNU General Public License as published by
27 ;;; the Free Software Foundation; either version 3 of the License, or (at
28 ;;; your option) any later version.
29 ;;;
30 ;;; GNU Guix is distributed in the hope that it will be useful, but
31 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 ;;; GNU General Public License for more details.
34 ;;;
35 ;;; You should have received a copy of the GNU General Public License
36 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
38 (define-module (gnu packages gnome-xyz)
39 #:use-module (guix build-system trivial)
40 #:use-module (guix build-system gnu)
41 #:use-module (guix build-system copy)
42 #:use-module (guix build-system meson)
43 #:use-module (guix build-system python)
44 #:use-module (guix gexp)
45 #:use-module (guix git-download)
46 #:use-module (guix packages)
47 #:use-module (guix utils)
48 #:use-module ((guix licenses) #:prefix license:)
49 #:use-module (gnu packages)
50 #:use-module (gnu packages acl)
51 #:use-module (gnu packages attr)
52 #:use-module (gnu packages autotools)
53 #:use-module (gnu packages backup)
54 #:use-module (gnu packages base)
55 #:use-module (gnu packages bash)
56 #:use-module (gnu packages build-tools)
57 #:use-module (gnu packages check)
58 #:use-module (gnu packages gettext)
59 #:use-module (gnu packages glib)
60 #:use-module (gnu packages gnome)
61 #:use-module (gnu packages gtk)
62 #:use-module (gnu packages inkscape)
63 #:use-module (gnu packages image)
64 #:use-module (gnu packages pkg-config)
65 #:use-module (gnu packages python)
66 #:use-module (gnu packages python-science)
67 #:use-module (gnu packages python-xyz)
68 #:use-module (gnu packages ssh)
69 #:use-module (gnu packages tls)
70 #:use-module (gnu packages ruby)
71 #:use-module (gnu packages web)
72 #:use-module (gnu packages xml)
73 #:use-module (gnu packages xorg))
74
75 (define-public arc-icon-theme
76 (package
77 (name "arc-icon-theme")
78 (version "20161122")
79 (source
80 (origin
81 (method git-fetch)
82 (uri (git-reference
83 (url "https://github.com/horst3180/arc-icon-theme")
84 (commit version)))
85 (file-name (git-file-name name version))
86 (sha256
87 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
88 (build-system gnu-build-system)
89 (arguments
90 `(#:phases
91 (modify-phases %standard-phases
92 (add-after 'unpack 'disable-configure-during-bootstrap
93 (lambda _
94 (substitute* "autogen.sh"
95 (("^\"\\$srcdir/configure\".*") ""))
96 #t)))))
97 (native-inputs
98 (list autoconf automake))
99 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
100 (propagated-inputs
101 (list moka-icon-theme))
102 (synopsis "Arc icon theme")
103 (description "The Arc icon theme provides a set of icons matching the
104 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
105 the Moka icon theme.")
106 (home-page "https://github.com/horst3180/arc-icon-theme")
107 (license license:gpl3+)))
108
109 (define-public delft-icon-theme
110 (package
111 (name "delft-icon-theme")
112 (version "1.14")
113 (source
114 (origin
115 (method git-fetch)
116 (uri (git-reference
117 (url "https://github.com/madmaxms/iconpack-delft")
118 (commit (string-append "v" version))))
119 (sha256
120 (base32
121 "1iw85cxx9lv7irs28qi3815dk9f9vldv2j7jf1x5l1dqzwaxgwpb"))
122 (file-name (git-file-name name version))))
123 (build-system copy-build-system)
124 (arguments
125 `(#:install-plan
126 `(("." "share/icons" #:exclude ("README.md" "LICENSE" "logo.jpg")))
127 #:phases
128 (modify-phases %standard-phases
129 (add-after 'unpack 'patch-index.theme
130 (lambda _
131 (substitute* "Delft/index.theme"
132 (("gnome") "Adwaita"))
133 #t)))))
134 (home-page "https://www.gnome-look.org/p/1199881/")
135 (synopsis "Continuation of Faenza icon theme with up to date app icons")
136 (description "Delft is a fork of the popular icon theme Faenza with up to
137 date app icons. It will stay optically close to the original Faenza icons,
138 which haven't been updated for some years. The new app icons are ported from
139 the Obsidian icon theme.")
140 (license license:gpl3)))
141
142 (define-public faba-icon-theme
143 (package
144 (name "faba-icon-theme")
145 (version "4.3")
146 (source
147 (origin
148 (method git-fetch)
149 (uri (git-reference
150 (url "https://github.com/snwh/faba-icon-theme")
151 (commit (string-append "v" version))))
152 (file-name (git-file-name name version))
153 (sha256
154 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
155 (build-system meson-build-system)
156 (arguments
157 `(#:phases
158 (modify-phases %standard-phases
159 (add-before 'configure 'disable-post-install
160 (lambda _
161 (substitute* "meson.build"
162 (("meson.add_install_script.*") "")))))))
163 (native-inputs
164 (list autoconf automake))
165 (synopsis "Faba icon theme")
166 (description
167 "Faba is a minimal icon set used as a basis for other themes such as
168 Moka")
169 (home-page "https://snwh.org/moka")
170 (license (list license:lgpl3+
171 license:cc-by-sa4.0))))
172
173 (define-public moka-icon-theme
174 (package
175 (inherit faba-icon-theme)
176 (name "moka-icon-theme")
177 (version "5.4.0")
178 (source
179 (origin
180 (method git-fetch)
181 (uri (git-reference
182 (url "https://github.com/snwh/moka-icon-theme")
183 (commit (string-append "v" version))))
184 (file-name (git-file-name name version))
185 (sha256
186 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
187 (propagated-inputs
188 ;; Moka is based on Faba by using it as a fallback icon set instead of
189 ;; bundling it, so we need to add it as a propagated input.
190 (list faba-icon-theme))
191 (synopsis "Moka icon theme")
192 (description "Moka is a stylized desktop icon set, designed to be clear,
193 simple and consistent.")
194 (license (list license:gpl3+
195 license:cc-by-sa4.0))))
196
197 (define-public papirus-icon-theme
198 (package
199 (name "papirus-icon-theme")
200 (version "20220508")
201 (source
202 (origin
203 (method git-fetch)
204 (uri (git-reference
205 (url "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme")
206 (commit version)))
207 (sha256
208 (base32 "0rpcniaw8xbn23q67m26vgx3fynn4v056azrfp63lxdh46gfsvmc"))
209 (file-name (git-file-name name version))))
210 (build-system gnu-build-system)
211 (arguments
212 '(#:tests? #f ; no test suite
213 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
214 #:phases
215 (modify-phases %standard-phases
216 (delete 'bootstrap)
217 (delete 'configure)
218 (delete 'build))))
219 (native-inputs
220 (list `(,gtk+ "bin")))
221 (home-page "https://git.io/papirus-icon-theme")
222 (synopsis "Fork of Paper icon theme with a lot of new icons and a few extras")
223 (description "Papirus is a fork of the icon theme Paper with a lot of new icons
224 and a few extra features.")
225 (license license:gpl3)))
226
227 (define-public gnome-plots
228 (package
229 (name "gnome-plots")
230 (version "0.6.2")
231 (source (origin
232 (method git-fetch)
233 (uri (git-reference
234 (url "https://github.com/alexhuntley/Plots")
235 (commit (string-append "v" version))))
236 (file-name (git-file-name name version))
237 (sha256
238 (base32
239 "168wcsrkmvq79xmwvbq615msd4q0rg7f57xqicidnr78jx4x37rd"))))
240 (build-system python-build-system)
241 (inputs
242 (list bash-minimal ; for wrap-program
243 gtk+
244 pango
245 python-freetype-py
246 python-jinja2
247 python-lark-parser
248 python-numpy
249 python-pycairo
250 python-pyglm
251 python-pygobject
252 python-pyopengl))
253 (native-inputs
254 (list python-pytest))
255 (arguments
256 (list
257 #:imported-modules `((guix build glib-or-gtk-build-system)
258 ,@%python-build-system-modules)
259 #:modules '((guix build python-build-system)
260 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
261 (guix build utils)
262 (ice-9 match))
263 #:phases
264 #~(modify-phases %standard-phases
265 (add-before 'build 'adjust-lark-requirement
266 (lambda _
267 (substitute* "setup.py"
268 (("lark") "lark-parser"))))
269 (add-after 'install 'install-more
270 (lambda _
271 (let* ((datadir (string-append #$output "/share"))
272 (help (string-append datadir "/help"))
273 (icons (string-append datadir "/icons/hicolor")))
274 (map (lambda (filename)
275 (match (string-split filename #\/)
276 ((_ lang dir ... name)
277 (install-file filename
278 (string-join (cons* help lang "plots" dir)
279 "/")))))
280 (find-files "help"))
281 (install-file "res/com.github.alexhuntley.Plots.desktop"
282 (string-append datadir "/applications/"))
283 (install-file "res/com.github.alexhuntley.Plots.svg"
284 (string-append icons "/scalable/apps/"))
285 (install-file "res/com.github.alexhuntley.Plots-symbolic.svg"
286 (string-append icons "/symbolic/apps/")))))
287 (replace 'check
288 (lambda* (#:key tests? #:allow-other-keys)
289 (when tests?
290 (invoke "pytest" "-vv"))))
291 (add-after 'wrap 'gi-wrap
292 (lambda _
293 (let ((prog (string-append #$output "/bin/plots")))
294 (wrap-program prog
295 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
296 (add-after 'wrap 'glib-or-gtk-wrap
297 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
298 (home-page "https://apps.gnome.org/app/com.github.alexhuntley.Plots/")
299 (synopsis "Simple graph plotting")
300 (description "Plots makes it easy to visualise mathematical formulae. In
301 addition to basic arithmetic operations, it supports trigonometric,
302 hyperbolic, exponential, and logarithmic functions, as well as arbitrary sums
303 and products. Plots is designed to integrate well with the GNOME desktop and
304 takes advantage of modern hardware using OpenGL.")
305 (license license:gpl3+)))
306
307 (define-public gnome-shell-extension-unite-shell
308 (package
309 (name "gnome-shell-extension-unite-shell")
310 (version "65")
311 (source (origin
312 (method git-fetch)
313 (uri (git-reference
314 (url "https://github.com/hardpixel/unite-shell")
315 (commit "127edac6396b89cdedec003bdff38820e6a0f91f")))
316 (file-name (git-file-name name version))
317 (sha256
318 (base32
319 "1lzhf7hlvzg62nxjfpv265315qibcjz5dv08dzpfckf2dx68nab4"))))
320 (build-system copy-build-system)
321 (native-inputs (list `(,glib "bin") gettext-minimal))
322 (inputs (list xprop))
323 (arguments
324 (list #:install-plan ''(("./unite@hardpixel.eu"
325 "share/gnome-shell/extensions/unite@hardpixel.eu"))
326 #:phases #~(modify-phases %standard-phases
327 (add-after 'unpack 'patch-xprop-bin
328 (lambda _
329 (substitute* "unite@hardpixel.eu/window.js"
330 (("xprop")
331 (string-append #$(this-package-input "xprop")
332 "/bin/xprop")))))
333 (add-before 'install 'compile-schemas
334 (lambda _
335 (with-directory-excursion "unite@hardpixel.eu/schemas"
336 (invoke "glib-compile-schemas" ".")))))))
337 (home-page "https://github.com/hardpixel/unite-shell")
338 (synopsis "Top panel and window decoration extension for GNOME Shell")
339 (description
340 "Unite is a GNOME Shell extension which makes a few layout
341 tweaks to the top panel and removes window decorations to make it look like
342 Ubuntu Unity Shell.")
343 (license license:gpl3)))
344
345 (define-public gnome-shell-extension-appindicator
346 (package
347 (name "gnome-shell-extension-appindicator")
348 (version "42")
349 (source (origin
350 (method git-fetch)
351 (uri (git-reference
352 (url
353 "https://github.com/ubuntu/gnome-shell-extension-appindicator")
354 (commit (string-append "v" version))))
355 (sha256
356 (base32
357 "1lf3aqb924nzhj87rhy2zvm5pcfqcklhfw21m6ic3i7wzd9r7cnc"))
358 (file-name (git-file-name name version))))
359 (build-system meson-build-system)
360 (native-inputs (list jq gnu-gettext
361 `(,glib "bin")))
362 (synopsis "Adds KStatusNotifierItem support to GNOME Shell")
363 (description "This extension integrates Ubuntu AppIndicators
364 and KStatusNotifierItems (KDE's successor of the systray) into
365 GNOME Shell.")
366 (home-page "https://github.com/ubuntu/gnome-shell-extension-appindicator/")
367 (license license:gpl2+)))
368
369 (define-public gnome-shell-extension-clipboard-indicator
370 (package
371 (name "gnome-shell-extension-clipboard-indicator")
372 (version "42")
373 (source (origin
374 (method git-fetch)
375 (uri (git-reference
376 (url
377 (string-append
378 "https://github.com/Tudmotu/"
379 "gnome-shell-extension-clipboard-indicator"))
380 (commit (string-append "v" version))))
381 (file-name (git-file-name name version))
382 (sha256
383 (base32
384 "0wf2k33pbwjdf8i4y3aw32fgvjbh751qh7504lwhnl02rcq5dc88"))
385 (modules '((guix build utils)))
386 (snippet
387 ;; Remove pre-compiled settings schemas and translations from
388 ;; source, as they are generated as part of build. Upstream
389 ;; includes them for people who want to run the software
390 ;; directly from source tree.
391 '(begin
392 (delete-file "schemas/gschemas.compiled")
393 (for-each delete-file
394 (find-files "locale" "\\.mo$"))))))
395 (build-system copy-build-system)
396 (arguments
397 '(#:install-plan
398 '(("." "share/gnome-shell/extensions/clipboard-indicator@tudmotu.com"
399 #:include-regexp ("\\.css$" "\\.compiled$" "\\.js(on)?$" "\\.mo$" "\\.xml$")))
400 #:phases
401 (modify-phases %standard-phases
402 (add-before 'install 'compile-schemas
403 (lambda _
404 (with-directory-excursion "schemas"
405 (invoke "glib-compile-schemas" ".")))))))
406 (native-inputs
407 (list `(,glib "bin") gettext-minimal))
408 (home-page "https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator")
409 (synopsis "Clipboard manager extension for GNOME Shell")
410 (description "Clipboard Indicator is a clipboard manager for GNOME Shell
411 that caches clipboard history.")
412 (license license:expat)))
413
414 (define-public gnome-shell-extension-customize-ibus
415 (package
416 (name "gnome-shell-extension-customize-ibus")
417 (version "82")
418 (source
419 (origin
420 (method git-fetch)
421 (uri (git-reference
422 (url "https://github.com/openSUSE/Customize-IBus.git")
423 (commit (string-append "v" version))))
424 (file-name (git-file-name name version))
425 (sha256
426 (base32 "00brnyahphl4ql9yh74wpb9kmzyb4b5k4rkw40hvxvqw4qwgs24r"))))
427 (build-system gnu-build-system)
428 (arguments
429 `(#:make-flags
430 (list (string-append "VERSION=" ,version)
431 (string-append "INSTALLBASE=" (assoc-ref %outputs "out")
432 "/share/gnome-shell/extensions"))
433 #:tests? #f ; No test target
434 #:phases
435 (modify-phases %standard-phases
436 (delete 'bootstrap)
437 (delete 'configure))))
438 (native-inputs
439 `(("gettext" ,gettext-minimal)
440 ("glib:bin" ,glib "bin")))
441 (home-page "https://github.com/openSUSE/Customize-IBus")
442 (synopsis "GNOME Shell Extension for IBus Customization")
443 (description "Customize IBus provides full customization of appearance,
444 behavior, system tray and input source indicator for IBus.")
445 (license license:gpl3+)))
446
447 (define-public gnome-shell-extension-topicons-redux
448 (package
449 (name "gnome-shell-extension-topicons-redux")
450 (version "6")
451 (source
452 (origin
453 (method git-fetch)
454 (uri (git-reference
455 (url "https://gitlab.com/pop-planet/TopIcons-Redux.git")
456 (commit version)))
457 (file-name (git-file-name name version))
458 (sha256
459 (base32 "1dli9xb545n3xlj6q4wl0y5gzkm903zs47p8fiq71pdvbr6v38rj"))))
460 (build-system gnu-build-system)
461 (native-inputs
462 (list `(,glib "bin")))
463 (arguments
464 `(#:tests? #f ;no test defined in the project
465 #:phases
466 (modify-phases %standard-phases
467 (delete 'configure)
468 (delete 'build)
469 (replace 'install
470 (lambda* (#:key outputs #:allow-other-keys)
471 (let ((out (assoc-ref outputs "out")))
472 (invoke "make"
473 "install"
474 (string-append
475 "INSTALL_PATH="
476 out
477 "/share/gnome-shell/extensions"))))))))
478 (home-page "https://gitlab.com/pop-planet/TopIcons-Redux")
479 (synopsis "Display legacy tray icons in the GNOME Shell top panel")
480 (description "Many applications, such as chat clients, downloaders, and
481 some media players, are meant to run long-term in the background even after you
482 close their window. These applications remain accessible by adding an icon to
483 the GNOME Shell Legacy Tray. However, the Legacy Tray was removed in GNOME
484 3.26. TopIcons Redux brings those icons back into the top panel so that it's
485 easier to keep track of applications running in the background.")
486 (license license:gpl2+)))
487
488 (define-public gnome-shell-extension-dash-to-dock
489 (package
490 (name "gnome-shell-extension-dash-to-dock")
491 (version "73")
492 (source (origin
493 (method git-fetch)
494 (uri (git-reference
495 (url "https://github.com/micheleg/dash-to-dock")
496 (commit (string-append "extensions.gnome.org-v"
497 version))))
498 (sha256
499 (base32
500 "1l0isbrgfc8v46l1yc5l4myz7qnlxzyfyiifipp86z9d79d8klzw"))
501 (file-name (git-file-name name version))))
502 (build-system gnu-build-system)
503 (arguments
504 '(#:tests? #f
505 #:make-flags (list (string-append "INSTALLBASE="
506 (assoc-ref %outputs "out")
507 "/share/gnome-shell/extensions"))
508 #:phases
509 (modify-phases %standard-phases
510 (delete 'bootstrap)
511 (delete 'configure))))
512 (native-inputs
513 `(("glib:bin" ,glib "bin")
514 ("intltool" ,intltool)
515 ("pkg-config" ,pkg-config)
516 ("sassc" ,sassc)))
517 (propagated-inputs
518 (list glib))
519 (synopsis "Transforms GNOME's dash into a dock")
520 (description "This extension moves the dash out of the
521 overview, transforming it into a dock for easier application launching and
522 faster window switching.")
523 (home-page "https://micheleg.github.io/dash-to-dock/")
524 (license license:gpl2+)))
525
526 (define-public gnome-shell-extension-gsconnect
527 (package
528 (name "gnome-shell-extension-gsconnect")
529 (version "50") ; See GNOME Shell supported versions in metadata.json
530 (source (origin
531 (method git-fetch)
532 (uri (git-reference
533 (url (string-append "https://github.com/GSConnect"
534 "/gnome-shell-extension-gsconnect.git"))
535 (commit (string-append "v" version))))
536 (file-name (git-file-name name version))
537 (sha256
538 (base32
539 "0vg87fdihs5kp7apgyd32ldjmwzmrxaimsc005yjyy8m3f65sjmr"))))
540 (build-system meson-build-system)
541 (arguments
542 `(#:tests? #f ;; every test fails
543 #:configure-flags
544 (let* ((out (assoc-ref %outputs "out"))
545 (name+version (strip-store-file-name out))
546 (gschema-dir (string-append out
547 "/share/gsettings-schemas/"
548 name+version
549 "/glib-2.0/schemas"))
550 (gnome-shell (assoc-ref %build-inputs "gnome-shell"))
551 (openssh (assoc-ref %build-inputs "openssh"))
552 (openssl (assoc-ref %build-inputs "openssl")))
553 (list
554 (string-append "-Dgnome_shell_libdir=" gnome-shell "/lib")
555 (string-append "-Dgsettings_schemadir=" gschema-dir)
556 (string-append "-Dopenssl_path=" openssl "/bin/openssl")
557 (string-append "-Dsshadd_path=" openssh "/bin/ssh-add")
558 (string-append "-Dsshkeygen_path=" openssh "/bin/ssh-keygen")
559 (string-append "-Dsession_bus_services_dir=" out "/share/dbus-1/services")
560 "-Dpost_install=true"))
561 #:phases
562 (modify-phases %standard-phases
563 (add-before 'configure 'fix-paths
564 (lambda* (#:key inputs #:allow-other-keys)
565 (let* ((glib (assoc-ref inputs "glib:bin"))
566 (gapplication (string-append glib "/bin/gapplication"))
567 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
568 (substitute* "data/org.gnome.Shell.Extensions.GSConnect.desktop.in"
569 (("gapplication") gapplication))
570 (for-each
571 (lambda (file)
572 (substitute* file
573 (("'use strict';")
574 (string-append "'use strict';\n\n"
575 "'" gi-typelib-path "'.split(':').forEach("
576 "path => imports.gi.GIRepository.Repository."
577 "prepend_search_path(path));"))))
578 '("src/extension.js" "src/prefs.js"))
579 #t)))
580 (add-after 'install 'wrap-daemons
581 (lambda* (#:key inputs outputs #:allow-other-keys)
582 (let* ((out (assoc-ref outputs "out"))
583 (service-dir
584 (string-append out "/share/gnome-shell/extensions"
585 "/gsconnect@andyholmes.github.io/service"))
586 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
587 (wrap-program (string-append service-dir "/daemon.js")
588 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
589 #t))))))
590 (inputs
591 `(("at-spi2-core" ,at-spi2-core)
592 ("caribou" ,caribou)
593 ("evolution-data-server" ,evolution-data-server)
594 ("gjs" ,gjs)
595 ("glib" ,glib)
596 ("glib:bin" ,glib "bin")
597 ("gsound" ,gsound)
598 ("gnome-shell" ,gnome-shell)
599 ("gtk+" ,gtk+)
600 ("nautilus" ,nautilus)
601 ("openssh" ,openssh)
602 ("openssl" ,openssl)
603 ("python-pygobject" ,python-pygobject)
604 ("upower" ,upower)))
605 (native-inputs
606 `(("gettext" ,gettext-minimal)
607 ("gobject-introspection" ,gobject-introspection)
608 ("libxml2" ,libxml2)
609 ("pkg-config" ,pkg-config)))
610 (home-page "https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki")
611 (synopsis "Connect GNOME Shell with your Android phone")
612 (description "GSConnect is a complete implementation of KDE Connect
613 especially for GNOME Shell, allowing devices to securely share content, like
614 notifications or files, and other features like SMS messaging and remote
615 control.")
616 (license license:gpl2)))
617
618 (define-public gnome-shell-extension-hide-app-icon
619 (let ((commit "4188aa5f4ba24901a053a0c3eb0d83baa8625eab")
620 (revision "0"))
621 (package
622 (name "gnome-shell-extension-hide-app-icon")
623 (version (git-version "2.7" revision commit))
624 (source
625 (origin
626 (method git-fetch)
627 (uri (git-reference
628 (url (string-append "https://github.com/michael-rapp"
629 "/gnome-shell-extension-hide-app-icon.git"))
630 (commit commit)))
631 (sha256
632 (base32
633 "1i28n4bz6wrhn07vpxkr6l1ljyn7g8frp5xrr11z3z32h2hxxcd6"))
634 (file-name (git-file-name name version))))
635 (build-system gnu-build-system)
636 (arguments
637 '(#:tests? #f ; no test target
638 #:make-flags (list (string-append "EXTENSIONS_DIR="
639 (assoc-ref %outputs "out")
640 "/share/gnome-shell/extensions"))
641 #:phases
642 (modify-phases %standard-phases
643 (delete 'configure) ; no configure script
644 (replace 'install
645 (lambda* (#:key outputs #:allow-other-keys)
646 (let ((out (assoc-ref outputs "out"))
647 (pre "/share/gnome-shell/extensions/")
648 (dir "hide-app-icon@mrapp.sourceforge.com"))
649 (copy-recursively dir (string-append out pre dir))
650 #t))))))
651 (native-inputs
652 (list `(,glib "bin") intltool))
653 (propagated-inputs
654 (list glib))
655 (synopsis "Hide app icon from GNOME's panel")
656 (description "This extension hides the icon and/or title of the
657 currently focused application in the top panel of the GNOME shell.")
658 (home-page
659 "https://github.com/michael-rapp/gnome-shell-extension-hide-app-icon/")
660 (license
661 ;; README.md and LICENSE.txt disagree -- the former claims v3, the
662 ;; latter v2. No mention of "or later" in either place or in the code.
663 (list license:gpl2
664 license:gpl3)))))
665
666 (define-public gnome-shell-extension-just-perfection
667 (package
668 (name "gnome-shell-extension-just-perfection")
669 (version "22.0")
670 (source (origin
671 (method git-fetch)
672 (uri (git-reference
673 (url "https://gitlab.gnome.org/jrahmatzadeh/just-perfection/")
674 (commit version)))
675 (file-name (git-file-name name version))
676 (sha256
677 (base32
678 "0r4rflppcp05kwhzmh07dzi7znc4kch4nc8mzw61arj3qsfq2qqj"))))
679 (build-system copy-build-system)
680 (arguments
681 `(#:install-plan
682 '(("src"
683 "share/gnome-shell/extensions/just-perfection-desktop@just-perfection"
684 #:include-regexp ("\\.css$" "\\.compiled$" "\\.js(on)?$" "\\.ui$"))
685 ("locale"
686 "share/gnome-shell/extensions/just-perfection-desktop@just-perfection/"))
687 #:phases
688 (modify-phases %standard-phases
689 (add-after 'unpack 'drop-executable-bits
690 (lambda _
691 (for-each
692 (lambda (file)
693 (let ((stat (lstat file)))
694 (chmod file (logand (stat:mode stat) (lognot #o111)))))
695 (find-files "." #:directories? #f))))
696 (add-before 'install 'build
697 (lambda _
698 (invoke "glib-compile-schemas" "src/schemas")
699 (for-each
700 (lambda (file)
701 (let* ((base (basename file))
702 (noext (substring base 0 (- (string-length base) 3)))
703 (dest (string-append "locale/" noext "/LC_MESSAGES/"))
704 (out (string-append dest "just-perfection.mo")))
705 (mkdir-p dest)
706 (invoke "msgfmt" "-c" file "-o" out)))
707 (find-files "po" "\\.po$")))))))
708 (native-inputs
709 (list `(,glib "bin") gettext-minimal))
710 (home-page "https://gitlab.gnome.org/jrahmatzadeh/just-perfection")
711 (synopsis "Customize GNOME Shell behaviour")
712 (description "Just Perfection allows you to change various settings, that
713 GNOME Shell itself does not provide out of the box, such as the ability to hide
714 certain elements or change animation speeds.")
715 (license license:gpl3)))
716
717 (define-public gnome-shell-extension-dash-to-panel
718 (package
719 (name "gnome-shell-extension-dash-to-panel")
720 (version "51")
721 (source (origin
722 (method git-fetch)
723 (uri (git-reference
724 (url "https://github.com/home-sweet-gnome/dash-to-panel")
725 (commit (string-append "v" version))))
726 (sha256
727 (base32
728 "103pl77dhafi2ayds5yma2smv3b58zcysnd6vl5m5zavjvk35sz7"))
729 (file-name (git-file-name name version))))
730 (build-system gnu-build-system)
731 (arguments
732 `(#:tests? #f
733 #:make-flags (list (string-append "INSTALLBASE="
734 (assoc-ref %outputs "out")
735 "/share/gnome-shell/extensions")
736 (string-append "VERSION="
737 ,(package-version
738 gnome-shell-extension-dash-to-panel)))
739 #:phases
740 (modify-phases %standard-phases
741 (delete 'bootstrap)
742 (delete 'configure))))
743 (native-inputs
744 (list intltool pkg-config))
745 (propagated-inputs
746 (list glib
747 `(,glib "bin")))
748 (synopsis "Icon taskbar for GNOME Shell")
749 (description "This extension moves the dash into the gnome main
750 panel so that the application launchers and system tray are combined
751 into a single panel, similar to that found in KDE Plasma and Windows 7+.")
752 (home-page "https://github.com/home-sweet-gnome/dash-to-panel/")
753 (license license:gpl2+)))
754
755 (define-public gnome-shell-extension-noannoyance
756 (let ((revision "1")
757 (commit "b759d10fd2799bc084007fdd927b62637c3dbd2c"))
758 (package
759 (name "gnome-shell-extension-noannoyance")
760 ;; XXX: There is no version noted anywhere in the source. Thus, infer it
761 ;; from <https://extensions.gnome.org/extension/2182/noannoyance/>.
762 (version (git-version "16" revision commit))
763 (source (origin
764 (method git-fetch)
765 (uri (git-reference
766 (url "https://github.com/bdaase/noannoyance")
767 (commit commit)))
768 (sha256
769 (base32
770 "0hh7fdqvx54h9j41ia2jl0nq1d5i66k7blw41ya6hkh7201r4anp"))
771 (file-name (git-file-name name version))))
772 (build-system copy-build-system)
773 (arguments
774 '(#:install-plan
775 '(("." "share/gnome-shell/extensions/noannoyance@daase.net"))))
776 (synopsis "Remove 'Window is ready' annotation")
777 (description "One of the many extensions that remove this message.
778 It uses ES6 syntax and claims to be more actively maintained than others.")
779 (home-page "https://extensions.gnome.org/extension/2182/noannoyance/")
780 (license license:gpl2))))
781
782 (define-public gnome-shell-extension-paperwm
783 (package
784 (name "gnome-shell-extension-paperwm")
785 (version "36.0")
786 (source (origin
787 (method git-fetch)
788 (uri (git-reference
789 (url "https://github.com/paperwm/PaperWM")
790 (commit version)))
791 (file-name (git-file-name name version))
792 (sha256
793 (base32
794 "1ssnabwxrns36c61ppspjkr9i3qifv08pf2jpwl7cjv3pvyn4kly"))
795 (snippet
796 '(begin (delete-file "schemas/gschemas.compiled")))))
797 (build-system copy-build-system)
798 (arguments
799 '(#:install-plan
800 '(("." "share/gnome-shell/extensions/paperwm@hedning:matrix.org"
801 #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
802 "\\.xml$" "\\.compiled$")))
803 #:phases
804 (modify-phases %standard-phases
805 (add-before 'install 'compile-schemas
806 (lambda _
807 (with-directory-excursion "schemas"
808 (invoke "make"))
809 #t)))))
810 (native-inputs
811 `(("glib:bin" ,glib "bin"))) ; for glib-compile-schemas
812 (home-page "https://github.com/paperwm/PaperWM")
813 (synopsis "Tiled scrollable window management for GNOME Shell")
814 (description "PaperWM is an experimental GNOME Shell extension providing
815 scrollable tiling of windows and per monitor workspaces. It's inspired by paper
816 notebooks and tiling window managers.")
817 (license license:gpl3)))
818
819 (define-public gpaste
820 (package
821 (name "gpaste")
822 (version "42.1")
823 (source (origin
824 (method git-fetch)
825 (uri (git-reference
826 (url "https://github.com/Keruspe/GPaste")
827 (commit (string-append "v" version))))
828 (file-name (git-file-name name version))
829 (sha256
830 (base32
831 "1dlqa69zvzzdxyh21qfrx2nhpfy0fbihxpgkxqmramcgv3h5k4q3"))
832 (patches
833 (search-patches "gpaste-fix-paths.patch"))))
834 (build-system meson-build-system)
835 (native-inputs
836 (list gettext-minimal
837 gobject-introspection
838 (list glib "bin") ; for glib-compile-resources
839 pkg-config
840 vala))
841 (inputs
842 (list appstream-glib
843 gjs
844 gtk
845 mutter
846 libadwaita
847 libarchive))
848 (arguments
849 (list #:glib-or-gtk? #true
850 #:configure-flags
851 #~(list
852 (string-append "-Dcontrol-center-keybindings-dir="
853 #$output "/share/gnome-control-center/keybindings")
854 (string-append "-Ddbus-services-dir="
855 #$output "/share/dbus-1/services")
856 (string-append "-Dsystemd-user-unit-dir="
857 #$output "/etc/systemd/user"))
858 #:phases
859 #~(modify-phases %standard-phases
860 (add-after 'unpack 'fix-introspection-install-dir
861 (lambda _
862 (substitute* '("src/gnome-shell/extension.js"
863 "src/gnome-shell/prefs.js")
864 (("@typelibPath@")
865 (string-append #$output "/lib/girepository-1.0/"))))))))
866 (home-page "https://github.com/Keruspe/GPaste")
867 (synopsis "Clipboard management system for GNOME Shell")
868 (description "GPaste is a clipboard manager, a tool which allows you to
869 keep a trace of what you’re copying and pasting. Is is really useful when
870 you go through tons of documentation and you want to keep around a bunch of
871 functions you might want to use, for example. The clipboard manager will
872 store an history of everything you do, so that you can get back to older
873 copies you now want to paste.")
874 (license license:bsd-2)))
875
876 (define-public gnome-shell-extension-vertical-overview
877 (package
878 (name "gnome-shell-extension-vertical-overview")
879 (version "9")
880 (source
881 (origin
882 (method git-fetch)
883 (uri (git-reference
884 (url "https://github.com/RensAlthuis/vertical-overview")
885 (commit (string-append "v" version))))
886 (sha256
887 (base32
888 "0pkby00rjipj04z68d6i3rr7mzm01dckf2vl3iz6yvbl39602icl"))
889 (file-name (git-file-name name version))
890 (snippet
891 '(begin (delete-file "schemas/gschemas.compiled")))))
892 (build-system copy-build-system)
893 (arguments
894 `(#:install-plan
895 '(("." ,(string-append
896 "share/gnome-shell/extensions/"
897 "vertical-overview@RensAlthuis.github.com")
898 #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
899 "\\.xml$" "\\.compiled$")))
900 #:phases
901 (modify-phases %standard-phases
902 (add-before 'install 'compile-schemas
903 (lambda _
904 (with-directory-excursion "schemas"
905 (invoke "glib-compile-schemas" ".")))))))
906 (native-inputs
907 (list `(,glib "bin"))) ; for glib-compile-resources
908 (home-page "https://github.com/RensAlthuis/vertical-overview")
909 (synopsis "Provides a vertical overview in Gnome 40 and upper")
910 (description "This Gnome extension replaces the new horizontally oriented
911 Gnome overview with something that resembles the old vertically oriented
912 style.")
913 (license license:gpl3)))
914
915 (define-public gnome-shell-extension-jiggle
916 (package
917 (name "gnome-shell-extension-jiggle")
918 (version "8")
919 (source
920 (origin
921 (method git-fetch)
922 (uri (git-reference
923 (url "https://github.com/jeffchannell/jiggle/")
924 (commit version)))
925 (sha256
926 (base32
927 "1wbdx2bp22bdwj51ckgivwglkmckr7z8kfwvc8nv4y376hjz5jxz"))
928 (file-name (git-file-name name version))
929 (snippet
930 '(begin (delete-file "schemas/gschemas.compiled")))))
931 (build-system copy-build-system)
932 (arguments
933 `(#:install-plan
934 '(("." ,(string-append
935 "share/gnome-shell/extensions/"
936 "jiggle@jeffchannell.com")
937 #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
938 "\\.xml$" "\\.compiled$")))
939 #:phases
940 (modify-phases %standard-phases
941 (add-after 'unpack 'fix-version
942 (lambda _
943 (substitute* "metadata.json"
944 (("\"40.0\"") "\"40\", \"41\""))))
945 (add-before 'install 'compile-schemas
946 (lambda _
947 (with-directory-excursion "schemas"
948 (invoke "glib-compile-schemas" ".")))))))
949 (native-inputs
950 (list `(,glib "bin"))) ; for glib-compile-resources
951 (home-page "https://github.com/jeffchannell/jiggle")
952 (synopsis "Mouse cursor enlargement for small and fast movements")
953 (description "Jiggle is a Gnome Shell extension that highlights the cursor
954 position when the mouse is moved rapidly.")
955 (license license:gpl2)))
956
957 (define-public gnome-shell-extension-burn-my-windows
958 (package
959 (name "gnome-shell-extension-burn-my-windows")
960 (version "21")
961 (source
962 (origin
963 (method git-fetch)
964 (uri (git-reference
965 (url "https://github.com/Schneegans/Burn-My-Windows/")
966 (commit (string-append "v" version))))
967 (sha256
968 (base32
969 "07ckfl47pq83nhb77v230zfxlz3imga3s8nn3sr9cq4zxvbkj2r4"))
970 (file-name (git-file-name name version))))
971 (build-system copy-build-system)
972 (arguments
973 `(#:install-plan
974 '(("." ,(string-append
975 "share/gnome-shell/extensions/"
976 "burn-my-windows@schneegans.github.com")
977 #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
978 "\\.xml$" "\\.compiled$" "\\.gresource$")))
979 #:phases
980 (modify-phases %standard-phases
981 (add-before 'install 'compile-resources
982 (lambda _
983 (invoke "make" "resources/burn-my-windows.gresource")))
984 (add-before 'install 'compile-schemas
985 (lambda _
986 (with-directory-excursion "schemas"
987 (invoke "glib-compile-schemas" ".")))))))
988 (native-inputs
989 (list `(,glib "bin"))) ; for glib-compile-resources
990 (home-page "https://github.com/Schneegans/Burn-My-Windows")
991 (synopsis "Application closing effects extension")
992 (description "Burn My Windows is a shell extension that stylizes the
993 animation of closing windowed applications.")
994 (license license:gpl3)))
995
996 (define-public gnome-shell-extension-blur-my-shell
997 (package
998 (name "gnome-shell-extension-blur-my-shell")
999 (version "29")
1000 (source
1001 (origin
1002 (method git-fetch)
1003 (uri (git-reference
1004 (url "https://github.com/aunetx/blur-my-shell")
1005 (commit (string-append "v" version))))
1006 (file-name (git-file-name name version))
1007 (sha256
1008 (base32
1009 "13x7zgaj3dz7lypdv1bgmpmh0f2w53q567zxmhmqimi1gy5mjrvk"))
1010 (snippet
1011 '(begin (delete-file "src/schemas/gschemas.compiled")))))
1012 (build-system copy-build-system)
1013 (arguments
1014 `(#:install-plan
1015 '(("." ,(string-append
1016 "share/gnome-shell/extensions/"
1017 "blur-my-shell@aunetx")
1018 #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
1019 "\\.xml$" "\\.compiled$")))
1020 #:phases
1021 (modify-phases %standard-phases
1022 (add-after 'unpack 'cd-src
1023 (lambda _ (chdir "src")))
1024 (add-before 'install 'compile-schemas
1025 (lambda _
1026 (with-directory-excursion "schemas"
1027 (invoke "glib-compile-schemas" ".")))))))
1028 (native-inputs
1029 (list (list glib "bin"))) ; for glib-compile-schemas
1030 (home-page "https://github.com/aunetx/blur-my-shell")
1031 (synopsis "Blurs different parts of the GNOME Shell")
1032 (description "Blur My Shell adds a blur look to different parts of the
1033 GNOME Shell, including the top panel, dash and overview.")
1034 (license license:gpl3)))
1035
1036 (define-public gnome-shell-extension-radio
1037 (package
1038 (name "gnome-shell-extension-radio")
1039 (version "19")
1040 (source (origin
1041 (method git-fetch)
1042 (uri (git-reference
1043 (url
1044 "https://github.com/hslbck/gnome-shell-extension-radio")
1045 (commit (string-append "v" version))))
1046 (file-name (git-file-name name version))
1047 (sha256
1048 (base32
1049 "1qsi6c57hxh4jqdw18knm06601lhag6jdbvzg0r79aa9572zy8a0"))))
1050 (build-system copy-build-system)
1051 (arguments
1052 (list
1053 #:install-plan #~'(("radio@hslbck.gmail.com"
1054 "/share/gnome-shell/extensions/"))
1055 #:phases
1056 #~(modify-phases %standard-phases
1057 (add-before 'install 'glib-compile-schemas
1058 (lambda _
1059 (invoke "glib-compile-schemas"
1060 "radio@hslbck.gmail.com/schemas"))))))
1061 (native-inputs (list `(,glib "bin")))
1062 (home-page "https://github.com/hslbck/gnome-shell-extension-radio")
1063 (synopsis "Internet radio for GNOME Shell")
1064 (description "This extension implements an internet radio player
1065 directly inside GNOME Shell. It can manage stations and play streams.")
1066 (license license:gpl3+)))
1067
1068 (define-public gnome-shell-extension-sound-output-device-chooser
1069 (package
1070 (name "gnome-shell-extension-sound-output-device-chooser")
1071 (version "43")
1072 (source
1073 (origin
1074 (method git-fetch)
1075 (uri (git-reference
1076 (url "https://github.com/kgshank/gse-sound-output-device-chooser")
1077 (commit version)))
1078 (file-name (git-file-name name version))
1079 (sha256
1080 (base32
1081 "1qk6ypyqbv8zwwlky6cgk9hgp1zh32jmzw4wza200g4v94ifkwm9"))))
1082 (build-system gnu-build-system)
1083 (arguments
1084 (list
1085 #:tests? #f ; no check target
1086 #:make-flags #~(list (string-append "INSTALL_DIR="
1087 #$output
1088 "/share/gnome-shell/extensions"))
1089 #:phases
1090 #~(modify-phases %standard-phases (delete 'configure))))
1091 (native-inputs (list gettext-minimal `(,glib "bin")))
1092 (inputs (list python))
1093 (home-page
1094 "https://extensions.gnome.org/extension/906/sound-output-device-chooser")
1095 (synopsis "Sound output chooser for GNOME Shell")
1096 (description "This extension shows a list of sound output and input devices
1097 in the status menu below the volume slider. Various active ports like HDMI,
1098 Speakers etc. of the same device are also displayed for selection.")
1099 (license license:gpl3+)))
1100
1101 (define-public gnome-shell-extension-transparent-window
1102 (let ((commit "cc9bc70c192dd565fa6f1d1b28d9a20f99684f2a")
1103 (revision "45"))
1104 (package
1105 (name "gnome-shell-extension-transparent-window")
1106 (version (git-version "0" revision commit))
1107 (source
1108 (origin
1109 (method git-fetch)
1110 (uri (git-reference
1111 (url (string-append "https://github.com/pbxqdown/"
1112 "gnome-shell-extension-transparent-window"))
1113 (commit commit)))
1114 (file-name (git-file-name name version))
1115 (sha256
1116 (base32
1117 "1f9iqqjpmmylqz0ws8cy5rs475bwzi7jy44q9ip44ig2acz2wxzp"))))
1118 (build-system copy-build-system)
1119 (arguments
1120 (list
1121 #:install-plan
1122 #~'(("."
1123 #$(string-append "/share/gnome-shell/extensions"
1124 "/transparent-window@pbxqdown.github.com")))))
1125 (home-page
1126 "https://github.com/pbxqdown/gnome-shell-extension-transparent-window")
1127 (synopsis "Change the opacity of windows in GNOME Shell")
1128 (description "This extension adds keybindings to change the opacity
1129 of windows.")
1130 (license license:expat))))
1131
1132 (define-public arc-theme
1133 (package
1134 (name "arc-theme")
1135 (version "20220405")
1136 (source (origin
1137 (method git-fetch)
1138 (uri (git-reference
1139 (url "https://github.com/jnsh/arc-theme")
1140 (commit version)))
1141 (file-name (git-file-name name version))
1142 (sha256
1143 (base32
1144 "1gjwf75sg4xyfypb08qiy2cmqyr2mamjc4i46ifrq7snj15gy608"))))
1145 (build-system meson-build-system)
1146 (arguments
1147 '(#:configure-flags
1148 '("-Dthemes=gnome-shell,gtk2,gtk3,metacity,plank,unity,xfwm")
1149 #:phases
1150 (modify-phases %standard-phases
1151 (add-before 'build 'set-home ;placate Inkscape
1152 (lambda _
1153 (setenv "HOME" (getcwd)))))))
1154 (native-inputs
1155 (list `(,glib "bin") ; for glib-compile-resources
1156 gnome-shell
1157 gtk+
1158 inkscape/stable
1159 optipng
1160 pkg-config
1161 python
1162 sassc/libsass-3.5))
1163 (synopsis "Flat GTK+ theme with transparent elements")
1164 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
1165 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
1166 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
1167 (home-page "https://github.com/horst3180/arc-theme")
1168 ;; No "or later" language found.
1169 (license license:gpl3+)))
1170
1171 (define-public greybird-gtk-theme
1172 (package
1173 (name "greybird-gtk-theme")
1174 (version "3.22.13")
1175 (source (origin
1176 (method git-fetch)
1177 (uri
1178 (git-reference
1179 (url "https://github.com/shimmerproject/Greybird")
1180 (commit (string-append "v" version))))
1181 (file-name (git-file-name name version))
1182 (sha256
1183 (base32
1184 "154qawiga792iimkpk3a6q8f4gm4r158wmsagkbqqbhj33kxgxhg"))))
1185 (build-system meson-build-system)
1186 (native-inputs
1187 (list gtk+
1188 `(,glib "bin") ; for "glib-compile-resources"
1189 (librsvg-for-system)
1190 pkg-config
1191 ruby-sass
1192 sassc))
1193 (home-page "https://shimmerproject.org/")
1194 (synopsis "Grey GTK+ theme based on Bluebird")
1195 (description "Greybird is a grey derivative of the Bluebird theme by the
1196 Shimmer Project. It supports GNOME, Unity, and Xfce.")
1197 (license (list license:gpl2+ license:cc-by-sa3.0))))
1198
1199 (define-public matcha-theme
1200 (package
1201 (name "matcha-theme")
1202 (version "2021-01-01")
1203 (source
1204 (origin
1205 (method git-fetch)
1206 (uri
1207 (git-reference
1208 (url "https://github.com/vinceliuice/Matcha-gtk-theme")
1209 (commit version)))
1210 (file-name (git-file-name name version))
1211 (sha256
1212 (base32
1213 "1pa6ra87wlq0gwz4n03l6xv0pxiamr5dygycvppms8v6xyc2aa0r"))))
1214 (build-system trivial-build-system)
1215 (arguments
1216 '(#:modules ((guix build utils))
1217 #:builder
1218 (begin
1219 (use-modules (guix build utils))
1220 (let* ((out (assoc-ref %outputs "out"))
1221 (source (assoc-ref %build-inputs "source"))
1222 (bash (assoc-ref %build-inputs "bash"))
1223 (coreutils (assoc-ref %build-inputs "coreutils"))
1224 (themesdir (string-append out "/share/themes")))
1225 (setenv "PATH"
1226 (string-append coreutils "/bin:"
1227 (string-append bash "/bin:")))
1228 (copy-recursively source (getcwd))
1229 (patch-shebang "install.sh")
1230 (mkdir-p themesdir)
1231 (invoke "./install.sh" "-d" themesdir)
1232 #t))))
1233 (inputs
1234 (list gtk-engines))
1235 (native-inputs
1236 (list bash coreutils))
1237 (synopsis "Flat design theme for GTK 3, GTK 2 and GNOME-Shell")
1238 (description "Matcha is a flat Design theme for GTK 3, GTK 2 and
1239 Gnome-Shell which supports GTK 3 and GTK 2 based desktop environments
1240 like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
1241 (home-page "https://github.com/vinceliuice/matcha")
1242 (license license:gpl3+)))
1243
1244 (define-public materia-theme
1245 (package
1246 (name "materia-theme")
1247 (version "20200916")
1248 (source
1249 (origin
1250 (method git-fetch)
1251 (uri
1252 (git-reference
1253 (url "https://github.com/nana-4/materia-theme")
1254 (commit (string-append "v" version))))
1255 (file-name (git-file-name name version))
1256 (sha256
1257 (base32
1258 "0qaxxafsn5zd2ysgr0jyv5j73360mfdmxyd55askswlsfphssn74"))))
1259 (build-system meson-build-system)
1260 (native-inputs
1261 (list gtk+ sassc))
1262 (home-page "https://github.com/nana-4/materia-theme")
1263 (synopsis "Material Design theme for a wide range of environments")
1264 (description "Materia is a Material Design theme for GNOME/GTK based
1265 desktop environments. It supports GTK 2, GTK 3, GNOME Shell, Budgie,
1266 Cinnamon, MATE, Unity, Xfce, LightDM, GDM, Chrome theme, etc.")
1267 (license license:gpl2+)))
1268
1269 (define-public numix-gtk-theme
1270 (package
1271 (name "numix-gtk-theme")
1272 (version "2.6.7")
1273 (source (origin
1274 (method git-fetch)
1275 (uri (git-reference
1276 (url "https://github.com/numixproject/numix-gtk-theme")
1277 (commit version)))
1278 (file-name (git-file-name name version))
1279 (sha256
1280 (base32
1281 "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7"))))
1282 (build-system gnu-build-system)
1283 (arguments
1284 '(#:make-flags
1285 (list (string-append "INSTALL_DIR="
1286 (assoc-ref %outputs "out")
1287 "/share/themes/Numix"))
1288 #:tests? #f
1289 #:phases
1290 (modify-phases %standard-phases
1291 (delete 'configure)))) ; no configure script
1292 (native-inputs
1293 (list `(,glib "bin") ; for glib-compile-schemas
1294 gnome-shell
1295 gtk+
1296 libxml2
1297 ruby-sass))
1298 (synopsis "Flat theme with light and dark elements")
1299 (description "Numix is a modern flat theme with a combination of light and
1300 dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
1301 (home-page "https://numixproject.github.io")
1302 (license license:gpl3+)))
1303
1304 (define-public orchis-theme
1305 (package
1306 (name "orchis-theme")
1307 (version "2021-02-28")
1308 (source
1309 (origin
1310 (method git-fetch)
1311 (uri
1312 (git-reference
1313 (url "https://github.com/vinceliuice/Orchis-theme")
1314 (commit version)))
1315 (file-name (git-file-name name version))
1316 (sha256
1317 (base32
1318 "1qp3phiza93qllrjm5xjjca5b7l2sbng8c382khy9m97grxvcq0y"))
1319 (modules '((guix build utils)
1320 (ice-9 regex)
1321 (srfi srfi-26)))
1322 (snippet
1323 '(begin
1324 (for-each
1325 (lambda (f)
1326 (let* ((r (make-regexp "\\.scss"))
1327 (f* (regexp-substitute #f (regexp-exec r f) 'pre ".css")))
1328 (if (file-exists? f*)
1329 (delete-file f*))))
1330 (find-files "." ".*\\.scss"))
1331 #t))))
1332 (build-system gnu-build-system)
1333 (arguments
1334 `(#:configure-flags (list
1335 "--dest" (string-append
1336 (assoc-ref %outputs "out")
1337 "/share/themes")
1338 "--theme" "all"
1339 "--radio-color")
1340 #:tests? #f ; no tests
1341 #:phases
1342 (modify-phases %standard-phases
1343 (delete 'bootstrap)
1344 (delete 'configure)
1345 (replace 'build (lambda _ (invoke "./parse-sass.sh")))
1346 (replace 'install
1347 (lambda* (#:key configure-flags #:allow-other-keys)
1348 (mkdir-p
1349 (cadr (or (member "--dest" configure-flags)
1350 (member "-d" configure-flags))))
1351 (apply invoke "./install.sh" configure-flags)
1352 #t)))))
1353 (inputs
1354 (list gtk-engines))
1355 (native-inputs
1356 (list ;("coreutils" ,coreutils)
1357 gtk+ sassc))
1358 (home-page "https://github.com/vinceliuice/Orchis-theme")
1359 (synopsis "Material Design theme for a wide range of environments")
1360 (description "Orchis is a Material Design them for GNOME/GTK based
1361 desktop environments. It is based on materia-theme and adds more color
1362 variants.")
1363 (license (list license:gpl3 ; According to COPYING.
1364 license:lgpl2.1 ; Some style sheets.
1365 license:cc-by-sa4.0)))) ; Some icons
1366
1367 (define-public eiciel
1368 (package
1369 (name "eiciel")
1370 (version "0.9.13.1")
1371 (source (origin
1372 (method git-fetch)
1373 (uri (git-reference
1374 (url "https://github.com/rofirrim/eiciel")
1375 (commit version)))
1376 (file-name (git-file-name name version))
1377 (sha256
1378 (base32
1379 "0rhhw0h1hyg5kvxhjxkdz03vylgax6912mg8j4lvcz6wlsa4wkvj"))))
1380 (build-system meson-build-system)
1381 (arguments
1382 `(#:glib-or-gtk? #t
1383 #:tests? #f ; no tests
1384 #:configure-flags
1385 (list (string-append "-Dnautilus-extension-dir="
1386 (assoc-ref %outputs "out")
1387 "/lib/nautilus/site-extensions"))))
1388 (native-inputs
1389 (list gettext-minimal pkg-config))
1390 (inputs
1391 (list acl attr glibmm-2.64 gtkmm-3 nautilus))
1392 (home-page "https://rofi.roger-ferrer.org/eiciel")
1393 (synopsis "Manage extended file attributes")
1394 (description "Eiciel is a plugin for nautilus to graphically edit ACL and
1395 extended file attributes. It also functions as a standalone command.")
1396 (license license:gpl2+)))
1397
1398 (define-public markets
1399 (package
1400 (name "markets")
1401 (version "0.5.4")
1402 (source
1403 (origin
1404 (method git-fetch)
1405 (uri (git-reference
1406 (url "https://github.com/bitstower/markets")
1407 (commit version)))
1408 (file-name (git-file-name name version))
1409 (sha256
1410 (base32
1411 "0ch6dfmdcpw32r23s58riv8agnyw0f1cqd1y6j7zkx5sb3zyn3zy"))))
1412 (build-system meson-build-system)
1413 (arguments
1414 `(#:glib-or-gtk? #t
1415 #:phases
1416 (modify-phases %standard-phases
1417 (add-after 'unpack 'skip-gtk-update-icon-cache
1418 ;; Don't create 'icon-theme.cache'.
1419 (lambda _
1420 (substitute* "build-aux/meson/postinstall.py"
1421 (("gtk-update-icon-cache") "true"))))
1422 (add-after 'unpack 'skip-update-desktop-database
1423 ;; Don't update desktop file database.
1424 (lambda _
1425 (substitute* "build-aux/meson/postinstall.py"
1426 (("update-desktop-database") "true")))))))
1427 (inputs
1428 (list gtk+
1429 gettext-minimal
1430 gsettings-desktop-schemas
1431 libgee
1432 libhandy
1433 libsoup-minimal-2
1434 json-glib
1435 vala))
1436 (native-inputs
1437 (list pkg-config
1438 python-wrapper
1439 `(,glib "bin"))) ; for 'glib-compile-resources'
1440 (home-page "https://github.com/bitstower/markets")
1441 (synopsis "Stock, currency and cryptocurrency tracker")
1442 (description
1443 "Markets is a GTK application that displays financial data, helping users
1444 track stocks, currencies and cryptocurrencies.")
1445 (license license:gpl3+)))
1446
1447 (define-public vala-language-server
1448 (package
1449 (name "vala-language-server")
1450 ;; Note to maintainer: VLS must be built with a Vala toolchain the same
1451 ;; version or newer. Therefore when you update this package you may need
1452 ;; to update Vala too.
1453 (version "0.48.3")
1454 (source (origin
1455 (method git-fetch)
1456 (uri (git-reference
1457 (url "https://github.com/benwaffle/vala-language-server")
1458 (commit version)))
1459 (file-name (git-file-name name version))
1460 (sha256
1461 (base32 "1gnvc91gdp3wj9r3r3xxfr09f9lw39cfypn2q5f0443dhhmp059j"))))
1462 (build-system meson-build-system)
1463 (arguments '(#:glib-or-gtk? #t))
1464 (inputs
1465 (list glib json-glib jsonrpc-glib libgee vala))
1466 (native-inputs
1467 (list pkg-config))
1468 (home-page "https://github.com/benwaffle/vala-language-server")
1469 (synopsis "Language server for Vala")
1470 (description "The Vala language server is an implementation of the Vala
1471 language specification for the Language Server Protocol (LSP). This tool is
1472 used in text editing environments to provide a complete and integrated
1473 feature-set for programming Vala effectively.")
1474 (license license:lgpl2.1+)))
1475
1476 (define-public nordic-theme
1477 (let ((commit "07d764c5ebd5706e73d2e573f1a983e37b318915")
1478 (revision "0"))
1479 (package
1480 (name "nordic-theme")
1481 (version (git-version "1.9.0" revision commit))
1482 (source
1483 (origin
1484 (method git-fetch)
1485 (uri (git-reference
1486 (url "https://github.com/EliverLara/Nordic")
1487 (commit commit)))
1488 (sha256
1489 (base32
1490 "0y2s9d6h1b195s6afp1gb5rb1plfslkpbw2brd30a9d66wfvsqk0"))
1491 (file-name (git-file-name name version))))
1492 (build-system copy-build-system)
1493 (arguments
1494 `(#:install-plan
1495 `(("." "share/themes/nord"
1496 #:exclude ("README.md" "LICENSE" "Art/" "package.json"
1497 "package-lock.json" "Gulpfile.js")))))
1498 (home-page "https://github.com/EliverLara/Nordic")
1499 (synopsis "Dark Gtk3.20+ theme using the Nord color palette")
1500 (description "Nordic is a Gtk3.20+ theme created using the Nord color
1501 palette.")
1502 (license license:gpl3))))
1503
1504 (define-public tiramisu
1505 (package
1506 (name "tiramisu")
1507 (version "2.0.20211107")
1508 (source (origin
1509 (method git-fetch)
1510 (uri (git-reference
1511 (url "https://github.com/Sweets/tiramisu")
1512 (commit version)))
1513 (sha256
1514 (base32
1515 "1n1x1ybbwbanibw7b90k7v4cadagl41li17hz2l8s2sapacvq3mw"))
1516 (file-name (git-file-name name version))))
1517 (build-system gnu-build-system)
1518 (arguments
1519 `(#:phases
1520 (modify-phases %standard-phases
1521 (delete 'configure)
1522 (delete 'check)
1523 (replace 'install
1524 (lambda* (#:key outputs #:allow-other-keys)
1525 (let ((out (assoc-ref outputs "out")))
1526 (install-file "tiramisu" (string-append out "/bin"))
1527 #t))))
1528 #:make-flags
1529 (list (string-append "CC=" ,(cc-for-target)))))
1530 (inputs
1531 (list glib))
1532 (native-inputs
1533 (list pkg-config vala))
1534 (home-page "https://github.com/Sweets/tiramisu")
1535 (synopsis "Desktop notifications, the UNIX way")
1536 (description "tiramisu is a notification daemon based on dunst that outputs
1537 notifications to STDOUT in order to allow the user to process notifications any
1538 way they prefer.")
1539 (license license:expat)))