Files

56 lines
1.5 KiB
Nix

{pkgs, ...}: let
launch-music = pkgs.writeShellScriptBin "hakase-music-launch" ''
echo "--- Launching Music Apps ---"
echo "Launching jellyfin-tui..."
uwsm app -- /usr/bin/env ghostty --class=jellyfin-tui --title=jellyfin-tui -e jellyfin-tui &
PID_JELLY=$!
echo "Jellyfin launched with PID $PID_JELLY"
echo "Waiting for window..."
sleep 0.1
echo "Focusing jellyfin-tui..."
hyprctl dispatch focuswindow title:jellyfin-tui
echo "Preselecting down..."
hyprctl dispatch layoutmsg preselect d
echo "Launching cava..."
uwsm app -- /usr/bin/env ghostty --class=cava --title=cava -e cava &
PID_CAVA=$!
echo "Cava launched with PID $PID_CAVA"
echo "Launch script completed."
'';
in {
imports = [
# TODO: must be an option a user can set of which music player to use
../../apps/jellyfin-tui
../../apps/cava
];
home.packages = [
launch-music
];
wayland.windowManager.hyprland.settings = {
workspace = [
"name:music, on-created-empty:hakase-music-launch"
];
bindd = [
"SUPER, M, Switch to Music, workspace, name:music"
"SUPER SHIFT, M, Move to Music Workspace, movetoworkspace, name:music"
];
windowrule = [
# --- MUSIC RULES (Jellyfin-TUI) ---
"match:title ^(jellyfin-tui)$, workspace name:music silent"
"match:initial_title ^(jellyfin-tui)$, workspace name:music silent"
# --- CAVA RULES ---
"match:title ^(cava)$, workspace name:music silent"
"match:initial_title ^(cava)$, workspace name:music silent"
];
};
}