Skip to content

Latest commit

 

History

History
76 lines (49 loc) · 2.6 KB

README.md

File metadata and controls

76 lines (49 loc) · 2.6 KB

Screenshot

touchegg-music-client

Lines of code Continuous Integration

Widget for music and volume control, connected to touchégg 's daemon.

How does it work?

The client connects to touchégg's daemon, and on every gesture update it asks every provider until one responds with a metadata struct, and then displays the information through different windows.

Metadata providers

The information displayed on the windows is sourced from different providers, there's currently only two providers:

Spotify Notifications Provider

It works by monitoring the notifications bus and parsing only the Spotify notifications. It supports showing the album icon but it currently doesn't support the playback status.

Spotify Signals Provider

It works by listening to Spotify's DBus signals emitted when a property changes (either Metadata or PlaybackStatus).

Windows

The program can show three different windows:

Volume window

This window is always displayed, it shows the current volume in the default PulseAudio sink.

Metadata window

If one of the providers returns a valid metadata struct, this window displays the song and artist's name, and if the provider supports it an icon representing the playback status also is displayed.

Album icon window

If the metadata struct has a valid album icon, this window displays it.

Dependencies

Besides installing and running touchégg:

Arch-based distros Debian-based distros
cairomm libcairomm-1.0-dev
glibmm libglibmm-2.4-dev
libpulse libpulse-dev

Installation

You can find the package in the AUR as touchegg-music-client

$ paru -S touchegg-music-client

Todo

  • Display album icon
  • SpotifySignalsProvider listening to Spotify's PropertiesChanged signal
  • Configurable number of fingers/gesture direction
  • Configurable windows
  • Configurable providers priority
  • Configurable PulseAudio sink
  • Migrate to pangomm for text rendering
  • Migrate to cairomm
  • Migrate SpotifySignalsProvider's DBus connection to glibmm
  • Add a configuration file
  • Add new providers (chromium, vlc)