Jiggle
Gnome extension that highlights the cursor position when the mouse is moved rapidly.
Install / Use
/learn @jeffchannell/JiggleREADME
Jiggle
Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.

Installation Via GUI
Please see the following URL to install it for Gnome: https://extensions.gnome.org/extension/3438/jiggle/
Preferences
| 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. |
Cursor Scaling
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. |
Fireworks
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. |
Spotlight
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. |
Cursor Trail
Leave a trail of cursors.
| Setting | Description | |:---|:---| | Speed | Speed of the trail generation. |
Known Issues
- 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.
Development
Feel like building Jiggle from sources? Keep reading...
Anatomy Of An Effect
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.
Building
Tools required:
- GNU make
- docker
- bash
- glib-compile-schemas
- glade
make
Recompiling the Settings Schema and Preferences UI
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
Testing
Tests use GjsUnit, which is included here.
make test
Docker Testing
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
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
