A simple terminal UI player for di.fm
Find a file
2024-01-18 09:33:15 -07:00
.github/workflows Use custom version bumper 2024-01-18 09:33:15 -07:00
app Simpler album art fetching 2024-01-08 21:35:52 -03:00
components Simpler album art fetching 2024-01-08 21:35:52 -03:00
config Add support for color themes 2023-07-08 15:07:03 -06:00
context Improve connection quality and latency resilience 2023-06-01 19:57:47 -06:00
difm Improve connection quality and latency resilience 2023-06-01 19:57:47 -06:00
mpris Add d-bus/mpris support 2024-01-17 14:24:32 -07:00
player Fix leaky stream on channel switch bug 2023-06-20 16:41:48 -06:00
views feat: Add pause with space keybinding 2023-10-14 08:57:40 -06:00
.gitignore packaging: Add nix flake 2023-08-24 09:16:52 +02:00
.goreleaser.yml Fix typo in goreleaser config 2023-08-05 09:24:35 -06:00
CHANGELOG.md Official first release 2020-04-10 00:01:31 -04:00
default.nix Update default.nix with latest version number 2024-01-16 01:26:26 +00:00
flake.lock Add gomod2nix config/post-release.yml 2024-01-15 15:54:23 -07:00
flake.nix Add gomod2nix config/post-release.yml 2024-01-15 15:54:23 -07:00
go.mod Add d-bus/mpris support 2024-01-17 14:24:32 -07:00
go.sum Add d-bus/mpris support 2024-01-17 14:24:32 -07:00
gomod2nix.toml Fix missing dependencies in gomod2nix.toml 2024-01-17 14:36:01 -07:00
LICENSE Initial commit 2020-02-23 21:48:39 -05:00
main.go Add d-bus/mpris support 2024-01-17 14:24:32 -07:00
README.md Add d-bus/mpris support 2024-01-17 14:24:32 -07:00
shell.nix Add gomod2nix config/post-release.yml 2024-01-15 15:54:23 -07:00

di-tui

A simple terminal UI player for di.fm Premium

App Screenshot

Dependencies

PulseAudio

Both linux and MacOS depend on pulseaudio to be running.

MacOS

By default, pulseaudio on MacOS runs as "root", which is not ideal. PulseAudio is best run by non-root users. By symbolically linking the pulseaudio plist file into your user's ~/Library/LaunchAgents/, it runs as your user.

brew install pulseaudio
ln -s $(brew info pulseaudio | grep "/usr/local/Cellar" | awk '{print $1}')//homebrew.mxcl.pulseaudio.plist ~/Library/LaunchAgents
brew services start pulseaudio

Debian / Ubuntu

apt install pulseaudio

Install

Binary Releases

There are binary builds available in releases.

With go install

go install github.com/acaloiaro/di-tui@latest

If $GOPATH/bin is not on your $PATH (modify accordingly for ZSH users ~/.zshrc)

echo "export PATH=$PATH:$GOPATH/bin" >> ~/.bashrc
source ~/.bashrc

Run with nix run

nix run github:acaloiaro/di-tui

Authenticate

There are two authentication options

  • Enter your username and password directly into di-tui
  • If you're justifiably uncomfortable with entering your username/password into this application, copy your "Listen Key" from (https://www.di.fm/settings) and create the following file:

~/.config/di-tui/config.yml

token: <YOUR LISTEN KEY>
album_art: <BOOLEAN>
key description
token Your di.fm authentication "Listen Key" found at https://www.di.fm/settings
album_art Turn album art on or off

MPRIS/D-bus support

MPRIS is a D-Bus specification allowing media players to be controlled in a standardized way, e.g. with playerctl.

di-tui supports a very limited set of MPRIS commands. The limited set is to to the fact that di-tui is a streaming audio player, and it doesn't make sense to support next, previous, seek, etc., because audio streams have no next or previous track; or the ability to seek forward.

Supported MPRIS commands

play-pause Toggles Play/Pause, e.g. playerctl --player=di-tui play-pause toggles play/pause on di-tui if it's the active player

Supported MPRIS metadata

track The currently playing track

artist The currently playing artist

status The status of the player, e.g. playing, paused, stopped

playerName The name of the player: di-tui

Configuration

Themes

By default, di-tui respects your terminal's color scheme. However, there are four color settings that one can change by adding a theme to config.yml.

Tomorrow-Night inspired theme

theme:
  primary_color: "#81a2be"
  background_color: "#2a1f1a"
  primary_text_color: "#969896"
  secondary_text_color: "#81a2be"

Run

di-tui