From f33a2df7b9f630547ba081cdc2b3de5e8f6e77c1 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 26 Sep 2022 16:05:48 -0700 Subject: [PATCH] Switch rincewind over to using Guix Home --- config.scm | 3 +- oni/home/common/config.scm | 203 ++++++++++++++++++ oni/home/common/services.scm | 2 + oni/home/data/config.scm | 247 ++-------------------- oni/home/rincewind/config.scm | 64 +++++- oni/home/services/dunst.scm | 57 ++++- oni/packages/count-emails.scm | 42 ++++ oni/packages/inbox-size.scm | 41 ++++ oni/packages/notmuch-collect-tasks.scm | 41 ++++ oni/packages/notmuch-tag-mailinglists.scm | 41 ++++ 10 files changed, 495 insertions(+), 246 deletions(-) create mode 100644 oni/home/common/config.scm create mode 100644 oni/home/common/services.scm create mode 100644 oni/packages/count-emails.scm create mode 100644 oni/packages/inbox-size.scm create mode 100644 oni/packages/notmuch-collect-tasks.scm create mode 100644 oni/packages/notmuch-tag-mailinglists.scm 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+))))