A stylized, interactive media player popup built with Aylur's GTK Shell (AGS). This project uses the GTK4-based version of AGS (Astal) and features a clean, modern UI for controlling media playback.
Kooha-2026-04-19-20-59-03.webm
- MPRIS Integration: Real-time track information including title, artist, and cover art.
- Playback Controls: Play/Pause, Skip Forward, and Skip Backward.
- Progress Tracking: Visual progress bar for the current track with:
- Manual Seeking: Click or drag the progress bar to jump to a specific time.
- Time Display: Toggle between total track length and remaining time by clicking the time label.
- Multiple Player Support: Easily cycle through multiple active media players (e.g., Spotify, Browser, MPV).
- AGS (v2 / Astal)
libadwaitaplayerctl(for MPRIS backend support)
-
Clone the repository (or copy to your ags config):
mkdir -p ~/.config/ags cp -r ./* ~/.config/ags/
-
Run the configuration:
ags run
app.ts: Entry point for the application.widget/MediaPlayer.tsx: Main UI logic and window management.widget/PlayerProgress.tsx: Detailed progress bar component.style.scss: Theming and animations.
This repository was created as a learning exercise for exploring the GTK4 version of AGS and MPRIS integration, mainly motivated by my inability to find a player that integrated well with my Hyprland dotfiles. Thought I'd save anyone with the same problem the trouble. Though I highly recommend giving it a go yourself, especially if you come from a React background like I have. Feel free to use it as a reference for your own AGS configurations! This was 30% vibe coding, 27% banging my head against docs, 43% shouting at Gemini, and a 100% fun use of my time.