luisbocanegra / plasma-cursor-eyes

Rolling eyes that follow your mouse pointer for the KDE Plasma Desktop (X11 or Wayland). A small demo of getting KWin Script output from a Widget using D-Bus and Python
https://store.kde.org/p/2183752
GNU General Public License v3.0
6 stars 1 forks source link
cursor kde kde-plasma kwin kwin-script linux-desktop mouse plasma plasma-applet plasma6 plasmoid python wayland widget x11 xeyes
# Cursor Eyes Rolling eyes that follow your mouse pointer for the KDE Plasma Desktop inspired by [gnome-applets/geyes](https://gitlab.gnome.org/GNOME/gnome-applets/-/tree/master/gnome-applets/geyes) and derivatives. https://github.com/user-attachments/assets/fb58910b-ecb7-4546-8bc7-4c40216ccceb

Features

screenshots ![tooltip](screenshots/panel.png) ![tooltip](screenshots/settings.png)

Requirements

Installing

[!IMPORTANT] Depending on the hardware you may experience a increase on CPU usage when moving the cursor around while using this widget.

This is due to the current implementation of the widget and the KWin script polling the widget's python D-Bus service. This will be fixed by reimplementing all (or what is possible) as a cpp plugin (no ETA)

It should return to almost normal when the cursor is not moving (idle mode). Usage can be decreased by reducing the updates per second from both widget and KWin script settings.

Install the widget from the KDE Store Plasma 6 version

  1. Right click on the Desktop > Edit Mode > Add Widgets > Get New Widgets > Download new...
  2. Search for "Cursor Eyes", install and add it to your Panel/Desktop.
  3. Complete the setup by installing the KWin Script and starting it.

Manual install

git clone https://github.com/luisbocanegra/plasma-cursor-eyes
cd plasma-cursor-eyes
./install.sh

ALTERNATIVE You can also install through the ./install-with-cmake.sh script but requires additional dependencies (mostly intended for development/packaging)

Submitting new themes

Instructions to add new themes are here

How does it work?

  1. A KWin Script that reads the cursor position x times per second (default is 30)
  2. Widget starts a D-Bus service (python script) to store and return the cursor position
  3. KWin Script sends the cursor position to the D-Bus service
  4. Widget gets the last saved cursor position from the running D-Bus service
  5. When there are multiple instances of the widget only one runs the service

Similar projects

Acknowledgements