/wandering-pixel

GNOME Shell extension that moves 1 pixel back and forth along the top of the screen

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

Wandering Pixel

Wandering Pixel is a GNOME Shell extension that moves 1 pixel back and forth along the top of the screen. The purpose of this is to work around any of several issues in GNOME Shell and/or Mutter, by forcing part of the screen to be redrawn constantly. It's 1 pixel, and it's only slightly less dark than the top bar, so you should never notice it.

Bugs that can be worked around by Wandering Pixel:

I've never written a GNOME Shell extension before and really just fumbled through this. PRs to improve it are welcome!

Development Status

Per Daniel van Vugt, All of the bugs that wandering-pixel aimed to work around were fixed in GNOME 40, and then fixed in update 3.38.4. In order to support GNOME 42, changes are required that break releases prior to 3.36. Since Wandering Pixel is a workaround for bugs in older versions of GNOME, new releases will not be created that break older versions. I've made a branch for GNOME 42+ that people can use if they find Wandering Pixel useful on newer versions of GNOME. Or, better yet, open an issue and I'll reconsider making new releases again.

Installation

The recommended installation method is to install via the official GNOME Extension page.

For a manual installation, follow these instructions:

  1. Download the extension and copy it (or create a symlink) to your GNOME Shell extensions directory: cp -r <path-to-extension-directory> ~/.local/share/gnome-shell/extensions/wandering-pixel@justinrdonnelly.github.com
  2. Restart GNOME Shell: On X11: Alt+F2rEnter; On Wayland: Log out and back in
  3. Enable the extension via GNOME Tweaks, GNOME Extensions, or command line: gnome-extensions enable wandering-pixel@justinrdonnelly.github.com

Limitations and Side Effects

  • Does not work when applications are in full-screen mode. This prevents GNOME animations.
  • Increases CPU usage.
  • Reduces frame rates.

Troubleshooting

  1. Confirm the Wandering Pixel extension is enabled.
  2. Confirm GNOME animations are enabled.
  3. Confirm GNOME animations are working.
    • Test another extension that uses animations (e.g. Example 7 from here - note the youtube video that demonstrates the difference when animations are enabled).

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.