;; This is a sample Guix Home configuration which can help setup your ;; home directory in the same declarative manner as Guix System. ;; For more information, see the Home Configuration section of the manual. (define-module (guix-home-config) #:use-module (gnu home) #:use-module (gnu home services) #:use-module (gnu home services shells) #:use-module (gnu services) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages emacs) #:use-module (gnu packages fonts) #:use-module (gnu packages mail) #:use-module (gnu packages rust-apps) #:use-module (gnu packages search) #:use-module (gnu packages imagemagick) #:use-module (gnu packages password-utils) #:use-module (gnu packages image-viewers) #:use-module (gnu packages xfce) #:use-module (gnu packages sync) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages gnome) #:use-module (gnu packages librewolf) #:use-module (gnu packages emacs-xyz) #:use-module (gnu packages text-editors) #:use-module (gnu packages golang) #:use-module (gnu packages gnupg) #:use-module (gnu packages aspell) #:use-module (gnu packages sqlite) #:use-module (gnu packages gcc) #:use-module (gnu packages commencement) #:use-module (gnu packages freedesktop) #:use-module (gnu packages base) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages linux) #:use-module (gnu packages image) #:use-module (gnu packages xdisorg) #:use-module (gnu packages databases) #:use-module (gnu packages package-management) #:use-module (gnu packages compression) #:use-module (gnu system shadow) #:use-module (gnu services xorg) #:use-module (gnu system keyboard) #:use-module (gnu home services fontutils) #:use-module (gnu home services dotfiles) #:use-module (gnu home services gnupg) #:use-module (gnu home services desktop) #:use-module (gnu home services fontutils) #:use-module (gnu packages ssh) #:use-module (gnu packages pdf) #:use-module (gnu packages texinfo) #:use-module (gnu packages man) #:use-module (gnu packages chromium) #:use-module (gnu packages llvm) #:use-module (gnu packages cmake) #:use-module (gnu packages version-control) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (gnu packages video) #:use-module (gnu packages mp3) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages haskell-apps) #:use-module (guix build-system go) #:use-module (gnu home services pm) #:use-module (gnu home services xdg) #:use-module (gnu home services dict) #:use-module (nongnu packages game-client) #:use-module (nongnu packages mozilla)) (define home-config (home-environment (packages (list font-iosevka font-iosevka-aile font-iosevka-etoile font-liberation isync zoxide ugrep imagemagick password-store fd recutils unzip inxi alsa-utils texinfo man-db man-pages mandoc mp3info ungoogled-chromium pandoc kmonad git ((compose list specification->package+output) "git:send-email") steam ;; gsettings (specification->package+output "glib:bin") go binutils sqlite gcc-toolchain clang-toolchain cmake mg imv thunar thunar-volman emacs-geiser emacs-geiser-guile emacs-pinentry emacs-pdf-tools emacs-alsamixer-el mu mailutils msmtp emacs aspell aspell-dict-en adwaita-icon-theme gnupg age pinentry openssh firefox librewolf xkbutils xsetroot xkbset xhost scrot imlib2 ;; Needed for scrot xset xrdb brightnessctl autocutsel gsettings-desktop-schemas setxkbmap)) (services (list (service home-bash-service-type (home-bash-configuration (guix-defaults? #f) (bash-profile (list (local-file "./profile"))) (bashrc (list (local-file "./bashrc"))))) (service home-startx-command-service-type (xorg-configuration (keyboard-layout (keyboard-layout "us" "colemak" #:options '("ctrl:nocaps"))))) (simple-service 'additional-fonts-service home-fontconfig-service-type (list "~/.local/extra/fonts")) (service home-gpg-agent-service-type (home-gpg-agent-configuration (pinentry-program (file-append pinentry-emacs "/bin/pinentry-emacs")) (ssh-support? #t) (max-cache-ttl 99999) (default-cache-ttl 99999))) (service home-xdg-user-directories-service-type (home-xdg-user-directories-configuration (desktop "$HOME/desktop") (documents "$HOME/docs") (download "$HOME/download") (music "$HOME/music") (pictures "$HOME/pictures") (publicshare "$HOME/public") (templates "$HOME/templates") (videos "$HOME/videos"))) (service home-xdg-mime-applications-service-type (home-xdg-mime-applications-configuration (default '(("application/mp4" . "mpv.desktop") ("application/x-shellscript" . "emacsclient.desktop") ("text/javascript" . "emacsclient.desktop") ("text/markdown" . "emacsclient.desktop") ("text/plain" . "emacsclient.desktop") ("text/x-python3" . "emacsclient.desktop") ("video/h264" . "mpv.desktop") ("video/h265" . "mpv.desktop") ("video/h266" . "mpv.desktop") ("video/mpeg" . "mpv.desktop") ("image/jpeg" . "emacsclient.desktop") ("image/png" . "emacsclient.desktop") ("x-scheme-handler/mailto" . "emacsclient-mail.desktop") ("x-www-browser" . "firefox.desktop") ("text/html" . "firefox.desktop") ("x-scheme-handler/about" . "firefox.desktop") ("x-scheme-handler/chrome" . "firefox.desktop") ("x-scheme-handler/file" . "emacsclient.desktop") ("x-scheme-handler/http" . "firefox.desktop") ("x-scheme-handler/https" . "firefox.desktop") ("x-scheme-handler/unknown" . "firefox.desktop"))))) (service home-files-service-type `((".guile" ,%default-dotguile) (".Xdefaults" ,%default-xdefaults))) (service home-dotfiles-service-type (home-dotfiles-configuration (directories '("./dots")))) (service home-dbus-service-type) (service home-dicod-service-type) (simple-service 'extend-home home-environment-variables-service-type `(("PATH" . "${PATH}:~/go/bin:~/.cargo/bin:~/.local/bin"))) (service home-xdg-configuration-files-service-type `(("gdb/gdbinit" ,%default-gdbinit))))))) home-config