gnome-xyz.scm 38 KB

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