config.scm (5150B)
1 (define-module (epistemia home config) 2 #:use-module (gnu home) 3 #:use-module (gnu packages) 4 #:use-module (gnu packages admin) 5 #:use-module (gnu packages audio) 6 #:use-module (gnu packages authentication) 7 #:use-module (gnu packages compression) 8 #:use-module (gnu packages curl) 9 #:use-module (gnu packages emacs) 10 #:use-module (gnu packages emacs-xyz) 11 #:use-module (gnu packages engineering) 12 #:use-module (gnu packages file) 13 #:use-module (gnu packages finance) 14 #:use-module (gnu packages gnupg) 15 #:use-module (gnu packages golang-crypto) 16 #:use-module (gnu packages guile) 17 #:use-module (gnu packages guile-xyz) 18 #:use-module (gnu packages image) 19 #:use-module (gnu packages linux) 20 #:use-module (gnu packages llvm) 21 #:use-module (gnu packages mail) 22 #:use-module (gnu packages messaging) 23 #:use-module (gnu packages music) 24 #:use-module (gnu packages ocaml) 25 #:use-module (gnu packages pulseaudio) 26 #:use-module (gnu packages python-web) 27 #:use-module (gnu packages qt) 28 #:use-module (gnu packages rsync) 29 #:use-module (gnu packages screen) 30 #:use-module (gnu packages tex) 31 #:use-module (gnu packages texlive) 32 #:use-module (gnu packages version-control) 33 #:use-module (gnu packages video) 34 #:use-module (gnu packages wm) 35 #:use-module (gnu packages web-browsers) 36 #:use-module (gnu packages xdisorg) 37 #:use-module (gnu packages xorg) 38 #:use-module (epistemia packages audio) 39 #:use-module (epistemia packages bittorrent) 40 #:use-module (epistemia packages emacs) 41 #:use-module (epistemia packages machine-learning) 42 #:use-module (epistemia packages minecraft) 43 #:use-module (epistemia packages xorg) 44 #:use-module (nongnu packages game-client) 45 #:use-module (gnu home services) 46 #:use-module (gnu home services desktop) 47 #:use-module (gnu home services dotfiles) 48 #:use-module (gnu home services sound) 49 #:use-module (gnu home services xdg) 50 #:use-module (guix channels) 51 #:use-module (guix packages) 52 #:use-module (guix gexp) 53 #:use-module (guix transformations)) 54 55 (define on-machine-demiurge? 56 (string=? (gethostname) "demiurge.epistemia")) 57 58 (home-environment 59 (packages (append 60 (if on-machine-demiurge? 61 (list llama-cpp-rocm 62 prismlauncher 63 steam) 64 '()) 65 (list curl 66 dtach 67 file 68 rsync 69 unison 70 unzip 71 git 72 htop 73 74 ;; laptop 75 acpi 76 emacs-bluetooth 77 light 78 79 ;; cryptography 80 age 81 gnupg 82 83 ;; editor 84 emacs 85 emacs-age 86 emacs-auctex 87 emacs-citar 88 emacs-citeproc 89 emacs-clang-format 90 emacs-consult 91 emacs-eat 92 emacs-elfeed 93 emacs-erc-hl-nicks 94 emacs-erc-image 95 emacs-esup 96 emacs-exwm 97 emacs-geiser 98 emacs-geiser-guile 99 emacs-gptel-new 100 emacs-guix 101 emacs-hl-todo 102 emacs-jabber 103 emacs-kaolin-themes 104 emacs-kasi 105 emacs-ledger-mode 106 emacs-llm-tools 107 emacs-magit 108 emacs-magit-todos 109 emacs-marginalia 110 emacs-mentor 111 emacs-notmuch 112 emacs-openwith 113 emacs-orderless 114 emacs-org-mem 115 emacs-org-node 116 emacs-org-present 117 emacs-paredit 118 emacs-pdf-tools 119 emacs-rainbow-delimiters 120 emacs-skeletor 121 emacs-transient 122 emacs-undo-tree 123 emacs-verilog-mode 124 emacs-vertico 125 126 ;; texlive 127 texlive-latexmk 128 texlive-scheme-full 129 130 ;; guile 131 guile-colorized 132 guile-readline 133 134 ;; xorg 135 scrot 136 sx 137 xauth 138 xclip 139 xhost 140 xorg-server-with-drivers 141 xrandr 142 xsel 143 144 ;; email 145 isync 146 notmuch 147 oauth2ms 148 149 ;; videos 150 mpv 151 yt-dlp 152 153 ;; browser 154 qutebrowser 155 156 ;; printing 157 ;prusa-slicer 158 159 ;; other 160 rtorrent-xmlrpc))) 161 162 (services (list (simple-service 'epistemia-env-vars 163 home-environment-variables-service-type 164 '(("PS1" . "\\h$ ") 165 ("PS2" . "> ") 166 ("PATH" . "$HOME/bin:$PATH") 167 ("BROWSER" . "qutebrowser") 168 ("EDITOR" . "emacsclient") 169 ("VISUAL" . "emacsclient") 170 ("NOTMUCH_CONFIG" . "$XDG_CONFIG_HOME/notmuch/default/config") 171 ("TEXMFHOME" . "$XDG_CONFIG_HOME/texmf") 172 ("GOPROXY" . "direct") 173 ("AGE_KEY" . "$HOME/.ssh/id_ed25519") 174 ("AGE_PUB" . "${AGE_KEY}.pub") 175 ("KASI_DIR" . "/data/kasi") 176 ("KASI_EXT" . "age") 177 ("KASI_CLIPBOARD" . "xsel -ib") 178 ("KASI_DECRYPT" . "age -d -i $AGE_KEY") 179 ("KASI_ENCRYPT" . "age -R $AGE_PUB") 180 ("CRAWL_DIR" . "$XDG_DATA_HOME/crawl"))) 181 (simple-service 'xdg-base-dirs-config 182 home-xdg-base-directories-service-type 183 (home-xdg-base-directories-configuration 184 (cache-home "$HOME/.cache") 185 (config-home "$HOME/.config") 186 (data-home "$HOME/.local/share") 187 (state-home "$HOME/.local/state") 188 (runtime-dir "$HOME/.local/state/runtime"))) 189 (service home-dbus-service-type) 190 (service home-pipewire-service-type 191 (home-pipewire-configuration 192 (enable-pulseaudio? #t) 193 (wireplumber wireplumber-minimal))) 194 (service home-dotfiles-service-type 195 (home-dotfiles-configuration 196 (layout 'stow) 197 (directories '("../files")))))))