Subject: [PATCH] gnu: Add gnome-shell-extension-just-perfection.

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 15 Dec 2021 20:40:27 +0100

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

diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 0e3147e604..ef945ef9ba 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -534,6 +534,57 @@ (define-public gnome-shell-extension-hide-app-icon
         (list license:gpl2
               license:gpl3)))))
 
+(define-public gnome-shell-extension-just-perfection
+  (package
+    (name "gnome-shell-extension-just-perfection")
+    (version "16.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/jrahmatzadeh/just-perfection/")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "05zbzgs92zqlmjq4h2q2gggrf1qiz8l6739zzg1x5090gvk4iak3"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:install-plan
+       '(("src"
+          "share/gnome-shell/extensions/just-perfection-desktop@just-perfection"
+          #:include-regexp ("\\.css$" "\\.compiled$" "\\.js(on)?$" "\\.ui$"))
+         ("locale"
+          "share/gnome-shell/extensions/just-perfection-desktop@just-perfection/"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'drop-executable-bits
+           (lambda _
+             (for-each
+              (lambda (file)
+                (let ((stat (lstat file)))
+                  (chmod file (logand (stat:mode stat) (lognot #o111)))))
+              (find-files "." #:directories? #f))))
+         (add-before 'install 'build
+           (lambda _
+             (invoke "glib-compile-schemas" "src/schemas")
+             (for-each
+              (lambda (file)
+                (let* ((base (basename file))
+                       (noext (substring base 0 (- (string-length base) 3)))
+                       (dest (string-append "locale/" noext "/LC_MESSAGES/"))
+                       (out (string-append dest "just-perfection.mo")))
+                  (mkdir-p dest)
+                  (invoke "msgfmt" "-c" file "-o" out)))
+              (find-files "po" "\\.po$")))))))
+    (native-inputs
+     (list `(,glib "bin") gettext-minimal))
+    (home-page "https://gitlab.gnome.org/jrahmatzadeh/just-perfection")
+    (synopsis "Customize GNOME Shell behaviour")
+    (description "Just Perfection allows you to change various settings, that
+GNOME Shell itself does not provide out of the box, such as the ability to hide
+certain elements or change animation speeds.")
+    (license license:gpl3)))
+
 (define-public gnome-shell-extension-dash-to-panel
   (package
     (name "gnome-shell-extension-dash-to-panel")
-- 
2.34.0