Tom Willemse
8187a45c31
My configuration depends on some nonguix packages and having it be only a transient dependency through guix gaming channel means that when I disabled the gaming channel because it was broken, it broke my configuration because it also removed the nonguix channel from my configuration.
386 lines
16 KiB
Scheme
386 lines
16 KiB
Scheme
(define-module (oni home config rincewind)
|
|
#:use-module ((gnu home services guix)
|
|
#:select (home-channels-service-type))
|
|
#:use-module ((gnu home)
|
|
#:select (home-environment))
|
|
#: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-vterm
|
|
emacs-guix
|
|
emacs-org-contacts))
|
|
#: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 video)
|
|
#:select (mpv
|
|
mpv-mpris))
|
|
#: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))
|
|
#: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 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))
|
|
#: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 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))
|
|
#:use-module ((oni packages emacs-config)
|
|
#:select (emacs-oni-org-roam
|
|
emacs-oni-vterm
|
|
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))
|
|
#: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 emacs-outli)
|
|
#:select (emacs-outli))
|
|
#: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 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)
|
|
(inactive-opacity 75)
|
|
(active-opacity 95)
|
|
(frame-opacity 100)
|
|
(inactive-opacity-override #t)
|
|
(opacity-rule
|
|
'("100:name *?= '(Meeting) | Microsoft Teams'"
|
|
"100:name *?= 'freerdp'"))
|
|
(blur-background #t)
|
|
(blur-background-frame #t)
|
|
(blur
|
|
'((method . "dual_kawase")
|
|
(strength . 6.9)))
|
|
(blur-background-fixed #t)
|
|
(blur-background-exclude
|
|
'("name *= 'rofi'"
|
|
"class_g = 'i3lock'"))
|
|
(focus-exclude
|
|
'("name *= 'rofi'"
|
|
"class_g = 'i3lock'"))
|
|
(fading #t)
|
|
(fade-exclude
|
|
`("class_g = 'i3lock'"))
|
|
(fade-in-step 3)
|
|
(fade-out-step 3))))
|
|
|
|
(home-environment
|
|
(packages (list mpv mpv-mpris 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 emacs-next-tree-sitter)
|
|
count-emails
|
|
shutdown-rofi
|
|
emacs-org-roam
|
|
emacs-org-roam-ui
|
|
emacs-vterm
|
|
emacs-org-contacts
|
|
fakeroot ; Needed for build arch packages
|
|
tmsu
|
|
mpd-random-albums
|
|
notmuch
|
|
emacs-notmuch
|
|
emacs-inkplate
|
|
emacs-outli
|
|
emacs-guix
|
|
emacs-oni-org-roam
|
|
emacs-oni-vterm
|
|
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
|
|
tree-sitter-bash
|
|
tree-sitter-scheme
|
|
tree-sitter-python
|
|
tree-sitter-org
|
|
tree-sitter-json
|
|
tree-sitter-css
|
|
gforth
|
|
recutils
|
|
emacs-rec-mode
|
|
abcde
|
|
;; Might be needed for certain icons?
|
|
hicolor-icon-theme
|
|
;; Might be needed for cetrificates
|
|
nss-certs))
|
|
|
|
(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 emacs-next-tree-sitter)
|
|
(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"
|
|
"(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-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-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")))))))
|