(define-module (mf home) #:use-module (gnu home) #:use-module (gnu home services) #:use-module (gnu home services desktop) #:use-module (gnu home services shells) #:use-module (gnu services) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages compton) #:use-module (gnu packages emacs) #:use-module (gnu packages finance) #:use-module (gnu packages gnome) #:use-module (gnu packages gnome-xyz) #:use-module (gnu packages kde-plasma) #:use-module (gnu packages maths) #:use-module (gnu packages mpd) #:use-module (gnu packages networking) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages rust-apps) #:use-module (gnu packages suckless) #:use-module (gnu packages shellutils) #:use-module (gnu packages tmux) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (gnu packages wm) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (mf packages) #:use-module (mf packages plan9) #:use-module (mf services dwm) #:use-module (mf services xsettingsd)) (define %x-packages (cons* mf-st mf-dmenu go-acme-watch go-acme-editinacme go-acme-acmego plan9port (map specification->package (list "akonadi" "akonadi-calendar" "akonadi-contacts" "alacritty" "arandr" "arc-theme" "bc" "cantata" "dino" "kdepim-runtime" "korganizer" "font-awesome" "font-fantasque-sans" "font-victor-mono" "font-spleen" "font-terminus" "font-ibm-plex" "font-unscii" "font-termsyn" "font-tamzen" "gimp" "gnuplot" "hledger" "icecat" "icedove" "keepassxc" "light" "lxappearance" "mpv" "network-manager-openconnect" "nordic-theme" "openconnect" "okular" "pass-otp" "pavucontrol" "pcmanfm" "python-yubikey-manager" "yubikey-manager-qt" "rofi" "sxiv" "telegram-desktop" "tuba" "ublock-origin-chromium" "ungoogled-chromium" "wxmaxima" "xclip" "xrandr" "xsetroot")))) (define %wayland-packages (map specification->package (list "wl-clipboard" "wofi"))) (define %cl-packages (map specification->package (list "sbcl" "sbcl-sdl2" ; Needed for lem-sdl2, will be a package soon "sbcl-sdl2-image" "sbcl-sdl2-ttf" "sbcl-cl+ssl" "sbcl-cl-readline" "openssl" "emacs-sly" "emacs-sly-quicklisp" "emacs-sly-asdf"))) (define %ocaml-packages (map specification->package (list "emacs-tuareg" "opam"))) (define %emacs-packages (map specification->package (list "emacs-auctex" "emacs-code-cells" "emacs-guix" "emacs-hare-mode" "emacs-jupyter" "emacs-lispy" "emacs-notmuch" "emacs-org-fragtog" "emacs-pdf-tools" "emacs-telega" "emacs-vterm" "libgccjit" "ghostscript" "ispell" "aspell-dict-it" "aspell-dict-en" "hunspell-dict-it-it" "hunspell-dict-en-us" "hunspell-dict-en-gb" "pandoc" "python-ipykernel" "python-jupyter-client" "python-jupytext" "python-notebook" "texlive" "tree-sitter" "tree-sitter-c" "tree-sitter-cpp" "tree-sitter-css" "tree-sitter-rust" "tree-sitter-go" "tree-sitter-python" "tree-sitter-scheme" "tree-sitter-racket" "tree-sitter-haskell" "tree-sitter-bash" "tree-sitter-html"))) (define %devel-packages (cons* mf-bin (map specification->package (list "cmake" "bash" ; direnv needs this "direnv" "fzf" "gcc-toolchain" "gdb" "gforth" "git" "guile" "htop" "make" "nasm" "neovim" "ripgrep" "sshfs" "vim" "zoxide" "zsh" "zsh-autosuggestions" "zsh-completions" "zsh-syntax-highlighting")))) (home-environment (packages (cons* mf-dwm (append %x-packages %wayland-packages %emacs-packages %cl-packages %ocaml-packages %devel-packages (map specification->package (list "cryptsetup" "glibc-locales" "gnome-keyring" "gnupg" "libnma" "imagemagick" "password-store" "polkit-kde-agent" "msmtp" "notmuch" "rsync" "isync" "yt-dlp"))))) (services (list (service home-zsh-service-type (home-zsh-configuration (environment-variables (list (cons "EDITOR" "nvim") (cons "VISUAL" "nvim") (cons "PLAN9" (file-append plan9port "/plan9")) (cons "PROJECT_DIRS" (string-append (getenv "HOME") "/doc/uni/")))) (zprofile (list (local-file "../scripts/zprofile"))) (zshrc (list (local-file "../scripts/zshrc"))))) (simple-service 'configs home-xdg-configuration-files-service-type (list (list "alacritty/alacritty.yml" (local-file "../configs/alacritty.yml")) (list "dunst/dunstrc" (local-file "../configs/dunstrc")) (list "mpd/mpd.conf" (local-file "../configs/mpd.conf")) (list "msmtp/config" (local-file "../configs/msmtp")) (list "picom.conf" (local-file "../configs/picom.conf")) (list "kak/kakrc" (local-file "../configs/kakrc")) (list "direnv/direnvrc" (local-file "../configs/direnvrc")) (list "kmonad/kmonad.kbd" (local-file "../configs/kmonad.kbd")) (list "kmonad/kmonad-usb.kbd" (local-file "../configs/kmonad-usb.kbd")))) (simple-service 'homefiles home-files-service-type (list (list ".tmux.conf" (local-file "../configs/tmux.conf")) (list ".mbsyncrc" (local-file "../configs/mbsyncrc")) (list ".notmuch-config" (local-file "../configs/notmuch")) (list ".Xresources" (local-file "../configs/Xresources")) (list ".Xresources.dark" (local-file "../configs/Xresources.dark")))) (service home-xsettingsd-service-type (home-xsettingsd-configuration (theme (cons breeze-gtk "Breeze")) (icons (cons papirus-icon-theme "Papirus-Light")))) (service home-dwm-service-type (home-dwm-configuration (dwm (cons mf-dwm "dwm")) (bar '("date +'%d/%m/%Y %H:%M'")) (bar-refresh-seconds 15) (wallpaper (local-file "../wallpaper.jpg")) (programs (list (cons picom '()) (cons dunst '()) (cons (cons blueman "blueman-applet") '()) (cons pasystray '()) (cons (cons network-manager-applet "nm-applet") '()) (cons mpd '()) (cons cbatticon '("BAT0")) (cons cbatticon '("BAT1")) (cons xsettingsd '()) (cons tmux '("new-session" "-d")) (cons setxkbmap '("-option" "compose:ralt")) (cons xrdb '("-merge" "$HOME/.Xresources")) (cons (cons emacs-next "emacs") '("--daemon")) (cons xmodmap '("~/.Xmodmap")) (cons xcape '("-e 'Hyper_L=Tab'")) (cons xinput '("set-prop" "10" "\"libinput Accel Speed\"" "0.8")))))))))