Skip to content

Repository files navigation

GNOME Extensions downloads GNOME Shell 49 | 50 Latest release License: GPL-2.0-or-later

Quick Settings Scroll

Get it on GNOME Extensions

Makes the GNOME Quick Settings menu scroll when it is taller than the screen. That is the whole extension. No preferences, no panel item, nothing to configure: install it and the menu stops running off the bottom edge.


Note on development. This extension was built based on functional specs and requirements, with AI assistance used for code generation and iterative refinement. The behaviour described below was measured in a nested GNOME Shell, but you might still encounter edge cases. Bug reports and contributions are very welcome!

The problem

Add a few extensions with toggles of their own, or run a laptop at a small resolution or a large text scale, and the Quick Settings menu grows past the bottom of the screen. What is down there is simply unreachable: the popup does not scroll, it is just cut off.

Measured in a nested shell at 800x600, with sixteen extra toggles in the menu:

popup height work area reachable
stock GNOME Shell 50 782px 568px the top 568px, the rest is off-screen
with this extension 556px 568px all of it, by scrolling

GNOME has an open merge request for this, gnome-shell!3272. It was opened in April 2024 and is still unmerged. This extension exists until it lands.

Install

git clone https://github.com/Disk-MTH/Quick-Settings-Scroll.git
cd Quick-Settings-Scroll
make install
# Wayland: log out, log back in.
# Xorg:    Alt+F2, type r, Enter.
gnome-extensions enable quick-settings-scroll@diskmth.fr

make nested tries it in a throwaway shell in its own window, on a copy of your settings so the nested menu carries the same extensions without writing anything back. Resize that window short to make the menu overflow. Pack a release zip with make pack.

Note that make install cannot reach a shell that is already running: GNOME Shell caches extension modules, so changed code needs a fresh shell — nested, or after a log out.

Project layout

extension.js                  # entry point: apply on enable, revert on disable
lib/quick-settings-scroll.js  # the patch itself
stylesheet.css                # the fade at the scrolled edges

FAQ

Will it fight with my other extensions?

It should not. It moves shell actors rather than replacing shell methods, so an extension that adds a toggle keeps calling the same addItem on the same grid. Positions are restored by index, not appended, so an extension that put a row of its own in the menu gets it back where it was.

Does anything change when the menu fits on screen?

No. The scroll view draws no scrollbar and the edge fade is only painted on an edge that has content past it, so a menu that fits looks untouched.

Why is there no scrollbar?

A bar inside a popup this narrow has to either eat into the grid or sit over a toggle, and both look wrong. The fade at the top and bottom edges says there is more menu past them instead.

License

GPL-2.0-or-later, see LICENSE, the same terms GNOME Shell itself is published under.

Releases

Packages

Contributors

Languages