dotfiles/oni/home/data/config.scm
Tom Willemse 9363fb88cf Add herbstluftwm configuration with xsession extension
The herbstluftwm configuration isn't complete yet, it's only the package so far,
but it does extend the xsession service to include a line in xsession to execute
the window manager in a bit of a hacky way.

This also adds a ‘mixed-executable-file’ function which is the same as the
‘mixed-text-file’ except that it also sets the executable bit for the computed
file.
2022-04-14 01:39:25 -07:00

244 lines
11 KiB
Scheme

(define-module (oni home data config)
#:use-module (gnu home)
#:use-module (gnu home services)
#:use-module (gnu home services shells)
#:use-module (gnu home services desktop)
#:use-module (gnu services)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages shellutils)
#:use-module (gnu packages wm)
#:use-module (guix gexp)
#:use-module (oni home services xdisorg)
#:use-module (oni home services xmodmap)
#:use-module (oni home services kitty)
#:use-module (oni home services xsession)
#:use-module (oni home services compton)
#:use-module (oni home services xbindkeys)
#:use-module (oni home services zsh)
#:use-module (oni home services herbstluftwm))
(home-environment
(packages (list (specification->package+output "glibc-locales")))
(services
(list
(simple-service 'some-useful-env-vars-service
home-environment-variables-service-type
`(("LESS" . "FXRSi")
("MY_GUIX_CONFIGURED" . "1")
("DOTNET_CLI_TELEMETRY_OPTOUT" . "1")
("EDITOR" . "emacsclient")
("CALIBRE_USE_DARK_PALETTE" . "1")
("GUIX_LOCPATH" . "$HOME/.guix-home/profile/lib/locale")))
(service home-redshift-service-type
(home-redshift-configuration
(location-provider 'manual)
(latitude 49.2127205)
(longitude 122.9267927)))
(service home-zsh-service-type
(home-zsh-configuration
(environment-variables
'(("HISTFILE" . "$HOME/.zsh/histfile")
("HISTSIZE" . "1000")
("SAVEHIST" . "1000")))
(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"
"setopt SHARE_HISTORY\n"
"setopt HIST_IGNORE_ALL_DUPS\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"
"autoload -Uz compinit\n"
"compinit\n")))))
;; 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-rofi-service-type
(home-rofi-configuration
(config
'((kb-cancel . "Escape,Control+g")
(window-format . "{c} {t}")))
(theme
'((* ((text-color . "#bfbfbf")
(background-color . "#3f4242")
(lightbg . "#5b6161")
(red . "#a85454")
(orange . "#faa41a")
(blue . "#1f2c3f")
(selected-normal-foreground . "@foreground")
(normal-foreground . "@foreground")
(alternate-normal-background . "@background")
(selected-urgent-foreground . "@foreground")
(urgent-foreground . "@foreground")
(alternate-urgent-background . "@background")
(active-foreground . "@text-color")
(selected-active-foreground . "@foreground")
(alternate-normal-foreground . "@foreground")
(alternate-active-background . "@blue")
(bordercolor . "@foreground")
(normal-background . "@background")
(selected-normal-background . "@blue")
(separatorcolor . "@orange")
(spacing . 2)
(urgent-background . "@red")
(alternate-urgent-foreground . "@foreground")
(selected-urgent-background . "@red")
(alternate-active-foreground . "@foreground")
(selected-active-background . "@blue")
(active-background . "@red")
(font . "Fantasque Sans Mono 14")))
(window ((border . 0)
(text-color . "@foreground")
(background-color . "rgba(0, 0, 0, 0%)")
(padding . 5)
(text-color . "@bordercolor")
(background-color . "@background")))
(mainbox ((border . 0)
(padding . 0)))
(message ((border . "1px dash 0px 0px")
(text-color . "@separatorcolor")
(padding . "2px 0px 0px")))
(textbox ((text-color . "@foreground")))
(listview ((fixed-height . 0)
(border . "2px 0px 0px")
(padding . "2px 0px 0px")
(text-color . "@separatorcolor")))
(element ((border . 0)
(children "element-icon" "element-text")
(spacing . "5px")))
(element-text
element-icon ((background-color . "inherit")
(text-color . "inherit")))
(element.normal.normal ((text-color . "@normal-foreground")
(background-color . "@normal-background")))
(element.normal.urgent ((text-color . "@urgent-foreground")
(background-color . "@urgent-background")))
(element.normal.active ((text-color . "@active-foreground")
(background-color . "@active-background")))
(element.selected.normal ((text-color . "@selected-normal-foreground")
(background-color . "@selected-normal-background")))
(element.selected.urgent ((text-color . "@selected-urgent-foreground")
(background-color . "@selected-urgent-background")))
(element.selected.active ((text-color . "@selected-active-foreground")
(background-color . "@selected-active-foreground")))
(element.alternate.normal ((text-color . "@alternate-normal-foreground")
(background-color . "@alternate-normal-background")))
(element.alternate.urgent ((text-color . "@alternate-urgent-foreground")
(background-color . "@alternate-urgent-background")))
(element.alternate.active ((text-color . "@alternate-active-foreground")
(background-color . "@alternate-active-background")))
(mode-switcher ((border . "1px dash 0px 0px")))
(#{button selected}# ((text-color . "@selected-normal-foreground")
(background-color . "@selected-normal-background")))
(inputbar ((spacing . 0)
(border . "0px")
(children "prompt" "textbox-prompt-colon" "entry" "case-indicator")))
(#{button normal}# ((text-color . "@foreground")))
(text-prompt-color ((expand . #f)
(str . ":")
(margin . "0px 0.3em 0em 0em")
(text-color . "@normal-foreground")))))))
(service home-xmodmap-service-type
(home-xmodmap-configuration
(pointer '(3 2 1))
(extra '("remove Mod5 = ISO_Level3_Shift"
"keycode 108 = Alt_L"
"add Mod1 = Alt_L"))))
(service home-kitty-service-type
(home-kitty-configuration
(configuration
'((font-family . "Fantasque Sans Mono")
(bold-font . "Fantasque Sans Mono Bold")
(italic-font . "Fantasque Sans Mono Italic")
(bold-italic-font . "Fantasque Sans Mono Bold Italic")
(font-size . 14)
(symbol-map . "U+f002 Font Awesome 5 Free Solid")
(cursor-shape . beam)
(cursor-blink-interval . 0)
(url-style . single)
(open-url-with . firefox)
(copy-on-select . #f)
(enable-audio-bell . #f)
(visual-bell-duration . 0)
(window-padding-width . 11.25)
(active-tab-font-style . normal)
(editor . emacsclient)
(allow-remote-control . #t)
(enabled-layouts vertical stack tall fat grid horizontal)
(cursor . "#969696")
(url-color . "#a88654")
(active-border-color . "#1f2c3f")
(inactive-border-color . "#3d3d3d")
(bell-border-color . "#3f1a1a")
(active-tab-foreground . "#65a854")
(active-tab-background . "#1f2c3f")
(inactive-tab-foreground . "#65a854")
(inactive-tab-background . "#3d3d3d")
(foreground . "#bfbfbf")
(background . "#222424")
(selection-foreground . "#bfbfbf")
(selection-background . "#1f2c3f")
(color0 . "#222222")
(color8 . "#3d3d3d")
(color1 . "#3f1a1a")
(color9 . "#da9d9d")
(color2 . "#65a854")
(color10 . "#a9d39e")
(color3 . "#8d995c")
(color11 . "#c2ca9e")
(color4 . "#5476a8")
(color12 . "#a2b8b8")
(color5 . "#9754a8")
(color13 . "#d0a8da")
(color6 . "#54a8a8")
(color14 . "#abdddd")
(color7 . "#969696")
(color15 . "#ededed")))))
(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-picom-service-type
(home-picom-configuration
(config
'((detect-transient . #t)
(shadow . #t)
(wintypes ((dnd ((shadow . #f)))
(dock ((shadow . #f)))))
(shadow-radius . 10)
(shadow-exclude ("name = 'mowedline'"
"class_g = 'trayer'"
"bounding_shaped"))))))
(service home-xbindkeys-service-type)
(service home-herbstluftwm-service-type))))