530 lines
22 KiB
Scheme
530 lines
22 KiB
Scheme
(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 guix)
|
|
#:select (home-channels-service-type))
|
|
#:use-module ((gnu home services gnupg)
|
|
#:select (home-gpg-agent-service-type
|
|
home-gpg-agent-configuration))
|
|
#: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-company))
|
|
#: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 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))
|
|
#: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))
|
|
#: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))
|
|
#: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 kdeconnect)
|
|
#:select (home-kdeconnect-service-type))
|
|
#:use-module ((oni home services mpd)
|
|
#:select (home-mpd-service-type
|
|
home-mpd-configuration
|
|
<home-mpd-audio-output>
|
|
home-mpc-update-service-type
|
|
home-mpd-notify-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
|
|
oni-emacs-company
|
|
emacs-outli
|
|
emacs-syncthing-status))
|
|
#: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))
|
|
#:use-module ((oni packages hlwm-run-or-raise)
|
|
#:select (hlwm-run-or-raise))
|
|
#:use-module ((oni packages inbox-size)
|
|
#:select (inbox-size))
|
|
#:use-module ((oni packages mpd-random-albums)
|
|
#: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 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-my-emacs-company-package
|
|
(package-input-rewriting `((,emacs-company . ,oni-emacs-company))))
|
|
|
|
(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))))
|
|
(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")
|
|
hlwm-run-or-raise
|
|
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-oni-org-roam my-emacs)
|
|
(with-my-emacs-company-package emacs-oni-elisp)
|
|
emacs-oni-core
|
|
emacs-oni-elfeed
|
|
(with-my-emacs-company-package emacs-oni-eshell)
|
|
emacs-oni-compilation
|
|
(with-my-emacs-company-package 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
|
|
(with-my-emacs-company-package emacs-oni-clojure)
|
|
(with-my-emacs-company-package emacs-oni-cmake)
|
|
emacs-oni-conf
|
|
(with-my-emacs-company-package emacs-oni-cpp)
|
|
(with-my-emacs-company-package emacs-oni-csharp)
|
|
(with-my-emacs-company-package 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
|
|
(with-my-emacs-company-package emacs-oni-scheme)
|
|
emacs-oni-sh
|
|
emacs-oni-shr
|
|
emacs-oni-tramp
|
|
emacs-oni-yaml
|
|
|
|
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))
|
|
|
|
(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)
|
|
|
|
(simple-service 'my-channel-service
|
|
home-channels-service-type
|
|
(list
|
|
(channel
|
|
(name 'oni)
|
|
(url "https://code.ryuslash.org/ryuslash/guix-packages.git")
|
|
(introduction
|
|
(make-channel-introduction
|
|
"646573578b7adfbff415645fed201269076cebf6"
|
|
(openpgp-fingerprint
|
|
"061C C5C4 D936 C9A8 AECC 1A17 7D5C 407B 4350 25C1"))))
|
|
(channel
|
|
(name 'nonguix)
|
|
(url "https://gitlab.com/nonguix/nonguix")
|
|
;; Enable signature verification:
|
|
(introduction
|
|
(make-channel-introduction
|
|
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
|
|
(openpgp-fingerprint
|
|
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
|
|
(channel
|
|
(name 'guix-gaming-games)
|
|
(url "https://gitlab.com/guix-gaming-channels/games.git")
|
|
(introduction
|
|
(make-channel-introduction
|
|
"c23d64f1b8cc086659f8781b27ab6c7314c5cca5"
|
|
(openpgp-fingerprint
|
|
"50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"))))
|
|
(channel
|
|
(name 'rosenthal)
|
|
(url "https://codeberg.org/hako/rosenthal.git")
|
|
(branch "trunk")
|
|
(introduction
|
|
(make-channel-introduction
|
|
"7677db76330121a901604dfbad19077893865f35"
|
|
(openpgp-fingerprint
|
|
"13E7 6CD6 E649 C28C 3385 4DF5 5E5A A665 6149 17F7"))))))
|
|
|
|
;; (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-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 <home-mpd-audio-output> #:type "pulse" #:name "MPD Pulse")
|
|
(make <home-mpd-audio-output>
|
|
#: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-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? #t)
|
|
(extra-content
|
|
"allow-emacs-pinentry\n"))))))
|