From f3ca16097f4d1f6b817a5dca11b199ca1e10beff Mon Sep 17 00:00:00 2001 From: Soispha Date: Sun, 31 Dec 2023 17:28:02 +0100 Subject: feat(hm/conf/yambar): Show currently playing song in bar --- hm/soispha/conf/yambar/config/config.yml | 9 +++++++++ hm/soispha/conf/yambar/config/laptop.yml | 9 +++++++++ hm/soispha/conf/yambar/default.nix | 9 +++++++++ hm/soispha/conf/yambar/scripts/mpd_song_name | 22 ++++++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100755 hm/soispha/conf/yambar/scripts/mpd_song_name 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 -- cgit 1.4.1