summary refs log tree commit diff
path: root/gnu/packages/gnome.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-02-10 23:11:20 +0100
committerLudovic Courtès <ludo@gnu.org>2019-02-10 23:25:01 +0100
commita76d0f032b6d4148bd36dcb640109fae20922bbc (patch)
treefe73992af0553d0b0fabb972e48e6fab6b9d7068 /gnu/packages/gnome.scm
parent5e6a5aeebd7b735e5d5f2eed496cc1c7e8a5b4c9 (diff)
downloadguix-a76d0f032b6d4148bd36dcb640109fae20922bbc.tar.gz
gnu: gnome-shell: Customize the GDM log-in screen.
* gnu/packages/patches/gnome-shell-theme.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gnome.scm (gnome-shell)[source](patches, modules)
(snippet): New fields.
[arguments]: Add 'rebuild-css' phase.
[native-inputs]: Add RUBY-SASS.
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r--gnu/packages/gnome.scm34
1 files changed, 32 insertions, 2 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index db10b0a16b..367d5de16c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -126,6 +126,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages selinux)
@@ -149,6 +150,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu artwork)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
@@ -159,6 +161,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (guix gexp)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
@@ -5570,11 +5573,37 @@ properties, screen resolution, and other GNOME parameters.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1f20x36ymkp1j667hb7s7byly2gqc4m0anldy3qwp38vm8437caq"))))
+                "1f20x36ymkp1j667hb7s7byly2gqc4m0anldy3qwp38vm8437caq"))
+              (patches (search-patches "gnome-shell-theme.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               #~(begin
+                   ;; CSS files have to be regenerated from the .scss source
+                   ;; that 'gnome-shell-theme.patch' modifies.
+                   (for-each delete-file
+                             (find-files "data/theme"
+                                         "^gnome-shell.*\\.css$"))
+
+                   ;; Copy images for use on the GDM log-in screen.
+                   (copy-file #$(file-append %artwork-repository
+                                             "/slim/0.x/background.png")
+                              "data/theme/guix-background.png")
+                   (invoke #+(file-append inkscape "/bin/inkscape")
+                           "--export-png=data/theme/guix-logo.png"
+                           #$(file-append %artwork-repository
+                                          "/logo/Guix-horizontal-white.svg"))
+                   #t))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-before 'build 'rebuild-css
+           (lambda _
+             ;; Rebuild the CSS files from the .scss files that our patch
+             ;; modifies.
+             (invoke "make" "-C" "data"
+                     "theme/gnome-shell.css"
+                     "theme/gnome-shell-high-contrast.css")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out     (assoc-ref outputs "out"))
@@ -5604,7 +5633,8 @@ properties, screen resolution, and other GNOME parameters.")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python)
-       ("xsltproc" ,libxslt)))
+       ("xsltproc" ,libxslt)
+       ("ruby-sass" ,ruby-sass)))
     (inputs
      `(("accountsservice" ,accountsservice)
        ("caribou" ,caribou)