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.
This commit is contained in:
Ludovic Courtès 2019-02-10 23:11:20 +01:00
parent 5e6a5aeebd
commit a76d0f032b
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 86 additions and 2 deletions

View file

@ -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 \

View file

@ -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)

View file

@ -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 {