Giter Site home page Giter Site logo

mariojim / touchegg-music-client Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 134 KB

Widget for music and volume control, connected to touchegg's daemon

License: GNU General Public License v3.0

CMake 9.63% C++ 87.48% Makefile 1.37% Dockerfile 1.52%
cpp17 cairo dbus touchegg

touchegg-music-client's Introduction

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)

touchegg-music-client's People

Contributors

mariojim avatar

Stargazers

 avatar

Watchers

 avatar  avatar

touchegg-music-client's Issues

Feedback

Works great on my 10 point touchscreen and trackpad in Plasma Wayland on Manjaro.
It would be cool if the configuration options in your roadmap were added to touche.
How should I configure which gestures are used currently? (since there's no config)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.