guixsd-config

GuixSD configs for my systems
Log | Files | Refs

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")))))))