#|Modules|# (use-modules #|GNU |# (gnu) (gnu home) (gnu home services) #|Guix |# (guix channels) #|Radix|# (radix packages fonts) (radix packages wm) (radix packages syndication) (radix home services) (radix home services shells) (radix utils) ((radix files awesome) #:prefix file:awesome-) ((radix files emacs) #:prefix file:emacs-) ((radix files fish) #:prefix file:fish-) ((radix files git) #:prefix file:git-) ((radix files info) #:prefix file:info-) ((radix files kakoune) #:prefix file:kak-) ((radix files lf) #:prefix file:lf-) ((radix files mpv) #:prefix file:mpv-) ((radix files newsraft) #:prefix file:newsraft-) ((radix files zathura) #:prefix file:zathura-)) (use-package-modules #|A|# admin #|B|# bittorrent #|C|# c calendar #|D|# disk #|F|# file fonts freedesktop #|G|# games gnome gnu-doc gnupg gnuzilla guile-xyz #|I|# image-viewers #|L|# linux #|M|# maths messaging minetest #|P|# password-utils pdf pulseaudio python-xyz #|S|# scheme shells ssh suckless #|T|# telegram text-editors toys #|V|# version-control video #|W|# web-browsers wm #|X|# xdisorg xorg) (use-home-service-modules #|D|# desktop #|G|# gnupg guix #|M|# mcron #|S|# ssh shepherd #|X|# xdg) (home-environment (packages (list #|admin |# neofetch netcat-openbsd #|bittorrent |# aria2 qbittorrent #|c |# c-intro-and-ref #|calendar |# remind #|disk |# lf ;Remove if I get used to dirvish #|file |# file #|fonts |# font-arabic-misc font-liberation font-meslo-lg-dz font-misc-misc font-un font-wqy-zenhei #|freedesktop |# xdg-utils #|games |# minetest supertuxkart xonotic #|gnome |# adwaita-icon-theme #|gnu-doc |# gnu-standards #|gnupg |# gnupg pinentry #|gnuzilla |# icecat #|guile-xyz |# guile-reader guile-pfds guile-srfi-159 haunt #|image-viewers |# imv #|linux |# alsa-utils #|math |# libqalculate #|messaging |# toxic #|password-utils|# keepassxc #|pulseaudio |# pulseaudio #|pdf |# zathura zathura-pdf-mupdf zathura-djvu #|pulseaudio |# pulseaudio pamixer pavucontrol #|python-xyz |# python-ueberzug #|scheme |# sicp slib #|shells |# fish fish-foreign-env #|syndication |# newsraft #|ssh |# openssh #|suckless |# xst #|telegram |# telegram-desktop #|toys |# oneko #|vesion-control|# git #|video |# ffmpeg mpv yt-dlp #|web-browsers |# nyxt #|wm |# awesome-next #|xdisorg |# maim redshift xbanish xclip xdotool xinit xsel #|xorg |# setxkbmap xinput xf86-input-libinput xkill xmodmap xorg-server xrdb xset)) (services (list #|XDG services|# (service home-xdg-user-directories-service-type (home-xdg-user-directories-configuration (desktop "$HOME/areas") (music "$HOME/media/music") (pictures "$HOME/media/pictures") (videos "$HOME/media/videos") (documents "$HOME/resources/documents") (publicshare "$HOME/resources/public") (download "$HOME/.local/share/downloads") (templates "$HOME/.local/share/templates"))) (service home-xdg-mime-applications-service-type (home-xdg-mime-applications-configuration (default (associate-right ('icecat.desktop `("text/html" "application/xhtml+xml" "application/x-extension-htm" "application/x-extension-xhtml" "application/x-extension-xht" "x-scheme-handler/http" "x-scheme-handler/https")) ('kak.desktop `("text/plain" "text/troff" "text/xml" "text/x-c" "text/x-c++" "text/x-diff" "text/x-lisp" "text/x-scheme" "text/x-shellscript" "text/x-tex")) ('lf.desktop `("inode/directory" "x-scheme-handler/ftp" "x-scheme-handler/nfs" "x-scheme-handler/smb" "x-scheme-handler/ssh" "application/x-directory")) ('mpv.desktop `("image/gif" "audio/mpeg" "audio/ogg" "audio/opus" "audio/x-opus+ogg" "video/mp4" "video/x-matroska" "video/webm")) ('imv.desktop `("image/avif" "image/bmp" "image/jpeg" "image/png" "image/svg+xml" "image/webp")) ('org.pwmt.zathura.desktop `("image/vnd.djvu" "application/pdf" "application/epub+zip")))))) (service home-xdg-configuration-files-service-type `(("awesome/rc.lua" ,file:awesome-config) ("awesome/themes/current.lua" ,file:awesome-theme) ("emacs/init.el" ,file:emacs-init) ("emacs/theme.el" ,file:emacs-theme) ("fish/fish_variables" ,file:fish-variables) ("fish/functions/fish_greeting.fish" ,file:fish-greeting) ("fish/functions/fish_prompt.fish" ,file:fish-prompt) ("git/config" ,file:git-config) ("infokeys" ,file:info-keys) ("kak/kakrc" ,file:kak-config) ("kak/autoload/colorscheme.kak" ,file:kak-colorscheme) ("lf/lfrc" ,file:lf-config) ("mpv/mpv.conf" ,file:mpv-config) ("mpv/input.conf" ,file:mpv-input) ("newsraft/config" ,file:newsraft-config) ("zathura/zathurarc" ,file:zathura-config))) #|Guix service|# (simple-service 'channels-service home-channels-service-type (list (channel (name 'radix) (url "https://codeberg.org/anemofilia/radix") (branch "main") (introduction (make-channel-introduction "f9130e11e35d2c147c6764ef85542dc58dc09c4f" (openpgp-fingerprint (format #f "F164 709E 5FC7 B32B AEC7 ~ 9F37 1F2E 76AC E3F5 31C8"))))))) #|Shepherd service|# (service home-shepherd-service-type) #|Shell services|# (service home-fish-service-type (home-fish-configuration (config (list file:fish-key-bindings file:fish-functions)) (aliases `(#|Common aliases|# ("df" . "df -h") ("diff" . "diff --color=auto") ("grep" . "grep --color=auto") ("ip" . "ip --color=auto") ("ls" . ,(format #f "ls --color=auto ~ --group-directories-first ~ --classify ~ -hv")) #|Clear terminal screen without ncurses|# ("clear" . "printf \"\\033c\"") #|Make ln idempotent|# ("ln" . "ln -sfn") #|Kakoune bindings for info|# ("info" . "info --init-file $XDG_CONFIG_HOME/infokeys") #|Easy presentation setup with xrandr|# ("present" . ,(format #f "xrandr --output LVDS-1 ~ --mode 1366x768 ~ --scale 1x1 ~ --output VGA-1 ~ --same-as LVDS-1 ~ --mode 1920x1080 ~ --scale 0.711x0.711")) #|Display images in lf using ueberzug|# ("lf" . "$XDG_CONFIG_HOME/lf/lfrun") #|Listen to libre music on vern's radio|# ("radio" . "https://radio.vern.cc") #|Kakoune aliases for the shell|# ("':e'" . "kak") ("':q'" . "exit"))) (environment-variables `(("fish_function_path" . (format #f "$fish_function_path~@{ ~a/functions~}" "$HOME/.guix-home/profile/share/fish" "$HOME/.config/fish/functions")))) (abbreviations (let ((code-projects "~/projects/code") (code-project-extensions '(c clj cpp el html kak md org pl py scm sh tex zig)) (bookmarks '(emacs guile guix haunt misc)) (xdg-user-directories '(desktop documents downloads music pictures public templates))) (list #|Quick access|# (abbreviation (name "@xdg-base-dir") (position 'anywhere) (pattern (apply format #f "@(~a~@{|~a~})" xdg-user-directories)) (expansion (fish-function "xdg-base-directory"))) (abbreviation (name "@extension") (position 'anywhere) (pattern (apply format #f "@(~a~@{|~a~})" code-project-extensions)) (expansion (fish-function "code-projects"))) (abbreviation (name "@punk") (position 'anywhere) (expansion (format #f "~a/cpp/punk" code-projects))) (abbreviation (name "@guix") (position 'anywhere) (expansion (format #f "~a/scm/guix" code-projects))) (abbreviation (name "@radix") (position 'anywhere) (expansion (format #f "~a/scm/radix" code-projects))) (abbreviation (name "@files") (position 'anywhere) (expansion (format #f "~a/scm/radix/files" code-projects))) (abbreviation (name "@modules") (position 'anywhere) (expansion (format #f "~a/scm/radix/modules/radix" code-projects))) (abbreviation (name "@research") (position 'anywhere) (expansion "~/areas/research")) (abbreviation (name "@bookmarks") (position 'anywhere) (expansion "~/resources/bookmarks")) (abbreviation (name "@git-root") (expansion "cd (git root)")) #|Quick edit|# (abbreviation (name ":e") (expansion "$EDITOR")) (abbreviation (name ":system") (expansion (format #f "~a/scm/radix && $EDITOR buer.scm" code-projects))) (abbreviation (name ":home") (expansion (format #f "~a/scm/radix && $EDITOR radio.scm" code-projects))) (abbreviation (name ":todo") (expansion "~/areas/organization/todo")) (abbreviation (name ":bookmark") (position 'anywhere) (pattern (apply format #f ":(~a~@{|~a~})" bookmarks)) (expansion (fish-function "bookmarks"))) #|Media downloading|# (abbreviation (name "d") (expansion "aria -j 10 '%'")) (abbreviation (name "m") (expansion (format #f "yt-dlp --prefer-free-formats ~ --extract-audio '%'"))) (abbreviation (name "v") (expansion "yt-dlp --prefer-free-formats '%'")) #|Guix reconfiguration|# (abbreviation (name "!dgen") (position 'anywhere) (expansion "guix % delete-generations 2w")) (abbreviation (name "!repair") (expansion "doas guix build --repair")) (abbreviation (name "!pull") (position 'anywhere) (expansion "guix pull")) (abbreviation (name "!home") (expansion "guix home reconfigure ~/.config/guix/home.scm")) (abbreviation (name "!system") (expansion "doas guix system reconfigure /etc/config.scm")) #|Utils|# (abbreviation (name "zedit") (expansion "zcat % | $EDITOR")) (abbreviation (name "tf") (position 'anywhere) (expansion "setsid -f %>/dev/null 2>&1 & disown")) (abbreviation (name "zxz") (expansion "curl -F file=@% https://0x0.st | xsel -b"))))))) (simple-service 'environment-variables-service home-environment-variables-service-type `(#|Shells|# ("HISTFILE" . "$XDG_CACHE_HOME/bash/history") ("HISTSIZE" . "-1") ("HISTFILESIZE" . "-1") ("PATH" . "$HOME/.local/bin:$PATH") ("ENV" . "$XDG_CONFIG_HOME/dash/init.sh") #|Language|# ("LANG" . "en_US.UTF-8") ("LANGUAGE" . "en_US.UTF-8") ("LC_COLLATE" . "C") #|Default applications|# ("BROWSER" . "icecat") ("EDITOR" . "kak") ("FCEDIT" . "kak") ("PAGER" . "less") ("READER" . "zathura") ("SHELL" . "fish") ("TERMINAL" . "xst") ("VISUAL" . "kak") ("WM" . "awesome") #|Xorg|# ("XINITRC" . "$XDG_CONFIG_HOME/x11/xinitrc") #|Readline|# ("INPUTRC" . "$XDG_CONFIG_HOME/readline/inputrc") #|GTK|# ("GTK_RC_FILES" . "$XDG_CONFIG_HOME/gtk-2.0/gtkrc") #|Guile|# ("GUILE_WARN_DEPRECATED" . "detailed") ("GUILE_HISTORY" . "$XDG_CACHE_HOME/guile/history") ("GUILE_LOAD_PATH" . ,(format #f "~a~@{:~a/share/guile/site/3.0~}" "$HOME/areas/code/scm/radix/modules" "$HOME/.guix-home/profile" "$XDG_CONFIG_HOME/guix/current" "/run/current-system/profile")) #|Guix|# ("GUIX_PROFILE" . "$XDG_CONFIG_HOME/guix/current") #|IPFS|# ("IPFS_PATH" . "$XDG_DATA_HOME/ipfs") #|Other program settings|# ("RUNLEVEL" . "3") ("TERMINFO" . "$XDG_DATA_HOME/terminfo") ("GRADLE_USER_HOME" . "$XDG_DATA_HOME/gradle") ("RUSTUP_HOME" . "$XDG_DATA_HOME/rustup") ("CARGO_HOME" . "$XDG_DATA_HOME/cargo") ("DOTREMINDERS" . "$XDG_DATA_HOME/reminders"))) (service home-openssh-service-type (home-openssh-configuration (hosts (list (openssh-host (name "codeberg.org") (host-name "codeberg.org") (user "git") (identity-file "~/.ssh/codeberg")) (openssh-host (name "github.com") (host-name "github.com") (user "git") (identity-file "~/.ssh/github")) (openssh-host (name "*.onion") (identity-file "~/.ssh/codeberg") (proxy (proxy-command "nc -x 127.0.0.1:9050 -X5 %h %p"))))) (authorized-keys #f))) (service home-gpg-agent-service-type (home-gpg-agent-configuration (pinentry-program (file-append pinentry "/bin/pinentry-curses")))) #|Mcron service|# (service home-mcron-service-type (home-mcron-configuration (jobs (list #~(job "30 5 * * *" "mpv --shuffle ~/media/music"))))))))