Revert "cmus: remove cmusfm"

This reverts commit 3ec9a35d67.
This commit is contained in:
Primrose 2025-06-27 14:30:48 +02:00
parent 9e778eaad2
commit 48b4ae78d3
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA

View file

@ -4,11 +4,13 @@
...
}: {
programs.cmus.extraConfig = let
# Dispatch to multiple callbacks (if needed)
# Right now only notify-send is called
# dispatch to multiple callbacks
callback-script = pkgs.writeShellApplication {
name = "cmus-callback-script";
runtimeInputs = [pkgs.libnotify];
runtimeInputs = [
pkgs.cmusfm
pkgs.libnotify
];
text = ''
# All keys contain only chars a-z. Values are UTF-8 strings.
#
@ -17,9 +19,8 @@
# - file or url is given only if track is 'loaded' in cmus
# - other keys/values are given only if they are available
# Keep a copy of arguments
# argv=("$@")
# Use a map so that we can redirect all the args to cmusfm
argv=("$@")
declare -A map
while [ $# -gt 0 ]; do
map["$1"]="$2"
@ -40,22 +41,26 @@
notify-send \
"$SYMB ''${map[title]}" \
"''${map[artist]} / ''${map[album]}"
cmusfm "''${argv[@]}"
'';
};
in
(builtins.readFile ./rc)
+ lib.optionalString pkgs.stdenv.isLinux ''
+ (lib.optionalString pkgs.stdenv.isLinux ''
set status_display_program=${lib.getExe callback-script}
''
'')
+ (lib.optionalString pkgs.stdenv.isDarwin ''
set status_display_program=${lib.getExe pkgs.cmusfm}
'')
# This handles volume better
# Alsa backend has this behavior where system volume button will unsync two channels
+ lib.optionalString pkgs.stdenv.isLinux ''
+ (lib.optionalString pkgs.stdenv.isLinux ''
set output_plugin=pulse
''
'')
# When switching over bluetooth, toggle the output device to coreaudio
# and back to ao would fix the no sound issue.
+ lib.optionalString pkgs.stdenv.isDarwin ''
+ (lib.optionalString pkgs.stdenv.isDarwin ''
# distortion fix https://github.com/cmus/cmus/issues/1130#issuecomment-1003324193
set output_plugin=ao
'';
'');
}