From a76d0f032b6d4148bd36dcb640109fae20922bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 10 Feb 2019 23:11:20 +0100 Subject: [PATCH] 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. --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 34 ++++++++++++- gnu/packages/patches/gnome-shell-theme.patch | 53 ++++++++++++++++++++ 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/gnome-shell-theme.patch diff --git a/gnu/local.mk b/gnu/local.mk index 37083ca916..3bb60d3ade 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -827,6 +827,7 @@ dist_patch_DATA = \ %D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ + %D%/packages/patches/gnome-shell-theme.patch \ %D%/packages/patches/gnome-todo-libical-compat.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-fix-test-transaction-failure.patch \ 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 @@ (define-module (gnu packages gnome) #: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 @@ (define-module (gnu packages gnome) #: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 @@ (define-module (gnu packages gnome) #: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 @@ (define-public gnome-shell 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 @@ (define-public gnome-shell ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("python" ,python) - ("xsltproc" ,libxslt))) + ("xsltproc" ,libxslt) + ("ruby-sass" ,ruby-sass))) (inputs `(("accountsservice" ,accountsservice) ("caribou" ,caribou) diff --git a/gnu/packages/patches/gnome-shell-theme.patch b/gnu/packages/patches/gnome-shell-theme.patch new file mode 100644 index 0000000000..fc7f7caf0f --- /dev/null +++ b/gnu/packages/patches/gnome-shell-theme.patch @@ -0,0 +1,53 @@ +Adjust GNOME-Shell so that it uses a Guix theme by default. + +Patch by Ludovic Courtès . + +diff --git a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml +index 76aeaa5..8eaf32e 100644 +--- a/data/gnome-shell-theme.gresource.xml ++++ b/data/gnome-shell-theme.gresource.xml +@@ -22,6 +22,8 @@ + no-events.svg + no-notifications.svg + noise-texture.png ++ guix-background.png ++ guix-logo.png + pad-osd.css + page-indicator-active.svg + page-indicator-inactive.svg +diff --git a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss +index 54d9f39..b9badd0 100644 +--- a/data/theme/gnome-shell-sass/_common.scss ++++ b/data/theme/gnome-shell-sass/_common.scss +@@ -1742,7 +1742,16 @@ $legacy_icon_size: 24px; + + } + +- .login-dialog-logo-bin { padding: 24px 0px; } ++ .login-dialog-logo-bin { ++ /* Make it a bit narrower than .login-dialog-user-list. */ ++ width: 12em; ++ height: 8em; ++ background: url(resource:///org/gnome/shell/theme/guix-logo.png); ++ background-color: transparent; ++ background-repeat: no-repeat; ++ background-size: contain; ++ background-position: center; } ++ + .login-dialog-banner { color: darken($osd_fg_color,10%); } + .login-dialog-button-box { spacing: 5px; } + .login-dialog-message-warning { color: $warning_color; } +@@ -1889,9 +1898,10 @@ $legacy_icon_size: 24px; + } + + #lockDialogGroup { +- background: #2e3436 url(resource:///org/gnome/shell/theme/noise-texture.png); +- background-repeat: repeat; +-} ++ background: #2e3436 url(resource:///org/gnome/shell/theme/guix-background.png); ++ background-repeat: no-repeat; ++ background-size: cover; ++ background-position: center; } + + #screenShieldNotifications { + StButton#vhandle, StButton#hhandle {