46 lines
1.5 KiB
Bash
46 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
# Rofi Max30 mode - list and open video files with custom names
|
|
# Supports both Hyprland (Wayland) and dwm (X11)
|
|
|
|
# ==============================================================================
|
|
# Environment Detection
|
|
# ==============================================================================
|
|
if [[ -n "${HYPRLAND_INSTANCE_SIGNATURE:-}" ]]; then
|
|
WM="hyprland"
|
|
else
|
|
WM="dwm"
|
|
fi
|
|
|
|
VIDEOS=(
|
|
"Max Out Cardio|/data-bis/Insanity MAX 30/Max Out Cardio.mkv"
|
|
"Max Out Power|/data-bis/Insanity MAX 30/Max Out Power.mkv"
|
|
"Max Out Sweat|/data-bis/Insanity MAX 30/Max Out Sweat.mkv"
|
|
"Max Out Strength|/data-bis/Insanity MAX 30/Max Out Strength.mkv"
|
|
"Friday Fight #2|/data-bis/Insanity MAX 30/Friday Fight Round 2.mkv"
|
|
)
|
|
|
|
# If no argument, list video names
|
|
if [ -z "$1" ]; then
|
|
for entry in "${VIDEOS[@]}"; do
|
|
echo "${entry%%|*}"
|
|
done
|
|
exit 0
|
|
fi
|
|
|
|
# If argument provided, find and open the matching video
|
|
SELECTED="$1"
|
|
for entry in "${VIDEOS[@]}"; do
|
|
name="${entry%%|*}"
|
|
path="${entry#*|}"
|
|
if [ "$name" = "$SELECTED" ]; then
|
|
setsid xdg-open "$path" >/dev/null 2>&1 &
|
|
if [[ "$WM" == "hyprland" ]]; then
|
|
hyprctl dispatch workspace 90 >/dev/null 2>&1
|
|
else
|
|
# Focus primary monitor first if not on mobile (single monitor) profile
|
|
[[ $(autorandr --detected) != "mobile" ]] && echo "mon-prim" > /tmp/dwm.fifo
|
|
echo "video" > /tmp/dwm.fifo
|
|
fi
|
|
exit 0
|
|
fi
|
|
done
|