diff --git a/config.scm b/config.scm
index 387f69f..ca126d8 100644
--- a/config.scm
+++ b/config.scm
@@ -1,2 +1,3 @@
(add-to-load-path (dirname (current-filename)))
-(load-from-path "oni/home/data/config.scm")
+
+(load-from-path (string-append "oni/home/" (gethostname) "/config.scm"))
diff --git a/oni/home/common/config.scm b/oni/home/common/config.scm
new file mode 100644
index 0000000..ccd29f3
--- /dev/null
+++ b/oni/home/common/config.scm
@@ -0,0 +1,203 @@
+(define-module (oni home common config)
+ #:use-module (gnu home services)
+ #:use-module (gnu home services desktop)
+ #:use-module (gnu home services shells)
+ #:use-module (gnu home services ssh)
+ #:use-module (guix gexp)
+ #:use-module (oni home services xbindkeys)
+ #:use-module (oni home services guile)
+ #:use-module (oni home services xmodmap)
+ #:use-module (oni home services kitty)
+ #:use-module (oni home services compton)
+
+ #:export (home-redshift-service
+ home-xbindkeys-service
+ home-zsh-service
+ home-guile-service
+ home-xmodmap-service
+ home-openssh-service
+ home-kitty-service
+ home-picom-service))
+
+(define home-redshift-service
+ (service home-redshift-service-type
+ (home-redshift-configuration
+ (location-provider 'manual)
+ (latitude 49.2127205)
+ (longitude 122.9267927))))
+
+(define home-xbindkeys-service
+ (service home-xbindkeys-service-type
+ (home-xbindkeys-configuration
+ (keybindings
+ '(((mod4 k) . "hersbtclient close")
+ ((mod4 mod1 k) . "herbstclient remove")
+ ((mod4 Return) . "herbstclient spawn kitty")
+ ((mod4 t) . "herbstclient spawn hlwm-run-or-raise \"\\(URxct\\|Hyper\\|kitty\\)\" kitty")
+ ((mod4 b) . "herbstclient spawn hlwm-run-or-raise \"\\(Conkeror\\|[Ff]irefox\\|Chromium\\|Next\\|qutebrowser\\)\" firefox")
+ ((mod4 e) . "herbstclient spawn hlwm-run-or-raise Emacs emacsclient --create-frame")
+ ((control mod1 l) . "herbstclient spawn i3lock --color=000000")
+ ((mod4 x) . "herbstclient spawn hlwm-switch-tags")
+ ((mod4 shift b) . "herbstclient shift left")
+ ((mod4 shift n) . "herbstclient shift down")
+ ((mod4 shift p) . "herbstclient shift up")
+ ((mod4 shift f) . "herbstclient shift right")
+ ((mod4 control b) . "herbstclient resize left +0.05")
+ ((mod4 control n) . "herbstclient resize down +0.05")
+ ((mod4 control p) . "herbstclient resize up +0.05")
+ ((mod4 control f) . "herbstclient resize right +0.05")
+ ((mod4 shift underscore) . "herbstclient split bottom 0.5")
+ ((mod4 shift bar) . "herbstclient split right 0.5")
+ ((mod4 period) . "herbstclient use_index +1 --skip-visible")
+ ((mod4 comma) . "herbstclient use_index -1 --skip-visible")
+ ((mod4 shift control f) . "herbstclient floating toggle")
+ ((mod4 f) . "herbstclient cycle_layout 1 vertical max")
+ ((mod4 m) . "herbstclient fullscreen toggle")
+ ((mod4 p) . "herbstclient pseudotile toggle")
+ ((mod4 space) . "herbstclient or , and . compare tags.focus.curframe_wcount = 2 . cycle_layout +1 vertical horizontal max vertical grid , cycle_layout +1")
+ ((mod4 BackSpace) . "herbstclient cycle_monitor")
+ ((mod4 u) . "herbstclient jumpto urgent")
+ ((XF86AudioPlay) . "herbstclient spawn mpc toggle")
+ ((XF86AudioNext) . "herbstclient spawn mpc next")
+ ((XF86AudioPrev) . "herbstclient spawn mpc prev")
+ ((mod4 c)
+ ("1" . "herbstclient move_index 0")
+ ("2" . "herbstclient move_index 1")
+ ("3" . "herbstclient move_index 2")
+ ("4" . "herbstclient move_index 3")
+ ("5" . "herbstclient move_index 4")
+ ("6" . "herbstclient move_index 5")
+ ("7" . "herbstclient move_index 6")
+ ("8" . "herbstclient move_index 7")
+ ("9" . "herbstclient move_index 8")
+ ("0" . "herbstclient move_index 9"))
+ ((mod4 s)
+ ("f" . "flameshot full ~/pictures/screenshots/")
+ ("c" . "flameshot gui")))))))
+
+(define home-zsh-service
+ (service home-zsh-service-type
+ (home-zsh-configuration
+ (environment-variables
+ '(("HISTFILE" . "$HOME/.zsh/histfile")
+ ("HISTSIZE" . "1000")
+ ("SAVEHIST" . "1000")))
+ (zshrc
+ (list
+ (mixed-text-file
+ "zshrc"
+ "fpath=($HOME/.zsh/functions $fpath)\n"
+ "autoload -U $HOME/.zsh/functions/*(:t)\n"
+ "alias csi=\"rlwrap csi\"\n"
+ "alias scsh=\"rlwrap scsh\"\n"
+ "alias sbcl=\"rlwrap sbcl\"\n"
+ "alias hc=herbstclient\n"
+ "setopt SHARE_HISTORY\n"
+ "setopt HIST_IGNORE_ALL_DUPS\n"
+ "setopt PROMPT_SUBST\n"
+ "zle -N x-copy-region-as-kill\n"
+ "zle -N x-kill-region\n"
+ "zle -N x-yank\n"
+ "bindkey -e '^[w' x-copy-region-as-kill\n"
+ "bindkey -e '^W' x-kill-region\n"
+ "bindkey -e '^Y' x-yank\n"
+ "autoload -Uz compinit\n"
+ "compinit\n"
+ "PROMPT=\"%T \\$(spwd) %B%(?.%F{2}.%F{1}[%?])>%b%f \""))))))
+
+(define home-guile-service
+ (service home-guile-service-type
+ (home-guile-configuration
+ (use-readline #t)
+ (use-colorized #t))))
+
+(define home-xmodmap-service
+ (service home-xmodmap-service-type
+ (home-xmodmap-configuration
+ (pointer '(3 2 1))
+ (extra '("remove Mod5 = ISO_Level3_Shift"
+ "keycode 108 = Alt_L"
+ "add Mod1 = Alt_L"
+ "remove mod4 = Super_R"
+ "keycode 134 = Hyper_R"
+ "add mod3 = Hyper_R")))))
+
+(define home-openssh-service
+ (service home-openssh-service-type
+ (home-openssh-configuration
+ (hosts (list (openssh-host
+ (name "ryuslash")
+ (host-name "ryuslash.org")
+ (user "slash")
+ (port 4511)
+ (extra-content "LocalForward 8090 localhost:8090
+LocalForward 2812 localhost:2812"))
+ (openssh-host
+ (name "rincewind")
+ (host-name "192.168.1.135")
+ (port 4511)))))))
+
+(define home-kitty-service
+ (service home-kitty-service-type
+ (home-kitty-configuration
+ (configuration
+ '((font-family . "Fantasque Sans Mono")
+ (bold-font . "Fantasque Sans Mono Bold")
+ (italic-font . "Fantasque Sans Mono Italic")
+ (bold-italic-font . "Fantasque Sans Mono Bold Italic")
+ (font-size . 14)
+ (symbol-map . "U+f002 Font Awesome 5 Free Solid")
+ (cursor-shape . beam)
+ (cursor-blink-interval . 0)
+ (url-style . single)
+ (open-url-with . firefox)
+ (copy-on-select . #f)
+ (enable-audio-bell . #f)
+ (visual-bell-duration . 0)
+ (window-padding-width . 11.25)
+ (active-tab-font-style . normal)
+ (editor . emacsclient)
+ (allow-remote-control . #t)
+ (enabled-layouts vertical stack tall fat grid horizontal)
+ (cursor . "#969696")
+ (url-color . "#a88654")
+ (active-border-color . "#1f2c3f")
+ (inactive-border-color . "#3d3d3d")
+ (bell-border-color . "#3f1a1a")
+ (active-tab-foreground . "#65a854")
+ (active-tab-background . "#1f2c3f")
+ (inactive-tab-foreground . "#65a854")
+ (inactive-tab-background . "#3d3d3d")
+ (foreground . "#bfbfbf")
+ (background . "#222424")
+ (selection-foreground . "#222424")
+ (selection-background . "#7126a3f0f01f")
+ (color0 . "#222222")
+ (color8 . "#3d3d3d")
+ (color1 . "#ca3c828e828e")
+ (color9 . "#f01f71267126")
+ (color2 . "#90e4ca3c828e")
+ (color10 . "#8a8bf01f7126")
+ (color3 . "#bbe6ca3c828e")
+ (color11 . "#d6baf01f7126")
+ (color4 . "#828e9f3aca3c")
+ (color12 . "#7126a3f0f01f")
+ (color5 . "#bbe6828eca3c")
+ (color13 . "#d6ba7126f01f")
+ (color6 . "#828eca3cca3c")
+ (color14 . "#7126f01ff01f")
+ (color7 . "#969696")
+ (color15 . "#ededed"))))))
+
+(define home-picom-service
+ (service home-picom-service-type
+ (home-picom-configuration
+ (config
+ '((detect-transient . #t)
+ (shadow . #t)
+ (wintypes ((dnd ((shadow . #f)))
+ (dock ((shadow . #f)))))
+ (shadow-radius . 10)
+ (shadow-exclude ("name = 'mowedline'"
+ "class_g = 'trayer'"
+ "bounding_shaped")))))))
diff --git a/oni/home/common/services.scm b/oni/home/common/services.scm
new file mode 100644
index 0000000..eb3a3d8
--- /dev/null
+++ b/oni/home/common/services.scm
@@ -0,0 +1,2 @@
+(define-module (oni home common services)
+ #:use-module (oni home services rofi))
diff --git a/oni/home/data/config.scm b/oni/home/data/config.scm
index a4cc54d..74a33cf 100644
--- a/oni/home/data/config.scm
+++ b/oni/home/data/config.scm
@@ -1,9 +1,7 @@
(define-module (oni home data config)
#:use-module (gnu home)
#:use-module (gnu home services)
- #:use-module (gnu home services shells)
#:use-module (gnu home services desktop)
- #:use-module (gnu home services ssh)
#:use-module (gnu services)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
@@ -12,10 +10,7 @@
#:use-module (gnu packages xdisorg)
#:use-module (guix gexp)
#:use-module (oni home services rofi)
- #:use-module (oni home services xmodmap)
- #:use-module (oni home services kitty)
#:use-module (oni home services xsession)
- #:use-module (oni home services compton)
#:use-module (oni home services xbindkeys)
#:use-module (oni home services zsh)
#:use-module (oni home services herbstluftwm)
@@ -25,10 +20,10 @@
#:use-module (oni home services syncthing)
#:use-module (oni home services unclutter)
#:use-module (oni home services dunst)
- #:use-module (oni home services guile)
#:use-module (oni home services environment)
#:use-module (oni packages hlwm-run-or-raise)
- #:use-module (oni packages pick-random-wallpaper))
+ #:use-module (oni packages pick-random-wallpaper)
+ #:use-moudle (oni home common config))
(home-environment
(packages (list (specification->package+output "glibc-locales")
@@ -41,107 +36,21 @@
(list
home-environment-service
home-rofi-default-service
-
- (service home-redshift-service-type
- (home-redshift-configuration
- (location-provider 'manual)
- (latitude 49.2127205)
- (longitude 122.9267927)))
-
- (service home-zsh-service-type
- (home-zsh-configuration
- (environment-variables
- '(("HISTFILE" . "$HOME/.zsh/histfile")
- ("HISTSIZE" . "1000")
- ("SAVEHIST" . "1000")))
- (zshrc
- (list
- (mixed-text-file
- "zshrc"
- "fpath=($HOME/.zsh/functions $fpath)\n"
- "autoload -U $HOME/.zsh/functions/*(:t)\n"
- "alias csi=\"rlwrap csi\"\n"
- "alias scsh=\"rlwrap scsh\"\n"
- "alias sbcl=\"rlwrap sbcl\"\n"
- "alias hc=herbstclient\n"
- "setopt SHARE_HISTORY\n"
- "setopt HIST_IGNORE_ALL_DUPS\n"
- "setopt PROMPT_SUBST\n"
- "zle -N x-copy-region-as-kill\n"
- "zle -N x-kill-region\n"
- "zle -N x-yank\n"
- "bindkey -e '^[w' x-copy-region-as-kill\n"
- "bindkey -e '^W' x-kill-region\n"
- "bindkey -e '^Y' x-yank\n"
- "autoload -Uz compinit\n"
- "compinit\n"
- "PROMPT=\"%T \\$(spwd) %B%(?.%F{2}.%F{1}[%?])>%b%f \"")))))
+ 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
+ home-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-xmodmap-service-type
- (home-xmodmap-configuration
- (pointer '(3 2 1))
- (extra '("remove Mod5 = ISO_Level3_Shift"
- "keycode 108 = Alt_L"
- "add Mod1 = Alt_L"))))
-
- (service home-kitty-service-type
- (home-kitty-configuration
- (configuration
- '((font-family . "Fantasque Sans Mono")
- (bold-font . "Fantasque Sans Mono Bold")
- (italic-font . "Fantasque Sans Mono Italic")
- (bold-italic-font . "Fantasque Sans Mono Bold Italic")
- (font-size . 14)
- (symbol-map . "U+f002 Font Awesome 5 Free Solid")
- (cursor-shape . beam)
- (cursor-blink-interval . 0)
- (url-style . single)
- (open-url-with . firefox)
- (copy-on-select . #f)
- (enable-audio-bell . #f)
- (visual-bell-duration . 0)
- (window-padding-width . 11.25)
- (active-tab-font-style . normal)
- (editor . emacsclient)
- (allow-remote-control . #t)
- (enabled-layouts vertical stack tall fat grid horizontal)
- (cursor . "#969696")
- (url-color . "#a88654")
- (active-border-color . "#1f2c3f")
- (inactive-border-color . "#3d3d3d")
- (bell-border-color . "#3f1a1a")
- (active-tab-foreground . "#65a854")
- (active-tab-background . "#1f2c3f")
- (inactive-tab-foreground . "#65a854")
- (inactive-tab-background . "#3d3d3d")
- (foreground . "#bfbfbf")
- (background . "#222424")
- (selection-foreground . "#222424")
- (selection-background . "#7126a3f0f01f")
- (color0 . "#222222")
- (color8 . "#3d3d3d")
- (color1 . "#ca3c828e828e")
- (color9 . "#f01f71267126")
- (color2 . "#90e4ca3c828e")
- (color10 . "#8a8bf01f7126")
- (color3 . "#bbe6ca3c828e")
- (color11 . "#d6baf01f7126")
- (color4 . "#828e9f3aca3c")
- (color12 . "#7126a3f0f01f")
- (color5 . "#bbe6828eca3c")
- (color13 . "#d6ba7126f01f")
- (color6 . "#828eca3cca3c")
- (color14 . "#7126f01ff01f")
- (color7 . "#969696")
- (color15 . "#ededed")))))
-
(service home-xsession-service-type
(home-xsession-configuration
(configuration
@@ -153,66 +62,6 @@
"xrandr --auto\n"
"xrandr --dpi 96\n")))))
- (service home-picom-service-type
- (home-picom-configuration
- (config
- '((detect-transient . #t)
- (shadow . #t)
- (wintypes ((dnd ((shadow . #f)))
- (dock ((shadow . #f)))))
- (shadow-radius . 10)
- (shadow-exclude ("name = 'mowedline'"
- "class_g = 'trayer'"
- "bounding_shaped"))))))
-
- (service home-xbindkeys-service-type
- (home-xbindkeys-configuration
- (keybindings
- '(((mod4 k) . "hersbtclient close")
- ((mod4 mod1 k) . "herbstclient remove")
- ((mod4 Return) . "herbstclient spawn kitty")
- ((mod4 t) . "herbstclient spawn hlwm-run-or-raise \"\\(URxct\\|Hyper\\|kitty\\)\" kitty")
- ((mod4 b) . "herbstclient spawn hlwm-run-or-raise \"\\(Conkeror\\|[Ff]irefox\\|Chromium\\|Next\\|qutebrowser\\)\" firefox")
- ((mod4 e) . "herbstclient spawn hlwm-run-or-raise Emacs emacsclient --create-frame")
- ((control mod1 l) . "herbstclient spawn i3lock --color=000000")
- ((mod4 x) . "herbstclient spawn hlwm-switch-tags")
- ((mod4 shift b) . "herbstclient shift left")
- ((mod4 shift n) . "herbstclient shift down")
- ((mod4 shift p) . "herbstclient shift up")
- ((mod4 shift f) . "herbstclient shift right")
- ((mod4 control b) . "herbstclient resize left +0.05")
- ((mod4 control n) . "herbstclient resize down +0.05")
- ((mod4 control p) . "herbstclient resize up +0.05")
- ((mod4 control f) . "herbstclient resize right +0.05")
- ((mod4 shift underscore) . "herbstclient split bottom 0.5")
- ((mod4 shift bar) . "herbstclient split right 0.5")
- ((mod4 period) . "herbstclient use_index +1 --skip-visible")
- ((mod4 comma) . "herbstclient use_index -1 --skip-visible")
- ((mod4 shift control f) . "herbstclient floating toggle")
- ((mod4 f) . "herbstclient cycle_layout 1 vertical max")
- ((mod4 m) . "herbstclient fullscreen toggle")
- ((mod4 p) . "herbstclient pseudotile toggle")
- ((mod4 space) . "herbstclient or , and . compare tags.focus.curframe_wcount = 2 . cycle_layout +1 vertical horizontal max vertical grid , cycle_layout +1")
- ((mod4 BackSpace) . "herbstclient cycle_monitor")
- ((mod4 u) . "herbstclient jumpto urgent")
- ((XF86AudioPlay) . "herbstclient spawn mpc toggle")
- ((XF86AudioNext) . "herbstclient spawn mpc next")
- ((XF86AudioPrev) . "herbstclient spawn mpc prev")
- ((mod4 c)
- ("1" . "herbstclient move_index 0")
- ("2" . "herbstclient move_index 1")
- ("3" . "herbstclient move_index 2")
- ("4" . "herbstclient move_index 3")
- ("5" . "herbstclient move_index 4")
- ("6" . "herbstclient move_index 5")
- ("7" . "herbstclient move_index 6")
- ("8" . "herbstclient move_index 7")
- ("9" . "herbstclient move_index 8")
- ("0" . "herbstclient move_index 9"))
- ((mod4 s)
- ("f" . "flameshot full ~/pictures/screenshots/")
- ("c" . "flameshot gui"))))))
-
(service home-herbstluftwm-service-type
(home-herbstluftwm-configuration
(tags '(dev web game))
@@ -292,76 +141,4 @@
(service home-unclutter-service-type
(home-unclutter-configuration
(package unclutter-xfixes)
- (exclude-root #t)))
-
- (service home-openssh-service-type
- (home-openssh-configuration
- (hosts (list (openssh-host
- (name "ryuslash")
- (host-name "ryuslash.org")
- (user "slash")
- (port 4511)
- (extra-content "LocalForward 8090 localhost:8090
-LocalForward 2812 localhost:2812"))
- (openssh-host
- (name "rincewind")
- (host-name "192.168.1.135")
- (port 4511))))))
-
- (service home-dunst-service-type
- (home-dunst-configuration
- (font "Fantasque Sans Mono 15")
- (markup 'full)
- (format "%s\\n\\n%b")
- (width '(0 600))
- (idle-threshold 120)
- (padding 15)
- (horizontal-padding 15)
- (separator-color 'auto)
- (dmenu "rofi -dmenu -p dunst:")
- (browser "firefox")
- (icon-path '("/usr/share/icons/gnome/24x24/status/"
- "/usr/share/icons/gnome/24x24/devices/"
- "/usr/share/icons/hicolor/24x24/apps/"))
- (frame-width 2)
- (frame-color "#3d3d3d")
- (max-icon-size 24)
- (corner-radius 10)
- (rules
- '(("urgency_low"
- (background "#405c2e")
- (foreground "#eeeeec")
- (timeout 10))
- ("urgency_normal"
- (background "#222224")
- (foreground "#eeeeec")
- (timeout 10))
- ("urgency_critical"
- (background "#973732")
- (foreground "#eeeeec")
- (timeout 0))
- ("Emacs"
- (appname "Emacs")
- (background "#7f5ab6")
- (foreground "#fafafa"))
- ("Metal Express Radio"
- (appname "Metal Express Radio")
- (background "#ef4136")
- (foreground "#ffffff"))
- ("Syncthing"
- (appname "Syncthing GTK")
- (background "#337ab7")
- (foreground "#ffffff"))
- ("Lollypop"
- (appname "Lollypop")
- (background "#fd3e75")
- (foreground "#ffffff"))
- ("gPodder"
- (appname "gPodder")
- (background "#7f5785")
- (foreground "#ffffff"))))))
-
- (service home-guile-service-type
- (home-guile-configuration
- (use-readline #t)
- (use-colorized #t))))))
+ (exclude-root #t))))))
diff --git a/oni/home/rincewind/config.scm b/oni/home/rincewind/config.scm
index a08caa6..710daa1 100644
--- a/oni/home/rincewind/config.scm
+++ b/oni/home/rincewind/config.scm
@@ -2,31 +2,70 @@
#:use-module (gnu home)
#:use-module (gnu home services)
#:use-module (gnu home services guix)
+ #:use-module (gnu packages)
#:use-module (gnu packages video)
#:use-module (gnu packages music)
+ #:use-module (gnu packages emacs)
+ #:use-module (gnu packages commencement)
#:use-module (gnu services)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix store)
#:use-module (guix derivations)
#:use-module (guix channels)
+ #:use-module (guix transformations)
#:use-module (oni home services environment)
- #:use-module (oni home services rofi))
+ #:use-module (oni home services rofi)
+ #:use-module (oni home services polybar)
+ #:use-module (oni home services dunst)
+ #:use-module (oni home services zsh)
+ #:use-module (oni home services kdeconnect)
+ #:use-module (oni home services syncthing)
+ #:use-module (oni packages hlwm-run-or-raise)
+ #:use-module (oni packages pick-random-wallpaper)
+ #:use-module (oni packages notmuch-collect-tasks)
+ #:use-module (oni packages notmuch-tag-mailinglists)
+ #:use-module (oni packages inbox-size)
+ #:use-module (oni packages count-emails)
+ #:use-module (oni home common config))
+
+(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))
(home-environment
- (packages (list mpv mpv-mpris easytag))
+ (packages (list mpv mpv-mpris easytag emacs-next
+ (specification->package+output "glibc-locales")
+ (specification->package+output "font-fantasque-sans")
+ (specification->package+output "font-comic-neue")
+ hlwm-run-or-raise
+ pick-random-wallpaper
+ gcc-toolchain ;Needed for emacs-next?
+ notmuch-collect-tasks
+ notmuch-tag-mailinglists
+ (inbox-size emacs-next)
+ count-emails))
(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
+
+ ;; 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)
- ;; (simple-service 'test-config
- ;; home-xdg-configuration-files-service-type
- ;; #~(list `("mpv/scripts/mpv-mpris"
- ;; ;; (run-with-store (open-connection) (package-file
- ;; ;; mpv-mpris #:output "out"))
- ;; #$(file-append mpv-mpris "/lib/mpris.so"))))
(simple-service 'my-channel-service
home-channels-service-type
(list
@@ -45,4 +84,11 @@
(make-channel-introduction
"c23d64f1b8cc086659f8781b27ab6c7314c5cca5"
(openpgp-fingerprint
- "50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F")))))))))
+ "50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"))))))
+
+ (service home-polybar-service-type
+ (home-polybar-configuration
+ (bar "rincewind")))
+
+ (service home-kdeconnect-service-type)
+ (service home-syncthing-service-type))))
diff --git a/oni/home/services/dunst.scm b/oni/home/services/dunst.scm
index 079f40b..3e14e93 100644
--- a/oni/home/services/dunst.scm
+++ b/oni/home/services/dunst.scm
@@ -11,7 +11,8 @@
#:use-module (guix gexp)
#:export (home-dunst-service-type
- home-dunst-configuration))
+ home-dunst-configuration
+ home-dunst-default-service))
(define (color? value)
(and (string? value)
@@ -248,3 +249,57 @@ horizontal axis.")
home-dunst-shepherd-service)))
(default-value (home-dunst-configuration))
(description "Configure dunst")))
+
+(define home-dunst-default-service
+ (service home-dunst-service-type
+ (home-dunst-configuration
+ (font "Fantasque Sans Mono 15")
+ (markup 'full)
+ (format "%s\\n\\n%b")
+ (width '(0 600))
+ (idle-threshold 120)
+ (padding 15)
+ (horizontal-padding 15)
+ (separator-color 'auto)
+ (dmenu "rofi -dmenu -p dunst:")
+ (browser "firefox")
+ (icon-path '("/usr/share/icons/gnome/24x24/status/"
+ "/usr/share/icons/gnome/24x24/devices/"
+ "/usr/share/icons/hicolor/24x24/apps/"))
+ (frame-width 2)
+ (frame-color "#3d3d3d")
+ (max-icon-size 24)
+ (corner-radius 10)
+ (rules
+ '(("urgency_low"
+ (background "#405c2e")
+ (foreground "#eeeeec")
+ (timeout 10))
+ ("urgency_normal"
+ (background "#222224")
+ (foreground "#eeeeec")
+ (timeout 10))
+ ("urgency_critical"
+ (background "#973732")
+ (foreground "#eeeeec")
+ (timeout 0))
+ ("Emacs"
+ (appname "Emacs")
+ (background "#7f5ab6")
+ (foreground "#fafafa"))
+ ("Metal Express Radio"
+ (appname "Metal Express Radio")
+ (background "#ef4136")
+ (foreground "#ffffff"))
+ ("Syncthing"
+ (appname "Syncthing GTK")
+ (background "#337ab7")
+ (foreground "#ffffff"))
+ ("Lollypop"
+ (appname "Lollypop")
+ (background "#fd3e75")
+ (foreground "#ffffff"))
+ ("gPodder"
+ (appname "gPodder")
+ (background "#7f5785")
+ (foreground "#ffffff")))))))
diff --git a/oni/packages/count-emails.scm b/oni/packages/count-emails.scm
new file mode 100644
index 0000000..e3991d2
--- /dev/null
+++ b/oni/packages/count-emails.scm
@@ -0,0 +1,42 @@
+(define-module (oni packages count-emails)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages shells)
+ #:use-module (gnu packages mail))
+
+(define-public count-emails
+ (let ((commit "de8d1094fca307b44020ae85ef0acf0d467cd8c4")
+ (revision "0"))
+ (package
+ (name "count-emails")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (uri (git-reference
+ (url "git://ryuslash.org/util/tom/count-emails")
+ (commit commit)))
+ (method git-fetch)
+ (sha256
+ (base32 "1wkppgkwp6rd7bx9zbyyljq4px47jb2flfgiflvjh1qxwdz9m25a"))
+ (file-name (git-file-name name version))))
+ (propagated-inputs
+ (list bash scsh notmuch))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (install-file "count-emails" bin)))))))
+ (home-page "https://ryuslash.org/")
+ (synopsis "A simple script that counts the number of unread emails.")
+ (description "Counts the number of unread emails.")
+ (license license:gpl3+))))
diff --git a/oni/packages/inbox-size.scm b/oni/packages/inbox-size.scm
new file mode 100644
index 0000000..6896446
--- /dev/null
+++ b/oni/packages/inbox-size.scm
@@ -0,0 +1,41 @@
+(define-module (oni packages inbox-size)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages shells))
+
+(define-public (inbox-size emacs)
+ (let ((commit "e9a94db05e45be9357ccc757601c1cd890a6254c")
+ (revision "0"))
+ (package
+ (name "inbox-size")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (uri (git-reference
+ (url "git://ryuslash.org/util/tom/inbox-size")
+ (commit commit)))
+ (method git-fetch)
+ (sha256
+ (base32 "09mjxk85cqvcxk5n51izfqap36pjd35z476fmvd5vq7d5kgnczzw"))
+ (file-name (git-file-name name version))))
+ (propagated-inputs
+ (list bash scsh emacs))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (install-file "inbox-size" bin)))))))
+ (home-page "https://ryuslash.org/")
+ (synopsis "A simple script that checks the size of my GTD inbox.")
+ (description "Counts the number of items in my GTD inbox.")
+ (license license:gpl3+))))
diff --git a/oni/packages/notmuch-collect-tasks.scm b/oni/packages/notmuch-collect-tasks.scm
new file mode 100644
index 0000000..e664cc0
--- /dev/null
+++ b/oni/packages/notmuch-collect-tasks.scm
@@ -0,0 +1,41 @@
+(define-module (oni packages notmuch-collect-tasks)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages mail))
+
+(define-public notmuch-collect-tasks
+ (let ((commit "c0399a2bbd499d3fcdf2cfce2d9a8162d5865de0")
+ (revision "0"))
+ (package
+ (name "notmuch-collect-tasks")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (uri (git-reference
+ (url "git://ryuslash.org/util/tom/notmuch-collect-tasks.git")
+ (commit commit)))
+ (method git-fetch)
+ (sha256
+ (base32 "1rkxcmlmz5ncd3x59kgffg889wibi3q8d3gv2vm1nvaayzj58zm9"))
+ (file-name (git-file-name name version))))
+ (propagated-inputs
+ (list bash notmuch))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (install-file "notmuch-collect-tasks" bin)))))))
+ (home-page "https://ryuslash.org/")
+ (synopsis "A simple script that scans email subjects for tasks to add.")
+ (description "Creates tasks based on incoming email.")
+ (license license:gpl3+))))
diff --git a/oni/packages/notmuch-tag-mailinglists.scm b/oni/packages/notmuch-tag-mailinglists.scm
new file mode 100644
index 0000000..4273bf0
--- /dev/null
+++ b/oni/packages/notmuch-tag-mailinglists.scm
@@ -0,0 +1,41 @@
+(define-module (oni packages notmuch-tag-mailinglists)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages mail))
+
+(define-public notmuch-tag-mailinglists
+ (let ((commit "b20cf1593c98b415cb144bd23c9c60926161d359")
+ (revision "0"))
+ (package
+ (name "notmuch-tag-mailinglists")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (uri (git-reference
+ (url "git://ryuslash.org/util/tom/notmuch-tag-mailinglists.git")
+ (commit commit)))
+ (method git-fetch)
+ (sha256
+ (base32 "0c3pn3ns4n5sh97plvbxv59i5rh8840fq73ic66kvhkij1c6l4rb"))
+ (file-name (git-file-name name version))))
+ (propagated-inputs
+ (list bash notmuch))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (install-file "notmuch-tag-mailinglists" bin)))))))
+ (home-page "https://ryuslash.org/")
+ (synopsis "A simple script that scans email subjects for tasks to add.")
+ (description "Creates tasks based on incoming email.")
+ (license license:gpl3+))))