From 198156ab889643ca5397e7824201e9b40af9ac26 Mon Sep 17 00:00:00 2001 From: SqrtMinusOne Date: Fri, 18 Jun 2021 17:05:28 +0300 Subject: [PATCH] feat(desktop): music, shepherd, mcron, aw --- .config/guix/manifests/desktop.scm | 3 ++ .config/guix/manifests/mail.scm | 6 +++ .config/guix/manifests/music.scm | 1 + .config/i3/config | 15 +++--- .config/ncmpcpp/config | 6 +-- .config/shepherd/init.scm | 42 ++++++++++++++-- Desktop.org | 80 ++++++++++++++++++++++++++---- 7 files changed, 129 insertions(+), 24 deletions(-) create mode 100644 .config/guix/manifests/mail.scm diff --git a/.config/guix/manifests/desktop.scm b/.config/guix/manifests/desktop.scm index fbdb44d..df6be53 100644 --- a/.config/guix/manifests/desktop.scm +++ b/.config/guix/manifests/desktop.scm @@ -6,10 +6,13 @@ "copyq" "feh" "network-manager-applet" + "pavucontrol" + "ponymix" "light" "arandr" "xprop" "xrandr" + "activitywatch-bin" "flatpak" "zathura-djvu" "zathura-pdf-poppler" diff --git a/.config/guix/manifests/mail.scm b/.config/guix/manifests/mail.scm new file mode 100644 index 0000000..3221acc --- /dev/null +++ b/.config/guix/manifests/mail.scm @@ -0,0 +1,6 @@ +(specifications->manifest + '( + "msmtp" + "parallel" + "notmuch" + "python-lieer")) diff --git a/.config/guix/manifests/music.scm b/.config/guix/manifests/music.scm index 791e28e..7f1db2c 100644 --- a/.config/guix/manifests/music.scm +++ b/.config/guix/manifests/music.scm @@ -1,5 +1,6 @@ (specifications->manifest '( + "mpd-mpc" "mpd-watcher" "picard" "ncmpcpp" diff --git a/.config/i3/config b/.config/i3/config index a59aecb..152886d 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -311,13 +311,13 @@ mode "apps" { # [[file:../../Desktop.org::*Media controls & brightness][Media controls & brightness:1]] # Pulse Audio controls -bindsym XF86AudioRaiseVolume exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ +5%" -bindsym XF86AudioLowerVolume exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ -5%" -bindsym XF86AudioMute exec --no-startup-id "pactl set-sink-mute @DEFAULT_SINK@ toggle" +bindsym XF86AudioRaiseVolume exec --no-startup-id "ponymix increase 5" +bindsym XF86AudioLowerVolume exec --no-startup-id "ponymix decrease 5" +bindsym XF86AudioMute exec --no-startup-id "ponymix toggle" exec --no-startup-id xmodmap -e 'keycode 135 = Super_R' && xset -r 135 -bindsym $mod+F2 exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ -5%" -bindsym $mod+F3 exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ +5%" +bindsym $mod+F2 exec --no-startup-id "ponymix increase 5" +bindsym $mod+F3 exec --no-startup-id "ponymix decrease 5" # Media player controls bindsym XF86AudioPlay exec mpc toggle @@ -390,12 +390,13 @@ exec --no-startup-id nm-applet # Stuff # exec aw-qt -exec "bash ~/bin/aw-start" +# exec "bash ~/bin/aw-start" +# exec shepherd # exec "vnstatd -d" exec dunst # exec kde-connect-indicator exec copyq exec "xmodmap ~/.Xmodmap" # exec "xrdb -merge ~/.Xresources" -exec "bash ~/bin/autostart.sh" +# exec "bash ~/bin/autostart.sh" # Autostart:1 ends here diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config index 9115066..181cf66 100644 --- a/.config/ncmpcpp/config +++ b/.config/ncmpcpp/config @@ -16,15 +16,15 @@ audio_output { format "44100:16:2" } -visualizer_fifo_path = /tmp/mpd.fifo +# visualizer_fifo_path = /tmp/mpd.fifo visualizer_output_name = Visualizer feed visualizer_in_stereo = yes -visualizer_sync_interval = 30 +# visualizer_sync_interval = 30 # Available values: spectrum, wave, wave_filled, ellipse. -visualizer_type = spectrum +# visualizer_type = spectrum visualizer_look = ●▮ #visualizer_color = blue, cyan, green, yellow, magenta, red visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161 diff --git a/.config/shepherd/init.scm b/.config/shepherd/init.scm index 0bd9e49..0d4f5e4 100644 --- a/.config/shepherd/init.scm +++ b/.config/shepherd/init.scm @@ -2,7 +2,7 @@ (make #:provides '(mpd) #:respawn? #t - #:start (make-system-constructor "mpd") + #:start (make-forkexec-constructor '("mpd" "--no-daemon")) #:stop (make-kill-destructor))) (define mpd-watcher @@ -13,8 +13,44 @@ #:stop (make-kill-destructor) #:requires '(mpd))) -(register-services mpd mpd-watcher) +(define mcron + (make + #:provides '(mcron) + #:respawn? #t + #:start (make-forkexec-constructor '("mcron")) + #:stop (make-kill-destructor))) + +(define aw-server + (make + #:provides '(aw-server) + #:respawn? #t + #:start (make-forkexec-constructor '("aw-server")) + #:stop (make-kill-destructor))) + +(define aw-watcher-afk + (make + #:provides '(aw-watcher-afk) + #:requires '(aw-server) + #:respawn? #t + #:start (make-forkexec-constructor '("aw-watcher-afk")) + #:stop (make-kill-destructor))) + +(define aw-watcher-window + (make + #:provides '(aw-watcher-window) + #:requires '(aw-server) + #:respawn? #t + #:start (make-forkexec-constructor '("aw-watcher-window")) + #:stop (make-kill-destructor))) + +(register-services + mpd + mpd-watcher + mcron + aw-server + aw-watcher-afk + aw-watcher-window) (action 'shepherd 'daemonize) -(for-each start '(mpd mpd-watcher)) +(for-each start '(mpd mpd-watcher mcron aw-server aw-watcher-afk aw-watcher-window)) diff --git a/Desktop.org b/Desktop.org index dc7bf96..d7fa81f 100644 --- a/Desktop.org +++ b/Desktop.org @@ -561,13 +561,13 @@ mode "apps" { *** Media controls & brightness #+begin_src conf-space # Pulse Audio controls -bindsym XF86AudioRaiseVolume exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ +5%" -bindsym XF86AudioLowerVolume exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ -5%" -bindsym XF86AudioMute exec --no-startup-id "pactl set-sink-mute @DEFAULT_SINK@ toggle" +bindsym XF86AudioRaiseVolume exec --no-startup-id "ponymix increase 5" +bindsym XF86AudioLowerVolume exec --no-startup-id "ponymix decrease 5" +bindsym XF86AudioMute exec --no-startup-id "ponymix toggle" exec --no-startup-id xmodmap -e 'keycode 135 = Super_R' && xset -r 135 -bindsym $mod+F2 exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ -5%" -bindsym $mod+F3 exec --no-startup-id "pactl set-sink-volume @DEFAULT_SINK@ +5%" +bindsym $mod+F2 exec --no-startup-id "ponymix increase 5" +bindsym $mod+F3 exec --no-startup-id "ponymix decrease 5" # Media player controls bindsym XF86AudioPlay exec mpc toggle @@ -578,7 +578,6 @@ bindsym XF86AudioPrev exec mpc prev # Screen brightness bindsym XF86MonBrightnessUp exec light -A 5 bindsym XF86MonBrightnessDown exec light -U 5 - #+end_src *** Screenshots #+begin_src conf-space @@ -694,14 +693,15 @@ exec --no-startup-id nm-applet # Stuff # exec aw-qt -exec "bash ~/bin/aw-start" +# exec "bash ~/bin/aw-start" +exec shepherd # exec "vnstatd -d" exec dunst # exec kde-connect-indicator exec copyq exec "xmodmap ~/.Xmodmap" # exec "xrdb -merge ~/.Xresources" -exec "bash ~/bin/autostart.sh" +# exec "bash ~/bin/autostart.sh" #+end_src * Polybar :PROPERTIES: @@ -2127,6 +2127,7 @@ I previously used supervisor, but shepherd also seems pretty capable. | music | ncmpcpp | | music | picard | | music | mpd-watcher | +| music | mpd-mpc | Music player daemon #+begin_src scheme @@ -2134,7 +2135,7 @@ Music player daemon (make #:provides '(mpd) #:respawn? #t - #:start (make-system-constructor "mpd") + #:start (make-forkexec-constructor '("mpd" "--no-daemon")) #:stop (make-kill-destructor))) #+end_src @@ -2148,10 +2149,65 @@ MPD watcher #:stop (make-kill-destructor) #:requires '(mpd))) #+end_src +** GNU Mcron +[[https://www.gnu.org/software/mcron/][GNU Mcron]] is a replacement for cron, written in Scheme. + +#+begin_src scheme +(define mcron + (make + #:provides '(mcron) + #:respawn? #t + #:start (make-forkexec-constructor '("mcron")) + #:stop (make-kill-destructor))) +#+end_src +** ActivityWatch +[[https://activitywatch.net/][ActivityWatch]] is a FOSS time tracker. It tracks screen and application usage and has integrations with browsers, Emacs, etc. + +| Guix dependency | +|-------------------| +| activitywatch-bin | + +aw-server +#+begin_src scheme +(define aw-server + (make + #:provides '(aw-server) + #:respawn? #t + #:start (make-forkexec-constructor '("aw-server")) + #:stop (make-kill-destructor))) +#+end_src + +aw-watcher-afk +#+begin_src scheme +(define aw-watcher-afk + (make + #:provides '(aw-watcher-afk) + #:requires '(aw-server) + #:respawn? #t + #:start (make-forkexec-constructor '("aw-watcher-afk")) + #:stop (make-kill-destructor))) +#+end_src + +aw-watcher-window +#+begin_src scheme +(define aw-watcher-window + (make + #:provides '(aw-watcher-window) + #:requires '(aw-server) + #:respawn? #t + #:start (make-forkexec-constructor '("aw-watcher-window")) + #:stop (make-kill-destructor))) +#+end_src ** Shepherd config Register services #+begin_src scheme -(register-services mpd mpd-watcher) +(register-services + mpd + mpd-watcher + mcron + aw-server + aw-watcher-afk + aw-watcher-window) #+end_src Daemonize shepherd @@ -2161,7 +2217,7 @@ Daemonize shepherd Run services #+begin_src scheme -(for-each start '(mpd mpd-watcher)) +(for-each start '(mpd mpd-watcher mcron aw-server aw-watcher-afk aw-watcher-window)) #+end_src * Guix settings Other desktop programs I use are listed below. @@ -2172,6 +2228,8 @@ Other desktop programs I use are listed below. | xprop | Tool to display properties of X windows | | arandr | GUI to xrandr | | light | Control screen brightness | +| ponymix | Control PulseAudio CLI | +| pavucontrol | Control PulseAudio GUI | | network-manager-applet | Applet to manage network connections | | feh | Image viewer. Used to set background | | copyq | Clipboard manager |