Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.
Please see the following URL to install it for Gnome: https://extensions.gnome.org/extension/3438/jiggle/
Setting | Description |
---|---|
Shake Threshold | How vigorous the cursor must shake for jiggling to be detected. |
Log Level | How much Jiggle should log to journalctl. |
Effect | Choose which effect is used when jiggling is detected. |
Show a larger cursor.
Setting | Description |
---|---|
Use System Cursor | When enabled, use the system cursor. Otherwise, Jiggle uses icons/jiggle-cursor.png. |
Hide Original Cursor | When enabled, Jiggle attempts to hide and show the real cursor during its animation. |
Growth Speed | How fast the cursor grows once jiggling is detected. |
Shrink Speed | How fast the cursor shrinks once jiggling is no longer detected. |
Set off fireworks.
Setting | Description |
---|---|
Burst Speed | How fast the firework particles fly. |
Spark Count | How many particles the fireworks have. |
Spark Trail | How far the particle trails are visible. |
Shine a spotlight on the cursor.
Setting | Description |
---|---|
Size | Size of the spotlight. |
Show Speed | How fast the spotlight fades in once jiggling is detected. |
Hide Speed | How fast the spotlight fades once jiggling is no longer detected. |
Leave a trail of cursors.
Setting | Description |
---|---|
Speed | Speed of the trail generation. |
- Detecting mouse clicks/active windows isn't as straightforward as one would believe.
- Getting a higher quality system cursor image isn't either.
Patches welcome.
Feel like building Jiggle from sources? Keep reading...
Jiggle effects use duck typing, and effects are expected to have the following methods:
Method | Description |
---|---|
render() |
Executed in a timed loop, for repainting the screen. |
run(x, y) |
Executed when the cursor moves, with the x and y screen coordinates. |
start() |
Executed when jiggling is first detected. |
stop() |
Executed when jiggling is no longer detected. |
update(settings) |
Executed if any of the preferences are changed. settings is a Gio.Settings instance. |
In addition, each effect package should also implement a new_effect
function that returns a new instance of the effect.
Tools required:
- GNU make
- docker
- bash
- glib-compile-schemas
- glade
make
Any changes to the settings or UI xml will require recompilation.
DO NOT edit ui/gtk4.ui directly, as it is generated from ui/gtk3.ui!!!
make compile
Tests use GjsUnit, which is included here.
make test
Multiple systems can be tested via Docker:
make docker
Or, test a single system:
make docker_centos
make docker_debian
make docker_fedora
Please note that this can be very slow, as the images are built locally.
© 2020 Jeff Channell