566 lines
23 KiB
Scheme
566 lines
23 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 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-mpd-audio-output>
|
|
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 <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-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))))))))
|