gnu: emacs-svg-icon: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / gnome-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
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 ;;;
14 ;;; This file is part of GNU Guix.
15 ;;;
16 ;;; GNU Guix is free software; you can redistribute it and/or modify it
17 ;;; under the terms of the GNU General Public License as published by
18 ;;; the Free Software Foundation; either version 3 of the License, or (at
19 ;;; your option) any later version.
20 ;;;
21 ;;; GNU Guix is distributed in the hope that it will be useful, but
22 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
23 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 ;;; GNU General Public License for more details.
25 ;;;
26 ;;; You should have received a copy of the GNU General Public License
27 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28
29 (define-module (gnu packages gnome-xyz)
30 #:use-module (guix build-system trivial)
31 #:use-module (guix build-system gnu)
32 #:use-module (guix build-system copy)
33 #:use-module (guix build-system meson)
34 #:use-module (guix git-download)
35 #:use-module (guix packages)
36 #:use-module (guix utils)
37 #:use-module ((guix licenses) #:prefix license:)
38 #:use-module (gnu packages autotools)
39 #:use-module (gnu packages base)
40 #:use-module (gnu packages bash)
41 #:use-module (gnu packages gettext)
42 #:use-module (gnu packages glib)
43 #:use-module (gnu packages gnome)
44 #:use-module (gnu packages gtk)
45 #:use-module (gnu packages inkscape)
46 #:use-module (gnu packages image)
47 #:use-module (gnu packages pkg-config)
48 #:use-module (gnu packages python-xyz)
49 #:use-module (gnu packages ssh)
50 #:use-module (gnu packages tls)
51 #:use-module (gnu packages ruby)
52 #:use-module (gnu packages web)
53 #:use-module (gnu packages xml))
54
55 (define-public arc-icon-theme
56 (package
57 (name "arc-icon-theme")
58 (version "20161122")
59 (source
60 (origin
61 (method git-fetch)
62 (uri (git-reference
63 (url "https://github.com/horst3180/arc-icon-theme")
64 (commit version)))
65 (file-name (git-file-name name version))
66 (sha256
67 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
68 (build-system gnu-build-system)
69 (arguments
70 `(#:phases
71 (modify-phases %standard-phases
72 (add-after 'unpack 'disable-configure-during-bootstrap
73 (lambda _
74 (substitute* "autogen.sh"
75 (("^\"\\$srcdir/configure\".*") ""))
76 #t)))))
77 (native-inputs
78 `(("autoconf" ,autoconf)
79 ("automake" ,automake)))
80 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
81 (propagated-inputs
82 `(("moka-icon-theme" ,moka-icon-theme)))
83 (synopsis "Arc icon theme")
84 (description "The Arc icon theme provides a set of icons matching the
85 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
86 the Moka icon theme.")
87 (home-page "https://github.com/horst3180/arc-icon-theme")
88 (license license:gpl3+)))
89
90 (define-public delft-icon-theme
91 (package
92 (name "delft-icon-theme")
93 (version "1.14")
94 (source
95 (origin
96 (method git-fetch)
97 (uri (git-reference
98 (url "https://github.com/madmaxms/iconpack-delft")
99 (commit (string-append "v" version))))
100 (sha256
101 (base32
102 "1iw85cxx9lv7irs28qi3815dk9f9vldv2j7jf1x5l1dqzwaxgwpb"))
103 (file-name (git-file-name name version))))
104 (build-system copy-build-system)
105 (arguments
106 `(#:install-plan
107 `(("." "share/icons" #:exclude ("README.md" "LICENSE" "logo.jpg")))
108 #:phases
109 (modify-phases %standard-phases
110 (add-after 'unpack 'patch-index.theme
111 (lambda _
112 (substitute* "Delft/index.theme"
113 (("gnome") "Adwaita"))
114 #t)))))
115 (home-page "https://www.gnome-look.org/p/1199881/")
116 (synopsis "Continuation of Faenza icon theme with up to date app icons")
117 (description "Delft is a fork of the popular icon theme Faenza with up to
118 date app icons. It will stay optically close to the original Faenza icons,
119 which haven't been updated for some years. The new app icons are ported from
120 the Obsidian icon theme.")
121 (license license:gpl3)))
122
123 (define-public faba-icon-theme
124 (package
125 (name "faba-icon-theme")
126 (version "4.3")
127 (source
128 (origin
129 (method git-fetch)
130 (uri (git-reference
131 (url "https://github.com/snwh/faba-icon-theme")
132 (commit (string-append "v" version))))
133 (file-name (git-file-name name version))
134 (sha256
135 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
136 (build-system meson-build-system)
137 (arguments
138 `(#:phases
139 (modify-phases %standard-phases
140 (add-before 'configure 'disable-post-install
141 (lambda _
142 (substitute* "meson.build"
143 (("meson.add_install_script.*") "")))))))
144 (native-inputs
145 `(("autoconf" ,autoconf)
146 ("automake" ,automake)))
147 (synopsis "Faba icon theme")
148 (description
149 "Faba is a minimal icon set used as a basis for other themes such as
150 Moka")
151 (home-page "https://snwh.org/moka")
152 (license (list license:lgpl3+
153 license:cc-by-sa4.0))))
154
155 (define-public moka-icon-theme
156 (package
157 (inherit faba-icon-theme)
158 (name "moka-icon-theme")
159 (version "5.4.0")
160 (source
161 (origin
162 (method git-fetch)
163 (uri (git-reference
164 (url "https://github.com/snwh/moka-icon-theme")
165 (commit (string-append "v" version))))
166 (file-name (git-file-name name version))
167 (sha256
168 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
169 (propagated-inputs
170 ;; Moka is based on Faba by using it as a fallback icon set instead of
171 ;; bundling it, so we need to add it as a propagated input.
172 `(("faba-icon-theme" ,faba-icon-theme)))
173 (synopsis "Moka icon theme")
174 (description "Moka is a stylized desktop icon set, designed to be clear,
175 simple and consistent.")
176 (license (list license:gpl3+
177 license:cc-by-sa4.0))))
178
179 (define-public papirus-icon-theme
180 (package
181 (name "papirus-icon-theme")
182 (version "20210101")
183 (source
184 (origin
185 (method git-fetch)
186 (uri (git-reference
187 (url "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme")
188 (commit version)))
189 (sha256
190 (base32
191 "0w6qg3zjhfvjg1gg5inranf8ianb4mrp0jm9qgi6hg87ig1rashs"))
192 (file-name (git-file-name name version))))
193 (build-system gnu-build-system)
194 (arguments
195 '(#:tests? #f
196 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
197 #:phases
198 (modify-phases %standard-phases
199 (delete 'bootstrap)
200 (delete 'configure)
201 (delete 'build))))
202 (native-inputs
203 `(("gtk+:bin" ,gtk+ "bin")))
204 (home-page "https://git.io/papirus-icon-theme")
205 (synopsis "Fork of Paper icon theme with a lot of new icons and a few extras")
206 (description "Papirus is a fork of the icon theme Paper with a lot of new icons
207 and a few extra features.")
208 (license license:gpl3)))
209
210 (define-public gnome-shell-extension-appindicator
211 (package
212 (name "gnome-shell-extension-appindicator")
213 (version "33")
214 (source (origin
215 (method git-fetch)
216 (uri (git-reference
217 (url
218 "https://github.com/ubuntu/gnome-shell-extension-appindicator")
219 (commit (string-append "v" version))))
220 (sha256
221 (base32
222 "0qm77s080nbf4gqnfzpwp8a7jf7lliz6fxbsd3lasvrr11pgsk87"))
223 (file-name (git-file-name name version))))
224 (build-system copy-build-system)
225 (arguments
226 `(#:install-plan
227 '(("." ,(string-append "share/gnome-shell/extensions/"
228 "appindicatorsupport@rgcjonas.gmail.com")))))
229 (synopsis "Adds KStatusNotifierItem support to GNOME Shell")
230 (description "This extension integrates Ubuntu AppIndicators
231 and KStatusNotifierItems (KDE's successor of the systray) into
232 GNOME Shell.")
233 (home-page "https://github.com/ubuntu/gnome-shell-extension-appindicator/")
234 (license license:gpl2+)))
235
236 (define-public gnome-shell-extension-clipboard-indicator
237 (package
238 (name "gnome-shell-extension-clipboard-indicator")
239 (version "34")
240 (source (origin
241 (method git-fetch)
242 (uri (git-reference
243 (url (string-append "https://github.com/Tudmotu/"
244 "gnome-shell-extension-clipboard-indicator.git"))
245 (commit (string-append "v" version))))
246 (file-name (git-file-name name version))
247 (sha256
248 (base32
249 "0i00psc1ky70zljd14jzr627y7nd8xwnwrh4xpajl1f6djabh12s"))
250 (modules '((guix build utils)))
251 (snippet
252 ;; Remove pre-compiled settings schemas and translations from
253 ;; source, as they are generated as part of build. Upstream
254 ;; includes them for people who want to run the software
255 ;; directly from source tree.
256 '(begin (delete-file "schemas/gschemas.compiled")
257 (for-each delete-file (find-files "locale" "\\.mo$"))
258 #t))))
259 (build-system copy-build-system)
260 (arguments
261 '(#:install-plan
262 '(("." "share/gnome-shell/extensions/clipboard-indicator@tudmotu.com"
263 #:include-regexp ("\\.css$" "\\.compiled$" "\\.js(on)?$" "\\.mo$" "\\.xml$")))
264 #:phases
265 (modify-phases %standard-phases
266 (add-before 'install 'compile-schemas
267 (lambda _
268 (with-directory-excursion "schemas"
269 (invoke "glib-compile-schemas" "."))
270 #t))
271 (add-before 'install 'compile-locales
272 (lambda _ (invoke "./compile-locales.sh")
273 #t)))))
274 (native-inputs
275 `(("gettext" ,gettext-minimal)
276 ("glib:bin" ,glib "bin"))) ; for glib-compile-schemas
277 (home-page "https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator")
278 (synopsis "Clipboard manager extension for GNOME Shell")
279 (description "Clipboard Indicator is a clipboard manager for GNOME Shell
280 that caches clipboard history.")
281 (license license:expat)))
282
283 (define-public gnome-shell-extension-topicons-redux
284 (package
285 (name "gnome-shell-extension-topicons-redux")
286 (version "6")
287 (source
288 (origin
289 (method git-fetch)
290 (uri (git-reference
291 (url "https://gitlab.com/pop-planet/TopIcons-Redux.git")
292 (commit version)))
293 (file-name (git-file-name name version))
294 (sha256
295 (base32 "1dli9xb545n3xlj6q4wl0y5gzkm903zs47p8fiq71pdvbr6v38rj"))))
296 (build-system gnu-build-system)
297 (native-inputs
298 `(("glib" ,glib "bin")))
299 (arguments
300 `(#:tests? #f ;no test defined in the project
301 #:phases
302 (modify-phases %standard-phases
303 (delete 'configure)
304 (delete 'build)
305 (replace 'install
306 (lambda* (#:key outputs #:allow-other-keys)
307 (let ((out (assoc-ref outputs "out")))
308 (invoke "make"
309 "install"
310 (string-append
311 "INSTALL_PATH="
312 out
313 "/share/gnome-shell/extensions"))))))))
314 (home-page "https://gitlab.com/pop-planet/TopIcons-Redux")
315 (synopsis "Display legacy tray icons in the GNOME Shell top panel")
316 (description "Many applications, such as chat clients, downloaders, and
317 some media players, are meant to run long-term in the background even after you
318 close their window. These applications remain accessible by adding an icon to
319 the GNOME Shell Legacy Tray. However, the Legacy Tray was removed in GNOME
320 3.26. TopIcons Redux brings those icons back into the top panel so that it's
321 easier to keep track of applications running in the background.")
322 (license license:gpl2+)))
323
324 (define-public gnome-shell-extension-dash-to-dock
325 (package
326 (name "gnome-shell-extension-dash-to-dock")
327 (version "67")
328 (source (origin
329 (method git-fetch)
330 (uri (git-reference
331 (url "https://github.com/micheleg/dash-to-dock")
332 (commit (string-append "extensions.gnome.org-v"
333 version))))
334 (sha256
335 (base32
336 "1746xm0iyvyzj6m3pvjx11smh9w1s7naz426ki0dlr5l7jh3mpy5"))
337 (file-name (git-file-name name version))))
338 (build-system gnu-build-system)
339 (arguments
340 '(#:tests? #f
341 #:make-flags (list (string-append "INSTALLBASE="
342 (assoc-ref %outputs "out")
343 "/share/gnome-shell/extensions"))
344 #:phases
345 (modify-phases %standard-phases
346 (delete 'bootstrap)
347 (delete 'configure))))
348 (native-inputs
349 `(("glib:bin" ,glib "bin")
350 ("intltool" ,intltool)
351 ("pkg-config" ,pkg-config)))
352 (propagated-inputs
353 `(("glib" ,glib)))
354 (synopsis "Transforms GNOME's dash into a dock")
355 (description "This extension moves the dash out of the
356 overview, transforming it into a dock for easier application launching and
357 faster window switching.")
358 (home-page "https://micheleg.github.io/dash-to-dock/")
359 (license license:gpl2+)))
360
361 (define-public gnome-shell-extension-gsconnect
362 (package
363 (name "gnome-shell-extension-gsconnect")
364 ;; v33 is the last version to support GNOME 3.34
365 (version "33")
366 (source (origin
367 (method git-fetch)
368 (uri (git-reference
369 (url (string-append "https://github.com/andyholmes"
370 "/gnome-shell-extension-gsconnect.git"))
371 (commit (string-append "v" version))))
372 (file-name (git-file-name name version))
373 (sha256
374 (base32
375 "1q03axhn75i864vgmd6myhmgwrmnpf01gsd1wl0di5x9q8mic2zn"))))
376 (build-system meson-build-system)
377 (arguments
378 `(#:configure-flags
379 (let* ((out (assoc-ref %outputs "out"))
380 (name+version (strip-store-file-name out))
381 (gschema-dir (string-append out
382 "/share/gsettings-schemas/"
383 name+version
384 "/glib-2.0/schemas"))
385 (gnome-shell (assoc-ref %build-inputs "gnome-shell"))
386 (openssh (assoc-ref %build-inputs "openssh"))
387 (openssl (assoc-ref %build-inputs "openssl")))
388 (list
389 (string-append "-Dgnome_shell_libdir=" gnome-shell "/lib")
390 (string-append "-Dgsettings_schemadir=" gschema-dir)
391 (string-append "-Dopenssl_path=" openssl "/bin/openssl")
392 (string-append "-Dsshadd_path=" openssh "/bin/ssh-add")
393 (string-append "-Dsshkeygen_path=" openssh "/bin/ssh-keygen")
394 (string-append "-Dsession_bus_services_dir=" out "/share/dbus-1/services")
395 "-Dpost_install=true"))
396 #:phases
397 (modify-phases %standard-phases
398 (add-before 'configure 'fix-paths
399 (lambda* (#:key inputs #:allow-other-keys)
400 (let* ((glib (assoc-ref inputs "glib:bin"))
401 (gapplication (string-append glib "/bin/gapplication"))
402 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
403 (substitute* "data/org.gnome.Shell.Extensions.GSConnect.desktop"
404 (("gapplication") gapplication))
405 (for-each
406 (lambda (file)
407 (substitute* file
408 (("'use strict';")
409 (string-append "'use strict';\n\n"
410 "'" gi-typelib-path "'.split(':').forEach("
411 "path => imports.gi.GIRepository.Repository."
412 "prepend_search_path(path));"))))
413 '("src/extension.js" "src/prefs.js"))
414 #t)))
415 (add-after 'install 'wrap-daemons
416 (lambda* (#:key inputs outputs #:allow-other-keys)
417 (let* ((out (assoc-ref outputs "out"))
418 (service-dir
419 (string-append out "/share/gnome-shell/extensions"
420 "/gsconnect@andyholmes.github.io/service"))
421 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
422 (wrap-program (string-append service-dir "/daemon.js")
423 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
424 #t))))))
425 (inputs
426 `(("at-spi2-core" ,at-spi2-core)
427 ("caribou" ,caribou)
428 ("evolution-data-server" ,evolution-data-server)
429 ("gjs" ,gjs)
430 ("glib" ,glib)
431 ("glib:bin" ,glib "bin")
432 ("gsound" ,gsound)
433 ("gnome-shell" ,gnome-shell)
434 ("gtk+" ,gtk+)
435 ("nautilus" ,nautilus)
436 ("openssh" ,openssh)
437 ("openssl" ,openssl)
438 ("python-nautilus" ,python-nautilus)
439 ("python-pygobject" ,python-pygobject)
440 ("upower" ,upower)))
441 (native-inputs
442 `(("gettext" ,gettext-minimal)
443 ("gobject-introspection" ,gobject-introspection)
444 ("libxml2" ,libxml2)
445 ("pkg-config" ,pkg-config)))
446 (home-page "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki")
447 (synopsis "Connect GNOME Shell with your Android phone")
448 (description "GSConnect is a complete implementation of KDE Connect
449 especially for GNOME Shell, allowing devices to securely share content, like
450 notifications or files, and other features like SMS messaging and remote
451 control.")
452 (license license:gpl2)))
453
454 (define-public gnome-shell-extension-hide-app-icon
455 (let ((commit "4188aa5f4ba24901a053a0c3eb0d83baa8625eab")
456 (revision "0"))
457 (package
458 (name "gnome-shell-extension-hide-app-icon")
459 (version (git-version "2.7" revision commit))
460 (source
461 (origin
462 (method git-fetch)
463 (uri (git-reference
464 (url (string-append "https://github.com/michael-rapp"
465 "/gnome-shell-extension-hide-app-icon.git"))
466 (commit commit)))
467 (sha256
468 (base32
469 "1i28n4bz6wrhn07vpxkr6l1ljyn7g8frp5xrr11z3z32h2hxxcd6"))
470 (file-name (git-file-name name version))))
471 (build-system gnu-build-system)
472 (arguments
473 '(#:tests? #f ; no test target
474 #:make-flags (list (string-append "EXTENSIONS_DIR="
475 (assoc-ref %outputs "out")
476 "/share/gnome-shell/extensions"))
477 #:phases
478 (modify-phases %standard-phases
479 (delete 'configure) ; no configure script
480 (replace 'install
481 (lambda* (#:key outputs #:allow-other-keys)
482 (let ((out (assoc-ref outputs "out"))
483 (pre "/share/gnome-shell/extensions/")
484 (dir "hide-app-icon@mrapp.sourceforge.com"))
485 (copy-recursively dir (string-append out pre dir))
486 #t))))))
487 (native-inputs
488 `(("glib" ,glib "bin")
489 ("intltool" ,intltool)))
490 (propagated-inputs
491 `(("glib" ,glib)))
492 (synopsis "Hide app icon from GNOME's panel")
493 (description "This extension hides the icon and/or title of the
494 currently focused application in the top panel of the GNOME shell.")
495 (home-page
496 "https://github.com/michael-rapp/gnome-shell-extension-hide-app-icon/")
497 (license
498 ;; README.md and LICENSE.txt disagree -- the former claims v3, the
499 ;; latter v2. No mention of "or later" in either place or in the code.
500 (list license:gpl2
501 license:gpl3)))))
502
503 (define-public gnome-shell-extension-dash-to-panel
504 (package
505 (name "gnome-shell-extension-dash-to-panel")
506 (version "38")
507 (source (origin
508 (method git-fetch)
509 (uri (git-reference
510 (url "https://github.com/home-sweet-gnome/dash-to-panel")
511 (commit (string-append "v" version))))
512 (sha256
513 (base32
514 "1kvybb49l1vf0fvh8d0c6xkwnry8m330scamf5x40y63d4i213j1"))
515 (file-name (git-file-name name version))))
516 (build-system gnu-build-system)
517 (arguments
518 `(#:tests? #f
519 #:make-flags (list (string-append "INSTALLBASE="
520 (assoc-ref %outputs "out")
521 "/share/gnome-shell/extensions")
522 (string-append "VERSION="
523 ,(package-version
524 gnome-shell-extension-dash-to-panel)))
525 #:phases
526 (modify-phases %standard-phases
527 (delete 'bootstrap)
528 (delete 'configure))))
529 (native-inputs
530 `(("intltool" ,intltool)
531 ("pkg-config" ,pkg-config)))
532 (propagated-inputs
533 `(("glib" ,glib)
534 ("glib" ,glib "bin")))
535 (synopsis "Icon taskbar for GNOME Shell")
536 (description "This extension moves the dash into the gnome main
537 panel so that the application launchers and system tray are combined
538 into a single panel, similar to that found in KDE Plasma and Windows 7+.")
539 (home-page "https://github.com/home-sweet-gnome/dash-to-panel/")
540 (license license:gpl2+)))
541
542 (define-public gnome-shell-extension-noannoyance
543 (package
544 (name "gnome-shell-extension-noannoyance")
545 (version "5")
546 (source (origin
547 (method git-fetch)
548 (uri (git-reference
549 (url "https://github.com/BjoernDaase/noannoyance")
550 (commit "e37b5b3c31f577b4698bc6659bc9fec5ea9ac5d4")))
551 (sha256
552 (base32
553 "0fa8l3xlh8kbq07y4385wpb908zm6x53z81q16xlmin97dln32hh"))
554 (file-name (git-file-name name version))))
555 (build-system copy-build-system)
556 (arguments
557 '(#:install-plan
558 '(("." "share/gnome-shell/extensions/noannoyance@daase.net"))))
559 (synopsis "Remove 'Window is ready' annotation")
560 (description "One of the many extensions that remove this message.
561 It uses ES6 syntax and claims to be more actively maintained than others.")
562 (home-page "https://extensions.gnome.org/extension/2182/noannoyance/")
563 (license license:gpl2)))
564
565 (define-public gnome-shell-extension-paperwm
566 (package
567 (name "gnome-shell-extension-paperwm")
568 (version "36.0")
569 (source (origin
570 (method git-fetch)
571 (uri (git-reference
572 (url "https://github.com/paperwm/PaperWM")
573 (commit version)))
574 (file-name (git-file-name name version))
575 (sha256
576 (base32
577 "1ssnabwxrns36c61ppspjkr9i3qifv08pf2jpwl7cjv3pvyn4kly"))
578 (snippet
579 '(begin (delete-file "schemas/gschemas.compiled")))))
580 (build-system copy-build-system)
581 (arguments
582 '(#:install-plan
583 '(("." "share/gnome-shell/extensions/paperwm@hedning:matrix.org"
584 #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
585 "\\.xml$" "\\.compiled$")))
586 #:phases
587 (modify-phases %standard-phases
588 (add-before 'install 'compile-schemas
589 (lambda _
590 (with-directory-excursion "schemas"
591 (invoke "make"))
592 #t)))))
593 (native-inputs
594 `(("glib:bin" ,glib "bin"))) ; for glib-compile-schemas
595 (home-page "https://github.com/paperwm/PaperWM")
596 (synopsis "Tiled scrollable window management for GNOME Shell")
597 (description "PaperWM is an experimental GNOME Shell extension providing
598 scrollable tiling of windows and per monitor workspaces. It's inspired by paper
599 notebooks and tiling window managers.")
600 (license license:gpl3)))
601
602 (define-public arc-theme
603 (package
604 (name "arc-theme")
605 (version "20201013")
606 (source (origin
607 (method git-fetch)
608 (uri (git-reference
609 (url "https://github.com/jnsh/arc-theme")
610 (commit version)))
611 (file-name (git-file-name name version))
612 (sha256
613 (base32
614 "1x2l1mwjx68dwf3jb1i90c1q8nqsl1wf2zggcn8im6590k5yv39s"))))
615 (build-system gnu-build-system)
616 (arguments
617 '(#:configure-flags
618 (list "--disable-cinnamon")
619 #:phases
620 (modify-phases %standard-phases
621 ;; autogen.sh calls configure at the end of the script.
622 (replace 'bootstrap
623 (lambda _ (invoke "autoreconf" "-vfi")))
624 (add-before 'build 'set-home ;placate Inkscape
625 (lambda _
626 (setenv "HOME" (getcwd))
627 #t)))))
628 (native-inputs
629 `(("autoconf" ,autoconf)
630 ("automake" ,automake)
631 ("glib" ,glib "bin") ; for glib-compile-resources
632 ("gnome-shell" ,gnome-shell)
633 ("gtk+" ,gtk+)
634 ("inkscape" ,inkscape)
635 ("optipng" ,optipng)
636 ("pkg-config" ,pkg-config)
637 ("sassc" ,sassc/libsass-3.5)))
638 (synopsis "A flat GTK+ theme with transparent elements")
639 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
640 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
641 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
642 (home-page "https://github.com/horst3180/arc-theme")
643 ;; No "or later" language found.
644 (license license:gpl3+)))
645
646 (define-public greybird-gtk-theme
647 (package
648 (name "greybird-gtk-theme")
649 (version "3.22.13")
650 (source (origin
651 (method git-fetch)
652 (uri
653 (git-reference
654 (url "https://github.com/shimmerproject/Greybird")
655 (commit (string-append "v" version))))
656 (file-name (git-file-name name version))
657 (sha256
658 (base32
659 "154qawiga792iimkpk3a6q8f4gm4r158wmsagkbqqbhj33kxgxhg"))))
660 (build-system meson-build-system)
661 (native-inputs
662 `(("gtk+" ,gtk+)
663 ("glib:bin" ,glib "bin") ; for "glib-compile-resources"
664 ("librsvg" ,librsvg)
665 ("pkg-config" ,pkg-config)
666 ("ruby-sass" ,ruby-sass)
667 ("sassc" ,sassc)))
668 (home-page "https://shimmerproject.org/")
669 (synopsis "Grey GTK+ theme based on Bluebird")
670 (description "Greybird is a grey derivative of the Bluebird theme by the
671 Shimmer Project. It supports GNOME, Unity, and Xfce.")
672 (license (list license:gpl2+ license:cc-by-sa3.0))))
673
674 (define-public matcha-theme
675 (package
676 (name "matcha-theme")
677 (version "2021-01-01")
678 (source
679 (origin
680 (method git-fetch)
681 (uri
682 (git-reference
683 (url "https://github.com/vinceliuice/Matcha-gtk-theme")
684 (commit version)))
685 (file-name (git-file-name name version))
686 (sha256
687 (base32
688 "1pa6ra87wlq0gwz4n03l6xv0pxiamr5dygycvppms8v6xyc2aa0r"))))
689 (build-system trivial-build-system)
690 (arguments
691 '(#:modules ((guix build utils))
692 #:builder
693 (begin
694 (use-modules (guix build utils))
695 (let* ((out (assoc-ref %outputs "out"))
696 (source (assoc-ref %build-inputs "source"))
697 (bash (assoc-ref %build-inputs "bash"))
698 (coreutils (assoc-ref %build-inputs "coreutils"))
699 (themesdir (string-append out "/share/themes")))
700 (setenv "PATH"
701 (string-append coreutils "/bin:"
702 (string-append bash "/bin:")))
703 (copy-recursively source (getcwd))
704 (patch-shebang "install.sh")
705 (mkdir-p themesdir)
706 (invoke "./install.sh" "-d" themesdir)
707 #t))))
708 (inputs
709 `(("gtk-engines" ,gtk-engines)))
710 (native-inputs
711 `(("bash" ,bash)
712 ("coreutils" ,coreutils)))
713 (synopsis "Flat design theme for GTK 3, GTK 2 and GNOME-Shell")
714 (description "Matcha is a flat Design theme for GTK 3, GTK 2 and
715 Gnome-Shell which supports GTK 3 and GTK 2 based desktop environments
716 like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
717 (home-page "https://github.com/vinceliuice/matcha")
718 (license license:gpl3+)))
719
720 (define-public materia-theme
721 (package
722 (name "materia-theme")
723 (version "20200916")
724 (source
725 (origin
726 (method git-fetch)
727 (uri
728 (git-reference
729 (url "https://github.com/nana-4/materia-theme")
730 (commit (string-append "v" version))))
731 (file-name (git-file-name name version))
732 (sha256
733 (base32
734 "0qaxxafsn5zd2ysgr0jyv5j73360mfdmxyd55askswlsfphssn74"))))
735 (build-system meson-build-system)
736 (native-inputs
737 `(("gtk+" ,gtk+)
738 ("sassc" ,sassc)))
739 (home-page "https://github.com/nana-4/materia-theme")
740 (synopsis "Material Design theme for a wide range of environments")
741 (description "Materia is a Material Design theme for GNOME/GTK based
742 desktop environments. It supports GTK 2, GTK 3, GNOME Shell, Budgie,
743 Cinnamon, MATE, Unity, Xfce, LightDM, GDM, Chrome theme, etc.")
744 (license license:gpl2+)))
745
746 (define-public numix-gtk-theme
747 (package
748 (name "numix-gtk-theme")
749 (version "2.6.7")
750 (source (origin
751 (method git-fetch)
752 (uri (git-reference
753 (url "https://github.com/numixproject/numix-gtk-theme")
754 (commit version)))
755 (file-name (git-file-name name version))
756 (sha256
757 (base32
758 "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7"))))
759 (build-system gnu-build-system)
760 (arguments
761 '(#:make-flags
762 (list (string-append "INSTALL_DIR="
763 (assoc-ref %outputs "out")
764 "/share/themes/Numix"))
765 #:tests? #f
766 #:phases
767 (modify-phases %standard-phases
768 (delete 'configure)))) ; no configure script
769 (native-inputs
770 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas
771 ("gnome-shell" ,gnome-shell)
772 ("gtk+" ,gtk+)
773 ("xmllint" ,libxml2)
774 ("ruby-sass" ,ruby-sass)))
775 (synopsis "Flat theme with light and dark elements")
776 (description "Numix is a modern flat theme with a combination of light and
777 dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
778 (home-page "https://numixproject.github.io")
779 (license license:gpl3+)))
780
781 (define-public numix-theme
782 (deprecated-package "numix-theme" numix-gtk-theme))
783
784 (define-public orchis-theme
785 (package
786 (name "orchis-theme")
787 (version "2021-02-28")
788 (source
789 (origin
790 (method git-fetch)
791 (uri
792 (git-reference
793 (url "https://github.com/vinceliuice/Orchis-theme")
794 (commit version)))
795 (file-name (git-file-name name version))
796 (sha256
797 (base32
798 "1qp3phiza93qllrjm5xjjca5b7l2sbng8c382khy9m97grxvcq0y"))
799 (modules '((guix build utils)
800 (ice-9 regex)
801 (srfi srfi-26)))
802 (snippet
803 '(begin
804 (for-each
805 (lambda (f)
806 (let* ((r (make-regexp "\\.scss"))
807 (f* (regexp-substitute #f (regexp-exec r f) 'pre ".css")))
808 (if (file-exists? f*)
809 (delete-file f*))))
810 (find-files "." ".*\\.scss"))
811 #t))))
812 (build-system gnu-build-system)
813 (arguments
814 `(#:configure-flags (list
815 "--dest" (string-append
816 (assoc-ref %outputs "out")
817 "/share/themes")
818 "--theme" "all"
819 "--radio-color")
820 #:tests? #f ; no tests
821 #:phases
822 (modify-phases %standard-phases
823 (delete 'bootstrap)
824 (delete 'configure)
825 (replace 'build (lambda _ (invoke "./parse-sass.sh")))
826 (replace 'install
827 (lambda* (#:key configure-flags #:allow-other-keys)
828 (mkdir-p
829 (cadr (or (member "--dest" configure-flags)
830 (member "-d" configure-flags))))
831 (apply invoke "./install.sh" configure-flags)
832 #t)))))
833 (inputs
834 `(("gtk-engines" ,gtk-engines)))
835 (native-inputs
836 `(;("coreutils" ,coreutils)
837 ("gtk+" ,gtk+)
838 ("sassc" ,sassc)))
839 (home-page "https://github.com/vinceliuice/Orchis-theme")
840 (synopsis "Material Design theme for a wide range of environments")
841 (description "Orchis is a Material Design them for GNOME/GTK based
842 desktop environments. It is based on materia-theme and adds more color
843 variants.")
844 (license (list license:gpl3 ; According to COPYING.
845 license:lgpl2.1 ; Some style sheets.
846 license:cc-by-sa4.0)))) ; Some icons
847
848 (define-public markets
849 (package
850 (name "markets")
851 (version "0.4.0")
852 (source
853 (origin
854 (method git-fetch)
855 (uri (git-reference
856 (url "https://github.com/bitstower/markets")
857 (commit version)))
858 (file-name (git-file-name name version))
859 (sha256
860 (base32
861 "1jzv74l2jkdiqy1hp0ww5yla50dmrvjw7fgkmb26ynblr1nb3rrb"))))
862 (build-system meson-build-system)
863 (arguments
864 `(#:glib-or-gtk? #t
865 #:phases
866 (modify-phases %standard-phases
867 (add-after 'unpack 'skip-gtk-update-icon-cache
868 ;; Don't create 'icon-theme.cache'.
869 (lambda _
870 (substitute* "build-aux/meson/postinstall.py"
871 (("gtk-update-icon-cache") "true"))
872 #t))
873 (add-after 'unpack 'skip-update-desktop-database
874 ;; Don't update desktop file database.
875 (lambda _
876 (substitute* "build-aux/meson/postinstall.py"
877 (("update-desktop-database") "true"))
878 #t)))))
879 (inputs
880 `(("gtk3" ,gtk+)
881 ("gettext" ,gettext-minimal)
882 ("libgee" ,libgee)
883 ("libhandy0" ,libhandy-0.0)
884 ("libsoup" ,libsoup)
885 ("json-glib" ,json-glib)
886 ("vala" ,vala)))
887 (native-inputs
888 `(("pkg-config" ,pkg-config)
889 ("glib" ,glib "bin"))) ; for 'glib-compile-resources'
890 (home-page "https://github.com/bitstower/markets")
891 (synopsis "Stock, currency and cryptocurrency tracker")
892 (description
893 "Markets is a GTK application that displays financial data, helping users
894 track stocks, currencies and cryptocurrencies.")
895 (license license:gpl3)))
896
897 (define-public vala-language-server
898 (package
899 (name "vala-language-server")
900 ;; Note to maintainer: VLS must be built with a Vala toolchain the same
901 ;; version or newer. Therefore when you update this package you may need
902 ;; to update Vala too.
903 (version "0.48.1")
904 (source (origin
905 (method git-fetch)
906 (uri (git-reference
907 (url "https://github.com/benwaffle/vala-language-server")
908 (commit version)))
909 (file-name (git-file-name name version))
910 (sha256
911 (base32 "12k095052jkvbiyz8gzkj6w7r7p16d5m18fyikl48yvh5nln8fw0"))))
912 (build-system meson-build-system)
913 (arguments '(#:glib-or-gtk? #t))
914 (inputs
915 `(("glib" ,glib)
916 ("json-glib" ,json-glib)
917 ("jsonrpc-glib" ,jsonrpc-glib)
918 ("libgee" ,libgee)
919 ("vala" ,vala-0.50)))
920 (native-inputs
921 `(("pkg-config" ,pkg-config)))
922 (home-page "https://github.com/benwaffle/vala-language-server")
923 (synopsis "Language server for Vala")
924 (description "The Vala language server is an implementation of the Vala
925 language specification for the Language Server Protocol (LSP). This tool is
926 used in text editing environments to provide a complete and integrated
927 feature-set for programming Vala effectively.")
928 (license license:lgpl2.1+)))
929
930 (define-public nordic-theme
931 (let ((commit "07d764c5ebd5706e73d2e573f1a983e37b318915")
932 (revision "0"))
933 (package
934 (name "nordic-theme")
935 (version (git-version "1.9.0" revision commit))
936 (source
937 (origin
938 (method git-fetch)
939 (uri (git-reference
940 (url "https://github.com/EliverLara/Nordic")
941 (commit commit)))
942 (sha256
943 (base32
944 "0y2s9d6h1b195s6afp1gb5rb1plfslkpbw2brd30a9d66wfvsqk0"))
945 (file-name (git-file-name name version))))
946 (build-system copy-build-system)
947 (arguments
948 `(#:install-plan
949 `(("." "share/themes/nord"
950 #:exclude ("README.md" "LICENSE" "Art/" "package.json"
951 "package-lock.json" "Gulpfile.js")))))
952 (home-page "https://github.com/EliverLara/Nordic")
953 (synopsis "Dark Gtk3.20+ theme using the Nord color palette")
954 (description "Nordic is a Gtk3.20+ theme created using the Nord color
955 palette.")
956 (license license:gpl3))))
957
958 (define-public tiramisu
959 (let ((commit "8eb946dae0e2f98d3850d89e1bb535640e8c3266")
960 (revision "0"))
961 (package
962 (name "tiramisu")
963 (version (git-version "1.0" revision commit))
964 (source (origin
965 (method git-fetch)
966 (uri (git-reference
967 (url "https://github.com/Sweets/tiramisu")
968 (commit commit)))
969 (sha256
970 (base32
971 "0wz2r8369d40vnxswknx0zxzbs03gzv0nc8al4g0ffg972p15j25"))
972 (file-name (git-file-name name version))))
973 (build-system gnu-build-system)
974 (arguments
975 `(#:phases
976 (modify-phases %standard-phases
977 (delete 'configure)
978 (delete 'check)
979 (replace 'install
980 (lambda* (#:key outputs #:allow-other-keys)
981 (let ((out (assoc-ref outputs "out")))
982 (install-file "tiramisu" (string-append out "/bin"))
983 #t))))
984 #:make-flags
985 (list (string-append "CC=" ,(cc-for-target)))))
986 (inputs
987 `(("glib" ,glib)))
988 (native-inputs
989 `(("pkg-config" ,pkg-config)))
990 (home-page "https://github.com/Sweets/tiramisu")
991 (synopsis "Desktop notifications, the UNIX way")
992 (description "tiramisu is a notification daemon based on dunst that
993 outputs notifications to STDOUT in order to allow the user to process
994 notifications any way they prefer.")
995 (license license:expat))))