diff options
Diffstat (limited to 'oni/home/config')
-rw-r--r-- | oni/home/config/common.scm | 203 | ||||
-rw-r--r-- | oni/home/config/data.scm | 144 | ||||
-rw-r--r-- | oni/home/config/rincewind.scm | 107 |
3 files changed, 454 insertions, 0 deletions
diff --git a/oni/home/config/common.scm b/oni/home/config/common.scm new file mode 100644 index 0000000..d1c946e --- /dev/null +++ b/oni/home/config/common.scm @@ -0,0 +1,203 @@ +(define-module (oni home config common) + #:use-module (gnu home services) + #:use-module (gnu home services desktop) + #:use-module (gnu home services shells) + #:use-module (gnu home services ssh) + #:use-module (guix gexp) + #:use-module (oni home services xbindkeys) + #:use-module (oni home services guile) + #:use-module (oni home services xmodmap) + #:use-module (oni home services kitty) + #:use-module (oni home services compton) + + #:export (home-redshift-service + home-xbindkeys-service + home-zsh-service + home-guile-service + home-xmodmap-service + home-openssh-service + home-kitty-service + home-picom-service)) + +(define home-redshift-service + (service home-redshift-service-type + (home-redshift-configuration + (location-provider 'manual) + (latitude 49.2127205) + (longitude 122.9267927)))) + +(define home-xbindkeys-service + (service home-xbindkeys-service-type + (home-xbindkeys-configuration + (keybindings + '(((mod4 k) . "hersbtclient close") + ((mod4 mod1 k) . "herbstclient remove") + ((mod4 Return) . "herbstclient spawn kitty") + ((mod4 t) . "herbstclient spawn hlwm-run-or-raise \"\\(URxct\\|Hyper\\|kitty\\)\" kitty") + ((mod4 b) . "herbstclient spawn hlwm-run-or-raise \"\\(Conkeror\\|[Ff]irefox\\|Chromium\\|Next\\|qutebrowser\\)\" firefox") + ((mod4 e) . "herbstclient spawn hlwm-run-or-raise Emacs emacsclient --create-frame") + ((control mod1 l) . "herbstclient spawn i3lock --color=000000") + ((mod4 x) . "herbstclient spawn hlwm-switch-tags") + ((mod4 shift b) . "herbstclient shift left") + ((mod4 shift n) . "herbstclient shift down") + ((mod4 shift p) . "herbstclient shift up") + ((mod4 shift f) . "herbstclient shift right") + ((mod4 control b) . "herbstclient resize left +0.05") + ((mod4 control n) . "herbstclient resize down +0.05") + ((mod4 control p) . "herbstclient resize up +0.05") + ((mod4 control f) . "herbstclient resize right +0.05") + ((mod4 shift underscore) . "herbstclient split bottom 0.5") + ((mod4 shift bar) . "herbstclient split right 0.5") + ((mod4 period) . "herbstclient use_index +1 --skip-visible") + ((mod4 comma) . "herbstclient use_index -1 --skip-visible") + ((mod4 shift control f) . "herbstclient floating toggle") + ((mod4 f) . "herbstclient cycle_layout 1 vertical max") + ((mod4 m) . "herbstclient fullscreen toggle") + ((mod4 p) . "herbstclient pseudotile toggle") + ((mod4 space) . "herbstclient or , and . compare tags.focus.curframe_wcount = 2 . cycle_layout +1 vertical horizontal max vertical grid , cycle_layout +1") + ((mod4 BackSpace) . "herbstclient cycle_monitor") + ((mod4 u) . "herbstclient jumpto urgent") + ((XF86AudioPlay) . "herbstclient spawn mpc toggle") + ((XF86AudioNext) . "herbstclient spawn mpc next") + ((XF86AudioPrev) . "herbstclient spawn mpc prev") + ((mod4 c) + ("1" . "herbstclient move_index 0") + ("2" . "herbstclient move_index 1") + ("3" . "herbstclient move_index 2") + ("4" . "herbstclient move_index 3") + ("5" . "herbstclient move_index 4") + ("6" . "herbstclient move_index 5") + ("7" . "herbstclient move_index 6") + ("8" . "herbstclient move_index 7") + ("9" . "herbstclient move_index 8") + ("0" . "herbstclient move_index 9")) + ((mod4 s) + ("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"))) + (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" + "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" + "autoload -Uz compinit\n" + "compinit\n" + "PROMPT=\"%T \\$(spwd) %B%(?.%F{2}.%F{1}[%?])>%b%f \"")))))) + +(define home-guile-service + (service home-guile-service-type + (home-guile-configuration + (use-readline #t) + (use-colorized #t)))) + +(define home-xmodmap-service + (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" + "remove mod4 = Super_R" + "keycode 134 = Hyper_R" + "add mod3 = Hyper_R"))))) + +(define home-openssh-service + (service home-openssh-service-type + (home-openssh-configuration + (hosts (list (openssh-host + (name "ryuslash") + (host-name "ryuslash.org") + (user "slash") + (port 4511) + (extra-content "LocalForward 8090 localhost:8090 +LocalForward 2812 localhost:2812")) + (openssh-host + (name "rincewind") + (host-name "192.168.1.135") + (port 4511))))))) + +(define home-kitty-service + (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 . "#222424") + (selection-background . "#7126a3f0f01f") + (color0 . "#222222") + (color8 . "#3d3d3d") + (color1 . "#ca3c828e828e") + (color9 . "#f01f71267126") + (color2 . "#90e4ca3c828e") + (color10 . "#8a8bf01f7126") + (color3 . "#bbe6ca3c828e") + (color11 . "#d6baf01f7126") + (color4 . "#828e9f3aca3c") + (color12 . "#7126a3f0f01f") + (color5 . "#bbe6828eca3c") + (color13 . "#d6ba7126f01f") + (color6 . "#828eca3cca3c") + (color14 . "#7126f01ff01f") + (color7 . "#969696") + (color15 . "#ededed")))))) + +(define home-picom-service + (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"))))))) diff --git a/oni/home/config/data.scm b/oni/home/config/data.scm new file mode 100644 index 0000000..18d5108 --- /dev/null +++ b/oni/home/config/data.scm @@ -0,0 +1,144 @@ +(define-module (oni home config data) + #:use-module (gnu home) + #:use-module (gnu home services) + #: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 (gnu packages xdisorg) + #:use-module (guix gexp) + #:use-module (oni home services rofi) + #:use-module (oni home services xsession) + #:use-module (oni home services xbindkeys) + #:use-module (oni home services zsh) + #:use-module (oni home services herbstluftwm) + #:use-module (oni home services polybar) + #:use-module (oni home services kdeconnect) + #:use-module (oni home services cmst) + #:use-module (oni home services syncthing) + #:use-module (oni home services unclutter) + #:use-module (oni home services dunst) + #:use-module (oni home services environment) + #:use-module (oni packages hlwm-run-or-raise) + #:use-module (oni packages pick-random-wallpaper) + #:use-module (oni home config common)) + +(home-environment + (packages (list (specification->package+output "glibc-locales") + (specification->package+output "font-fantasque-sans") + (specification->package+output "font-comic-neue") + hlwm-run-or-raise + pick-random-wallpaper)) + + (services + (list + 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 + home-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-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 + "set_monitors 1920x1080+0+0" + "focus_edge left" + "keybind Mod4-apostrophe spawn dunstctl close" + "keybind Mod4-quotedbl spawn dunstctl close-all" + "keybind Mod4-Control-apostrophe spawn dunstctl history-pop" + "keybind Mod4-Mod1-apostrophe spawn dunstctl context" + "spawn pick-random-wallpaper")))) + + (service home-polybar-service-type + (home-polybar-configuration + (bar "data"))) + + (service home-kdeconnect-service-type) + + (service home-cmst-service-type) + + (service home-syncthing-service-type) + + (service home-unclutter-service-type + (home-unclutter-configuration + (package unclutter-xfixes) + (exclude-root #t)))))) diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm new file mode 100644 index 0000000..be107da --- /dev/null +++ b/oni/home/config/rincewind.scm @@ -0,0 +1,107 @@ +(define-module (oni home config rincewind) + #:use-module (gnu home services guix) + #:use-module (gnu home services) + #:use-module (gnu home) + #:use-module (gnu packages commencement) + #:use-module (gnu packages emacs) + #:use-module (gnu packages emacs-xyz) + #:use-module (gnu packages linux) + #:use-module (gnu packages music) + #:use-module (gnu packages video) + #:use-module (gnu packages) + #:use-module (gnu services) + #:use-module (guix channels) + #:use-module (guix derivations) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix store) + #:use-module (guix transformations) + #:use-module (oni home config common) + #:use-module (oni home services dunst) + #:use-module (oni home services emacs) + #:use-module (oni home services environment) + #:use-module (oni home services flameshot) + #:use-module (oni home services kdeconnect) + #:use-module (oni home services polybar) + #:use-module (oni home services rofi) + #:use-module (oni home services syncthing) + #:use-module (oni home services zsh) + #:use-module (oni packages count-emails) + #:use-module (oni packages hlwm-run-or-raise) + #:use-module (oni packages inbox-size) + #:use-module (oni packages notmuch-collect-tasks) + #:use-module (oni packages notmuch-tag-mailinglists) + #:use-module (oni packages pick-random-wallpaper)) + +(define (with-master-branch package) + "Apply a transformation to PACKAGE so that it uses the master branch." + ((options->transformation + `((with-branch . ,(string-append (package-name package) "=master")))) + package)) + +(home-environment + (packages (list mpv mpv-mpris easytag + (specification->package+output "glibc-locales") + (specification->package+output "font-fantasque-sans") + (specification->package+output "font-comic-neue") + hlwm-run-or-raise + pick-random-wallpaper + notmuch-collect-tasks + notmuch-tag-mailinglists + (inbox-size emacs-next) + count-emails + emacs-org-roam + emacs-vterm + fakeroot ; Needed for build arch packages + )) + + (services + (list + 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 + + ;; 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) + + (simple-service 'my-channel-service + home-channels-service-type + (list + (channel + (name 'oni) + (url "https://git.sr.ht/~ryuslash/guix-packages") + (introduction + (make-channel-introduction + "646573578b7adfbff415645fed201269076cebf6" + (openpgp-fingerprint + "061C C5C4 D936 C9A8 AECC 1A17 7D5C 407B 4350 25C1")))) + (channel + (name 'guix-gaming-games) + (url "https://gitlab.com/guix-gaming-channels/games.git") + (introduction + (make-channel-introduction + "c23d64f1b8cc086659f8781b27ab6c7314c5cca5" + (openpgp-fingerprint + "50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F")))))) + + (service home-polybar-service-type + (home-polybar-configuration + (bar "rincewind"))) + + (service home-kdeconnect-service-type) + (service home-syncthing-service-type) + + (service home-emacs-service-type + (home-emacs-configuration + (package emacs-next))) + + (service home-flameshot-service-type)))) |