diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-02-10 23:11:20 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-02-10 23:25:01 +0100 |
commit | a76d0f032b6d4148bd36dcb640109fae20922bbc (patch) | |
tree | fe73992af0553d0b0fabb972e48e6fab6b9d7068 /gnu/packages | |
parent | 5e6a5aeebd7b735e5d5f2eed496cc1c7e8a5b4c9 (diff) | |
download | gnu-guix-a76d0f032b6d4148bd36dcb640109fae20922bbc.tar gnu-guix-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')
-rw-r--r-- | gnu/packages/gnome.scm | 34 | ||||
-rw-r--r-- | gnu/packages/patches/gnome-shell-theme.patch | 53 |
2 files changed, 85 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) 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 <ludo@gnu.org>. + +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 @@ + <file>no-events.svg</file> + <file>no-notifications.svg</file> + <file>noise-texture.png</file> ++ <file>guix-background.png</file> ++ <file>guix-logo.png</file> + <file>pad-osd.css</file> + <file>page-indicator-active.svg</file> + <file>page-indicator-inactive.svg</file> +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 { |