mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2025-07-09 18:05:20 +00:00
Compare commits
No commits in common. "1f7b63ae66d101856ef7011c8080705c60d496a4" and "396f263ff6fc6771e74aa007227f956422ed7287" have entirely different histories.
1f7b63ae66
...
396f263ff6
@ -8,7 +8,7 @@
|
|||||||
(make-empty-file custom-file)
|
(make-empty-file custom-file)
|
||||||
(load custom-file))
|
(load custom-file))
|
||||||
|
|
||||||
(let ((font-config (locate-user-emacs-file "fonts.el")))
|
(let ((font-config "$$fonts.el$$"))
|
||||||
(when (file-exists-p font-config)
|
(when (file-exists-p font-config)
|
||||||
(load-file font-config)))
|
(load-file font-config)))
|
||||||
|
|
||||||
@ -197,8 +197,9 @@
|
|||||||
(use-package geiser
|
(use-package geiser
|
||||||
:custom
|
:custom
|
||||||
(geiser-autodoc-identifier-format "%s → %s")
|
(geiser-autodoc-identifier-format "%s → %s")
|
||||||
|
(geiser-default-implementation 'guile)
|
||||||
|
(geiser-active-implementation '(guile))
|
||||||
(geiser-mode-smart-tab-p t)
|
(geiser-mode-smart-tab-p t)
|
||||||
(geiser-mode-start-repl-p t)
|
|
||||||
(geiser-repl-query-on-kill-p nil)
|
(geiser-repl-query-on-kill-p nil)
|
||||||
:init
|
:init
|
||||||
;; Context menu on right click.
|
;; Context menu on right click.
|
||||||
@ -206,6 +207,10 @@
|
|||||||
(defun context-menu ()
|
(defun context-menu ()
|
||||||
(let ((menu (make-sparse-keymap)))
|
(let ((menu (make-sparse-keymap)))
|
||||||
(pcase major-mode
|
(pcase major-mode
|
||||||
|
('geiser-repl-mode
|
||||||
|
(define-key menu (vector 'insert-image)
|
||||||
|
'("Insert image" . geiser--guile-picture-language--pict-from-file))
|
||||||
|
menu)
|
||||||
('scheme-mode
|
('scheme-mode
|
||||||
(define-key menu (vector 'switch-to-repl)
|
(define-key menu (vector 'switch-to-repl)
|
||||||
'("Switch to REPL" . geiser-repl-switch))
|
'("Switch to REPL" . geiser-repl-switch))
|
||||||
@ -225,9 +230,6 @@
|
|||||||
;;guix:emacs-geiser-guile
|
;;guix:emacs-geiser-guile
|
||||||
(use-package geiser-guile
|
(use-package geiser-guile
|
||||||
:after (geiser)
|
:after (geiser)
|
||||||
:custom
|
|
||||||
(geiser-active-implementation '(guile))
|
|
||||||
(geiser-default-implementation 'guile)
|
|
||||||
:config
|
:config
|
||||||
;; TODO: Make `flycheck-guile' support `guix repl'.
|
;; TODO: Make `flycheck-guile' support `guix repl'.
|
||||||
(dolist (path
|
(dolist (path
|
||||||
@ -308,6 +310,7 @@
|
|||||||
(setopt initial-scratch-message
|
(setopt initial-scratch-message
|
||||||
";;; Type your Guile program here and evaluate it.\n\n")
|
";;; Type your Guile program here and evaluate it.\n\n")
|
||||||
(scheme-mode)
|
(scheme-mode)
|
||||||
|
(geiser-repl-switch)
|
||||||
(geiser-repl-import-module "(rosenthal)")
|
(geiser-repl-import-module "(rosenthal)")
|
||||||
(geiser-repl-import-module "(nonguix transformations)")
|
(geiser-repl-import-module "(nonguix transformations)")
|
||||||
(delete-window)
|
(delete-window)
|
||||||
|
@ -338,8 +338,8 @@ binds {
|
|||||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||||
|
|
||||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
Mod+T { spawn "foot"; }
|
Mod+T { spawn "$$bin/alacritty$$"; }
|
||||||
Mod+D { spawn "rofi" "-show" "drun"; }
|
Mod+D { spawn "$$bin/rofi$$" "-show" "drun"; }
|
||||||
// Super+Alt+L { spawn "swaylock"; }
|
// Super+Alt+L { spawn "swaylock"; }
|
||||||
|
|
||||||
// You can also use a shell. Do this if you need pipes, multiple commands, etc.
|
// You can also use a shell. Do this if you need pipes, multiple commands, etc.
|
||||||
@ -348,14 +348,14 @@ binds {
|
|||||||
|
|
||||||
// Example volume keys mappings for PipeWire & WirePlumber.
|
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||||
// The allow-when-locked=true property makes them work even when the session is locked.
|
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
|
XF86AudioRaiseVolume allow-when-locked=true { spawn "$$bin/wpctl$$" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
|
||||||
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
|
XF86AudioLowerVolume allow-when-locked=true { spawn "$$bin/wpctl$$" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
|
||||||
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
XF86AudioMute allow-when-locked=true { spawn "$$bin/wpctl$$" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
||||||
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
XF86AudioMicMute allow-when-locked=true { spawn "$$bin/wpctl$$" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
||||||
|
|
||||||
// Example brightness key mappings for light.
|
// Example brightness key mappings for light.
|
||||||
XF86MonBrightnessUp allow-when-locked=true { spawn "light" "-A" "10"; }
|
XF86MonBrightnessUp allow-when-locked=true { spawn "$$bin/light$$" "-A" "10"; }
|
||||||
XF86MonBrightnessDown allow-when-locked=true { spawn "light" "-U" "10"; }
|
XF86MonBrightnessDown allow-when-locked=true { spawn "$$bin/light$$" "-U" "10"; }
|
||||||
|
|
||||||
Mod+Q { close-window; }
|
Mod+Q { close-window; }
|
||||||
|
|
||||||
@ -578,7 +578,7 @@ binds {
|
|||||||
|
|
||||||
prefer-no-csd
|
prefer-no-csd
|
||||||
spawn-at-startup "sh" "-c" "pgrep --uid $USER shepherd > /dev/null || shepherd"
|
spawn-at-startup "sh" "-c" "pgrep --uid $USER shepherd > /dev/null || shepherd"
|
||||||
spawn-at-startup "xwayland-satellite" ":233"
|
spawn-at-startup "$$bin/xwayland-satellite$$" ":233"
|
||||||
environment {
|
environment {
|
||||||
DISPLAY ":233"
|
DISPLAY ":233"
|
||||||
}
|
}
|
||||||
|
@ -85,12 +85,12 @@
|
|||||||
"format": "{icon} {volume}%",
|
"format": "{icon} {volume}%",
|
||||||
"format-icons": ["\uF026", "\uF027", "\uF028"],
|
"format-icons": ["\uF026", "\uF027", "\uF028"],
|
||||||
"format-muted": "Muted {volume}%",
|
"format-muted": "Muted {volume}%",
|
||||||
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
|
"on-click": "$$bin/wpctl$$ set-mute @DEFAULT_AUDIO_SINK@ toggle",
|
||||||
"on-click-right": "pavucontrol",
|
"on-click-right": "$$bin/pavucontrol$$",
|
||||||
},
|
},
|
||||||
"backlight": {
|
"backlight": {
|
||||||
"on-scroll-down": "light -U 5",
|
"on-scroll-down": "$$bin/light$$ -U 5",
|
||||||
"on-scroll-up": "light -A 5",
|
"on-scroll-up": "$$bin/light$$ -A 5",
|
||||||
"format": "{icon} {percent}%",
|
"format": "{icon} {percent}%",
|
||||||
"format-icons": ["\uF186", "\uF0EB"],
|
"format-icons": ["\uF186", "\uF0EB"],
|
||||||
"tooltip": false,
|
"tooltip": false,
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services base)
|
#:use-module (gnu services base)
|
||||||
#:use-module (gnu services configuration)
|
|
||||||
#:use-module (gnu services desktop)
|
#:use-module (gnu services desktop)
|
||||||
#:use-module (gnu services sddm)
|
#:use-module (gnu services sddm)
|
||||||
#:use-module (gnu services xorg)
|
#:use-module (gnu services xorg)
|
||||||
@ -28,7 +27,9 @@
|
|||||||
|
|
||||||
#:use-module (rosenthal packages xorg)
|
#:use-module (rosenthal packages xorg)
|
||||||
|
|
||||||
#:export (home-blueman-applet-configuration
|
#:export (%rosenthal-example-emacs-init
|
||||||
|
|
||||||
|
home-blueman-applet-configuration
|
||||||
home-blueman-applet-service-type
|
home-blueman-applet-service-type
|
||||||
|
|
||||||
home-fcitx5-configuration
|
home-fcitx5-configuration
|
||||||
@ -55,21 +56,33 @@
|
|||||||
home-waybar-configuration
|
home-waybar-configuration
|
||||||
home-waybar-service-type
|
home-waybar-service-type
|
||||||
|
|
||||||
%rosenthal-skeletons
|
|
||||||
%rosenthal-desktop-services
|
%rosenthal-desktop-services
|
||||||
%rosenthal-desktop-home-services))
|
%rosenthal-desktop-home-services))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Configuration file presets.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define %rosenthal-example-emacs-init
|
||||||
|
(computed-substitution-with-inputs "init.el"
|
||||||
|
(local-file "../examples/emacs/init.el")
|
||||||
|
(list (local-file "../examples/emacs" #:recursive? #t))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Blueman
|
;;; Blueman
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-blueman-applet-configuration
|
(define-record-type* <home-blueman-applet-configuration>
|
||||||
(blueman
|
home-blueman-applet-configuration
|
||||||
(file-like (spec->pkg+out "blueman"))
|
make-home-blueman-applet-configuration
|
||||||
""))
|
home-blueman-applet-configuration?
|
||||||
|
this-home-blueman-applet-configuration
|
||||||
|
(blueman home-blueman-applet-configuration-blueman
|
||||||
|
(default (spec->pkg+out "blueman"))))
|
||||||
|
|
||||||
(define %home-blueman-applet-shepherd
|
(define home-blueman-applet-shepherd-service
|
||||||
(match-record-lambda <home-blueman-applet-configuration>
|
(match-record-lambda <home-blueman-applet-configuration>
|
||||||
(blueman)
|
(blueman)
|
||||||
(list (shepherd-service
|
(list (shepherd-service
|
||||||
@ -87,7 +100,7 @@
|
|||||||
(list (service-extension home-profile-service-type
|
(list (service-extension home-profile-service-type
|
||||||
(compose list home-blueman-applet-configuration-blueman))
|
(compose list home-blueman-applet-configuration-blueman))
|
||||||
(service-extension home-shepherd-service-type
|
(service-extension home-shepherd-service-type
|
||||||
%home-blueman-applet-shepherd)))
|
home-blueman-applet-shepherd-service)))
|
||||||
(default-value (home-blueman-applet-configuration))
|
(default-value (home-blueman-applet-configuration))
|
||||||
(description "Run blueman applet, a tray applet for managing bluetooth.")))
|
(description "Run blueman applet, a tray applet for managing bluetooth.")))
|
||||||
|
|
||||||
@ -96,32 +109,38 @@
|
|||||||
;;; Fcitx5
|
;;; Fcitx5
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define list-of-file-likes?
|
(define-record-type* <home-fcitx5-configuration>
|
||||||
(list-of file-like?))
|
home-fcitx5-configuration
|
||||||
(define-maybe file-like)
|
make-home-fcitx5-configuration
|
||||||
|
home-fcitx5-configuration?
|
||||||
(define-configuration/no-serialization home-fcitx5-configuration
|
this-home-fcitx5-configuration
|
||||||
(fcitx5
|
(fcitx5 home-fcitx5-configuration-fcitx5
|
||||||
(file-like (spec->pkg "fcitx5"))
|
(default (spec->pkg "fcitx5")))
|
||||||
"")
|
(utilities home-fcitx5-configuration-utilities
|
||||||
(utilities
|
(default (specs->pkgs "fcitx5-configtool")))
|
||||||
(list-of-file-likes (specs->pkgs "fcitx5-configtool"))
|
(themes home-fcitx5-configuration-themes
|
||||||
"")
|
(default '()))
|
||||||
(themes
|
(input-method-editors home-fcitx5-configuration-input-method-editors
|
||||||
(list-of-file-likes '())
|
(default '()))
|
||||||
"")
|
(gtk-im-module? home-fcitx5-configuration-gtk-im-module?
|
||||||
(input-method-editors
|
(default #f))
|
||||||
(list-of-file-likes '())
|
(qt-im-module? home-fcitx5-configuration-qt-im-module?
|
||||||
"")
|
(default #f))
|
||||||
(gtk-im-module?
|
(xim? home-fcitx5-configuration-xim?
|
||||||
(boolean #f)
|
(default #t))
|
||||||
"")
|
;; Extensions
|
||||||
(qt-im-module?
|
(environment-variables home-fcitx5-configuration-environment-variables
|
||||||
(boolean #f)
|
(default (%home-fcitx5-environment-variables
|
||||||
"")
|
this-home-fcitx5-configuration))
|
||||||
(xim?
|
(thunked))
|
||||||
(boolean #t)
|
(profile home-fcitx5-configuration-profile
|
||||||
""))
|
(default (%home-fcitx5-profile
|
||||||
|
this-home-fcitx5-configuration))
|
||||||
|
(thunked))
|
||||||
|
(shepherd home-fcitx5-configuration-shepherd
|
||||||
|
(default (%home-fcitx5-shepherd
|
||||||
|
this-home-fcitx5-configuration))
|
||||||
|
(thunked)))
|
||||||
|
|
||||||
(define %home-fcitx5-environment-variables
|
(define %home-fcitx5-environment-variables
|
||||||
(match-record-lambda <home-fcitx5-configuration>
|
(match-record-lambda <home-fcitx5-configuration>
|
||||||
@ -167,11 +186,11 @@
|
|||||||
(name 'fcitx5)
|
(name 'fcitx5)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension home-environment-variables-service-type
|
(list (service-extension home-environment-variables-service-type
|
||||||
%home-fcitx5-environment-variables)
|
home-fcitx5-configuration-environment-variables)
|
||||||
(service-extension home-profile-service-type
|
(service-extension home-profile-service-type
|
||||||
%home-fcitx5-profile)
|
home-fcitx5-configuration-profile)
|
||||||
(service-extension home-shepherd-service-type
|
(service-extension home-shepherd-service-type
|
||||||
%home-fcitx5-shepherd)))
|
home-fcitx5-configuration-shepherd)))
|
||||||
(default-value (home-fcitx5-configuration))
|
(default-value (home-fcitx5-configuration))
|
||||||
(description "Run fcitx5, an input method framework.")))
|
(description "Run fcitx5, an input method framework.")))
|
||||||
|
|
||||||
@ -180,21 +199,32 @@
|
|||||||
;;; mako
|
;;; mako
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-mako-configuration
|
(define %rosenthal-example-mako-config
|
||||||
(mako
|
(local-file "../examples/mako.conf"))
|
||||||
(file-like (spec->pkg "mako"))
|
|
||||||
"")
|
(define-record-type* <home-mako-configuration>
|
||||||
(config
|
home-mako-configuration
|
||||||
maybe-file-like
|
make-home-mako-configuration
|
||||||
"")
|
home-mako-configuration?
|
||||||
)
|
this-home-mako-configuration
|
||||||
|
(mako home-mako-configuration-mako
|
||||||
|
(default (spec->pkg "mako")))
|
||||||
|
(config home-mako-configuration-config
|
||||||
|
(default %rosenthal-example-mako-config))
|
||||||
|
;; Extensions.
|
||||||
|
(xdg-config home-mako-configuration-xdg-config
|
||||||
|
(default (%home-mako-xdg-config
|
||||||
|
this-home-mako-configuration))
|
||||||
|
(thunked))
|
||||||
|
(shepherd home-mako-configuration-shepherd
|
||||||
|
(default (%home-mako-shepherd
|
||||||
|
this-home-mako-configuration))
|
||||||
|
(thunked)))
|
||||||
|
|
||||||
(define %home-mako-xdg-config
|
(define %home-mako-xdg-config
|
||||||
(match-record-lambda <home-mako-configuration>
|
(match-record-lambda <home-mako-configuration>
|
||||||
(config)
|
(config)
|
||||||
(if (maybe-value-set? config)
|
`(("mako/config" ,config))))
|
||||||
`(("mako/config" ,config))
|
|
||||||
'())))
|
|
||||||
|
|
||||||
(define %home-mako-shepherd
|
(define %home-mako-shepherd
|
||||||
(match-record-lambda <home-mako-configuration>
|
(match-record-lambda <home-mako-configuration>
|
||||||
@ -212,9 +242,9 @@
|
|||||||
(name 'mako)
|
(name 'mako)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension home-xdg-configuration-files-service-type
|
(list (service-extension home-xdg-configuration-files-service-type
|
||||||
%home-mako-xdg-config)
|
home-mako-configuration-xdg-config)
|
||||||
(service-extension home-shepherd-service-type
|
(service-extension home-shepherd-service-type
|
||||||
%home-mako-shepherd)))
|
home-mako-configuration-shepherd)))
|
||||||
(default-value (home-mako-configuration))
|
(default-value (home-mako-configuration))
|
||||||
(description "Run mako, a notification daemon.")))
|
(description "Run mako, a notification daemon.")))
|
||||||
|
|
||||||
@ -223,12 +253,15 @@
|
|||||||
;;; network-manager-applet
|
;;; network-manager-applet
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-network-manager-applet-configuration
|
(define-record-type* <home-network-manager-applet-configuration>
|
||||||
(network-manager-applet
|
home-network-manager-applet-configuration
|
||||||
(file-like (spec->pkg "network-manager-applet"))
|
make-home-network-manager-applet-configuration
|
||||||
""))
|
home-network-manager-applet-configuration?
|
||||||
|
this-home-network-manager-applet-configuration
|
||||||
|
(network-manager-applet home-network-manager-applet-configuration-network-manager-applet
|
||||||
|
(default (spec->pkg "network-manager-applet"))))
|
||||||
|
|
||||||
(define %home-network-manager-applet-shepherd
|
(define home-network-manager-applet-shepherd-service
|
||||||
(match-record-lambda <home-network-manager-applet-configuration>
|
(match-record-lambda <home-network-manager-applet-configuration>
|
||||||
(network-manager-applet)
|
(network-manager-applet)
|
||||||
(list (shepherd-service
|
(list (shepherd-service
|
||||||
@ -246,7 +279,7 @@
|
|||||||
(list (service-extension home-profile-service-type
|
(list (service-extension home-profile-service-type
|
||||||
(compose list home-network-manager-applet-configuration-network-manager-applet))
|
(compose list home-network-manager-applet-configuration-network-manager-applet))
|
||||||
(service-extension home-shepherd-service-type
|
(service-extension home-shepherd-service-type
|
||||||
%home-network-manager-applet-shepherd)))
|
home-network-manager-applet-shepherd-service)))
|
||||||
(default-value (home-network-manager-applet-configuration))
|
(default-value (home-network-manager-applet-configuration))
|
||||||
(description "Run nm-applet, a tray applet for managing networks.")))
|
(description "Run nm-applet, a tray applet for managing networks.")))
|
||||||
|
|
||||||
@ -255,24 +288,40 @@
|
|||||||
;;; niri
|
;;; niri
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-niri-configuration
|
(define %rosenthal-example-niri-config
|
||||||
(config
|
(computed-substitution-with-inputs "niri.kdl"
|
||||||
maybe-file-like
|
(local-file "../examples/niri.kdl")
|
||||||
""))
|
(cons xwayland-satellite
|
||||||
|
(specs->pkgs "alacritty"
|
||||||
|
"guix-backgrounds"
|
||||||
|
"light"
|
||||||
|
"rofi-wayland"
|
||||||
|
"wireplumber"))))
|
||||||
|
|
||||||
|
(define-record-type* <home-niri-configuration>
|
||||||
|
home-niri-configuration
|
||||||
|
make-home-niri-configuration
|
||||||
|
home-niri-configuration?
|
||||||
|
this-home-niri-configuration
|
||||||
|
(config home-niri-configuration-config
|
||||||
|
(default %rosenthal-example-niri-config))
|
||||||
|
;; Extension.
|
||||||
|
(xdg-config home-niri-configuration-xdg-config
|
||||||
|
(default (%home-niri-xdg-config
|
||||||
|
this-home-niri-configuration))
|
||||||
|
(thunked)))
|
||||||
|
|
||||||
(define %home-niri-xdg-config
|
(define %home-niri-xdg-config
|
||||||
(match-record-lambda <home-niri-configuration>
|
(match-record-lambda <home-niri-configuration>
|
||||||
(config)
|
(config)
|
||||||
(if (maybe-value-set? config)
|
`(("niri/config.kdl" ,config))))
|
||||||
`(("niri/config.kdl" ,config))
|
|
||||||
'())))
|
|
||||||
|
|
||||||
(define home-niri-service-type
|
(define home-niri-service-type
|
||||||
(service-type
|
(service-type
|
||||||
(name 'niri)
|
(name 'niri)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension home-xdg-configuration-files-service-type
|
(list (service-extension home-xdg-configuration-files-service-type
|
||||||
%home-niri-xdg-config)))
|
home-niri-configuration-xdg-config)))
|
||||||
(default-value (home-niri-configuration))
|
(default-value (home-niri-configuration))
|
||||||
(description
|
(description
|
||||||
"Set up configuration file for niri, a scrollable-tiling Wayland
|
"Set up configuration file for niri, a scrollable-tiling Wayland
|
||||||
@ -283,24 +332,38 @@ compositor.")))
|
|||||||
;;; rofi
|
;;; rofi
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-rofi-configuration
|
(define %rosenthal-example-rofi-config
|
||||||
(config
|
(mixed-text-file "rofi.rasi" "\
|
||||||
maybe-file-like
|
configuration {
|
||||||
""))
|
icon-theme: \"Qogir\";
|
||||||
|
}
|
||||||
|
@theme \"" (spec->pkg "rofi-wayland") "/share/rofi/themes/fullscreen-preview.rasi\"\n"))
|
||||||
|
|
||||||
|
|
||||||
|
(define-record-type* <home-rofi-configuration>
|
||||||
|
home-rofi-configuration
|
||||||
|
make-home-rofi-configuration
|
||||||
|
home-rofi-configuration?
|
||||||
|
this-home-rofi-configuration
|
||||||
|
(config home-rofi-configuration-config
|
||||||
|
(default %rosenthal-example-rofi-config))
|
||||||
|
;; Extension.
|
||||||
|
(xdg-config home-rofi-configuration-xdg-config
|
||||||
|
(default (%home-rofi-xdg-config
|
||||||
|
this-home-rofi-configuration))
|
||||||
|
(thunked)))
|
||||||
|
|
||||||
(define %home-rofi-xdg-config
|
(define %home-rofi-xdg-config
|
||||||
(match-record-lambda <home-rofi-configuration>
|
(match-record-lambda <home-rofi-configuration>
|
||||||
(config)
|
(config)
|
||||||
(if (maybe-value-set? config)
|
`(("rofi/config.rasi" ,config))))
|
||||||
`(("rofi/config.rasi" ,config))
|
|
||||||
'())))
|
|
||||||
|
|
||||||
(define home-rofi-service-type
|
(define home-rofi-service-type
|
||||||
(service-type
|
(service-type
|
||||||
(name 'rofi)
|
(name 'rofi)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension home-xdg-configuration-files-service-type
|
(list (service-extension home-xdg-configuration-files-service-type
|
||||||
%home-rofi-xdg-config)))
|
home-rofi-configuration-xdg-config)))
|
||||||
(default-value (home-rofi-configuration))
|
(default-value (home-rofi-configuration))
|
||||||
(description
|
(description
|
||||||
"Set up configuration file for rofi, an application launcher.")))
|
"Set up configuration file for rofi, an application launcher.")))
|
||||||
@ -310,13 +373,20 @@ compositor.")))
|
|||||||
;;; swaybg
|
;;; swaybg
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-swaybg-configuration
|
(define-record-type* <home-swaybg-configuration>
|
||||||
(swaybg
|
home-swaybg-configuration
|
||||||
(file-like (spec->pkg "swaybg"))
|
make-home-swaybg-configuration
|
||||||
"")
|
home-swaybg-configuration?
|
||||||
(background
|
this-home-swaybg-configuration
|
||||||
(file-like (local-file "../examples/wallpaper.jpg"))
|
(swaybg home-swaybg-configuration-swaybg
|
||||||
""))
|
(default (spec->pkg "swaybg")))
|
||||||
|
(background home-swaybg-configuration-background
|
||||||
|
(default (local-file "../examples/wallpaper.jpg")))
|
||||||
|
;; Extensions.
|
||||||
|
(shepherd home-swaybg-configuration-shepherd
|
||||||
|
(default (%home-swaybg-shepherd
|
||||||
|
this-home-swaybg-configuration))
|
||||||
|
(thunked)))
|
||||||
|
|
||||||
(define %home-swaybg-shepherd
|
(define %home-swaybg-shepherd
|
||||||
(match-record-lambda <home-swaybg-configuration>
|
(match-record-lambda <home-swaybg-configuration>
|
||||||
@ -335,7 +405,7 @@ compositor.")))
|
|||||||
(name 'swaybg)
|
(name 'swaybg)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension home-shepherd-service-type
|
(list (service-extension home-shepherd-service-type
|
||||||
%home-swaybg-shepherd)))
|
home-swaybg-configuration-shepherd)))
|
||||||
(default-value (home-swaybg-configuration))
|
(default-value (home-swaybg-configuration))
|
||||||
(description
|
(description
|
||||||
"Run swaybg, a screen wallpaper utility for Wayland compositors.")))
|
"Run swaybg, a screen wallpaper utility for Wayland compositors.")))
|
||||||
@ -345,22 +415,38 @@ compositor.")))
|
|||||||
;;; theme
|
;;; theme
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-theme-configuration
|
(define-record-type* <home-theme-configuration>
|
||||||
(packages
|
home-theme-configuration
|
||||||
(list-of-file-likes '())
|
make-home-theme-configuration
|
||||||
"")
|
home-theme-configuration?
|
||||||
(icon-theme
|
this-home-theme-configuration
|
||||||
(string "Adwaita")
|
(packages home-theme-configuration-packages
|
||||||
"")
|
(default '()))
|
||||||
(cursor-theme
|
(icon-theme home-theme-configuration-icon-theme
|
||||||
(string "Adwaita")
|
(default "Adwaita"))
|
||||||
"")
|
(cursor-theme home-theme-configuration-cursor-theme
|
||||||
(cursor-size
|
(default "Adwaita"))
|
||||||
(number 24)
|
(cursor-size home-theme-configuration-cursor-size
|
||||||
"")
|
(default 24))
|
||||||
(key-theme
|
(key-theme home-theme-configuration-key-theme
|
||||||
(string "Default")
|
(default "Default"))
|
||||||
""))
|
;; Extensions.
|
||||||
|
(environment-variables home-theme-configuration-environment-variables
|
||||||
|
(default (%home-theme-environment-variables
|
||||||
|
this-home-theme-configuration))
|
||||||
|
(thunked))
|
||||||
|
(profile home-theme-configuration-profile
|
||||||
|
(default (%home-theme-profile
|
||||||
|
this-home-theme-configuration))
|
||||||
|
(thunked))
|
||||||
|
(files home-theme-configuration-files
|
||||||
|
(default (%home-theme-files
|
||||||
|
this-home-theme-configuration))
|
||||||
|
(thunked))
|
||||||
|
(xdg-config home-theme-configuration-xdg-config
|
||||||
|
(default (%home-theme-xdg-config
|
||||||
|
this-home-theme-configuration))
|
||||||
|
(thunked)))
|
||||||
|
|
||||||
(define (%home-theme-environment-variables _)
|
(define (%home-theme-environment-variables _)
|
||||||
'(("QT_QPA_PLATFORMTHEME" . "gtk3")
|
'(("QT_QPA_PLATFORMTHEME" . "gtk3")
|
||||||
@ -379,7 +465,7 @@ compositor.")))
|
|||||||
(icon-theme)
|
(icon-theme)
|
||||||
`((".icons/default/index.theme"
|
`((".icons/default/index.theme"
|
||||||
,(plain-file "index.theme"
|
,(plain-file "index.theme"
|
||||||
(format #f "\
|
(format #f "~
|
||||||
[icon theme]
|
[icon theme]
|
||||||
Inherits = ~a~%"
|
Inherits = ~a~%"
|
||||||
icon-theme))))))
|
icon-theme))))))
|
||||||
@ -389,7 +475,7 @@ Inherits = ~a~%"
|
|||||||
(icon-theme cursor-theme cursor-size key-theme)
|
(icon-theme cursor-theme cursor-size key-theme)
|
||||||
`(("gtk-3.0/settings.ini"
|
`(("gtk-3.0/settings.ini"
|
||||||
,(plain-file "settings.ini"
|
,(plain-file "settings.ini"
|
||||||
(format #f "\
|
(format #f "~
|
||||||
[Settings]
|
[Settings]
|
||||||
gtk-theme-name = Adwaita
|
gtk-theme-name = Adwaita
|
||||||
gtk-icon-theme-name = ~a
|
gtk-icon-theme-name = ~a
|
||||||
@ -404,13 +490,13 @@ gtk-key-theme-name = ~a~%"
|
|||||||
(name 'theme)
|
(name 'theme)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension home-environment-variables-service-type
|
(list (service-extension home-environment-variables-service-type
|
||||||
%home-theme-environment-variables)
|
home-theme-configuration-environment-variables)
|
||||||
(service-extension home-profile-service-type
|
(service-extension home-profile-service-type
|
||||||
%home-theme-profile)
|
home-theme-configuration-profile)
|
||||||
(service-extension home-files-service-type
|
(service-extension home-files-service-type
|
||||||
%home-theme-files)
|
home-theme-configuration-files)
|
||||||
(service-extension home-xdg-configuration-files-service-type
|
(service-extension home-xdg-configuration-files-service-type
|
||||||
%home-theme-xdg-config)))
|
home-theme-configuration-xdg-config)))
|
||||||
(default-value (home-theme-configuration))
|
(default-value (home-theme-configuration))
|
||||||
(description "Set up desktop themes.")))
|
(description "Set up desktop themes.")))
|
||||||
|
|
||||||
@ -419,26 +505,40 @@ gtk-key-theme-name = ~a~%"
|
|||||||
;;; waybar
|
;;; waybar
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-waybar-configuration
|
(define %rosenthal-example-waybar-config
|
||||||
(waybar
|
(computed-substitution-with-inputs "config.jsonc"
|
||||||
(file-like (spec->pkg "waybar"))
|
(local-file "../examples/waybar/config.jsonc")
|
||||||
"")
|
(specs->pkgs "light" "pavucontrol" "wireplumber")))
|
||||||
(config
|
|
||||||
maybe-file-like
|
(define %rosenthal-example-waybar-style
|
||||||
"")
|
(local-file "../examples/waybar/style.css"))
|
||||||
(style
|
|
||||||
maybe-file-like
|
(define-record-type* <home-waybar-configuration>
|
||||||
""))
|
home-waybar-configuration
|
||||||
|
make-home-waybar-configuration
|
||||||
|
home-waybar-configuration?
|
||||||
|
this-home-waybar-configuration
|
||||||
|
(waybar home-waybar-configuration-waybar
|
||||||
|
(default (spec->pkg "waybar")))
|
||||||
|
(config home-waybar-configuration-config
|
||||||
|
(default %rosenthal-example-waybar-config))
|
||||||
|
(style home-waybar-configuration-style
|
||||||
|
(default %rosenthal-example-waybar-style))
|
||||||
|
;; Extensions.
|
||||||
|
(xdg-config home-waybar-configuration-xdg-config
|
||||||
|
(default (%home-waybar-xdg-config
|
||||||
|
this-home-waybar-configuration))
|
||||||
|
(thunked))
|
||||||
|
(shepherd home-waybar-configuration-shepherd
|
||||||
|
(default (%home-waybar-shepherd
|
||||||
|
this-home-waybar-configuration))
|
||||||
|
(thunked)))
|
||||||
|
|
||||||
(define %home-waybar-xdg-config
|
(define %home-waybar-xdg-config
|
||||||
(match-record-lambda <home-waybar-configuration>
|
(match-record-lambda <home-waybar-configuration>
|
||||||
(config style)
|
(config style)
|
||||||
`(,@(if (maybe-value-set? config)
|
`(("waybar/config.jsonc" ,config)
|
||||||
`(("waybar/config.jsonc" ,config))
|
("waybar/style.css" ,style))))
|
||||||
'())
|
|
||||||
,@(if (maybe-value-set? style)
|
|
||||||
`(("waybar/style.css" ,style))
|
|
||||||
'()))))
|
|
||||||
|
|
||||||
(define %home-waybar-shepherd
|
(define %home-waybar-shepherd
|
||||||
(match-record-lambda <home-waybar-configuration>
|
(match-record-lambda <home-waybar-configuration>
|
||||||
@ -456,46 +556,12 @@ gtk-key-theme-name = ~a~%"
|
|||||||
(name 'waybar)
|
(name 'waybar)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension home-xdg-configuration-files-service-type
|
(list (service-extension home-xdg-configuration-files-service-type
|
||||||
%home-waybar-xdg-config)
|
home-waybar-configuration-xdg-config)
|
||||||
(service-extension home-shepherd-service-type
|
(service-extension home-shepherd-service-type
|
||||||
%home-waybar-shepherd)))
|
home-waybar-configuration-shepherd)))
|
||||||
(default-value (home-waybar-configuration))
|
(default-value (home-waybar-configuration))
|
||||||
(description "Run waybar, a status bar for Wayland compositors.")))
|
(description "Run waybar, a status bar for Wayland compositors.")))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
|
||||||
;;; Configuration file presets.
|
|
||||||
;;;
|
|
||||||
|
|
||||||
|
|
||||||
(define %rosenthal-skeletons
|
|
||||||
`((".config/emacs/fonts.el"
|
|
||||||
,(local-file "../examples/emacs/fonts.el"))
|
|
||||||
(".config/emacs/init.el"
|
|
||||||
,(local-file "../examples/emacs/init.el"))
|
|
||||||
(".config/foot/foot.ini"
|
|
||||||
,(plain-file "foot.ini" "font=monospace:size=12\n"))
|
|
||||||
(".config/mako/config"
|
|
||||||
,(local-file "../examples/mako.conf"))
|
|
||||||
(".config/niri/config.kdl"
|
|
||||||
,(local-file "../examples/niri.kdl"))
|
|
||||||
(".config/rofi/config.rasi"
|
|
||||||
,(plain-file "rofi.rasi" "\
|
|
||||||
configuration {
|
|
||||||
icon-theme: \"Qogir\";
|
|
||||||
}
|
|
||||||
@theme \"/run/current-system/profile/share/rofi/themes/fullscreen-preview.rasi\"\n"))
|
|
||||||
(".config/waybar/config.jsonc"
|
|
||||||
,(local-file "../examples/waybar/config.jsonc"))
|
|
||||||
(".config/waybar/style.css"
|
|
||||||
,(local-file "../examples/waybar/style.css"))
|
|
||||||
(".config/xfce4/helpers.rc"
|
|
||||||
,(plain-file "helpers.rc" "TerminalEmulator=rofi-sensible-terminal\n"))
|
|
||||||
;; Selected from the default skeletons.
|
|
||||||
(".config/gdb/gdbinit" ,%default-gdbinit)
|
|
||||||
(".config/nano/nanorc" ,%default-nanorc)
|
|
||||||
(".guile" ,%default-dotguile)))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Service presets.
|
;;; Service presets.
|
||||||
@ -535,8 +601,6 @@ configuration {
|
|||||||
(bluetooth-configuration
|
(bluetooth-configuration
|
||||||
(auto-enable? #t)))
|
(auto-enable? #t)))
|
||||||
|
|
||||||
(service gvfs-service-type)
|
|
||||||
|
|
||||||
;; Screen lockers for Wayland environment. No dependencies are pulled
|
;; Screen lockers for Wayland environment. No dependencies are pulled
|
||||||
;; in since we're using empty files.
|
;; in since we're using empty files.
|
||||||
(service screen-locker-service-type
|
(service screen-locker-service-type
|
||||||
@ -569,13 +633,21 @@ configuration {
|
|||||||
(identifier-syntax (rosenthal-desktop-services-for-system)))
|
(identifier-syntax (rosenthal-desktop-services-for-system)))
|
||||||
|
|
||||||
(define %rosenthal-desktop-home-services
|
(define %rosenthal-desktop-home-services
|
||||||
(cons* (service home-shepherd-service-type
|
(cons* (service home-files-service-type
|
||||||
|
`((".guile" ,%default-dotguile)))
|
||||||
|
|
||||||
|
(service home-xdg-configuration-files-service-type
|
||||||
|
`(("gdb/gdbinit" ,%default-gdbinit)
|
||||||
|
("nano/nanorc" ,%default-nanorc)))
|
||||||
|
|
||||||
|
(service home-shepherd-service-type
|
||||||
(home-shepherd-configuration
|
(home-shepherd-configuration
|
||||||
;; Start by WM to inherit environment variables for graphical session.
|
;; Start by WM to inherit environment variables for graphical session.
|
||||||
(auto-start? #f)
|
(auto-start? #f)
|
||||||
(daemonize? #f)))
|
(daemonize? #f)))
|
||||||
|
|
||||||
(service home-dbus-service-type)
|
(service home-dbus-service-type)
|
||||||
|
|
||||||
(service home-pipewire-service-type)
|
(service home-pipewire-service-type)
|
||||||
|
|
||||||
(service home-blueman-applet-service-type)
|
(service home-blueman-applet-service-type)
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (rosenthal utils packages)
|
|
||||||
|
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services configuration)
|
#:use-module (gnu services configuration)
|
||||||
|
Loading…
Reference in New Issue
Block a user