345 lines
16 KiB
Scheme
345 lines
16 KiB
Scheme
#|Modules|#
|
|
(use-modules
|
|
#|GNU |# (gnu)
|
|
(gnu home)
|
|
(gnu home services)
|
|
#|Guix |# (guix channels)
|
|
#|Radix|# (radix packages fonts)
|
|
(radix packages wm)
|
|
(radix home services)
|
|
(radix combinators)
|
|
(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-)
|
|
#|SRFI |# (srfi srfi-26))
|
|
|
|
(use-package-modules
|
|
#|A|# admin
|
|
#|B|# bittorrent
|
|
#|C|# c calendar
|
|
#|D|# disk
|
|
#|E|# emacs emacs-xyz
|
|
#|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 tor toys
|
|
#|V|# version-control video
|
|
#|W|# web-browsers wm
|
|
#|X|# xdisorg xorg)
|
|
|
|
(use-home-service-modules
|
|
#|D|# desktop
|
|
#|G|# gnupg guix
|
|
#|M|# mcron
|
|
#|S|# shells ssh shepherd
|
|
#|X|# xdg)
|
|
|
|
(home-environment
|
|
(packages
|
|
(list #|admin |# neofetch
|
|
#|bittorrent |# aria2 qbittorrent
|
|
#|c |# c-intro-and-ref
|
|
#|calendar |# remind
|
|
#|disk |# lf ;Remove if I get used to dirvish
|
|
#|emacs |# emacs
|
|
#|emacs-xyz |#
|
|
#| • completion |# emacs-cape emacs-corfu emacs-corfu-doc
|
|
emacs-consult-lsp emacs-vertico
|
|
#| • centering |# emacs-olivetti
|
|
#| • file manager |# emacs-dirvish
|
|
#| • fuzzy-finder |# emacs-orderless
|
|
#| • guile |# emacs-geiser emacs-geiser-guile
|
|
emacs-macrostep-geiser emacs-geiser-eros
|
|
#| • guix |# emacs-guix emacs-direnv
|
|
#| • haunt |# emacs-ox-haunt
|
|
#| • icons |# emacs-all-the-icons
|
|
#| • irc |# emacs-circe
|
|
#| • kakoune |# emacs-kakoune emacs-phi-search-mc emacs-ryo-modal
|
|
#| • latex |# emacs-auctex emacs-latex-preview-pane
|
|
#| • linter |# emacs-flycheck emacs-flycheck-guile
|
|
#| • maps |# emacs-osm
|
|
#| • music player |# emacs-emms
|
|
#| • org |# emacs-org-bullets emacs-org-fragtog
|
|
emacs-org-present emacs-org-roam emacs-org-modern
|
|
#| • pulsar |# emacs-pulsar
|
|
#| • rss |# emacs-elfeed emacs-elfeed-org
|
|
#| • s-exps |# emacs-lispy emacs-rainbow-delimiters
|
|
#| • ease config |# emacs-setup
|
|
#| • typing |# emacs-typing
|
|
#| • terminal |# emacs-eat
|
|
#|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 |# nsxiv
|
|
#|linux |# alsa-utils
|
|
#|math |# libqalculate
|
|
#|messaging |# toxic
|
|
#|password-utils |# keepassxc
|
|
#|pulseaudio |# pulseaudio
|
|
#|pdf |# zathura zathura-pdf-mupdf zathura-pdf-poppler
|
|
zathura-djvu
|
|
#|pulseaudio |# pulseaudio pamixer pavucontrol
|
|
#|python-xyz |# python-ueberzug
|
|
#|scheme |# sicp slib
|
|
#|shells |# fish fish-foreign-env
|
|
#|ssh |# openssh
|
|
#|suckless |# xst
|
|
#|telegram |# telegram-desktop
|
|
#|tor |# tor
|
|
#|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|#
|
|
(simple-service 'xdg-base-directories-service
|
|
home-xdg-base-directories-service-type
|
|
(home-xdg-base-directories-configuration
|
|
(cache-home "$HOME/.cache")
|
|
(config-home "$HOME/.config")
|
|
(data-home "$HOME/.local/share")
|
|
(runtime-dir "/run/user/1000")
|
|
(log-home "$HOME/.local/var/log")
|
|
(state-home "$HOME/.local/state")))
|
|
|
|
(simple-service 'xdg-user-directories-service
|
|
home-xdg-user-directories-service-type
|
|
(home-xdg-user-directories-configuration
|
|
(desktop "$HOME/desktop")
|
|
(documents "$HOME/documents")
|
|
(download "$HOME/.local/share/downloads")
|
|
(music "$HOME/music")
|
|
(pictures "$HOME/pictures")
|
|
(videos "$HOME/videos")
|
|
(publicshare "")
|
|
(templates "")))
|
|
|
|
(simple-service 'xdg-mime-applications-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"))
|
|
('nsxiv.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"))))))
|
|
|
|
(simple-service 'xdg-configuration-files-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.git")
|
|
(branch "main")
|
|
(introduction
|
|
(make-channel-introduction
|
|
"85d30480a1907539855fedee6e6a02362e1895ba"
|
|
(openpgp-fingerprint
|
|
(format #f "99D0 38B0 CC2F 7356 34D0 ~
|
|
82F3 5A8F 3D62 C87A 2B33")))))))
|
|
|
|
#|Shepherd service|#
|
|
(service home-shepherd-service-type)
|
|
|
|
#|Shell services|#
|
|
(service home-fish-service-type
|
|
(home-fish-configuration
|
|
(config (list file:fish-abbreviations))
|
|
(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")))))
|
|
|
|
(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" . "st")
|
|
("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" . ,((flip string-join) ":"
|
|
(cons "$HOME/projects/guile/radix/modules"
|
|
(map (cut string-append <> "/share/guile/site/3.0")
|
|
'("/run/current-system/profile"
|
|
"$XDG_CONFIG_HOME/guix/current"
|
|
"$HOME/.guix-home/profile")))))
|
|
|
|
#|GUIX|#
|
|
("GUIX_PROFILE" . "$XDG_CONFIG_HOME/guix/current")
|
|
|
|
#|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"))))
|
|
(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 music"))))))))
|