aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnome.scm34
-rw-r--r--gnu/packages/patches/gnome-shell-theme.patch53
3 files changed, 86 insertions, 2 deletions
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 @@
#: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 {