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!
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.
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.frmake 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.
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
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.
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.
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.
GPL-2.0-or-later, see LICENSE, the same terms GNOME Shell itself is published under.