From c629e4243330b5081c4b85563fe9c028e43310c2 Mon Sep 17 00:00:00 2001 From: Timo Wilken Date: Sat, 31 Dec 2022 11:43:30 +0100 Subject: Extract theming files into separate module --- tw/home/lap.scm | 111 ++++++++------------------------------------------------ 1 file changed, 16 insertions(+), 95 deletions(-) (limited to 'tw/home/lap.scm') diff --git a/tw/home/lap.scm b/tw/home/lap.scm index f7439a21..33683af1 100644 --- a/tw/home/lap.scm +++ b/tw/home/lap.scm @@ -7,20 +7,6 @@ ;; See also, for some tips: ;; https://github.com/alezost/shepherd-config/blob/master/init.scm -;; TODO: Integrate upstream (ctp) configs into ~/guix-home using git submodules: -;; https://github.com/catppuccin/grub ; TODO: make this system-wide -;; https://github.com/catppuccin/tty ; system-wide -;; https://github.com/catppuccin/papirus-folders -;; https://github.com/catppuccin/Kvantum -;; https://github.com/catppuccin/fzf -;; https://github.com/catppuccin/obs -;; https://github.com/catppuccin/insomnia -;; https://github.com/catppuccin/firefox ; for icecat - -;; Manual installation needed? -;; https://github.com/catppuccin/dark-reader -;; https://github.com/catppuccin/github - (define-module (tw home lap) #:use-module ((gnu) #:select (use-package-modules)) @@ -38,14 +24,15 @@ #:use-module (gnu services shepherd) #:use-module (guix channels) #:use-module (guix gexp) - #:use-module (guix modules) #:use-module ((nongnu packages messaging) #:select (signal-desktop zoom)) #:use-module (tw packages alice) #:use-module (tw packages catppuccin) #:use-module (tw packages games) #:use-module (tw packages shell) - #:use-module (tw packages xorg)) + #:use-module (tw packages xorg) + #:use-module (tw gexp) + #:use-module (tw theme)) (use-package-modules admin android base bittorrent calendar cmake compression compton curl @@ -56,37 +43,6 @@ rsync shells shellutils sqlite ssh syndication tcl terminals textutils tmux video version-control vim web web-browsers wm xdisorg xorg) -(fluid-set! read-eval? #t) ; allow #. read expansions in this file - -;; One of "latte" (light theme), "frappe", "macchiato", "mocha" (dark -;; themes); ordered brightest to darkest. -;; Set and use this at read time so that `local-file' gets a literal -;; argument. Anything else confuses it and causes it to search -;; relative to the working directory, not this file's directory. -#.(define catppuccin-theme-variant "mocha") - -;; "Base" colour from the active Catppuccin theme (see -;; https://github.com/catppuccin/catppuccin). -(define catppuccin-background-color "1e1e2e") - -;; See also: `file-join' in (gnu home services ssh). -(define (combined-text-file name . files) - "A file which is the concatenation of the contents of other files." - ;; We need to use #$output for `computed-file' to work. - ;; Of course this isn't documented anywhere! - (computed-file name - (with-imported-modules (source-module-closure - '((guix build utils))) ; for `dump-port' - #~(begin - (use-modules (guix build utils)) - (call-with-output-file #$output - (lambda (oport) - (for-each (lambda (in-file) - (call-with-input-file in-file - (lambda (iport) - (dump-port iport oport)))) - '#$files))))))) - (define gui-packages (list ;; i3 and Xorg. i3 itself must be installed system-wide for gdm to pick it up. @@ -238,56 +194,28 @@ (simple-service 'gui-config home-xdg-configuration-files-service-type `(("dunst/dunstrc" ,(local-file "files/dunstrc")) - ("dunst/dunstrc.d/50-catppuccin.conf" - ,(local-file #.(string-append "files/catppuccin/dunst/src/" - catppuccin-theme-variant ".conf") - "dunst-theme.conf")) + ("dunst/dunstrc.d/50-catppuccin.conf" ,catppuccin-dunstrc) ("emacs/include" ,(local-file "files/emacs-packages" #:recursive? #t)) ("emacs/init.el" ,(local-file "files/emacs-init.el")) - (#.(string-append "emacs/catppuccin-" catppuccin-theme-variant "-theme.el") - ,(local-file #.(string-append "files/catppuccin/emacs/catppuccin-" - catppuccin-theme-variant "-theme.el"))) + (,(string-append "emacs/" (local-file-name catppuccin-emacs-theme)) + ,catppuccin-emacs-theme) ("gtk-2.0/gtkrc" ,(local-file "files/gtk2.ini")) ("gtk-3.0/settings.ini" ,(local-file "files/gtk3.ini")) ("i3/config" ,(local-file "files/i3.conf")) ;; TODO: "kdeglobals" works for some programs (e.g. kdeconnect-app), ;; but not for others (e.g. nheko, kdeconnect-settings)... - ("kdeglobals" - ,(local-file #.(let ((variant (string-upcase catppuccin-theme-variant 0 1))) - (string-append "files/catppuccin/kde/" variant - "/Catppuccin" variant ".colors")))) - ("kitty/diff.conf" - ,(local-file #.(string-append "files/catppuccin/kitty/diff-" - catppuccin-theme-variant ".conf") - "kitty-diff-theme.conf")) + ("kdeglobals" ,catppuccin-kdeglobals) + ("kitty/diff.conf" ,catppuccin-kitty-diff) ("kitty/kitty.conf" ,(combined-text-file "kitty.conf" - (local-file "files/kitty.conf") - (local-file #.(string-append "files/catppuccin/kitty/" - catppuccin-theme-variant ".conf") - "kitty-theme.conf"))) + (local-file "files/kitty.conf") + catppuccin-kitty)) ("polybar/config.ini" ,(local-file "files/polybar.ini")) - ("polybar/catppuccin.ini" - ,(local-file #.(string-append "files/catppuccin/polybar/themes/" - catppuccin-theme-variant ".ini"))) + ("polybar/catppuccin.ini" ,catppuccin-polybar) ("rofi/config.rasi" ,(local-file "files/rofi.rasi")) - ("rofi/themes/catppuccin.rasi" - ,(computed-file "catppuccin.rasi" - (with-imported-modules (source-module-closure - '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (copy-file #$(local-file #.(string-append - "files/catppuccin/rofi/basic/.local/share/rofi/themes/catppuccin-" - catppuccin-theme-variant ".rasi")) - #$output) - (substitute* #$output - (("JetBrainsMono Nerd Font 14") "Fira Sans 12") ; default font - (("border-col: #[0-9a-f]*;") "border-col: #585b70;")))))) ; i3 border colour + ("rofi/themes/catppuccin.rasi" ,catppuccin-rofi) ("zathura/zathurarc" ,(local-file "files/zathurarc")) - ("zathura/catppuccin" - ,(local-file #.(string-append "files/catppuccin/zathura/src/catppuccin-" - catppuccin-theme-variant))))) + ("zathura/catppuccin" ,catppuccin-zathura))) (simple-service 'gui-files home-files-service-type @@ -424,7 +352,7 @@ emacs-yaml-mode gui-packages)) - + ;; To search for available home services, run 'guix home search KEYWORD'. (services (cons* @@ -466,16 +394,9 @@ ("khard/khard.conf" ,(local-file "files/khard.conf")) ("lesskey" ,(local-file "files/lesskey")) ("mutt/muttrc" ,(local-file "files/muttrc")) - ("mutt/catppuccin.muttrc" - ,(local-file #.(if (string=? catppuccin-theme-variant "latte") - "files/catppuccin/neomutt/latte-neomuttrc" - "files/catppuccin/neomutt/neomuttrc"))) + ("mutt/catppuccin.muttrc" ,catppuccin-muttrc) ("newsboat/config" ,(local-file "files/newsboat.conf")) - ("newsboat/config.catppuccin" - ,(local-file #.(if (string=? catppuccin-theme-variant "latte") - "files/catppuccin/newsboat/themes/latte" - "files/catppuccin/newsboat/themes/dark") - "newsboat-theme.conf")) + ("newsboat/config.catppuccin" ,catppuccin-newsboat) ("ranger/rc.conf" ,(local-file "files/ranger.conf")) ("user-dirs.locale" ,(plain-file "user-dirs.locale" "C")) ; Not sure if this is needed. Arch has it. ("user-dirs.dirs" ,(local-file "files/user-dirs.dirs")) -- cgit v1.2.3