mpd-gtk4
Version, currently main branch1 version
- main branchlatestApr 16, 2026
github.com/mamantoha/mpd-gtk4
A desktop MPD client written in Crystal using GTK4 bindings
0 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
mpd-gtk4:
github: mamantoha/mpd-gtk4
branch: mainmain is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
>= 1.19.1- License
- MIT
- Author
- mamantoha
- Target
mpd-gtk4from src/mpd_ui.cr
Dependencies
Runtime Dependencies
- gtk4*github: hugopl/gtk4.cr
- crystal_mpd*github: mamantoha/crystal_mpd
README
Crystal MPD
A desktop MPD client written in Crystal using GTK4 bindings.
Screenshots

Features
- Playback controls: play/pause, previous, next
- Shuffle and repeat toggle buttons
- Seek slider with elapsed / total time display
- Window title updates to reflect the current track
- Settings window for MPD host / port configuration
Requirements
- Crystal >= 1.19.1
- GTK4 and GObject Introspection libraries
- Arch:
pacman -S gtk4 gobject-introspection - Ubuntu:
apt-get install libgtk-4-1 libgtk-4-dev libgirepository1.0-dev
- Arch:
- A running MPD server
Installation
git clone https://github.com/mamantoha/mpd-gtk4
cd mpd-gtk4
shards install
./bin/gi-crystal # generate GTK4 bindings (required once)
shards build --release
./bin/mpd-gtk4
Dependencies
| Shard | Purpose |
|---|---|
| hugopl/gtk4.cr | GTK4 bindings via GObject Introspection |
| mamantoha/crystal_mpd | MPD protocol client |
Platform support
Tested on Linux (GTK4). macOS and Windows are untested.
Architecture notes
- Dual MPD clients: a regular
MPD::Clientfor commands and a second client withwith_callbacks: truerunning in a backgroundThreadfor push events (song change, state, elapsed, random, repeat) - UI thread safety: all UI mutations from the callback thread go through
GLib.idle_add { ...; false } - Sync guard: a
@syncingflag preventstoggled_signalonGtk::ToggleButtonfrom dispatching MPD commands during programmatic state sync (e.g. when external random/repeat changes arrive via callbacks)
License
MIT
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
main- Seen
- Apr 16, 2026
- Crystal
>= 1.19.1- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/mamantoha/mpd-gtk4
Metadata
- Created
- Aug 12, 2026
- Updated
- Oct 1, 2026
- Synced
- Oct 1, 2026
- Versions
- 1