gnu: Add tla.
[jackhill/guix/guix.git] / gnu / packages / gnome-xyz.scm
CommitLineData
b26a239c
LP
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
ec574bb3 3;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
72332f3c 4;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
fb18f32e 5;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
60d5ad80 6;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
b26a239c
LP
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages gnome-xyz)
24 #:use-module (guix build-system trivial)
25 #:use-module (guix build-system gnu)
fb18f32e 26 #:use-module (guix build-system copy)
fdd48135 27 #:use-module (guix build-system meson)
b26a239c
LP
28 #:use-module (guix git-download)
29 #:use-module (guix packages)
30 #:use-module ((guix licenses) #:prefix license:)
ec574bb3
AT
31 #:use-module (gnu packages base)
32 #:use-module (gnu packages bash)
fdd48135 33 #:use-module (gnu packages gettext)
b26a239c 34 #:use-module (gnu packages glib)
72332f3c 35 #:use-module (gnu packages gnome)
ec574bb3 36 #:use-module (gnu packages gtk)
72332f3c 37 #:use-module (gnu packages pkg-config)
fdd48135
AG
38 #:use-module (gnu packages python-xyz)
39 #:use-module (gnu packages ssh)
40 #:use-module (gnu packages tls)
72332f3c
GL
41 #:use-module (gnu packages ruby)
42 #:use-module (gnu packages xml))
b26a239c 43
ec574bb3
AT
44(define-public matcha-theme
45 (package
46 (name "matcha-theme")
47 (version "2019-11-02")
48 (source
49 (origin
50 (method git-fetch)
51 (uri
52 (git-reference
53 (url "https://github.com/vinceliuice/matcha")
54 (commit version)))
55 (file-name (git-file-name name version))
56 (sha256
57 (base32
58 "0wci9ahap8kynq8cbyxr7aba9ndb1d4kiq42xvzr34vw1rhcahrr"))))
59 (build-system trivial-build-system)
60 (arguments
61 '(#:modules ((guix build utils))
62 #:builder
63 (begin
64 (use-modules (guix build utils))
65 (let* ((out (assoc-ref %outputs "out"))
66 (source (assoc-ref %build-inputs "source"))
67 (bash (assoc-ref %build-inputs "bash"))
68 (coreutils (assoc-ref %build-inputs "coreutils"))
69 (themesdir (string-append out "/share/themes")))
70 (setenv "PATH"
71 (string-append coreutils "/bin:"
72 (string-append bash "/bin:")))
73 (copy-recursively source (getcwd))
74 (patch-shebang "Install")
75 (mkdir-p themesdir)
76 (invoke "./Install" "-d" themesdir)
77 #t))))
78 (inputs
79 `(("gtk-engines" ,gtk-engines)))
80 (native-inputs
81 `(("bash" ,bash)
82 ("coreutils" ,coreutils)))
83 (synopsis "Flat design theme for GTK 3, GTK 2 and GNOME-Shell")
84 (description "Matcha is a flat Design theme for GTK 3, GTK 2 and
85Gnome-Shell which supports GTK 3 and GTK 2 based desktop environments
86like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
87 (home-page "https://github.com/vinceliuice/matcha")
88 (license license:gpl3+)))
89
b26a239c
LP
90(define-public delft-icon-theme
91 (package
92 (name "delft-icon-theme")
28c06217 93 (version "1.11")
b26a239c
LP
94 (source
95 (origin
96 (method git-fetch)
97 (uri (git-reference
98 (url "https://github.com/madmaxms/iconpack-delft.git")
99 (commit (string-append "v" version))))
100 (sha256
101 (base32
28c06217 102 "1m3r4i4m3y3xsjb5f4bik0ylmi64amkfyr0y8pjbvv6gyj492mi6"))
b26a239c 103 (file-name (git-file-name name version))))
3282137d 104 (build-system copy-build-system)
b26a239c 105 (arguments
3282137d
LP
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)))))
b26a239c
LP
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
118date app icons. It will stay optically close to the original Faenza icons,
119which haven't been updated for some years. The new app icons are ported from
120the Obsidian icon theme.")
121 (license license:gpl3)))
0f0bffc4 122
e3d80f3c
GL
123(define-public gnome-shell-extension-appindicator
124 (package
125 (name "gnome-shell-extension-appindicator")
126 (version "30")
127 (source (origin
128 (method git-fetch)
129 (uri (git-reference
130 (url
131 "https://github.com/ubuntu/gnome-shell-extension-appindicator.git")
132 (commit (string-append "v" version))))
133 (sha256
134 (base32
135 "1fjhx23jqwv3d0smwhnjvc35gqhwk9p5f96ic22pfax653cn5vh8"))
136 (file-name (git-file-name name version))))
f6a151cd 137 (build-system copy-build-system)
e3d80f3c 138 (arguments
f6a151cd
LP
139 `(#:install-plan
140 '(("." ,(string-append "share/gnome-shell/extensions/"
141 "appindicatorsupport@rgcjonas.gmail.com")))))
e3d80f3c
GL
142 (synopsis "Adds KStatusNotifierItem support to GNOME Shell")
143 (description "This extension integrates Ubuntu AppIndicators
144and KStatusNotifierItems (KDE's successor of the systray) into
145GNOME Shell.")
146 (home-page "https://github.com/ubuntu/gnome-shell-extension-appindicator/")
147 (license license:gpl2+)))
148
0f0bffc4
LP
149(define-public gnome-shell-extension-dash-to-dock
150 (package
151 (name "gnome-shell-extension-dash-to-dock")
b863846f 152 (version "66")
0f0bffc4
LP
153 (source (origin
154 (method git-fetch)
155 (uri (git-reference
156 (url "https://github.com/micheleg/dash-to-dock.git")
157 (commit (string-append "extensions.gnome.org-v"
158 version))))
159 (sha256
160 (base32
b863846f 161 "04krl6rxlp1qc97psraf2kwin7h0mx4c7pnfpi7vhplmvasrwkfh"))
0f0bffc4
LP
162 (file-name (git-file-name name version))))
163 (build-system gnu-build-system)
164 (arguments
165 '(#:tests? #f
166 #:make-flags (list (string-append "INSTALLBASE="
167 (assoc-ref %outputs "out")
168 "/share/gnome-shell/extensions"))
169 #:phases
170 (modify-phases %standard-phases
171 (delete 'bootstrap)
172 (delete 'configure))))
173 (native-inputs
1f3902ec
LP
174 `(("glib:bin" ,glib "bin")
175 ("intltool" ,intltool)
0f0bffc4
LP
176 ("pkg-config" ,pkg-config)))
177 (propagated-inputs
1f3902ec 178 `(("glib" ,glib)))
0f0bffc4
LP
179 (synopsis "Transforms GNOME's dash into a dock")
180 (description "This extension moves the dash out of the
181overview, transforming it into a dock for easier application launching and
182faster window switching.")
183 (home-page "https://micheleg.github.io/dash-to-dock/")
184 (license license:gpl2+)))
34bcfae2 185
fdd48135
AG
186(define-public gnome-shell-extension-gsconnect
187 (package
188 (name "gnome-shell-extension-gsconnect")
189 ;; v28 is the last version to support GNOME 3.32
190 (version "28")
191 (source (origin
192 (method git-fetch)
193 (uri (git-reference
194 (url (string-append "https://github.com/andyholmes"
195 "/gnome-shell-extension-gsconnect.git"))
196 (commit (string-append "v" version))))
197 (file-name (git-file-name name version))
198 (sha256
199 (base32
200 "0grqkzqm7mlkbzin4nx9w7bh5cgygph8pn0cvim4a4gg99nfcp5z"))))
201 (build-system meson-build-system)
202 (arguments
203 `(#:configure-flags
204 (let* ((out (assoc-ref %outputs "out"))
205 (name+version (strip-store-file-name out))
206 (gschema-dir (string-append out
207 "/share/gsettings-schemas/"
208 name+version
209 "/glib-2.0/schemas"))
210 (gnome-shell (assoc-ref %build-inputs "gnome-shell"))
211 (openssh (assoc-ref %build-inputs "openssh"))
212 (openssl (assoc-ref %build-inputs "openssl")))
213 (list
214 (string-append "-Dgnome_shell_libdir=" gnome-shell "/lib")
215 (string-append "-Dgsettings_schemadir=" gschema-dir)
216 (string-append "-Dopenssl_path=" openssl "/bin/openssl")
217 (string-append "-Dsshadd_path=" openssh "/bin/ssh-add")
218 (string-append "-Dsshkeygen_path=" openssh "/bin/ssh-keygen")
219 (string-append "-Dsession_bus_services_dir=" out "/share/dbus-1/services")
220 "-Dpost_install=true"))
221 #:phases
222 (modify-phases %standard-phases
223 (add-before 'configure 'fix-paths
224 (lambda* (#:key inputs #:allow-other-keys)
225 (let* ((glib (assoc-ref inputs "glib:bin"))
226 (gapplication (string-append glib "/bin/gapplication"))
227 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
228 (substitute* "data/org.gnome.Shell.Extensions.GSConnect.desktop"
229 (("gapplication") gapplication))
230 (for-each
231 (lambda (file)
232 (substitute* file
233 (("'use strict';")
234 (string-append "'use strict';\n\n"
235 "'" gi-typelib-path "'.split(':').forEach("
236 "path => imports.gi.GIRepository.Repository."
237 "prepend_search_path(path));"))))
238 '("src/extension.js" "src/prefs.js"))
239 #t)))
240 (add-after 'install 'wrap-daemons
241 (lambda* (#:key inputs outputs #:allow-other-keys)
242 (let* ((out (assoc-ref outputs "out"))
243 (service-dir
244 (string-append out "/share/gnome-shell/extensions"
245 "/gsconnect@andyholmes.github.io/service"))
246 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
247 (wrap-program (string-append service-dir "/daemon.js")
248 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
249 #t))))))
250 (inputs
251 `(("at-spi2-core" ,at-spi2-core)
252 ("caribou" ,caribou)
253 ("evolution-data-server" ,evolution-data-server)
254 ("folks" ,folks)
255 ("gjs" ,gjs)
256 ("glib" ,glib)
257 ("glib:bin" ,glib "bin")
258 ("gsound" ,gsound)
259 ("gnome-shell" ,gnome-shell)
260 ("gtk+" ,gtk+)
261 ("nautilus" ,nautilus)
262 ("openssh" ,openssh)
263 ("openssl" ,openssl)
264 ("python-nautilus" ,python-nautilus)
265 ("python-pygobject" ,python-pygobject)
266 ("upower" ,upower)))
267 (native-inputs
268 `(("gettext" ,gettext-minimal)
269 ("gobject-introspection" ,gobject-introspection)
270 ("libxml2" ,libxml2)
271 ("pkg-config" ,pkg-config)))
272 (home-page "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki")
273 (synopsis "Connect GNOME Shell with your Android phone")
274 (description "GSConnect is a complete implementation of KDE Connect
275especially for GNOME Shell, allowing devices to securely share content, like
276notifications or files, and other features like SMS messaging and remote
277control.")
278 (license license:gpl2)))
279
5be0ff33
LP
280(define-public gnome-shell-extension-hide-app-icon
281 (let ((commit "4188aa5f4ba24901a053a0c3eb0d83baa8625eab")
282 (revision "0"))
283 (package
284 (name "gnome-shell-extension-hide-app-icon")
285 (version (git-version "2.7" revision commit))
286 (source
d17eb101
LP
287 (origin
288 (method git-fetch)
289 (uri (git-reference
290 (url (string-append "https://github.com/michael-rapp"
291 "/gnome-shell-extension-hide-app-icon.git"))
292 (commit commit)))
293 (sha256
294 (base32
295 "1i28n4bz6wrhn07vpxkr6l1ljyn7g8frp5xrr11z3z32h2hxxcd6"))
296 (file-name (git-file-name name version))))
5be0ff33
LP
297 (build-system gnu-build-system)
298 (arguments
299 '(#:tests? #f ; no test target
300 #:make-flags (list (string-append "EXTENSIONS_DIR="
301 (assoc-ref %outputs "out")
302 "/share/gnome-shell/extensions"))
303 #:phases
304 (modify-phases %standard-phases
305 (delete 'configure) ; no configure script
306 (replace 'install
307 (lambda* (#:key outputs #:allow-other-keys)
d17eb101
LP
308 (let ((out (assoc-ref outputs "out"))
309 (pre "/share/gnome-shell/extensions/")
310 (dir "hide-app-icon@mrapp.sourceforge.com"))
311 (copy-recursively dir (string-append out pre dir))
312 #t))))))
5be0ff33
LP
313 (native-inputs
314 `(("glib" ,glib "bin")
315 ("intltool" ,intltool)))
316 (propagated-inputs
317 `(("glib" ,glib)))
318 (synopsis "Hide app icon from GNOME's panel")
319 (description "This extension allows to hide the icon and/or title of the
320currently focused application in the top panel of the GNOME shell.")
d17eb101
LP
321 (home-page
322 "https://github.com/michael-rapp/gnome-shell-extension-hide-app-icon/")
5be0ff33 323 (license
d17eb101
LP
324 ;; README.md and LICENSE.txt disagree -- the former claims v3, the
325 ;; latter v2. No mention of "or later" in either place or in the code.
5be0ff33
LP
326 (list license:gpl2
327 license:gpl3)))))
328
8a02ae7f
GL
329(define-public gnome-shell-extension-dash-to-panel
330 (package
331 (name "gnome-shell-extension-dash-to-panel")
332 (version "26")
333 (source (origin
334 (method git-fetch)
335 (uri (git-reference
336 (url "https://github.com/home-sweet-gnome/dash-to-panel.git")
337 (commit (string-append "v" version))))
338 (sha256
339 (base32
340 "1phfx2pblygpcvsppsqqqflm7qnz46mqkw29hj0nv2dn69hf4xbc"))
341 (file-name (git-file-name name version))))
342 (build-system gnu-build-system)
343 (arguments
344 `(#:tests? #f
345 #:make-flags (list (string-append "INSTALLBASE="
346 (assoc-ref %outputs "out")
347 "/share/gnome-shell/extensions")
348 (string-append "VERSION="
349 ,(package-version
350 gnome-shell-extension-dash-to-panel)))
351 #:phases
352 (modify-phases %standard-phases
353 (delete 'bootstrap)
354 (delete 'configure))))
355 (native-inputs
356 `(("intltool" ,intltool)
357 ("pkg-config" ,pkg-config)))
358 (propagated-inputs
359 `(("glib" ,glib)
360 ("glib" ,glib "bin")))
361 (synopsis "Icon taskbar for GNOME Shell")
362 (description "This extension moves the dash into the gnome main
363panel so that the application launchers and system tray are combined
364into a single panel, similar to that found in KDE Plasma and Windows 7+.")
365 (home-page "https://github.com/home-sweet-gnome/dash-to-panel/")
366 (license license:gpl2+)))
367
34bcfae2
LP
368(define-public gnome-shell-extension-noannoyance
369 (package
370 (name "gnome-shell-extension-noannoyance")
371 (version "5")
372 (source (origin
373 (method git-fetch)
374 (uri (git-reference
375 (url "https://github.com/BjoernDaase/noannoyance.git")
376 (commit "e37b5b3c31f577b4698bc6659bc9fec5ea9ac5d4")))
377 (sha256
378 (base32
379 "0fa8l3xlh8kbq07y4385wpb908zm6x53z81q16xlmin97dln32hh"))
380 (file-name (git-file-name name version))))
c456d18b 381 (build-system copy-build-system)
34bcfae2 382 (arguments
c456d18b
LP
383 '(#:install-plan
384 '(("." "share/gnome-shell/extensions/noannoyance@daase.net"))))
e10587c5
PN
385 (synopsis "Remove 'Window is ready' annotation")
386 (description "One of the many extensions that remove this message.
34bcfae2
LP
387It uses ES6 syntax and claims to be more actively maintained than others.")
388 (home-page "https://extensions.gnome.org/extension/2182/noannoyance/")
389 (license license:gpl2)))
72332f3c 390
fb18f32e
AG
391(define-public gnome-shell-extension-paperwm
392 (package
393 (name "gnome-shell-extension-paperwm")
394 (version "34.3")
395 (source (origin
396 (method git-fetch)
397 (uri (git-reference
398 (url "https://github.com/paperwm/PaperWM.git")
399 (commit version)))
400 (file-name (git-file-name name version))
401 (sha256
402 (base32
60d5ad80
JH
403 "1qry75f696pgmd9yzqvwhq5h6cipin2fvk7h881g29cjcpxim37a"))
404 (snippet
405 '(begin (delete-file "schemas/gschemas.compiled")))))
fb18f32e
AG
406 (build-system copy-build-system)
407 (arguments
408 '(#:install-plan
409 '(("." "share/gnome-shell/extensions/paperwm@hedning:matrix.org"
fd621674
JH
410 #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
411 "\\.xml$" "\\.compiled$")))
60d5ad80
JH
412 #:phases
413 (modify-phases %standard-phases
414 (add-before 'install 'compile-schemas
415 (lambda _
416 (with-directory-excursion "schemas"
417 (invoke "make"))
418 #t)))))
419 (native-inputs
420 `(("glib:bin" ,glib "bin"))) ; for glib-compile-schemas
fb18f32e
AG
421 (home-page "https://github.com/paperwm/PaperWM")
422 (synopsis "Tiled scrollable window management for GNOME Shell")
423 (description "PaperWM is an experimental GNOME Shell extension providing
424scrollable tiling of windows and per monitor workspaces. It's inspired by paper
425notebooks and tiling window managers.")
426 (license license:gpl3)))
427
72332f3c
GL
428(define-public numix-theme
429 (package
430 (name "numix-theme")
431 (version "2.6.7")
432 (source (origin
433 (method git-fetch)
434 (uri (git-reference
435 (url "https://github.com/numixproject/numix-gtk-theme.git")
436 (commit version)))
437 (file-name (git-file-name name version))
438 (sha256
439 (base32
440 "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7"))))
441 (build-system gnu-build-system)
442 (arguments
443 '(#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
444 #:phases
445 (modify-phases %standard-phases
446 (delete 'configure)
447 (delete 'check))))
448 (native-inputs
449 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas
450 ("gnome-shell" ,gnome-shell)
451 ("gtk+" ,gtk+)
452 ("xmllint" ,libxml2)
453 ("ruby-sass" ,ruby-sass)))
454 (synopsis "Flat theme with light and dark elements")
455 (description "Numix is a modern flat theme with a combination of light and
456dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
457 (home-page "https://numixproject.github.io")
458 (license license:gpl3+)))
099ce5d4
GL
459
460(define-public papirus-icon-theme
461 (let ((version "0.0.0") ;; The package does not use semver
462 (revision "0")
463 (tag "20191201"))
464 (package
465 (name "papirus-icon-theme")
466 (version (git-version version revision tag))
467 (source
468 (origin
469 (method git-fetch)
470 (uri (git-reference
471 (url "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git")
472 (commit tag)))
473 (sha256
474 (base32
475 "0lnz1kmz28xh1f4slbsx7ycji5hgszyiyprbf5w5fbjhvi5gzw1h"))
476 (file-name (git-file-name name version))))
477 (build-system gnu-build-system)
478 (arguments
479 '(#:tests? #f
480 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
481 #:phases
482 (modify-phases %standard-phases
483 (delete 'bootstrap)
484 (delete 'configure)
485 (delete 'build))))
486 (native-inputs
487 `(("gtk+:bin" ,gtk+ "bin")))
488 (home-page "https://git.io/papirus-icon-theme")
489 (synopsis "Fork of Paper icon theme with a lot of new icons and a few extras")
490 (description "Papirus is a fork of the icon theme Paper with a lot of new icons
491and a few extra features.")
492 (license license:gpl3))))