| 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at> |
| 3 | ;;; Copyright © 2019 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 Ekaitz Zarraga <ekaitz@elenq.tech> |
| 8 | ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> |
| 9 | ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> |
| 10 | ;;; |
| 11 | ;;; This file is part of GNU Guix. |
| 12 | ;;; |
| 13 | ;;; GNU Guix is free software; you can redistribute it and/or modify it |
| 14 | ;;; under the terms of the GNU General Public License as published by |
| 15 | ;;; the Free Software Foundation; either version 3 of the License, or (at |
| 16 | ;;; your option) any later version. |
| 17 | ;;; |
| 18 | ;;; GNU Guix is distributed in the hope that it will be useful, but |
| 19 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of |
| 20 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 21 | ;;; GNU General Public License for more details. |
| 22 | ;;; |
| 23 | ;;; You should have received a copy of the GNU General Public License |
| 24 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
| 25 | |
| 26 | (define-module (gnu packages gnome-xyz) |
| 27 | #:use-module (guix build-system trivial) |
| 28 | #:use-module (guix build-system gnu) |
| 29 | #:use-module (guix build-system copy) |
| 30 | #:use-module (guix build-system meson) |
| 31 | #:use-module (guix git-download) |
| 32 | #:use-module (guix packages) |
| 33 | #:use-module ((guix licenses) #:prefix license:) |
| 34 | #:use-module (gnu packages base) |
| 35 | #:use-module (gnu packages bash) |
| 36 | #:use-module (gnu packages gettext) |
| 37 | #:use-module (gnu packages glib) |
| 38 | #:use-module (gnu packages gnome) |
| 39 | #:use-module (gnu packages gtk) |
| 40 | #:use-module (gnu packages pkg-config) |
| 41 | #:use-module (gnu packages python-xyz) |
| 42 | #:use-module (gnu packages ssh) |
| 43 | #:use-module (gnu packages tls) |
| 44 | #:use-module (gnu packages ruby) |
| 45 | #:use-module (gnu packages xml)) |
| 46 | |
| 47 | (define-public matcha-theme |
| 48 | (package |
| 49 | (name "matcha-theme") |
| 50 | (version "2020-05-09") |
| 51 | (source |
| 52 | (origin |
| 53 | (method git-fetch) |
| 54 | (uri |
| 55 | (git-reference |
| 56 | (url "https://github.com/vinceliuice/Matcha-gtk-theme") |
| 57 | (commit version))) |
| 58 | (file-name (git-file-name name version)) |
| 59 | (sha256 |
| 60 | (base32 |
| 61 | "0fp3ijynyvncy2byjjyba573p81x2pl2hdzv17mg40r8d5mjlkww")))) |
| 62 | (build-system trivial-build-system) |
| 63 | (arguments |
| 64 | '(#:modules ((guix build utils)) |
| 65 | #:builder |
| 66 | (begin |
| 67 | (use-modules (guix build utils)) |
| 68 | (let* ((out (assoc-ref %outputs "out")) |
| 69 | (source (assoc-ref %build-inputs "source")) |
| 70 | (bash (assoc-ref %build-inputs "bash")) |
| 71 | (coreutils (assoc-ref %build-inputs "coreutils")) |
| 72 | (themesdir (string-append out "/share/themes"))) |
| 73 | (setenv "PATH" |
| 74 | (string-append coreutils "/bin:" |
| 75 | (string-append bash "/bin:"))) |
| 76 | (copy-recursively source (getcwd)) |
| 77 | (patch-shebang "install.sh") |
| 78 | (mkdir-p themesdir) |
| 79 | (invoke "./install.sh" "-d" themesdir) |
| 80 | #t)))) |
| 81 | (inputs |
| 82 | `(("gtk-engines" ,gtk-engines))) |
| 83 | (native-inputs |
| 84 | `(("bash" ,bash) |
| 85 | ("coreutils" ,coreutils))) |
| 86 | (synopsis "Flat design theme for GTK 3, GTK 2 and GNOME-Shell") |
| 87 | (description "Matcha is a flat Design theme for GTK 3, GTK 2 and |
| 88 | Gnome-Shell which supports GTK 3 and GTK 2 based desktop environments |
| 89 | like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.") |
| 90 | (home-page "https://github.com/vinceliuice/matcha") |
| 91 | (license license:gpl3+))) |
| 92 | |
| 93 | (define-public delft-icon-theme |
| 94 | (package |
| 95 | (name "delft-icon-theme") |
| 96 | (version "1.12") |
| 97 | (source |
| 98 | (origin |
| 99 | (method git-fetch) |
| 100 | (uri (git-reference |
| 101 | (url "https://github.com/madmaxms/iconpack-delft") |
| 102 | (commit (string-append "v" version)))) |
| 103 | (sha256 |
| 104 | (base32 |
| 105 | "1r6b6jf793jxz15ljniwbqy3vcvsl2712qiigfrfrm46fdxlshjd")) |
| 106 | (file-name (git-file-name name version)))) |
| 107 | (build-system copy-build-system) |
| 108 | (arguments |
| 109 | `(#:install-plan |
| 110 | `(("." "share/icons" #:exclude ("README.md" "LICENSE" "logo.jpg"))) |
| 111 | #:phases |
| 112 | (modify-phases %standard-phases |
| 113 | (add-after 'unpack 'patch-index.theme |
| 114 | (lambda _ |
| 115 | (substitute* "Delft/index.theme" |
| 116 | (("gnome") "Adwaita")) |
| 117 | #t))))) |
| 118 | (home-page "https://www.gnome-look.org/p/1199881/") |
| 119 | (synopsis "Continuation of Faenza icon theme with up to date app icons") |
| 120 | (description "Delft is a fork of the popular icon theme Faenza with up to |
| 121 | date app icons. It will stay optically close to the original Faenza icons, |
| 122 | which haven't been updated for some years. The new app icons are ported from |
| 123 | the Obsidian icon theme.") |
| 124 | (license license:gpl3))) |
| 125 | |
| 126 | (define-public gnome-shell-extension-appindicator |
| 127 | (package |
| 128 | (name "gnome-shell-extension-appindicator") |
| 129 | (version "33") |
| 130 | (source (origin |
| 131 | (method git-fetch) |
| 132 | (uri (git-reference |
| 133 | (url |
| 134 | "https://github.com/ubuntu/gnome-shell-extension-appindicator.git") |
| 135 | (commit (string-append "v" version)))) |
| 136 | (sha256 |
| 137 | (base32 |
| 138 | "0qm77s080nbf4gqnfzpwp8a7jf7lliz6fxbsd3lasvrr11pgsk87")) |
| 139 | (file-name (git-file-name name version)))) |
| 140 | (build-system copy-build-system) |
| 141 | (arguments |
| 142 | `(#:install-plan |
| 143 | '(("." ,(string-append "share/gnome-shell/extensions/" |
| 144 | "appindicatorsupport@rgcjonas.gmail.com"))))) |
| 145 | (synopsis "Adds KStatusNotifierItem support to GNOME Shell") |
| 146 | (description "This extension integrates Ubuntu AppIndicators |
| 147 | and KStatusNotifierItems (KDE's successor of the systray) into |
| 148 | GNOME Shell.") |
| 149 | (home-page "https://github.com/ubuntu/gnome-shell-extension-appindicator/") |
| 150 | (license license:gpl2+))) |
| 151 | |
| 152 | (define-public gnome-shell-extension-clipboard-indicator |
| 153 | (package |
| 154 | (name "gnome-shell-extension-clipboard-indicator") |
| 155 | (version "34") |
| 156 | (source (origin |
| 157 | (method git-fetch) |
| 158 | (uri (git-reference |
| 159 | (url (string-append "https://github.com/Tudmotu/" |
| 160 | "gnome-shell-extension-clipboard-indicator.git")) |
| 161 | (commit (string-append "v" version)))) |
| 162 | (file-name (git-file-name name version)) |
| 163 | (sha256 |
| 164 | (base32 |
| 165 | "0i00psc1ky70zljd14jzr627y7nd8xwnwrh4xpajl1f6djabh12s")) |
| 166 | (modules '((guix build utils))) |
| 167 | (snippet |
| 168 | ;; Remove pre-compiled settings schemas and translations from |
| 169 | ;; source, as they are generated as part of build. Upstream |
| 170 | ;; includes them for people who want to run the software |
| 171 | ;; directly from source tree. |
| 172 | '(begin (delete-file "schemas/gschemas.compiled") |
| 173 | (for-each delete-file (find-files "locale" "\\.mo$")) |
| 174 | #t)))) |
| 175 | (build-system copy-build-system) |
| 176 | (arguments |
| 177 | '(#:install-plan |
| 178 | '(("." "share/gnome-shell/extensions/clipboard-indicator@tudmotu.com" |
| 179 | #:include-regexp ("\\.css$" "\\.compiled$" "\\.js(on)?$" "\\.mo$" "\\.xml$"))) |
| 180 | #:phases |
| 181 | (modify-phases %standard-phases |
| 182 | (add-before 'install 'compile-schemas |
| 183 | (lambda _ |
| 184 | (with-directory-excursion "schemas" |
| 185 | (invoke "glib-compile-schemas" ".")) |
| 186 | #t)) |
| 187 | (add-before 'install 'compile-locales |
| 188 | (lambda _ (invoke "./compile-locales.sh") |
| 189 | #t))))) |
| 190 | (native-inputs |
| 191 | `(("gettext" ,gettext-minimal) |
| 192 | ("glib:bin" ,glib "bin"))) ; for glib-compile-schemas |
| 193 | (home-page "https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator") |
| 194 | (synopsis "Clipboard manager extension for GNOME Shell") |
| 195 | (description "Clipboard Indicator is a clipboard manager for GNOME Shell |
| 196 | that caches clipboard history.") |
| 197 | (license license:expat))) |
| 198 | |
| 199 | (define-public gnome-shell-extension-topicons-redux |
| 200 | (package |
| 201 | (name "gnome-shell-extension-topicons-redux") |
| 202 | (version "6") |
| 203 | (source |
| 204 | (origin |
| 205 | (method git-fetch) |
| 206 | (uri (git-reference |
| 207 | (url "https://gitlab.com/pop-planet/TopIcons-Redux.git") |
| 208 | (commit version))) |
| 209 | (file-name (git-file-name name version)) |
| 210 | (sha256 |
| 211 | (base32 "1dli9xb545n3xlj6q4wl0y5gzkm903zs47p8fiq71pdvbr6v38rj")))) |
| 212 | (build-system gnu-build-system) |
| 213 | (native-inputs |
| 214 | `(("glib" ,glib "bin"))) |
| 215 | (arguments |
| 216 | `(#:tests? #f ;no test defined in the project |
| 217 | #:phases |
| 218 | (modify-phases %standard-phases |
| 219 | (delete 'configure) |
| 220 | (delete 'build) |
| 221 | (replace 'install |
| 222 | (lambda* (#:key outputs #:allow-other-keys) |
| 223 | (let ((out (assoc-ref outputs "out"))) |
| 224 | (invoke "make" |
| 225 | "install" |
| 226 | (string-append |
| 227 | "INSTALL_PATH=" |
| 228 | out |
| 229 | "/share/gnome-shell/extensions")))))))) |
| 230 | (home-page "https://gitlab.com/pop-planet/TopIcons-Redux") |
| 231 | (synopsis "Display legacy tray icons in the GNOME Shell top panel") |
| 232 | (description "Many applications, such as chat clients, downloaders, and |
| 233 | some media players, are meant to run long-term in the background even after you |
| 234 | close their window. These applications remain accessible by adding an icon to |
| 235 | the GNOME Shell Legacy Tray. However, the Legacy Tray was removed in GNOME |
| 236 | 3.26. TopIcons Redux brings those icons back into the top panel so that it's |
| 237 | easier to keep track of apps running in the backround.") |
| 238 | (license license:gpl2+))) |
| 239 | |
| 240 | (define-public gnome-shell-extension-dash-to-dock |
| 241 | (package |
| 242 | (name "gnome-shell-extension-dash-to-dock") |
| 243 | (version "67") |
| 244 | (source (origin |
| 245 | (method git-fetch) |
| 246 | (uri (git-reference |
| 247 | (url "https://github.com/micheleg/dash-to-dock") |
| 248 | (commit (string-append "extensions.gnome.org-v" |
| 249 | version)))) |
| 250 | (sha256 |
| 251 | (base32 |
| 252 | "1746xm0iyvyzj6m3pvjx11smh9w1s7naz426ki0dlr5l7jh3mpy5")) |
| 253 | (file-name (git-file-name name version)))) |
| 254 | (build-system gnu-build-system) |
| 255 | (arguments |
| 256 | '(#:tests? #f |
| 257 | #:make-flags (list (string-append "INSTALLBASE=" |
| 258 | (assoc-ref %outputs "out") |
| 259 | "/share/gnome-shell/extensions")) |
| 260 | #:phases |
| 261 | (modify-phases %standard-phases |
| 262 | (delete 'bootstrap) |
| 263 | (delete 'configure)))) |
| 264 | (native-inputs |
| 265 | `(("glib:bin" ,glib "bin") |
| 266 | ("intltool" ,intltool) |
| 267 | ("pkg-config" ,pkg-config))) |
| 268 | (propagated-inputs |
| 269 | `(("glib" ,glib))) |
| 270 | (synopsis "Transforms GNOME's dash into a dock") |
| 271 | (description "This extension moves the dash out of the |
| 272 | overview, transforming it into a dock for easier application launching and |
| 273 | faster window switching.") |
| 274 | (home-page "https://micheleg.github.io/dash-to-dock/") |
| 275 | (license license:gpl2+))) |
| 276 | |
| 277 | (define-public gnome-shell-extension-gsconnect |
| 278 | (package |
| 279 | (name "gnome-shell-extension-gsconnect") |
| 280 | ;; v33 is the last version to support GNOME 3.34 |
| 281 | (version "33") |
| 282 | (source (origin |
| 283 | (method git-fetch) |
| 284 | (uri (git-reference |
| 285 | (url (string-append "https://github.com/andyholmes" |
| 286 | "/gnome-shell-extension-gsconnect.git")) |
| 287 | (commit (string-append "v" version)))) |
| 288 | (file-name (git-file-name name version)) |
| 289 | (sha256 |
| 290 | (base32 |
| 291 | "1q03axhn75i864vgmd6myhmgwrmnpf01gsd1wl0di5x9q8mic2zn")))) |
| 292 | (build-system meson-build-system) |
| 293 | (arguments |
| 294 | `(#:configure-flags |
| 295 | (let* ((out (assoc-ref %outputs "out")) |
| 296 | (name+version (strip-store-file-name out)) |
| 297 | (gschema-dir (string-append out |
| 298 | "/share/gsettings-schemas/" |
| 299 | name+version |
| 300 | "/glib-2.0/schemas")) |
| 301 | (gnome-shell (assoc-ref %build-inputs "gnome-shell")) |
| 302 | (openssh (assoc-ref %build-inputs "openssh")) |
| 303 | (openssl (assoc-ref %build-inputs "openssl"))) |
| 304 | (list |
| 305 | (string-append "-Dgnome_shell_libdir=" gnome-shell "/lib") |
| 306 | (string-append "-Dgsettings_schemadir=" gschema-dir) |
| 307 | (string-append "-Dopenssl_path=" openssl "/bin/openssl") |
| 308 | (string-append "-Dsshadd_path=" openssh "/bin/ssh-add") |
| 309 | (string-append "-Dsshkeygen_path=" openssh "/bin/ssh-keygen") |
| 310 | (string-append "-Dsession_bus_services_dir=" out "/share/dbus-1/services") |
| 311 | "-Dpost_install=true")) |
| 312 | #:phases |
| 313 | (modify-phases %standard-phases |
| 314 | (add-before 'configure 'fix-paths |
| 315 | (lambda* (#:key inputs #:allow-other-keys) |
| 316 | (let* ((glib (assoc-ref inputs "glib:bin")) |
| 317 | (gapplication (string-append glib "/bin/gapplication")) |
| 318 | (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) |
| 319 | (substitute* "data/org.gnome.Shell.Extensions.GSConnect.desktop" |
| 320 | (("gapplication") gapplication)) |
| 321 | (for-each |
| 322 | (lambda (file) |
| 323 | (substitute* file |
| 324 | (("'use strict';") |
| 325 | (string-append "'use strict';\n\n" |
| 326 | "'" gi-typelib-path "'.split(':').forEach(" |
| 327 | "path => imports.gi.GIRepository.Repository." |
| 328 | "prepend_search_path(path));")))) |
| 329 | '("src/extension.js" "src/prefs.js")) |
| 330 | #t))) |
| 331 | (add-after 'install 'wrap-daemons |
| 332 | (lambda* (#:key inputs outputs #:allow-other-keys) |
| 333 | (let* ((out (assoc-ref outputs "out")) |
| 334 | (service-dir |
| 335 | (string-append out "/share/gnome-shell/extensions" |
| 336 | "/gsconnect@andyholmes.github.io/service")) |
| 337 | (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) |
| 338 | (wrap-program (string-append service-dir "/daemon.js") |
| 339 | `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))) |
| 340 | #t)))))) |
| 341 | (inputs |
| 342 | `(("at-spi2-core" ,at-spi2-core) |
| 343 | ("caribou" ,caribou) |
| 344 | ("evolution-data-server" ,evolution-data-server) |
| 345 | ("gjs" ,gjs) |
| 346 | ("glib" ,glib) |
| 347 | ("glib:bin" ,glib "bin") |
| 348 | ("gsound" ,gsound) |
| 349 | ("gnome-shell" ,gnome-shell) |
| 350 | ("gtk+" ,gtk+) |
| 351 | ("nautilus" ,nautilus) |
| 352 | ("openssh" ,openssh) |
| 353 | ("openssl" ,openssl) |
| 354 | ("python-nautilus" ,python-nautilus) |
| 355 | ("python-pygobject" ,python-pygobject) |
| 356 | ("upower" ,upower))) |
| 357 | (native-inputs |
| 358 | `(("gettext" ,gettext-minimal) |
| 359 | ("gobject-introspection" ,gobject-introspection) |
| 360 | ("libxml2" ,libxml2) |
| 361 | ("pkg-config" ,pkg-config))) |
| 362 | (home-page "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki") |
| 363 | (synopsis "Connect GNOME Shell with your Android phone") |
| 364 | (description "GSConnect is a complete implementation of KDE Connect |
| 365 | especially for GNOME Shell, allowing devices to securely share content, like |
| 366 | notifications or files, and other features like SMS messaging and remote |
| 367 | control.") |
| 368 | (license license:gpl2))) |
| 369 | |
| 370 | (define-public gnome-shell-extension-hide-app-icon |
| 371 | (let ((commit "4188aa5f4ba24901a053a0c3eb0d83baa8625eab") |
| 372 | (revision "0")) |
| 373 | (package |
| 374 | (name "gnome-shell-extension-hide-app-icon") |
| 375 | (version (git-version "2.7" revision commit)) |
| 376 | (source |
| 377 | (origin |
| 378 | (method git-fetch) |
| 379 | (uri (git-reference |
| 380 | (url (string-append "https://github.com/michael-rapp" |
| 381 | "/gnome-shell-extension-hide-app-icon.git")) |
| 382 | (commit commit))) |
| 383 | (sha256 |
| 384 | (base32 |
| 385 | "1i28n4bz6wrhn07vpxkr6l1ljyn7g8frp5xrr11z3z32h2hxxcd6")) |
| 386 | (file-name (git-file-name name version)))) |
| 387 | (build-system gnu-build-system) |
| 388 | (arguments |
| 389 | '(#:tests? #f ; no test target |
| 390 | #:make-flags (list (string-append "EXTENSIONS_DIR=" |
| 391 | (assoc-ref %outputs "out") |
| 392 | "/share/gnome-shell/extensions")) |
| 393 | #:phases |
| 394 | (modify-phases %standard-phases |
| 395 | (delete 'configure) ; no configure script |
| 396 | (replace 'install |
| 397 | (lambda* (#:key outputs #:allow-other-keys) |
| 398 | (let ((out (assoc-ref outputs "out")) |
| 399 | (pre "/share/gnome-shell/extensions/") |
| 400 | (dir "hide-app-icon@mrapp.sourceforge.com")) |
| 401 | (copy-recursively dir (string-append out pre dir)) |
| 402 | #t)))))) |
| 403 | (native-inputs |
| 404 | `(("glib" ,glib "bin") |
| 405 | ("intltool" ,intltool))) |
| 406 | (propagated-inputs |
| 407 | `(("glib" ,glib))) |
| 408 | (synopsis "Hide app icon from GNOME's panel") |
| 409 | (description "This extension hides the icon and/or title of the |
| 410 | currently focused application in the top panel of the GNOME shell.") |
| 411 | (home-page |
| 412 | "https://github.com/michael-rapp/gnome-shell-extension-hide-app-icon/") |
| 413 | (license |
| 414 | ;; README.md and LICENSE.txt disagree -- the former claims v3, the |
| 415 | ;; latter v2. No mention of "or later" in either place or in the code. |
| 416 | (list license:gpl2 |
| 417 | license:gpl3))))) |
| 418 | |
| 419 | (define-public gnome-shell-extension-dash-to-panel |
| 420 | (package |
| 421 | (name "gnome-shell-extension-dash-to-panel") |
| 422 | (version "38") |
| 423 | (source (origin |
| 424 | (method git-fetch) |
| 425 | (uri (git-reference |
| 426 | (url "https://github.com/home-sweet-gnome/dash-to-panel") |
| 427 | (commit (string-append "v" version)))) |
| 428 | (sha256 |
| 429 | (base32 |
| 430 | "1kvybb49l1vf0fvh8d0c6xkwnry8m330scamf5x40y63d4i213j1")) |
| 431 | (file-name (git-file-name name version)))) |
| 432 | (build-system gnu-build-system) |
| 433 | (arguments |
| 434 | `(#:tests? #f |
| 435 | #:make-flags (list (string-append "INSTALLBASE=" |
| 436 | (assoc-ref %outputs "out") |
| 437 | "/share/gnome-shell/extensions") |
| 438 | (string-append "VERSION=" |
| 439 | ,(package-version |
| 440 | gnome-shell-extension-dash-to-panel))) |
| 441 | #:phases |
| 442 | (modify-phases %standard-phases |
| 443 | (delete 'bootstrap) |
| 444 | (delete 'configure)))) |
| 445 | (native-inputs |
| 446 | `(("intltool" ,intltool) |
| 447 | ("pkg-config" ,pkg-config))) |
| 448 | (propagated-inputs |
| 449 | `(("glib" ,glib) |
| 450 | ("glib" ,glib "bin"))) |
| 451 | (synopsis "Icon taskbar for GNOME Shell") |
| 452 | (description "This extension moves the dash into the gnome main |
| 453 | panel so that the application launchers and system tray are combined |
| 454 | into a single panel, similar to that found in KDE Plasma and Windows 7+.") |
| 455 | (home-page "https://github.com/home-sweet-gnome/dash-to-panel/") |
| 456 | (license license:gpl2+))) |
| 457 | |
| 458 | (define-public gnome-shell-extension-noannoyance |
| 459 | (package |
| 460 | (name "gnome-shell-extension-noannoyance") |
| 461 | (version "5") |
| 462 | (source (origin |
| 463 | (method git-fetch) |
| 464 | (uri (git-reference |
| 465 | (url "https://github.com/BjoernDaase/noannoyance") |
| 466 | (commit "e37b5b3c31f577b4698bc6659bc9fec5ea9ac5d4"))) |
| 467 | (sha256 |
| 468 | (base32 |
| 469 | "0fa8l3xlh8kbq07y4385wpb908zm6x53z81q16xlmin97dln32hh")) |
| 470 | (file-name (git-file-name name version)))) |
| 471 | (build-system copy-build-system) |
| 472 | (arguments |
| 473 | '(#:install-plan |
| 474 | '(("." "share/gnome-shell/extensions/noannoyance@daase.net")))) |
| 475 | (synopsis "Remove 'Window is ready' annotation") |
| 476 | (description "One of the many extensions that remove this message. |
| 477 | It uses ES6 syntax and claims to be more actively maintained than others.") |
| 478 | (home-page "https://extensions.gnome.org/extension/2182/noannoyance/") |
| 479 | (license license:gpl2))) |
| 480 | |
| 481 | (define-public gnome-shell-extension-paperwm |
| 482 | (package |
| 483 | (name "gnome-shell-extension-paperwm") |
| 484 | (version "36.0") |
| 485 | (source (origin |
| 486 | (method git-fetch) |
| 487 | (uri (git-reference |
| 488 | (url "https://github.com/paperwm/PaperWM") |
| 489 | (commit version))) |
| 490 | (file-name (git-file-name name version)) |
| 491 | (sha256 |
| 492 | (base32 |
| 493 | "1ssnabwxrns36c61ppspjkr9i3qifv08pf2jpwl7cjv3pvyn4kly")) |
| 494 | (snippet |
| 495 | '(begin (delete-file "schemas/gschemas.compiled"))))) |
| 496 | (build-system copy-build-system) |
| 497 | (arguments |
| 498 | '(#:install-plan |
| 499 | '(("." "share/gnome-shell/extensions/paperwm@hedning:matrix.org" |
| 500 | #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$" |
| 501 | "\\.xml$" "\\.compiled$"))) |
| 502 | #:phases |
| 503 | (modify-phases %standard-phases |
| 504 | (add-before 'install 'compile-schemas |
| 505 | (lambda _ |
| 506 | (with-directory-excursion "schemas" |
| 507 | (invoke "make")) |
| 508 | #t))))) |
| 509 | (native-inputs |
| 510 | `(("glib:bin" ,glib "bin"))) ; for glib-compile-schemas |
| 511 | (home-page "https://github.com/paperwm/PaperWM") |
| 512 | (synopsis "Tiled scrollable window management for GNOME Shell") |
| 513 | (description "PaperWM is an experimental GNOME Shell extension providing |
| 514 | scrollable tiling of windows and per monitor workspaces. It's inspired by paper |
| 515 | notebooks and tiling window managers.") |
| 516 | (license license:gpl3))) |
| 517 | |
| 518 | (define-public numix-gtk-theme |
| 519 | (package |
| 520 | (name "numix-gtk-theme") |
| 521 | (version "2.6.7") |
| 522 | (source (origin |
| 523 | (method git-fetch) |
| 524 | (uri (git-reference |
| 525 | (url "https://github.com/numixproject/numix-gtk-theme") |
| 526 | (commit version))) |
| 527 | (file-name (git-file-name name version)) |
| 528 | (sha256 |
| 529 | (base32 |
| 530 | "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7")))) |
| 531 | (build-system gnu-build-system) |
| 532 | (arguments |
| 533 | '(#:make-flags |
| 534 | (list (string-append "INSTALL_DIR=" |
| 535 | (assoc-ref %outputs "out") |
| 536 | "/share/themes/Numix")) |
| 537 | #:tests? #f |
| 538 | #:phases |
| 539 | (modify-phases %standard-phases |
| 540 | (delete 'configure)))) ; no configure script |
| 541 | (native-inputs |
| 542 | `(("glib:bin" ,glib "bin") ; for glib-compile-schemas |
| 543 | ("gnome-shell" ,gnome-shell) |
| 544 | ("gtk+" ,gtk+) |
| 545 | ("xmllint" ,libxml2) |
| 546 | ("ruby-sass" ,ruby-sass))) |
| 547 | (synopsis "Flat theme with light and dark elements") |
| 548 | (description "Numix is a modern flat theme with a combination of light and |
| 549 | dark elements. It supports GNOME, Unity, Xfce, and Openbox.") |
| 550 | (home-page "https://numixproject.github.io") |
| 551 | (license license:gpl3+))) |
| 552 | |
| 553 | (define-public numix-theme |
| 554 | (deprecated-package "numix-theme" numix-gtk-theme)) |
| 555 | |
| 556 | (define-public papirus-icon-theme |
| 557 | (let ((version "0.0.0") ;; The package does not use semver |
| 558 | (revision "2") |
| 559 | (tag "20200602")) |
| 560 | (package |
| 561 | (name "papirus-icon-theme") |
| 562 | (version (git-version version revision tag)) |
| 563 | (source |
| 564 | (origin |
| 565 | (method git-fetch) |
| 566 | (uri (git-reference |
| 567 | (url "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme") |
| 568 | (commit tag))) |
| 569 | (sha256 |
| 570 | (base32 |
| 571 | "0yv19kl8jr2jmh9018b1qmnq68alw84vrmb35jm462qd3qzzdgah")) |
| 572 | (file-name (git-file-name name version)))) |
| 573 | (build-system gnu-build-system) |
| 574 | (arguments |
| 575 | '(#:tests? #f |
| 576 | #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) |
| 577 | #:phases |
| 578 | (modify-phases %standard-phases |
| 579 | (delete 'bootstrap) |
| 580 | (delete 'configure) |
| 581 | (delete 'build)))) |
| 582 | (native-inputs |
| 583 | `(("gtk+:bin" ,gtk+ "bin"))) |
| 584 | (home-page "https://git.io/papirus-icon-theme") |
| 585 | (synopsis "Fork of Paper icon theme with a lot of new icons and a few extras") |
| 586 | (description "Papirus is a fork of the icon theme Paper with a lot of new icons |
| 587 | and a few extra features.") |
| 588 | (license license:gpl3)))) |
| 589 | |
| 590 | (define-public vala-language-server |
| 591 | (package |
| 592 | (name "vala-language-server") |
| 593 | ;; Note to maintainer: VLS must be built with a Vala toolchain the same |
| 594 | ;; version or newer. Therefore when you update this package you may need |
| 595 | ;; to update Vala too. |
| 596 | (version "0.48") |
| 597 | (source (origin |
| 598 | (method git-fetch) |
| 599 | (uri (git-reference |
| 600 | (url "https://github.com/benwaffle/vala-language-server") |
| 601 | (commit version))) |
| 602 | (file-name (git-file-name name version)) |
| 603 | (sha256 |
| 604 | (base32 "0chgfpci247skrvsiq1l8cas8sj2z6z42dlarka3df3qwxmh0if0")))) |
| 605 | (build-system meson-build-system) |
| 606 | (arguments '(#:glib-or-gtk? #t)) |
| 607 | (inputs |
| 608 | `(("glib" ,glib) |
| 609 | ("json-glib" ,json-glib) |
| 610 | ("jsonrpc-glib" ,jsonrpc-glib) |
| 611 | ("libgee" ,libgee) |
| 612 | ("vala" ,vala-0.48))) |
| 613 | (native-inputs |
| 614 | `(("pkg-config" ,pkg-config))) |
| 615 | (home-page "https://github.com/benwaffle/vala-language-server") |
| 616 | (synopsis "Language server for Vala") |
| 617 | (description "The Vala language server is an implementation of the Vala |
| 618 | language specification for the Language Server Protocol (LSP). This tool is |
| 619 | used in text editing environments to provide a complete and integrated |
| 620 | feature-set for programming Vala effectively.") |
| 621 | (license license:lgpl2.1+))) |