(define-module (oni home config rincewind) #:use-module ((gnu home) #:select (home-environment)) #:use-module ((gnu home services mail) #:select (home-msmtp-service-type home-msmtp-configuration msmtp-configuration msmtp-account)) #:use-module ((gnu home services gnupg) #:select (home-gpg-agent-service-type home-gpg-agent-configuration)) #:use-module ((gnu home services ssh) #:select (home-ssh-agent-service-type)) #:use-module ((gnu packages certs) #:select (nss-certs)) #:use-module ((gnu packages cdrom) #:select (abcde)) #:use-module ((gnu packages databases) #:select (recutils emacs-rec-mode)) #:use-module ((gnu packages emacs) #:select (emacs-next-tree-sitter)) #:use-module ((gnu packages emacs-xyz) #:select (emacs-org-roam emacs-guix emacs-org-contacts emacs-fennel-mode)) #:use-module ((gnu packages file-systems) #:select (tmsu)) #:use-module ((gnu packages forth) #:select (gforth)) #:use-module ((gnu packages gnome) #:select (hicolor-icon-theme)) #:use-module ((gnu packages librewolf) #:select (librewolf)) #:use-module ((gnu packages linux) #:select (fakeroot)) #:use-module ((gnu packages mail) #:select (notmuch emacs-notmuch)) #:use-module ((gnu packages music) #:select (easytag)) #:use-module ((gnu packages tree-sitter) #:select (tree-sitter-bash tree-sitter-scheme tree-sitter-python tree-sitter-org tree-sitter-json tree-sitter-css)) #:use-module ((gnu packages) #:select (specification->package+output specification->package)) #:use-module ((gnu services) #:select (service simple-service)) #:use-module ((guix channels) #:select (channel make-channel-introduction openpgp-fingerprint)) #:use-module ((guix gexp) #:select (local-file mixed-text-file)) #:use-module ((guix packages) #:select (package-name package-input-rewriting)) #:use-module ((guix transformations) #:select (options->transformation)) #:use-module ((nongnu packages emacs) #:select (emacs-org-roam-ui)) #:use-module ((oni home config common) #:select (home-redshift-service ;; home-xbindkeys-service home-zsh-service home-guile-service home-xmodmap-service home-openssh-service home-kitty-service home-channels-service)) #:use-module ((oni home services autokey) #:select (home-autokey-service-type)) #:use-module ((oni home services copyq) #:select (home-copyq-service-type)) #:use-module ((oni home services dunst) #:select (home-dunst-default-service)) #:use-module ((oni home services emacs) #:select (home-emacs-service-type home-emacs-configuration home-emacs-helpful-service-type home-emacs-helpful-configuration home-emacs-yasnippet-capf-service-type home-emacs-dashboard-service-type home-emacs-dashboard-configuration home-emacs-eros-service-type home-emacs-ace-link-service-type home-emacs-ace-link-configuration home-emacs-ace-link-notmuch-service-type home-emacs-ace-link-notmuch-configuration home-emacs-golden-ratio-service-type home-emacs-pinentry-service-type home-emacs-vterm-service-type home-emacs-vterm-configuration home-emacs-org-modern-service-type home-wakatime-service-type home-wakatime-configuration)) #:use-module ((oni home services environment) #:select (home-environment-service)) #:use-module ((oni home services flameshot) #:select (home-flameshot-service-type)) #:use-module ((oni home services gnuzilla) #:select (home-icecat-service-type home-icecat-configuration)) #:use-module ((oni home services kdeconnect) #:select (home-kdeconnect-service-type)) #:use-module ((oni home services mpd) #:select (home-mpd-service-type home-mpd-configuration home-mpc-update-service-type home-mpd-notify-service-type home-mpdscrobble-service-type)) #:use-module ((oni home services mpv) #:select (home-mpv-service-type home-mpv-mpris-service-type)) #:use-module ((oni home services notmuch) #:select (home-notmuch-service-type home-notmuch-configuration)) #:use-module ((oni home services picom) #:select (home-picom-service-type home-picom-configuration)) #:use-module ((oni home services polybar) #:select (home-polybar-service-type home-polybar-configuration)) #:use-module ((oni home services rofi) #:select (home-rofi-default-service)) #:use-module ((oni home services stumpwm) #:select (home-stumpwm-service-type home-stumpwm-configuration home-stumpwm-gaps-service-type home-stumpwm-gaps-configuration home-stumpwm-stumptray-service-type home-stumpwm-stumptray-configuration)) #:use-module ((oni home services syncthing) #:select (home-syncthing-service-type)) #:use-module ((oni home services utilities) #:select (home-inkplate-display-service-type)) #:use-module ((oni home services zsh) #:select (home-zsh-syntax-highlighting-service-type home-zsh-autosuggestions-service-type home-zsh-autopair-service-type)) #:use-module ((oni packages count-emails) #:select (count-emails)) #:use-module ((oni packages emacs) #:select (emacs-inkplate emacs-outli emacs-syncthing-status emacs-nginx-mode)) #:use-module ((oni packages emacs-config) #:select (emacs-oni-org-roam emacs-oni-elfeed emacs-oni-elisp emacs-oni-eshell emacs-oni-core emacs-oni-compilation emacs-oni-common-lisp emacs-oni-gui emacs-oni-magit emacs-oni-notmuch emacs-oni-hy emacs-oni-project emacs-oni-bookmark emacs-oni-dired emacs-oni-browse-url emacs-oni-c emacs-oni-circe emacs-oni-clojure emacs-oni-cmake emacs-oni-conf emacs-oni-cpp emacs-oni-csharp emacs-oni-css emacs-oni-diff-hl emacs-oni-ediff emacs-oni-elm emacs-oni-emms emacs-oni-epub emacs-oni-eww emacs-oni-grep emacs-oni-haskell emacs-oni-highlight-indent-guides emacs-oni-html emacs-oni-java emacs-oni-json emacs-oni-log-edit emacs-oni-lua emacs-oni-makefile emacs-oni-nxml emacs-oni-package emacs-oni-projectile emacs-oni-scheme emacs-oni-sh emacs-oni-shr emacs-oni-tramp emacs-oni-embrace emacs-oni-yaml emacs-oni-python emacs-oni-git-commit emacs-oni-php emacs-oni-web-mode)) #:use-module ((oni packages inbox-size) #:select (inbox-size)) #:use-module ((oni packages mpd) #:select (mpd-random-albums)) #:use-module ((oni packages notmuch-collect-tasks) #:select (notmuch-collect-tasks)) #:use-module ((oni packages notmuch-tag-mailinglists) #:select (notmuch-tag-mailinglists)) #:use-module ((oni packages pick-random-wallpaper) #:select (pick-random-wallpaper)) #:use-module ((oni packages shutdown-rofi) #:select (shutdown-rofi)) #:use-module ((oni packages snes-games) #:select (snes-blackthorne snes-blackthorne-icons)) #:use-module ((oni packages stumpwm) #:select (stumpwm+swank)) #:use-module ((oni packages terminals) #:select (tym)) #:use-module ((oop goops) #:select (make))) (define (with-master-branch package) "Apply a transformation to PACKAGE so that it uses the master branch." ((options->transformation `((with-branch . ,(string-append (package-name package) "=master")))) package)) (define (with-source package source) ((options->transformation `((with-source . ,(format #f "~a=~a" (package-name package) source)))) package)) (define rincewind-picom-service (service home-picom-service-type (home-picom-configuration (backend "glx") (glx-no-stencil #t) (detect-transient #t) (shadow #t) (shadow-radius 5) (shadow-opacity 85) (shadow-offset-x 15) (shadow-offset-y 15) (shadow-exclude '("name = 'mowedline'" "class_g = 'trayer'" "bounding_shaped" "class_g = 'i3lock'")) (wintypes '((dnd (shadow . #f)) (dock (shadow . #f)))) (rounded-corners-exclude '("window_type *= \\\"dock\\\"")) (corner-radius 15) (blur-background #f) (blur-background-frame #f) (fading #f)))) (define my-emacs emacs-next-tree-sitter) (home-environment (packages (list easytag (specification->package+output "glibc-locales") (specification->package+output "font-fantasque-sans") (specification->package+output "font-comic-neue") (specification->package+output "font-dosis") (specification->package "zathura") (specification->package "zathura-ps") (specification->package "zathura-pdf-mupdf") pick-random-wallpaper notmuch-collect-tasks notmuch-tag-mailinglists (inbox-size my-emacs) count-emails shutdown-rofi emacs-org-roam emacs-org-roam-ui emacs-org-contacts fakeroot ; Needed for build arch packages tmsu mpd-random-albums notmuch emacs-inkplate emacs-syncthing-status emacs-outli emacs-guix emacs-fennel-mode (emacs-oni-org-roam my-emacs) emacs-oni-elisp emacs-oni-core emacs-oni-elfeed emacs-oni-eshell emacs-oni-compilation emacs-oni-common-lisp emacs-oni-gui emacs-oni-magit emacs-oni-notmuch emacs-oni-hy emacs-oni-project emacs-oni-bookmark emacs-oni-dired emacs-oni-browse-url emacs-oni-c emacs-oni-circe emacs-oni-clojure emacs-oni-cmake emacs-oni-conf emacs-oni-cpp emacs-oni-csharp emacs-oni-css emacs-oni-diff-hl emacs-oni-ediff emacs-oni-elm emacs-oni-embrace emacs-oni-emms emacs-oni-epub emacs-oni-eww emacs-oni-grep emacs-oni-haskell emacs-oni-highlight-indent-guides emacs-oni-html emacs-oni-java emacs-oni-json emacs-oni-log-edit emacs-oni-lua emacs-oni-makefile emacs-oni-nxml emacs-oni-package emacs-oni-projectile emacs-oni-scheme emacs-oni-sh emacs-oni-shr emacs-oni-tramp emacs-oni-yaml emacs-oni-python emacs-nginx-mode emacs-oni-git-commit emacs-oni-php emacs-oni-web-mode tree-sitter-bash tree-sitter-scheme tree-sitter-python tree-sitter-org tree-sitter-json tree-sitter-css gforth recutils emacs-rec-mode ;; Might be needed for certain icons? hicolor-icon-theme ;; Might be needed for cetrificates nss-certs tym (with-source snes-blackthorne-icons (format #f "~a/pictures/icons/Blackthorne/blackthorne_icons.tar.gz" (getenv "HOME"))) (with-source snes-blackthorne (format #f "~a/downloads/Blackthorne.7z" (getenv "HOME"))))) (services (list home-environment-service home-rofi-default-service home-dunst-default-service home-redshift-service ;; home-xbindkeys-service home-zsh-service home-guile-service home-xmodmap-service home-openssh-service home-kitty-service rincewind-picom-service ;; This has to be the first extension because it needs to be added to the ;; configuration last. (service home-zsh-syntax-highlighting-service-type) (service home-zsh-autosuggestions-service-type) (service home-zsh-autopair-service-type) home-channels-service ;; (service home-polybar-service-type ;; (home-polybar-configuration ;; (bar "rincewind"))) (service home-kdeconnect-service-type) (service home-syncthing-service-type) (service home-emacs-service-type (home-emacs-configuration (package my-emacs) (configurations (list (local-file "../services/emacs/init.el") (mixed-text-file "init.el" "(with-eval-after-load 'hy-mode (require 'oni-hy))\n" "(with-eval-after-load 'project (require 'oni-project))\n" "(projectile-mode)\n" "(setq custom-file \"~/.config/emacs/custom.el\")\n" "(load custom-file)\n" "(provide 'init)\n" ";;; init.el ends here\n"))))) (service home-emacs-helpful-service-type (home-emacs-helpful-configuration (configurations (list (local-file "../services/emacs/oni-helpful.el"))))) (service home-emacs-yasnippet-capf-service-type) (service home-emacs-dashboard-service-type (home-emacs-dashboard-configuration (configurations (list (local-file "../services/emacs/oni-dashboard.el"))))) (service home-emacs-eros-service-type) (service home-emacs-ace-link-service-type (home-emacs-ace-link-configuration (default-key "C-S-e") (goto-address-key "C-S-e") (org-mode-key "C-S-e"))) (service home-emacs-ace-link-notmuch-service-type (home-emacs-ace-link-notmuch-configuration (default-key "C-S-e"))) (service home-emacs-golden-ratio-service-type) (service home-emacs-pinentry-service-type) (service home-emacs-vterm-service-type (home-emacs-vterm-configuration (buffer-name-string "*vterm* %s"))) (service home-emacs-org-modern-service-type) (service home-wakatime-service-type (home-wakatime-configuration (api-url "https://waka.ryuslash.org/api") (exclude '("COMMIT_EDITMSG$" "TAG_EDITMSG$")))) (service home-flameshot-service-type) (service home-mpd-service-type (home-mpd-configuration (music-directory "~/music") (playlist-directory "~/music/playlists") (log-file "~/.local/share/mpd/mpd.log") (pid-file "~/.local/share/mpd/mpd.pid") (db-file "~/.local/share/mpd/mpd.db") (state-file "~/.local/share/mpd/mpdstate") (audio-outputs (list (make #:type "pulse" #:name "MPD Pulse") (make #:type "fifo" #:name "Visualizer" #:path "/tmp/mpd.fifo" #:format "44100:16:2"))))) (service home-mpc-update-service-type) (service home-mpd-notify-service-type) (service home-mpdscrobble-service-type) (service home-mpv-service-type) ;; [2024-01-05 Fri] mpv-mpris fails to compile: ;; mpris.c:1:10: fatal error: gio/gio.h: No such file or directory ;; Since I don't actually use it right now I really don't need it. ; (service home-mpv-mpris-service-type) (service home-stumpwm-service-type (home-stumpwm-configuration (package stumpwm+swank) (configurations (list (local-file "../services/stumpwm/config"))))) (service home-stumpwm-gaps-service-type (home-stumpwm-gaps-configuration (configurations (list (local-file "../services/stumpwm/config-gaps"))))) (service home-stumpwm-stumptray-service-type (home-stumpwm-stumptray-configuration (configurations (list (mixed-text-file "config-stumptray" "(require 'stumptray)\n" "(stumptray::stumptray)\n"))))) (service home-inkplate-display-service-type) (service home-notmuch-service-type (home-notmuch-configuration (database-path "/home/chelys/documents/mail") (user-primary-email "tom@ryuslash.org") (user-other-email '("ryuslash@gmail.com" "tom@iactor.nl")) (new-ignore '(".nnmaildir" ".mbsyncstate" ".uidvalidity" ".mbsyncstate.journal" ".mbsyncstate.new")))) (service home-autokey-service-type) (service home-copyq-service-type) (service home-msmtp-service-type (home-msmtp-configuration (defaults (msmtp-configuration (auth? #t) (tls? #t) (tls-starttls? #t) (port 587))) (accounts (list (msmtp-account (name "gmail") ;; Use `secret-tool store --label=msmtp host smtp.gmail.com ;; service smtp user ryuslash@gmail.com' to store the ;; password. (configuration (msmtp-configuration (host "smtp.gmail.com") (from "ryuslash@gmail.com") (user "ryuslash@gmail.com")))) (msmtp-account (name "ryuslash") ;; Use `secret-tool store --label=msmtp host ;; smtp-ryuslash.alwaysdata.net service smtp user ;; tom@ryuslash.org' to store the password. (configuration (msmtp-configuration (host "smtp-ryuslash.alwaysdata.net") (from "tom@ryuslash.org") (user "tom@ryuslash.org")))))) (default-account "ryuslash"))) (service home-gpg-agent-service-type (home-gpg-agent-configuration (ssh-support? #f) (extra-content "allow-emacs-pinentry\n"))) (service home-ssh-agent-service-type) (service home-icecat-service-type (home-icecat-configuration (package librewolf) (settings '(("extensions.pocket.enabled" #f) ("view_source.editor.args" "--no-wait") ("view_source.editor.external" #t) ("view_source.editor.path" "/home/chelys/.guix-home/profile/bin/emacsclient") ;; Visual modifications. Don't let websites pick the colors or ;; the fonts, use mine instead. ("browser.display.document_color_use" 2) ("browser.display.use_document_fonts" 0) ("browser.display.background_color" "#222424") ("browser.display.foreground_color" "#bfbfbf") ("browser.anchor_color" "#ff9800") ("browser.visited_color" "#0babab") ("browser.newtabpage.activity-stream.showWeather" #f) ("font.default.x-western" "sans-serif") ("font.minimum-size.x-western" 18) ("font.name.monospace.x-western" "Fantasque Sans Mono") ("font.name.sans-serif.x-western" "Dosis") ;; Sadly, with this option on it won't accept my color ;; modifications, so I turn it off, even though I would prefer ;; being able to leave everything (except the forced light ;; theme) on. ("privacy.resistFingerprinting" #f) ;; Change the accelerator key (modifier key for most keyboard ;; shortcuts) to the super key (from control). ("ui.key.accelKey" 91))))))))