Initial commit: Omeron modular Hyprland setup framework
- Modular installer with gum-based TUI - Fresh-install detection with auto GPU driver selection - Preflight module for system detection (Intel/AMD/NVIDIA) - Core modules: packages, dotfiles, services, SDDM - Optional software installer (Obsidian, Neovim, VS Code, etc.) - Homelab config module with dynamic AGS integration - Two complete themes: Forest Neon and Rose Night - 19 Hyprland control scripts + 4 AGS widgets - Idempotent dotfile deployment with automatic backup - YAML-based configuration, extensible module system - Full logging to ~/.local/share/omeron/
This commit is contained in:
39
dotfiles/waybar/scripts/island-media.sh
Executable file
39
dotfiles/waybar/scripts/island-media.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
json() {
|
||||
jq -Rn --arg value "$1" '$value'
|
||||
}
|
||||
|
||||
status="$(playerctl status 2>/dev/null || true)"
|
||||
time_now="$(date +%H:%M)"
|
||||
|
||||
if [[ "$status" == "Playing" || "$status" == "Paused" ]]; then
|
||||
title="$(playerctl metadata --format '{{ title }}' 2>/dev/null || true)"
|
||||
artist="$(playerctl metadata --format '{{ artist }}' 2>/dev/null || true)"
|
||||
player="$(playerctl metadata --format '{{ playerName }}' 2>/dev/null || true)"
|
||||
|
||||
[[ -z "$title" ]] && title="Media"
|
||||
|
||||
if [[ "$status" == "Playing" ]]; then
|
||||
icon=""
|
||||
class="playing"
|
||||
else
|
||||
icon=""
|
||||
class="paused"
|
||||
fi
|
||||
|
||||
text="$icon $title"
|
||||
[[ -n "$artist" ]] && text="$text · $artist"
|
||||
text="$text $time_now"
|
||||
tooltip="${player:-Player} (${status})"
|
||||
[[ -n "$artist$title" ]] && tooltip="$tooltip"$'\n'"$artist - $title"
|
||||
else
|
||||
text=" $time_now"
|
||||
tooltip="$(date '+%A, %d. %B %Y')"
|
||||
class="idle"
|
||||
fi
|
||||
|
||||
printf '{"text":%s,"tooltip":%s,"class":%s}\n' \
|
||||
"$(json "$text")" \
|
||||
"$(json "$tooltip")" \
|
||||
"$(json "$class")"
|
||||
Reference in New Issue
Block a user