56 lines
1.5 KiB
Nix
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"
|
|
];
|
|
};
|
|
}
|