diff options
| author | 2025-12-18 01:53:42 -0800 | |
|---|---|---|
| committer | 2025-12-18 01:53:42 -0800 | |
| commit | 1e79ffeec86054762d84a751a5abc12920f609ae (patch) | |
| tree | 9dac46fa2ef9b16b44b9496ef24fe3815fc420c0 | |
| parent | 5e1bc8b2ca23600c4b7be208af73e98e97f73f09 (diff) | |
| download | new-dotfiles-1e79ffeec86054762d84a751a5abc12920f609ae.tar.gz new-dotfiles-1e79ffeec86054762d84a751a5abc12920f609ae.zip | |
Unify zsh configurations
Combine all of my zsh configurations in a single variable and import it in all
the configurations.
This also adds my custom zsh functions to the configuration so that every
configuration can use them.
| -rw-r--r-- | oni/home/config/common.scm | 145 | ||||
| -rw-r--r-- | oni/home/config/data.scm | 281 | ||||
| -rw-r--r-- | oni/home/config/pop-os.scm | 133 | ||||
| -rw-r--r-- | oni/home/config/rincewind.scm | 417 |
4 files changed, 477 insertions, 499 deletions
diff --git a/oni/home/config/common.scm b/oni/home/config/common.scm index 093f99f..7db270a 100644 --- a/oni/home/config/common.scm +++ b/oni/home/config/common.scm @@ -8,6 +8,7 @@ #:use-module (oni home services guile) #:use-module (oni home services xmodmap) #:use-module (oni home services kitty) + #:use-module (oni home services zsh) #:use-module ((gnu services) #:select (simple-service)) #:use-module ((gnu home services guix) @@ -21,7 +22,7 @@ #:export (home-redshift-service home-xbindkeys-service - home-zsh-service + home-zsh-services home-guile-service home-xmodmap-service home-openssh-service @@ -95,52 +96,6 @@ ("f" . "flameshot full ~/pictures/screenshots/") ("c" . "flameshot gui"))))))) -(define home-zsh-service - (service home-zsh-service-type - (home-zsh-configuration - (environment-variables - '(("HISTFILE" . "$HOME/.zsh/histfile") - ("HISTSIZE" . "1000") - ("SAVEHIST" . "1000") - ("WORDCHARS" . ""))) - (zshrc - (list - (mixed-text-file - "zshrc" - "fpath=($HOME/.zsh/functions $fpath)\n" - "autoload -U $HOME/.zsh/functions/*(:t)\n" - "alias csi=\"rlwrap csi\"\n" - "alias scsh=\"rlwrap scsh\"\n" - "alias sbcl=\"rlwrap sbcl\"\n" - "alias hc=herbstclient\n" - "alias reco=\"pushd ~/projects/new-dotfiles/ && guix home reconfigure config.scm; popd\"\n" - "alias abcde=\"guix shell abcde -- abcde\"\n" - "setopt SHARE_HISTORY\n" - "setopt HIST_IGNORE_ALL_DUPS\n" - "setopt HIST_IGNORE_SPACE\n" - "setopt PROMPT_SUBST\n" - "zle -N x-copy-region-as-kill\n" - "zle -N x-kill-region\n" - "zle -N x-yank\n" - "bindkey -e '^[w' x-copy-region-as-kill\n" - "bindkey -e '^W' x-kill-region\n" - "bindkey -e '^Y' x-yank\n" - "bindkey -e '^[f' emacs-forward-word\n" - "bindkey -e '^[F' emacs-forward-word\n" - "bindkey -e '^[b' emacs-backward-word\n" - "bindkey -e '^[B' emacs-backward-word\n" - "autoload -Uz compinit\n" - "compinit\n" - "function horizontal-rule() {\n" - " local width=$(tput cols)\n" - " echo -e \"\\033[0;32m${(pl:$width::━:)}\\033[0m\"\n" - "}\n" - "preexec_functions+=(horizontal-rule)\n" - "precmd_functions+=(horizontal-rule)\n" - "PROMPT=\"%T \\$(spwd) %B%(?.%F{2}.%F{1}[%?])>%b%f \"") - (local-file "zsh/spwd.zsh") - (local-file "zsh/guix-environment.zsh")))))) - (define home-guile-service (service home-guile-service-type (home-guile-configuration @@ -274,3 +229,99 @@ LocalForward 19999 localhost:19999")) "1db24ca92c28255b28076792b93d533eabb3dc6a" (openpgp-fingerprint "F4C2D1DF3FDEEA63D1D30776ACC66D09CA528292"))))))) + +(define home-zsh-services + (list (service home-zsh-service-type + (home-zsh-configuration + (environment-variables + '(("HISTFILE" . "$HOME/.zsh/histfile") + ("HISTSIZE" . "1000") + ("SAVEHIST" . "1000") + ("WORDCHARS" . ""))) + (zshrc + (list + (mixed-text-file + "zshrc" + "fpath=($HOME/.zsh/functions $fpath)\n" + "autoload -U $HOME/.zsh/functions/*(:t)\n" + "alias csi=\"rlwrap csi\"\n" + "alias scsh=\"rlwrap scsh\"\n" + "alias sbcl=\"rlwrap sbcl\"\n" + "alias hc=herbstclient\n" + "alias reco=\"pushd ~/projects/new-dotfiles/ && guix home reconfigure config.scm; popd\"\n" + "alias abcde=\"guix shell abcde -- abcde\"\n" + "setopt SHARE_HISTORY\n" + "setopt HIST_IGNORE_ALL_DUPS\n" + "setopt HIST_IGNORE_SPACE\n" + "setopt PROMPT_SUBST\n" + "zle -N x-copy-region-as-kill\n" + "zle -N x-kill-region\n" + "zle -N x-yank\n" + "bindkey -e '^[w' x-copy-region-as-kill\n" + "bindkey -e '^W' x-kill-region\n" + "bindkey -e '^Y' x-yank\n" + "bindkey -e '^[f' emacs-forward-word\n" + "bindkey -e '^[F' emacs-forward-word\n" + "bindkey -e '^[b' emacs-backward-word\n" + "bindkey -e '^[B' emacs-backward-word\n" + "autoload -Uz compinit\n" + "compinit\n" + "function horizontal-rule() {\n" + " local width=$(tput cols)\n" + " echo -e \"\\033[0;32m${(pl:$width::━:)}\\033[0m\"\n" + "}\n" + "preexec_functions+=(horizontal-rule)\n" + "precmd_functions+=(horizontal-rule)\n" + "PROMPT=\"%T \\$(spwd) %B%(?.%F{2}.%F{1}[%?])>%b%f \"") + (local-file "zsh/spwd.zsh") + (local-file "zsh/guix-environment.zsh"))))) + ;; This has to be the first extension because it needs to be added to the + ;; configuration last. + (service home-zsh-syntax-highlighting-service-type) + (service home-zsh-autosuggestions-service-type) + (service home-zsh-autopair-service-type) + (service home-zsh-atuin-service-type + (home-zsh-atuin-configuration + (inline-height 20) + (filter-mode 'directory) + (history-filter + '("^ +")) + (enter-accept #t) + (common-subcommands + '("guix" + "guix home" + "nala" + "apt" + "cargo" + "composer" + "dnf" + "docker" + "docker-compose" + "docker compose" + "git" + "go" + "ip" + "kubectl" + "nix" + "nmcli" + "npm" + "pecl" + "pnpm" + "podman" + "port" + "systemctl" + "tmux" + "yarn")) + (sync-address "http://phoenix.fold-kanyu.ts.net:8888") + (search-mode "skim"))) + (service home-files-service-type + `((".zsh/functions/spwd" + ,(local-file "../../../zsh/.zsh/functions/spwd")) + (".zsh/functions/unzip" + ,(local-file "../../../zsh/.zsh/functions/unzip")) + (".zsh/functions/x-copy-region-as-kill" + ,(local-file "../../../zsh/.zsh/functions/x-copy-region-as-kill")) + (".zsh/functions/x-kill-region" + ,(local-file "../../../zsh/.zsh/functions/x-kill-region")) + (".zsh/functions/x-yank" + ,(local-file "../../../zsh/.zsh/functions/x-yank")))))) diff --git a/oni/home/config/data.scm b/oni/home/config/data.scm index 8577a4f..860d4c5 100644 --- a/oni/home/config/data.scm +++ b/oni/home/config/data.scm @@ -52,7 +52,6 @@ #:use-module ((oni home services xdisorg) #:select (home-xss-lock-service-type)) #:use-module (oni home services xsession) - #:use-module (oni home services zsh) #:use-module ((oni packages emacs) #:select (emacs-outli emacs-syncthing-status)) @@ -99,8 +98,7 @@ ;; #:use-module (oni packages hlwm-run-or-raise) #:use-module (oni packages pick-random-wallpaper) #:use-module (oni packages sawfish) - #:use-module (oni packages shutdown-rofi) - #:use-module (oni packages zsh)) + #:use-module (oni packages shutdown-rofi)) (define data-picom-service (service home-picom-service-type @@ -171,155 +169,150 @@ gforth))) (services - (list - home-channels-service - home-environment-service - home-rofi-default-service - home-dunst-default-service - home-redshift-service - ;; home-xbindkeys-service - home-zsh-service - home-guile-service - home-xmodmap-service - home-openssh-service - home-kitty-service - data-picom-service + (append + home-zsh-services + (list + home-channels-service + home-environment-service + home-rofi-default-service + home-dunst-default-service + home-redshift-service + ;; home-xbindkeys-service + home-guile-service + home-xmodmap-service + home-openssh-service + home-kitty-service + data-picom-service - ;; This has to be the first extension because it needs to be added to the - ;; configuration last. - (service home-zsh-syntax-highlighting-service-type) - (service home-zsh-autosuggestions-service-type) - (service home-zsh-contextual-abbrevs-service-type) + (service home-xsession-service-type + (home-xsession-configuration + (configuration + (list + (mixed-text-file + "xsession" + "xrdb -cpp m4 -merge \"${HOME}/.config/X11/Xresources\" -I\"${HOME}/.config/X11/Xresources.d\"\n" + "xrandr --setprovideroutputsource modesetting NVIDIA-0\n" + "xrandr --auto\n" + "xrandr --dpi 96\n"))))) - (service home-xsession-service-type - (home-xsession-configuration - (configuration - (list - (mixed-text-file - "xsession" - "xrdb -cpp m4 -merge \"${HOME}/.config/X11/Xresources\" -I\"${HOME}/.config/X11/Xresources.d\"\n" - "xrandr --setprovideroutputsource modesetting NVIDIA-0\n" - "xrandr --auto\n" - "xrandr --dpi 96\n"))))) + ;; (service home-herbstluftwm-service-type + ;; (home-herbstluftwm-configuration + ;; (tags '(dev web game)) + ;; (key-bindings + ;; '(("s-S-q" . "quit") + ;; ("s-S-e" . "reload"))) + ;; (mouse-bindings + ;; '(("s-Button1" . "move") + ;; ("s-Button2" . "zoom") + ;; ("s-Button3" . "resize"))) + ;; (settings + ;; '((default_frame_layout . 2) + ;; (frame_border_active_color . "#3d3d3d") + ;; (frame_border_normal_color . "#222222") + ;; (frame_bg_normal_color . "#111111") + ;; (frame_bg_active_color . "#263f1f") + ;; (frame_border_width . 0) + ;; (window_border_width . 2) + ;; (window_border_inner_width . 0) + ;; (window_border_normal_color . "#222222") + ;; (window_border_active_color . "#1f3f3f") + ;; (window_border_inner_color . "#111111") + ;; (always_show_frame . 0) + ;; (frame_gap . 30) + ;; (window_gap . 30) + ;; (frame_padding . -30) + ;; (frame_bg_transparent . 1) + ;; (smart_window_surroundings . 0) + ;; (smart_frame_surroundings . 0) + ;; (mouse_recenter_gap . 0) + ;; (swap_monitors_to_get_tag . 0) + ;; (update_dragged_clients . 1) + ;; (tree_style . "╾│ ├└╼─┐"))) + ;; (attributes + ;; '(((theme tiling reset) . 1) + ;; ((theme floating reset) . 1))) + ;; (rules + ;; '(("focus=on") + ;; ("class=Emacs" "tag=dev" "index=01" "switchtag=on" "hook=emacs") + ;; ("class~'URxvt|kitty'" "tag=dev" "index=1" "switchtag=on" "hook=urxvt") + ;; ("class~'Conkeror|[Ff]irefox|Chromium'" "tag=web" "index=0" "switchtag=on") + ;; ("class=Pinentry" "pseudotile=on") + ;; ("class=Alsaplayer" "pseudotile=on") + ;; ("class=Gcr-prompter" "pseudotile=on") + ;; ("class=Steam" "title='Steam Login'" "pseudotile=on") + ;; ("class=Steam" "title~'Steam - News .*'" "pseudotile=on") + ;; ("class=" "title=Steam" "pseudotile=on") + ;; ("class=xfreerdp" "floating=on" "tag=work" "index=0" "switchtag=on") + ;; ("windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)'" "pseudotile=on") + ;; ("windowtype='_NET_WM_WINDOW_TYPE_DIALOG'" "focus=on") + ;; ("windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)'" "manage=off") + ;; ("class=pinball.exe" "pseudotile=on"))) + ;; (padding '(0 0 0 16 16)) + ;; (layouts + ;; '((web clients max:0) + ;; (dev split horizontal:0.54:1 (clients max:0) (clients vertical:0)))) + ;; (extra + ;; (list + ;; (mixed-text-file + ;; "autostart" + ;; "set_monitors 1920x1080+0+0\n" + ;; "focus_edge left\n" + ;; "keybind Mod4-apostrophe spawn dunstctl close\n" + ;; "keybind Mod4-quotedbl spawn dunstctl close-all\n" + ;; "keybind Mod4-Control-apostrophe spawn dunstctl history-pop\n" + ;; "keybind Mod4-Mod1-apostrophe spawn dunstctl context\n" + ;; "spawn pick-random-wallpaper\n"))))) - ;; (service home-herbstluftwm-service-type - ;; (home-herbstluftwm-configuration - ;; (tags '(dev web game)) - ;; (key-bindings - ;; '(("s-S-q" . "quit") - ;; ("s-S-e" . "reload"))) - ;; (mouse-bindings - ;; '(("s-Button1" . "move") - ;; ("s-Button2" . "zoom") - ;; ("s-Button3" . "resize"))) - ;; (settings - ;; '((default_frame_layout . 2) - ;; (frame_border_active_color . "#3d3d3d") - ;; (frame_border_normal_color . "#222222") - ;; (frame_bg_normal_color . "#111111") - ;; (frame_bg_active_color . "#263f1f") - ;; (frame_border_width . 0) - ;; (window_border_width . 2) - ;; (window_border_inner_width . 0) - ;; (window_border_normal_color . "#222222") - ;; (window_border_active_color . "#1f3f3f") - ;; (window_border_inner_color . "#111111") - ;; (always_show_frame . 0) - ;; (frame_gap . 30) - ;; (window_gap . 30) - ;; (frame_padding . -30) - ;; (frame_bg_transparent . 1) - ;; (smart_window_surroundings . 0) - ;; (smart_frame_surroundings . 0) - ;; (mouse_recenter_gap . 0) - ;; (swap_monitors_to_get_tag . 0) - ;; (update_dragged_clients . 1) - ;; (tree_style . "╾│ ├└╼─┐"))) - ;; (attributes - ;; '(((theme tiling reset) . 1) - ;; ((theme floating reset) . 1))) - ;; (rules - ;; '(("focus=on") - ;; ("class=Emacs" "tag=dev" "index=01" "switchtag=on" "hook=emacs") - ;; ("class~'URxvt|kitty'" "tag=dev" "index=1" "switchtag=on" "hook=urxvt") - ;; ("class~'Conkeror|[Ff]irefox|Chromium'" "tag=web" "index=0" "switchtag=on") - ;; ("class=Pinentry" "pseudotile=on") - ;; ("class=Alsaplayer" "pseudotile=on") - ;; ("class=Gcr-prompter" "pseudotile=on") - ;; ("class=Steam" "title='Steam Login'" "pseudotile=on") - ;; ("class=Steam" "title~'Steam - News .*'" "pseudotile=on") - ;; ("class=" "title=Steam" "pseudotile=on") - ;; ("class=xfreerdp" "floating=on" "tag=work" "index=0" "switchtag=on") - ;; ("windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)'" "pseudotile=on") - ;; ("windowtype='_NET_WM_WINDOW_TYPE_DIALOG'" "focus=on") - ;; ("windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)'" "manage=off") - ;; ("class=pinball.exe" "pseudotile=on"))) - ;; (padding '(0 0 0 16 16)) - ;; (layouts - ;; '((web clients max:0) - ;; (dev split horizontal:0.54:1 (clients max:0) (clients vertical:0)))) - ;; (extra - ;; (list - ;; (mixed-text-file - ;; "autostart" - ;; "set_monitors 1920x1080+0+0\n" - ;; "focus_edge left\n" - ;; "keybind Mod4-apostrophe spawn dunstctl close\n" - ;; "keybind Mod4-quotedbl spawn dunstctl close-all\n" - ;; "keybind Mod4-Control-apostrophe spawn dunstctl history-pop\n" - ;; "keybind Mod4-Mod1-apostrophe spawn dunstctl context\n" - ;; "spawn pick-random-wallpaper\n"))))) + (service home-sawfish-service-type) - (service home-sawfish-service-type) + (service home-polybar-service-type + (home-polybar-configuration + (bar "data"))) - (service home-polybar-service-type - (home-polybar-configuration - (bar "data"))) + (service home-kdeconnect-service-type) - (service home-kdeconnect-service-type) + (service home-cmst-service-type) - (service home-cmst-service-type) + (service home-syncthing-service-type) - (service home-syncthing-service-type) + (service home-unclutter-service-type + (home-unclutter-configuration + (package unclutter-xfixes) + (exclude-root #t))) - (service home-unclutter-service-type - (home-unclutter-configuration - (package unclutter-xfixes) - (exclude-root #t))) + (service home-emacs-service-type + (home-emacs-configuration + (helpful-configuration + (home-emacs-helpful-configuration + (configurations + (list + (local-file "../services/emacs/oni-helpful.el"))))) + (yasnippet-capf + (home-emacs-yasnippet-capf-configuration)) + (envrc + (home-emacs-envrc-configuration)) + (configurations + (list + (local-file "../services/emacs/init.el") + (mixed-text-file + "init.el" + "(with-eval-after-load 'project (require 'oni-project))\n" + "(projectile-mode)\n" + "(setq custom-file \"~/.config/emacs/custom.el\")\n" + "(load custom-file)\n" + "(provide 'init)\n" + ";;; init.el ends here\n"))))) + (service home-emacs-eros-service-type) + (service home-emacs-ace-link-service-type + (home-emacs-ace-link-configuration + (default-key "C-S-e") + (goto-address-key "C-S-e") + (org-mode-key "C-S-e"))) + (service home-emacs-golden-ratio-service-type) + (service home-emacs-pinentry-service-type) + (service home-emacs-org-caldav-service-type) - (service home-emacs-service-type - (home-emacs-configuration - (helpful-configuration - (home-emacs-helpful-configuration - (configurations - (list - (local-file "../services/emacs/oni-helpful.el"))))) - (yasnippet-capf - (home-emacs-yasnippet-capf-configuration)) - (envrc - (home-emacs-envrc-configuration)) - (configurations - (list - (local-file "../services/emacs/init.el") - (mixed-text-file - "init.el" - "(with-eval-after-load 'project (require 'oni-project))\n" - "(projectile-mode)\n" - "(setq custom-file \"~/.config/emacs/custom.el\")\n" - "(load custom-file)\n" - "(provide 'init)\n" - ";;; init.el ends here\n"))))) - (service home-emacs-eros-service-type) - (service home-emacs-ace-link-service-type - (home-emacs-ace-link-configuration - (default-key "C-S-e") - (goto-address-key "C-S-e") - (org-mode-key "C-S-e"))) - (service home-emacs-golden-ratio-service-type) - (service home-emacs-pinentry-service-type) - (service home-emacs-org-caldav-service-type) + (service home-xss-lock-service-type) + (service home-cbatticon-service-type) - (service home-xss-lock-service-type) - (service home-cbatticon-service-type) - - (service home-mbsync-service-type)))) + (service home-mbsync-service-type))))) diff --git a/oni/home/config/pop-os.scm b/oni/home/config/pop-os.scm index 734ae67..fd9a8b8 100644 --- a/oni/home/config/pop-os.scm +++ b/oni/home/config/pop-os.scm @@ -24,11 +24,7 @@ #:use-module ((guix gexp) #:select (local-file mixed-text-file)) - #:use-module ((oni home config common) - #:select (home-channels-service - home-zsh-service - home-kitty-service - foreign-distro-compatibility-packages)) + #:use-module (oni home config common) #:use-module ((oni home services dunst) #:select (home-dunst-default-service)) #:use-module ((oni home services emacs) @@ -63,7 +59,6 @@ ;; home-stumpwm-pamixer-service-type ;; home-stumpwm-pamixer-configuration)) #:use-module (oni home services xdisorg) - #:use-module (oni home services zsh) #:use-module (oni packages emacs) #:use-module ((oni packages emacs-config) #:select (emacs-oni-bookmark @@ -112,49 +107,6 @@ (services home-module-services (default '()))) -(define oni-home-zsh-configuration - (home-module - (services (list home-zsh-service - ;; This has to be the first extension because it needs to be added to the - ;; configuration last. - (service home-zsh-syntax-highlighting-service-type) - (service home-zsh-autosuggestions-service-type) - (service home-zsh-contextual-abbrevs-service-type) - (service home-zsh-atuin-service-type - (home-zsh-atuin-configuration - (inline-height 20) - (filter-mode 'directory) - (history-filter - '("^ +")) - (enter-accept #t) - (common-subcommands - '("guix" - "guix home" - "nala" - "apt" - "cargo" - "composer" - "dnf" - "docker" - "docker-compose" - "docker compose" - "git" - "go" - "ip" - "kubectl" - "nix" - "nmcli" - "npm" - "pecl" - "pnpm" - "podman" - "port" - "systemctl" - "tmux" - "yarn")) - (sync-address "http://phoenix.fold-kanyu.ts.net:8888") - (search-mode "skim"))))))) - (define oni-home-herbstluftwm-configuration (home-module (packages (list hlwm-run-or-raise)) @@ -259,7 +211,6 @@ (apply append (map home-module-services modules))))) (home-modules->home-environment - oni-home-zsh-configuration oni-home-herbstluftwm-configuration (home-module (packages (append @@ -320,48 +271,50 @@ emacs-rainbow-identifiers emacs-vundo))) - (services (list home-channels-service - home-dunst-default-service - home-environment-service - home-kitty-service - home-rofi-default-service + (services (append + oni-home-zsh-services + (list home-channels-service + home-dunst-default-service + home-environment-service + home-kitty-service + home-rofi-default-service - (service home-emacs-service-type - (home-emacs-configuration - (helpful-configuration - (home-emacs-helpful-configuration - (configurations - (list - (local-file "../services/emacs/oni-helpful.el"))))) - (yasnippet-capf - (home-emacs-yasnippet-capf-configuration)) - (envrc - (home-emacs-envrc-configuration)) - (configurations - (list - (local-file "../services/emacs/init.el") - (local-file "pop-os/emacs.el") - (mixed-text-file - "init.el" - "(with-eval-after-load 'project (require 'oni-project))\n" - "(require 'oni-gui)\n" - "(provide 'oni-gnus)\n" - "(add-to-list 'auto-mode-alist '(\"\\.vue$\" . web-mode))\n"))))) - (service home-emacs-org-journal-service-type) - (service home-wakatime-service-type - (home-wakatime-configuration - (api-url "https://waka.ryuslash.org/api") - (exclude '("^COMMIT_EDITMSG$" - "^TAG_EDITMSG$")))) - (service home-emacs-vterm-service-type - (home-emacs-vterm-configuration - (buffer-name-string "*vterm* %s"))) + (service home-emacs-service-type + (home-emacs-configuration + (helpful-configuration + (home-emacs-helpful-configuration + (configurations + (list + (local-file "../services/emacs/oni-helpful.el"))))) + (yasnippet-capf + (home-emacs-yasnippet-capf-configuration)) + (envrc + (home-emacs-envrc-configuration)) + (configurations + (list + (local-file "../services/emacs/init.el") + (local-file "pop-os/emacs.el") + (mixed-text-file + "init.el" + "(with-eval-after-load 'project (require 'oni-project))\n" + "(require 'oni-gui)\n" + "(provide 'oni-gnus)\n" + "(add-to-list 'auto-mode-alist '(\"\\.vue$\" . web-mode))\n"))))) + (service home-emacs-org-journal-service-type) + (service home-wakatime-service-type + (home-wakatime-configuration + (api-url "https://waka.ryuslash.org/api") + (exclude '("^COMMIT_EDITMSG$" + "^TAG_EDITMSG$")))) + (service home-emacs-vterm-service-type + (home-emacs-vterm-configuration + (buffer-name-string "*vterm* %s"))) - (service home-flameshot-service-type) - (service home-mbsync-service-type) + (service home-flameshot-service-type) + (service home-mbsync-service-type) - (service home-gpg-agent-service-type - (home-gpg-agent-configuration + (service home-gpg-agent-service-type + (home-gpg-agent-configuration (ssh-support? #t) (extra-content - "allow-emacs-pinentry\n"))))))) + "allow-emacs-pinentry\n")))))))) diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm index ffb807e..1459d1a 100644 --- a/oni/home/config/rincewind.scm +++ b/oni/home/config/rincewind.scm @@ -1,6 +1,7 @@ (define-module (oni home config rincewind) #:use-module ((gnu home) #:select (home-environment)) + #:use-module (gnu home services) #:use-module ((gnu home services mail) #:select (home-msmtp-service-type home-msmtp-configuration @@ -9,6 +10,7 @@ #:use-module ((gnu home services gnupg) #:select (home-gpg-agent-service-type home-gpg-agent-configuration)) + #:use-module (gnu home services shells) #:use-module ((gnu home services ssh) #:select (home-ssh-agent-service-type)) #:use-module ((gnu packages cdrom) @@ -61,16 +63,7 @@ #:select (options->transformation)) #:use-module ((nongnu packages emacs) #:select (emacs-org-roam-ui)) - #:use-module ((oni home config common) - #:select (home-redshift-service - ;; home-xbindkeys-service - home-zsh-service - home-guile-service - home-xmodmap-service - home-openssh-service - home-kitty-service - home-channels-service - foreign-distro-compatibility-packages)) + #:use-module (oni home config common) #:use-module ((oni home services autokey) #:select (home-autokey-service-type)) #:use-module ((oni home services copyq) @@ -376,232 +369,220 @@ emacs-gnuplot))) (services - (list - home-environment-service - home-dunst-default-service - home-redshift-service - home-zsh-service - home-guile-service - home-xmodmap-service - home-openssh-service - home-kitty-service - rincewind-picom-service + (append + home-zsh-services + (list + home-environment-service + home-dunst-default-service + home-redshift-service + home-guile-service + home-xmodmap-service + home-openssh-service + home-kitty-service + rincewind-picom-service - ;; This has to be the first extension because it needs to be added to the - ;; configuration last. - (service home-zsh-syntax-highlighting-service-type) - (service home-zsh-autosuggestions-service-type) - (service home-zsh-autopair-service-type) - (service home-zsh-atuin-service-type - (home-zsh-atuin-configuration - (inline-height 20) - (filter-mode 'directory) - (history-filter - '("^ +")) - (enter-accept #t))) + home-channels-service - home-channels-service + ;; (service home-polybar-service-type + ;; (home-polybar-configuration + ;; (bar "rincewind"))) - ;; (service home-polybar-service-type - ;; (home-polybar-configuration - ;; (bar "rincewind"))) + (service home-kdeconnect-service-type) + (service home-syncthing-service-type) - (service home-kdeconnect-service-type) - (service home-syncthing-service-type) + (service home-emacs-service-type + (home-emacs-configuration + (package my-emacs) + (helpful-configuration + (home-emacs-helpful-configuration + (configurations + (list + (local-file "../services/emacs/oni-helpful.el"))))) + (yasnippet-capf + (home-emacs-yasnippet-capf-configuration)) + (envrc + (home-emacs-envrc-configuration)) + (configurations + (list + (local-file "../services/emacs/init.el") + (mixed-text-file + "init.el" + "(with-eval-after-load 'hy-mode (require 'oni-hy))\n" + "(with-eval-after-load 'project (require 'oni-project))\n" + "(projectile-mode)\n" + "(setq custom-file \"~/.config/emacs/custom.el\")\n" + "(load custom-file)\n" + "(provide 'init)\n" + ";;; init.el ends here\n"))))) + (service home-emacs-dashboard-service-type + (home-emacs-dashboard-configuration + (configurations + (list + (local-file "../services/emacs/oni-dashboard.el"))))) + (service home-emacs-eros-service-type) + (service home-emacs-ace-link-service-type + (home-emacs-ace-link-configuration + (default-key "C-S-e") + (goto-address-key "C-S-e") + (org-mode-key "C-S-e"))) + (service home-emacs-ace-link-notmuch-service-type + (home-emacs-ace-link-notmuch-configuration + (default-key "C-S-e"))) + (service home-emacs-golden-ratio-service-type) + (service home-emacs-pinentry-service-type) + (service home-emacs-vterm-service-type + (home-emacs-vterm-configuration + (buffer-name-string "*vterm* %s"))) + (service home-emacs-org-modern-service-type + (home-emacs-org-modern-configuration + (package emacs-next-org-modern))) + (service home-emacs-org-journal-service-type) + (service home-wakatime-service-type + (home-wakatime-configuration + (api-url "https://waka.ryuslash.org/api") + (exclude '("COMMIT_EDITMSG$" + "TAG_EDITMSG$")))) - (service home-emacs-service-type - (home-emacs-configuration - (package my-emacs) - (helpful-configuration - (home-emacs-helpful-configuration - (configurations - (list - (local-file "../services/emacs/oni-helpful.el"))))) - (yasnippet-capf - (home-emacs-yasnippet-capf-configuration)) - (envrc - (home-emacs-envrc-configuration)) - (configurations - (list - (local-file "../services/emacs/init.el") - (mixed-text-file - "init.el" - "(with-eval-after-load 'hy-mode (require 'oni-hy))\n" - "(with-eval-after-load 'project (require 'oni-project))\n" - "(projectile-mode)\n" - "(setq custom-file \"~/.config/emacs/custom.el\")\n" - "(load custom-file)\n" - "(provide 'init)\n" - ";;; init.el ends here\n"))))) - (service home-emacs-dashboard-service-type - (home-emacs-dashboard-configuration - (configurations - (list - (local-file "../services/emacs/oni-dashboard.el"))))) - (service home-emacs-eros-service-type) - (service home-emacs-ace-link-service-type - (home-emacs-ace-link-configuration - (default-key "C-S-e") - (goto-address-key "C-S-e") - (org-mode-key "C-S-e"))) - (service home-emacs-ace-link-notmuch-service-type - (home-emacs-ace-link-notmuch-configuration - (default-key "C-S-e"))) - (service home-emacs-golden-ratio-service-type) - (service home-emacs-pinentry-service-type) - (service home-emacs-vterm-service-type - (home-emacs-vterm-configuration - (buffer-name-string "*vterm* %s"))) - (service home-emacs-org-modern-service-type - (home-emacs-org-modern-configuration - (package emacs-next-org-modern))) - (service home-emacs-org-journal-service-type) - (service home-wakatime-service-type - (home-wakatime-configuration - (api-url "https://waka.ryuslash.org/api") - (exclude '("COMMIT_EDITMSG$" - "TAG_EDITMSG$")))) + (service home-flameshot-service-type) - (service home-flameshot-service-type) - - (service home-git-service-type - (home-git-configuration - (user-name "Tom Willemse") - (user-email "tom@ryuslash.org") - (sendemail-sendmailcmd "/usr/bin/msmtp") - (init-default-branch "main") - (init-default-branchname "main") - (advice-detached-head #f) - (extra " + (service home-git-service-type + (home-git-configuration + (user-name "Tom Willemse") + (user-email "tom@ryuslash.org") + (sendemail-sendmailcmd "/usr/bin/msmtp") + (init-default-branch "main") + (init-default-branchname "main") + (advice-detached-head #f) + (extra " [diff \"org\"] xfuncname = \"^\\\\*+ +(.+)\" [diff \"lisp\"] xfuncname = \"^[[:space:]]*?\\\\(def\\\\w+? ((\\\\w|-|'|:|=|<|>)+)\" "))) - (service home-mpd-service-type - (home-mpd-configuration - (music-directory "~/music") - (playlist-directory "~/music/playlists") - (log-file "~/.local/share/mpd/mpd.log") - (pid-file "~/.local/share/mpd/mpd.pid") - (db-file "~/.local/share/mpd/mpd.db") - (state-file "~/.local/share/mpd/mpdstate") - (audio-outputs - (list (make <home-mpd-audio-output> #:type "pulse" #:name "MPD Pulse") - (make <home-mpd-audio-output> - #:type "fifo" - #:name "Visualizer" - #:path "/tmp/mpd.fifo" - #:format "44100:16:2"))))) - (service home-mpc-update-service-type) - (service home-mpd-notify-service-type) - (service home-mpdscrobble-service-type) + (service home-mpd-service-type + (home-mpd-configuration + (music-directory "~/music") + (playlist-directory "~/music/playlists") + (log-file "~/.local/share/mpd/mpd.log") + (pid-file "~/.local/share/mpd/mpd.pid") + (db-file "~/.local/share/mpd/mpd.db") + (state-file "~/.local/share/mpd/mpdstate") + (audio-outputs + (list (make <home-mpd-audio-output> #:type "pulse" #:name "MPD Pulse") + (make <home-mpd-audio-output> + #:type "fifo" + #:name "Visualizer" + #:path "/tmp/mpd.fifo" + #:format "44100:16:2"))))) + (service home-mpc-update-service-type) + (service home-mpd-notify-service-type) + (service home-mpdscrobble-service-type) - (service home-mpv-service-type) - ;; [2024-01-05 Fri] mpv-mpris fails to compile: - ;; mpris.c:1:10: fatal error: gio/gio.h: No such file or directory - ;; Since I don't actually use it right now I really don't need it. + (service home-mpv-service-type) + ;; [2024-01-05 Fri] mpv-mpris fails to compile: + ;; mpris.c:1:10: fatal error: gio/gio.h: No such file or directory + ;; Since I don't actually use it right now I really don't need it. ; (service home-mpv-mpris-service-type) - (service home-stumpwm-service-type - (home-stumpwm-configuration - (package stumpwm+swank) - (configurations - (list (local-file "../services/stumpwm/stumpwm.lisp"))))) - (service home-stumpwm-gaps-service-type - (home-stumpwm-gaps-configuration - (configurations - (list (local-file "../services/stumpwm/config-gaps"))))) - (service home-stumpwm-stumptray-service-type - (home-stumpwm-stumptray-configuration - (configurations - (list (mixed-text-file "config-stumptray" - "(require 'stumptray)\n" - "(stumptray::stumptray)\n"))))) + (service home-stumpwm-service-type + (home-stumpwm-configuration + (package stumpwm+swank) + (configurations + (list (local-file "../services/stumpwm/stumpwm.lisp"))))) + (service home-stumpwm-gaps-service-type + (home-stumpwm-gaps-configuration + (configurations + (list (local-file "../services/stumpwm/config-gaps"))))) + (service home-stumpwm-stumptray-service-type + (home-stumpwm-stumptray-configuration + (configurations + (list (mixed-text-file "config-stumptray" + "(require 'stumptray)\n" + "(stumptray::stumptray)\n"))))) - (service home-inkplate-display-service-type) - (service home-notmuch-service-type - (home-notmuch-configuration - (database-path "/home/chelys/documents/mail") - (user-primary-email "tom@ryuslash.org") - (user-other-email '("ryuslash@gmail.com" "tom@iactor.nl")) - (new-ignore '(".nnmaildir" ".mbsyncstate" ".uidvalidity" - ".mbsyncstate.journal" ".mbsyncstate.new")))) + (service home-inkplate-display-service-type) + (service home-notmuch-service-type + (home-notmuch-configuration + (database-path "/home/chelys/documents/mail") + (user-primary-email "tom@ryuslash.org") + (user-other-email '("ryuslash@gmail.com" "tom@iactor.nl")) + (new-ignore '(".nnmaildir" ".mbsyncstate" ".uidvalidity" + ".mbsyncstate.journal" ".mbsyncstate.new")))) - (service home-autokey-service-type) - (service home-copyq-service-type) + (service home-autokey-service-type) + (service home-copyq-service-type) - (service home-msmtp-service-type - (home-msmtp-configuration - (defaults (msmtp-configuration - (auth? #t) - (tls? #t) - (tls-starttls? #t) - (port 587))) - (accounts - (list (msmtp-account - (name "gmail") - ;; Use `secret-tool store --label=msmtp host smtp.gmail.com - ;; service smtp user ryuslash@gmail.com' to store the - ;; password. - (configuration (msmtp-configuration - (host "smtp.gmail.com") - (from "ryuslash@gmail.com") - (user "ryuslash@gmail.com")))) - (msmtp-account - (name "ryuslash") - ;; Use `secret-tool store --label=msmtp host - ;; smtp-ryuslash.alwaysdata.net service smtp user - ;; tom@ryuslash.org' to store the password. - (configuration (msmtp-configuration - (host "smtp-ryuslash.alwaysdata.net") - (from "tom@ryuslash.org") - (user "tom@ryuslash.org")))))) - (default-account "ryuslash"))) + (service home-msmtp-service-type + (home-msmtp-configuration + (defaults (msmtp-configuration + (auth? #t) + (tls? #t) + (tls-starttls? #t) + (port 587))) + (accounts + (list (msmtp-account + (name "gmail") + ;; Use `secret-tool store --label=msmtp host smtp.gmail.com + ;; service smtp user ryuslash@gmail.com' to store the + ;; password. + (configuration (msmtp-configuration + (host "smtp.gmail.com") + (from "ryuslash@gmail.com") + (user "ryuslash@gmail.com")))) + (msmtp-account + (name "ryuslash") + ;; Use `secret-tool store --label=msmtp host + ;; smtp-ryuslash.alwaysdata.net service smtp user + ;; tom@ryuslash.org' to store the password. + (configuration (msmtp-configuration + (host "smtp-ryuslash.alwaysdata.net") + (from "tom@ryuslash.org") + (user "tom@ryuslash.org")))))) + (default-account "ryuslash"))) - (service home-gpg-agent-service-type - (home-gpg-agent-configuration - (ssh-support? #t) - (extra-content - "allow-emacs-pinentry\n"))) + (service home-gpg-agent-service-type + (home-gpg-agent-configuration + (ssh-support? #t) + (extra-content + "allow-emacs-pinentry\n"))) - (service home-icecat-service-type - (home-icecat-configuration - (package librewolf) - (settings - '(("extensions.pocket.enabled" #f) - ("view_source.editor.args" "--no-wait") - ("view_source.editor.external" #t) - ("view_source.editor.path" "/home/chelys/.guix-home/profile/bin/emacsclient") - ;; Visual modifications. Don't let websites pick the colors or - ;; the fonts, use mine instead. - ("browser.display.document_color_use" 2) - ("browser.display.use_document_fonts" 0) - ("browser.display.background_color" "#222424") - ("browser.display.foreground_color" "#bfbfbf") - ("browser.anchor_color" "#ff9800") - ("browser.visited_color" "#0babab") - ("browser.newtabpage.activity-stream.showWeather" #f) - ("font.default.x-western" "sans-serif") - ("font.minimum-size.x-western" 18) - ("font.name.monospace.x-western" "Fantasque Sans Mono") - ("font.name.sans-serif.x-western" "Dosis") - ;; Sadly, with this option on it won't accept my color - ;; modifications, so I turn it off, even though I would prefer - ;; being able to leave everything (except the forced light - ;; theme) on. - ("privacy.resistFingerprinting" #f) - ;; Change the accelerator key (modifier key for most keyboard - ;; shortcuts) to the super key (from control). - ("ui.key.accelKey" 91) - ("browser.tabs.hoverPreview.enabled" #f) - ("browser.tabs.hoverPreview.showThumbnails" #f) - ("sidebar.main.tools" "syncedtabs,history,bookmarks") - ("sidebar.position_start" #f) - ("sidebar.verticalTabs" #t) - ("sidebar.revamp" #t) - ("sidebar.visibility" "hide-sidebar") - ("ui.key.menuAccessKeyFocuses" #f))))) + (service home-icecat-service-type + (home-icecat-configuration + (package librewolf) + (settings + '(("extensions.pocket.enabled" #f) + ("view_source.editor.args" "--no-wait") + ("view_source.editor.external" #t) + ("view_source.editor.path" "/home/chelys/.guix-home/profile/bin/emacsclient") + ;; Visual modifications. Don't let websites pick the colors or + ;; the fonts, use mine instead. + ("browser.display.document_color_use" 2) + ("browser.display.use_document_fonts" 0) + ("browser.display.background_color" "#222424") + ("browser.display.foreground_color" "#bfbfbf") + ("browser.anchor_color" "#ff9800") + ("browser.visited_color" "#0babab") + ("browser.newtabpage.activity-stream.showWeather" #f) + ("font.default.x-western" "sans-serif") + ("font.minimum-size.x-western" 18) + ("font.name.monospace.x-western" "Fantasque Sans Mono") + ("font.name.sans-serif.x-western" "Dosis") + ;; Sadly, with this option on it won't accept my color + ;; modifications, so I turn it off, even though I would prefer + ;; being able to leave everything (except the forced light + ;; theme) on. + ("privacy.resistFingerprinting" #f) + ;; Change the accelerator key (modifier key for most keyboard + ;; shortcuts) to the super key (from control). + ("ui.key.accelKey" 91) + ("browser.tabs.hoverPreview.enabled" #f) + ("browser.tabs.hoverPreview.showThumbnails" #f) + ("sidebar.main.tools" "syncedtabs,history,bookmarks") + ("sidebar.position_start" #f) + ("sidebar.verticalTabs" #t) + ("sidebar.revamp" #t) + ("sidebar.visibility" "hide-sidebar") + ("ui.key.menuAccessKeyFocuses" #f))))) - (service home-udiskie-service-type)))) + (service home-udiskie-service-type))))) |
