about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-12-31 17:28:02 +0100
committerSoispha <soispha@vhack.eu>2023-12-31 17:28:02 +0100
commitf3ca16097f4d1f6b817a5dca11b199ca1e10beff (patch)
treebdad2ccbbfb947f80fd76b1edc87ebdf9e5324f1
parentchore(version): v1.23.0 (diff)
downloadnixos-config-f3ca16097f4d1f6b817a5dca11b199ca1e10beff.tar.gz
nixos-config-f3ca16097f4d1f6b817a5dca11b199ca1e10beff.zip
feat(hm/conf/yambar): Show currently playing song in bar
Diffstat (limited to '')
-rw-r--r--hm/soispha/conf/yambar/config/config.yml9
-rw-r--r--hm/soispha/conf/yambar/config/laptop.yml9
-rw-r--r--hm/soispha/conf/yambar/default.nix9
-rwxr-xr-xhm/soispha/conf/yambar/scripts/mpd_song_name22
4 files changed, 49 insertions, 0 deletions
diff --git a/hm/soispha/conf/yambar/config/config.yml b/hm/soispha/conf/yambar/config/config.yml
index 7072ae18..354dcb5c 100644
--- a/hm/soispha/conf/yambar/config/config.yml
+++ b/hm/soispha/conf/yambar/config/config.yml
@@ -146,6 +146,15 @@ bar:
     #            string: {text: "  Eth failed ", deco: *combutil}
     #          carrier: {empty: {}}
 
+    - script:   # mpd song name
+        path: @mpd_song_name_script@
+        content:
+          map:
+            conditions:
+              playing:
+                string: {text: "{song}", deco: *combwea}
+              ~playing:
+                string: {text: "", deco: *bgclock}
     - script:   # Sound volume
         path: @volume_script@
         content:
diff --git a/hm/soispha/conf/yambar/config/laptop.yml b/hm/soispha/conf/yambar/config/laptop.yml
index 3ca4a5bb..348e3ba3 100644
--- a/hm/soispha/conf/yambar/config/laptop.yml
+++ b/hm/soispha/conf/yambar/config/laptop.yml
@@ -146,6 +146,15 @@ bar:
     #            string: {text: "  Eth failed ", deco: *combutil}
     #          carrier: {empty: {}}
 
+    - script:   # mpd song name
+        path: @mpd_song_name_script@
+        content:
+          map:
+            conditions:
+              playing:
+                string: {text: "{song}", deco: *combwea}
+              ~playing:
+                string: {text: "", deco: *bgclock}
     - script:   # Sound volume
         path: @volume_script@
         content:
diff --git a/hm/soispha/conf/yambar/default.nix b/hm/soispha/conf/yambar/default.nix
index 0bcf8419..f5f17b4a 100644
--- a/hm/soispha/conf/yambar/default.nix
+++ b/hm/soispha/conf/yambar/default.nix
@@ -30,10 +30,17 @@ in {
       if nixosConfig.soispha.laptop.enable
       then nixosConfig.soispha.laptop.backlight
       else "";
+
+    mpd_song_name_script = makeScript {
+      dependencies = builtins.attrValues {inherit (pkgs) mpc-cli;};
+      file = ./scripts/mpd_song_name;
+    };
+
     volume_script = makeScript {
       dependencies = builtins.attrValues {inherit (pkgs) pulseaudio gawk coreutils;};
       file = ./scripts/sound-volume;
     };
+
     grade_average_script = makeScript {
       dependencies =
         [
@@ -42,7 +49,9 @@ in {
         ++ (builtins.attrValues {inherit (pkgs) coreutils gawk;});
       file = ./scripts/grades-average;
     };
+
     cpu_script = yambar_cpu.app.${system}.default.program;
+
     memory_script = yambar_memory.app.${system}.default.program;
 
     disk_script = makeScript {
diff --git a/hm/soispha/conf/yambar/scripts/mpd_song_name b/hm/soispha/conf/yambar/scripts/mpd_song_name
new file mode 100755
index 00000000..d5f03335
--- /dev/null
+++ b/hm/soispha/conf/yambar/scripts/mpd_song_name
@@ -0,0 +1,22 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="1.10.0" . %SHELL_LIBRARY_PATH
+
+
+while true; do
+    state="$(mpc status '%state%')";
+
+    if [ "$state" = "playing" ]; then
+        song="$(mpc --format '[[%artist% - ]%title%]|[%file%]' current)";
+        echo "playing|bool|true"
+        echo "song|string|$song"
+    else
+        echo "playing|bool|false"
+    fi
+    echo "" # commit
+
+    sleep 2;
+done
+
+# vim: ft=sh