(define-module (aisaka-home-configuration) #:use-module (gnu home) #:use-module (gnu home services) #:use-module (gnu home services shells) #:use-module (gnu packages) #:use-module (gnu services) #:use-module (guix gexp)) (define list-to-package-output (compose list specification->package+output)) (define home-packages '("cpupower" "dconf-editor" "emacs-no-x" "emacs-ac-geiser" "emacs-aggressive-indent" "emacs-geiser" "emacs-geiser-guile" "emacs-iedit" "emacs-multiple-cursors" "emacs-paredit" "font-google-noto" "git" "git-lfs" "gnome-tweaks" "gnupg" "icecat" "jami" "libreoffice" "pwgen" "seahorse" "sicp" "trezor-agent" "unzip" "zip")) (define packages (map list-to-package-output home-packages)) (define config-prefix "/home/marek/src/guix-config/") (define home-env-vars '(("EDITOR" . "emacs") ("NVM_DIR" . "$HOME/src/nvm") ("GUILE_AUTO_COMPILE" . "0"))) (define allow-downgrades "--allow-downgrades") (define pull-guix "guix pull ") (define pull-guix- (string-append pull-guix allow-downgrades "--disable-authentication")) (define guix-home "guix home reconfigure ") (define home-configuration "home-configuration.scm") (define reconfigure-home (string-append guix-home config-prefix home-configuration)) (define reconfigure-home- (string-append reconfigure-home allow-downgrades)) (define guix-system "sudo guix system reconfigure ") (define system-configuration "system-configuration.scm") (define reconfigure-system (string-append guix-system config-prefix system-configuration)) (define reconfigure-system- (string-append reconfigure-system allow-downgrades)) (define and "&& ") (define system-update (string-append pull-guix and reconfigure-system and reconfigure-home)) (define system-update- (string-append pull-guix- and reconfigure-system- and reconfigure-home-)) (define home-aliases `(("grep" . "grep --color=auto") ("ll" . "ls -l") ("ls" . "ls -p --color=auto") ("pull-guix" . ,pull-guix) ("pull-guix-" . ,pull-guix-) ("reconfigure-home" . ,reconfigure-home) ("reconfigure-home-" . ,reconfigure-home-) ("reconfigure-system" . ,reconfigure-system) ("reconfigure-system-" . ,reconfigure-system-) ("system-update" . ,system-update) ("system-update-" . ,system-update-))) (define bash-profile-target (string-append config-prefix ".bash_profile")) (define bash-profile (local-file bash-profile-target "bash_profile")) (define home-bash-profile `(,bash-profile)) (define bashrc-target (string-append config-prefix ".bashrc")) (define bashrc (local-file bashrc-target "bashrc")) (define home-bashrc `(,bashrc)) (define bash-configuration (home-bash-configuration (environment-variables home-env-vars) (aliases home-aliases) (bash-profile home-bash-profile) (bashrc home-bashrc))) (define home-bash-service (service home-bash-service-type bash-configuration)) (define emacs-init (local-file "emacs.el")) (define gsad-source (local-file "guix-shell-authorized-directories")) (define ssh-config (local-file "ssh.config")) (define home-files `((".config/guix/shell-authorized-directories" ,gsad-source) (".emacs" ,emacs-init) (".ssh/config" ,ssh-config))) (define dot-files-service (simple-service 'dot-files home-files-service-type home-files)) (define services `(,home-bash-service ,dot-files-service)) (home-environment (packages packages) (services services))