7073a3722f
Fixes crash when opening "Preferences" in NixOS with GNOME 40. Closes #123260. |
||
---|---|---|
.. | ||
appindicator | ||
arcmenu | ||
caffeine | ||
chrome-gnome-shell | ||
clipboard-indicator | ||
clock-override | ||
dash-to-dock | ||
dash-to-panel | ||
disable-unredirect | ||
draw-on-your-screen | ||
drop-down-terminal | ||
dynamic-panel-transparency | ||
EasyScreenCast | ||
emoji-selector | ||
freon | ||
fuzzy-app-search | ||
gsconnect | ||
gtile | ||
hot-edge | ||
icon-hider | ||
impatience | ||
material-shell | ||
mpris-indicator-button | ||
night-theme-switcher | ||
no-title-bar | ||
noannoyance | ||
paperwm | ||
pidgin-im-integration | ||
remove-dropdown-arrows | ||
sound-output-device-chooser | ||
system-monitor | ||
taskwhisperer | ||
tilingnome | ||
timepp | ||
topicons-plus | ||
unite | ||
window-corner-preview | ||
window-is-ready-remover | ||
workspace-matrix | ||
buildGnomeExtension.nix | ||
collisions.json | ||
default.nix | ||
extensionRenames.nix | ||
extensions.json | ||
manuallyPackaged.nix | ||
README.md | ||
update-extensions.py |
GNOME Shell extensions
All extensions are packaged automatically. They can be found in the pkgs.gnomeXYExtensions
for XY being a GNOME version. The package names are the extension’s UUID, which can be a bit unwieldy to use. pkgs.gnomeExtensions
is a set of manually curated extensions that match the current gnome.gnome-shell
versions. Their name is human-friendly, compared to the other extensions sets. Some of its extensions are manually packaged.
Automatically packaged extensions
The actual packages are created by buildGnomeExtensions.nix
, provided the correct arguments are fed into it. The important extension data is stored in extensions.json
, one line/item per extension. That file is generated by running update-extensions.py
. Furthermore, the automatic generated names are dumped in collisions.json
for manual inspection. extensionRenames.nix
contains provides new names for all extensions that collide.
Extensions updates
For everyday updates,
- Run
update-extensions.py
. - Update
extensionRenames.nix
according to the comment at the top.
For GNOME updates,
- Add a new
gnomeXYExtensions
set - Remove old ones for GNOME versions we don’t want to support any more
- Update
supported_versions
in./update-extensions.py
and re-run it - Change
gnomeExtensions
to the new version - Update
./extensionsRenames.nix
accordingly
Manually packaged extensions
Manually packaged extensions overwrite some of the automatically packaged ones in pkgs.gnomeExtensions
. They are listed in manuallyPackaged.nix
, every extension has its own sub-folder.