guix-config/home/config.scm

270 lines
6.7 KiB
Scheme
Executable File

(use-modules
(gnu)
(gnu home)
(gnu home services)
(gnu home services shells)
(gnu home services shepherd)
(gnu packages)
(gnu packages bittorrent)
(gnu packages browser-extensions)
(gnu packages chromium)
(gnu packages cvassistant)
(gnu packages disk)
(gnu packages ebook)
(gnu packages emacs)
(gnu packages freedesktop)
(gnu packages gnupg)
(gnu packages gnuzilla)
(gnu packages irc)
(gnu packages libreoffice)
(gnu packages linphone)
(gnu packages lxde)
(gnu packages mail)
(gnu packages messaging)
(gnu packages networking)
(gnu packages pdf)
(gnu packages polkit)
(gnu packages pulseaudio)
(gnu packages ssh)
(gnu packages telegram)
(gnu packages telephony)
(gnu packages version-control)
(gnu packages video)
(gnu packages web-browsers)
(gnu services)
(guix gexp))
(home-environment
(packages
(append
;; Communication
(list
gajim
gajim-omemo
gajim-openpgp
icedove
linphone-desktop
mumble
mutt
poezio
telegram-desktop
weechat)
;; DevOps
(list
git
`(,git "send-email")
openssh)
;; Multimedia
(list
mpv
pipe-viewer
youtube-dl
yt-dlp)
;; Network
(list
`(,transmission "gui"))
;; Productivity
(list
calibre
cvassistant
emacs
libreoffice)
;; Security
(list
gnupg
gpa
pinentry
polkit-gnome)
;; Utilities
(list
blueman
mupdf
pavucontrol
spacefm
udiskie
xfe)
;; Web
(list
icecat
nyxt
ublock-origin/chromium
uget
ungoogled-chromium)))
(services
(append
;; Shells
(list
(service home-bash-service-type
(home-bash-configuration
(bash-profile
(list
(local-file
(string-append (getenv "HOME")
"/dotfiles/bash/bash_profile")
"bash_profile"))))))
;; Files
(list
(simple-service 'emacs-config
home-files-service-type
(list
`("emacs.d/init.el"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/emacs/init.el")))))
(simple-service 'git-config
home-files-service-type
(list
`("config/git/config"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/git/config")))))
(simple-service 'gnupg-dirmngr-config
home-files-service-type
(list
`("gnupg/dirmngr.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/dirmngr.conf")))))
(simple-service 'gnupg-gpa-config
home-files-service-type
(list
`("gnupg/gpa.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/gpa.conf")))))
(simple-service 'gnupg-gpg-config
home-files-service-type
(list
`("gnupg/gpg.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/gpg.conf")))))
(simple-service 'gnupg-gpg-agent-config
home-files-service-type
(list
`("gnupg/gpg-agent.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/gpg-agent.conf")))))
(simple-service 'gnupg-scdaemon-config
home-files-service-type
(list
`("gnupg/scdaemon.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/scdaemon.conf")))))
(simple-service 'gnupg-sshcontrol-config
home-files-service-type
(list
`("gnupg/sshcontrol"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/sshcontrol")))))
(simple-service 'gtk-gtk2-config
home-files-service-type
(list
`("gtkrc-2.0"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gtk/gtkrc-2.0")))))
(simple-service 'gtk-gtk3-config
home-files-service-type
(list
`("config/gtk-3.0/settings.ini"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gtk/settings.ini")))))
(simple-service 'guix-channels-config
home-files-service-type
(list
`("config/guix/channels.scm"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/channels.scm")))))
(simple-service 'nano-config
home-files-service-type
(list
`("config/nano/nanorc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/nano/nanorc")))))
(simple-service 'poezio-config
home-files-service-type
(list
`("config/poezio/poezio.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/poezio.cfg")))))
(simple-service 'poezio-irc-config
home-files-service-type
(list
`("config/poezio/plugins/irc.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/plugins/irc.cfg")))))
(simple-service 'poezio-link-config
home-files-service-type
(list
`("config/poezio/plugins/link.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/plugins/link.cfg")))))
(simple-service 'poezio-otr-config
home-files-service-type
(list
`("config/poezio/plugins/otr.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/plugins/otr.cfg")))))
(simple-service 'stumpwm-config
home-files-service-type
(list
`("stumpwm.d/init.lisp"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/stumpwm/init.lisp")))))
(simple-service 'termite-config
home-files-service-type
(list
`("config/termite/config"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/termite/config")))))
(simple-service 'x-xinit-config
home-files-service-type
(list
`("xinitrc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/x/xinitrc")))))
(simple-service 'x-xserver-config
home-files-service-type
(list
`("xserverrc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/x/xserverrc"))))))
;; 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-destructor "emacsclient -e '(kill-emacs)'")))
(shepherd-service
(provision '(gpg-agent))
(start #~(make-system-constructor "gpg-agent --daemon"))
(stop #~(make-system-destructor "gpg-connect-agent killagent /bye")))
(shepherd-service
(provision '(polkit-agent))
(start #~(make-system-constructor "$HOME/.guix-home/profile/libexec/polkit-gnome-authentication-agent-1 &"))
(stop #~(make-system-destructor "pkill -9 polkit-gnome-authentication-agent-1")))
(shepherd-service
(provision '(udiskie))
(start #~(make-system-constructor "udiskie &"))
(stop #~(make-system-destructor "pkill -9 udiskie")))))))))))