Subject: Add gnome-xyz for themes and shell extensions
From: Leo Prikler <[email-masked]>
To: [email-masked]
Date: Thu, 07 Nov 2019 10:46:14 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

This patch series adds (gnu packages gnome-xyz) for GNOME themes[1] and
extensions[2].  I've initialized it with some packages that I
personally use.  Another potential candidate for inclusion into this
file would for instance be the Matcha GTK theme (bug#38095).

I'm not 100% sure on the licenses.  In some places, I only found
LICENSE files without a comment specifying "or later" elsewhere --
perhaps I've overlooked some.  For now, I'm using the stricter versions
(sans "+").

[1] https://www.gnome-look.org/
[2] https://extensions.gnome.org/
From fe442bad1d9e47cff288f871c523d32db694fdfa Mon Sep 17 00:00:00 2001
From: Leo Prikler <[email-masked]>
Date: Thu, 7 Nov 2019 10:16:19 +0100
Subject: [PATCH 1/3] gnu: Add delft-icon-theme

* /gnu/packages/gnome-xyz.scm: New file.
(delft-icon-theme): New variable.
* /gnu/local.mk: Add it.
---
 gnu/local.mk               |  1 +
 gnu/packages/gnome-xyz.scm | 56 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 gnu/packages/gnome-xyz.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 2513b4003c..0f02c4b6be 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -213,6 +213,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/gl.scm				\
   %D%/packages/glib.scm				\
   %D%/packages/gnome.scm			\
+  %D%/packages/gnome-xyz.scm			\
   %D%/packages/gnu-doc.scm			\
   %D%/packages/gnucash.scm			\
   %D%/packages/gnunet.scm			\
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
new file mode 100644
index 0000000000..a88d17c871
--- /dev/null
+++ b/gnu/packages/gnome-xyz.scm
@@ -0,0 +1,56 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Leo Prikler <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages gnome-xyz)
+  #:use-module (guix build-system trivial)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses) #:prefix license:))
+
+(define-public delft-icon-theme
+  (package
+   (name "delft-icon-theme")
+   (version "1.10")
+   (source
+    (origin
+     (method git-fetch)
+     (uri (git-reference
+           (url "https://github.com/madmaxms/iconpack-delft.git")
+           (commit (string-append "v" version))))
+     (sha256
+      (base32
+       "0vw3yw9f9ygzfd2k3zrfih3r0vkzlhk1bmsk8sapvk7np24i1z9s"))
+     (file-name (git-file-name name version))))
+   (build-system trivial-build-system)
+   (arguments
+    `(#:modules ((guix build utils))
+      #:builder
+      (begin
+        (use-modules (guix build utils))
+        (copy-recursively (assoc-ref %build-inputs "source") "icons")
+        (delete-file "icons/README.md")
+        (delete-file "icons/LICENSE")
+        (delete-file "icons/logo.jpg")
+        (copy-recursively "icons" (string-append %output "/share/icons")))))
+   (home-page "https://www.gnome-look.org/p/1199881/")
+   (synopsis "Continuation of Faenza icon theme with up to date app icons")
+   (description "Delft is a fork of the popular icon theme Faenza with up to
+date app icons.  It will stay optically close to the original Faenza icons,
+which haven't been updated for some years.  The new app icons are ported from
+the Obsidian icon theme.")
+   (license license:gpl3)))
-- 
2.24.0

From c740b5786479406700d27e399f40311e90b629c3 Mon Sep 17 00:00:00 2001
From: Leo Prikler <[email-masked]>
Date: Thu, 7 Nov 2019 10:20:22 +0100
Subject: [PATCH 2/3] gnu: add gnome-shell-extension-dash-to-dock

* gnu/packages/gnome-xyz.scm: (gnome-shell-extension-dash-to-dock): New variable.
---
 gnu/packages/gnome-xyz.scm | 42 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index a88d17c871..86e3b5989b 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -18,9 +18,13 @@
 
 (define-module (gnu packages gnome-xyz)
   #:use-module (guix build-system trivial)
+  #:use-module (guix build-system gnu)
   #:use-module (guix git-download)
   #:use-module (guix packages)
-  #:use-module ((guix licenses) #:prefix license:))
+  #:use-module ((guix licenses) #:prefix license:)
+
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages pkg-config))
 
 (define-public delft-icon-theme
   (package
@@ -54,3 +58,39 @@ date app icons.  It will stay optically close to the original Faenza icons,
 which haven't been updated for some years.  The new app icons are ported from
 the Obsidian icon theme.")
    (license license:gpl3)))
+
+(define-public gnome-shell-extension-dash-to-dock
+  (package
+    (name "gnome-shell-extension-dash-to-dock")
+    (version "65")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/micheleg/dash-to-dock.git")
+                    (commit (string-append "extensions.gnome.org-v" version))))
+              (sha256
+               (base32
+                "0ln49l9s0yfl30pi77pz7xlmh63l9vjppi863kry5lay10dsvz47"))
+              (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f
+       #:make-flags (list (format #f
+                                  "INSTALLBASE=~a/share/gnome-shell/extensions"
+                                  (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (delete 'configure))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib" ,glib "bin")))
+    (synopsis "Transforms GNOME's dash into a dock")
+    (description "This extension moves the dash out of the overview,
+transforming it into a dock for easier application launching and faster window
+switching.")
+    (home-page "https://micheleg.github.io/dash-to-dock/")
+    (license license:gpl2+)))
-- 
2.24.0

From 90c2d6c4fae02717b607eff29f546d07ce45edea Mon Sep 17 00:00:00 2001
From: Leo Prikler <[email-masked]>
Date: Thu, 7 Nov 2019 10:22:02 +0100
Subject: [PATCH 3/3] gnu: add gnome-shell-extension-noannoyance

* gnu/packages/gnome-xyz: (gnome-shell-extension-noannoyance): New variable.
---
 gnu/packages/gnome-xyz.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 86e3b5989b..d09b0428bb 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -94,3 +94,34 @@ transforming it into a dock for easier application launching and faster window
 switching.")
     (home-page "https://micheleg.github.io/dash-to-dock/")
     (license license:gpl2+)))
+
+(define-public gnome-shell-extension-noannoyance
+  (package
+    (name "gnome-shell-extension-noannoyance")
+    (version "5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/BjoernDaase/noannoyance.git")
+                    (commit "e37b5b3c31f577b4698bc6659bc9fec5ea9ac5d4")))
+              (sha256
+               (base32
+                "0fa8l3xlh8kbq07y4385wpb908zm6x53z81q16xlmin97dln32hh"))
+              (file-name (git-file-name name version))))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let ((dst (string-append
+                     (assoc-ref %outputs "out")
+                     "/share/gnome-shell/extensions/"
+                     "[email-masked]")))
+           (mkdir-p dst)
+           (copy-recursively (assoc-ref %build-inputs "source") dst)))))
+    (synopsis "Removes 'Window is ready' annotation")
+    (description "One of the many extensions, that remove this annoying message.
+It uses ES6 syntax and claims to be more actively maintained than others.")
+    (home-page "https://extensions.gnome.org/extension/2182/noannoyance/")
+    (license license:gpl2)))
-- 
2.24.0