Files
opalfiles/guix/home/guix-home.scm
2021-12-31 12:18:53 -08:00

224 lines
5.9 KiB
Scheme

(use-modules
(gnu)
(gnu home)
(gnu home services)
(gnu home services shells)
(gnu home services shepherd)
(gnu packages)
(gnu packages shells)
(gnu packages pulseaudio)
(gnu packages web-browsers)
(gnu packages guile)
(gnu packages wget)
(gnu packages curl)
(gnu packages pdf)
(gnu packages ebook)
(gnu packages gnome)
(gnu packages gnome-xyz)
(gnu packages compression)
(gnu packages cmake)
(gnu packages autotools)
(gnu packages gstreamer)
(gnu packages video)
(gnu packages mpd)
(gnu packages terminals)
(gnu packages xdisorg)
(gnu packages gnupg)
(gnu packages password-utils)
(gnu packages emacs)
(gnu packages emacs-xyz)
(gnu packages gnuzilla)
(gnu packages ruby)
(gnu packages python)
(gnu packages lisp)
(gnu packages python-xyz)
(gnu packages fonts)
(gnu packages wm)
(gnu services)
(guix gexp))
(home-environment
(packages
(append
;; Tools/Libraries
(list
zsh
wget
curl
cmake
zip
unzip
libtool
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gst-libav
wl-clipboard
pavucontrol)
;; Applications
(list
alacritty
nyxt
zathura-pdf-mupdf
nautilus
wlr-randr
calibre
mpv
youtube-dl
icedove
keepassxc
nautilus)
;; Emacs
(list
emacs-vterm
emacs-geiser
emacs-geiser-guile
emacs-doom-modeline
emacs-all-the-icons
emacs-all-the-icons-dired
emacs-general
emacs-which-key
emacs-alert
emacs-helpful
emacs-pinentry
emacs-doom-themes
emacs-evil
emacs-evil-collection
emacs-vertico
emacs-orderless
emacs-consult
emacs-company
emacs-marginalia
emacs-perspective
emacs-dired-rsync
emacs-dired-hacks
emacs-org-bullets
emacs-org-make-toc
emacs-visual-fill-column
emacs-flycheck
emacs-rainbow-mode
emacs-rainbow-delimiters
emacs-magit
emacs-projectile
emacs-lsp-mode
emacs-lsp-ui
emacs-treemacs
emacs-lsp-treemacs
emacs-parinfer-mode
emacs-yasnippet
emacs-pdf-tools)
;; Languages
(list
ruby
python
guile-3.0
sbcl
python-lsp-server
ruby-solargraph)
;; Aesthetics/Fonts
(list
gnome-tweaks
papirus-icon-theme
arc-theme
font-fira-mono
font-fira-code
font-fira-sans
font-abattis-cantarell
font-google-noto
font-awesome)))
(services
(append
;; Shell
(list
(service home-zsh-service-type
(home-zsh-configuration
;; Place all configs to $XDG_CONFIG_HOME/zsh. Makes
;; ~/.zshenv set ZDOTDIR to $XDG_CONFIG_HOME/zsh
;; and shell process starts with ~/.config/zsh/.zshenv
(xdg-flavor? #t)
;; .zshenv
(zshenv
(list
(local-file "files/zsh/zshenv")))
;; .zprofile
(zprofile
(list
(local-file "files/zsh/zprofile")))
;; .zshrc
(zshrc
(list
(local-file "files/zsh/zshrc"))))))
;; Files
(list
(simple-service 'sway-config
home-files-service-type
(list
`("config/sway/config"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/home/files/sway/config")))))
(simple-service 'user-dirs-config
home-files-service-type
(list
`("config/user-dirs.dirs"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/home/files/user-dirs.dirs")))))
(simple-service 'emacs-config
home-files-service-type
(list
`("config/emacs/init.el"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/home/files/emacs/init.el")))))
(simple-service 'nyxt-config
home-files-service-type
(list
`("config/nyxt/init.lisp"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/home/files/nyxt/init.lisp")))))
(simple-service 'dunst-config
home-files-service-type
(list
`("config/dunst/dunstrc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/home/files/dunst/dunstrc")))))
(simple-service 'mbsync-config
home-files-service-type
(list
`("config/mbsync/mbsyncrc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/home/files/mbsync/mbsyncrc")))))
(simple-service 'alacritty-config
home-files-service-type
(list
`("config/alacritty/alacritty.yml"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/home/files/alacritty/alacritty.yml"))))))
;; Daemons
(list
(service home-shepherd-service-type
(home-shepherd-configuration
(services
(list
(shepherd-service
(provision '(emacs))
(start #~(make-system-constructor "emacs --daemon"))
(stop #~(make-system-constructor "emacsclient -e '(kill-emacs)'")))
(shepherd-service
(provision '(gnome-keyring-daemon))
(start #~(make-system-contructor "gnome-keyring-daemon --daemonize "))
(stop #~(make-system-contructor "pkill gnome-keyring-daemon")))))))))))