Server-client music player written in Rust
The goal of this project is to create a modern version of mocp in Rust.
mocp currently interfaces with ALSA to play audio. This doesn't play well with pipewire's pipewire-alsa plugin; whenever mocp is playing music, other audio/video apps stop working and vice versa.
- A system supporting UNIX sockets
- cargo
- rustc
- Jack or Alsa or any other audio system cpal supports
file
command for audio file detection
~$ cargo build
~$ cargo install --path=. --force
~# cargo install --path=. --force --root=/usr/local # /usr also works
~ $ dizi-server # starts server
~ $ RUST_LOG=debug dizi-server # starts server with debug messages enabled
~ $ dizi # starts server if not already started, then starts frontend
Check out docs for details and config for examples
- client configurations
- for keybindings for client
- color customizations for client
- server configurations
See docs
Please create an issue :)
- play/pause support
- get audio duration (requires rodio and symphonia to work together on this)
- volume support
- fast forward/rewind
- directory playing
- shuffle
- repeat
- next
- sorting
- playlist support
- add/delete/update songs
- recursively add songs in a directory
- shuffle
- repeat
- next
- loading
- clearing
- save on exit
- show music progress
- configurable audio system
- ALSA support (current default)
- JACK support
- Pulseaudio support (issue RustAudio/cpal#259)
- Pipewire support (issue RustAudio/cpal#554)
- querying
- file name
- file path
- show audio metadata (title, artists, genre, album, etc)
- playlist index and length
- on song change hook
- show hidden files
- searching
- glob search
- case-insensitive search
- skim search (fzf)
- show player progression
- playlist support
- show playlist
- add/delete/update songs
- shuffle
- repeat
- next
- clearing
- show audio metadata (artists, genre, album, etc)
- theming support
- custom layout support