nixpkgs/pkgs/desktops/gnome/extensions
piegames 573f967c39 gnomeExtension: Reformat extension.json
The idea of having one line per extension for diff reasons mostly worked out well.
However, especially around major Gnome updates it happens that extensions only change
in the set of supported versions. This information is currently a bit hard to track,
since such a change would still result in a diff for the entire line, which can be pretty long.
Additionally, it may happen that this applies to many extensions at once, and the way git
renders diff (first all removals in a hunk, then all additions) makes it even harder
to track because now the change is not local in the diff.

Having one line per supported version per extension should solve this problem, while
still providing a good compromise in overall line count of the file.
It shall be noted that GitHub already refuses to render diffs on this file even for
comparatively small updates, therefore this change cannot really make it worse here.
2023-11-21 08:42:34 +01:00
..
arcmenu gnomeExtensions.arcmenu: 43 -> 44 2023-04-17 23:00:47 -07:00
argos gnomeExtensions.argos: 20220930 → 20230404 2023-04-12 15:37:09 -07:00
clock-override
drop-down-terminal
EasyScreenCast gnomeExtensions.easyScreenCast: 1.7.0 -> 1.7.1 2023-10-10 04:37:37 +00:00
extensionOverridesPatches gnomeExtensions.gtk4-desktop-icons-ng-ding: add patches to make it work 2023-05-25 16:09:45 +02:00
gnome-browser-connector treewide: gobject-introspection from buildInputs to nativeBuildInputs 2023-06-28 22:33:40 +03:00
gsconnect gnomeExtensions.gsconnect: 54 -> 55 2023-04-10 20:32:06 +08:00
icon-hider
impatience gnome-shell-extension-impatience: unstable-2022-03-26 -> unstable-2023-04-04 2023-08-19 13:24:35 +10:00
no-title-bar maintainers: maxeaubrey → amaxine 2023-09-12 17:21:05 +02:00
pidgin-im-integration
pop-shell typescript: repackage using buildNpmPackage (#239189) 2023-06-26 20:36:12 +02:00
sound-output-device-chooser
system-monitor gnomeExtensions.system-monitor: 2022-04-25 → 2023-01-21 2023-04-12 15:45:50 -07:00
taskwhisperer gnomeExtensions.taskwhisperer: 16 -> 20 2022-01-04 11:20:23 +01:00
tilingnome
topicons-plus
valent gnomeExtensions.valent: init at unstable-2023-03-18 2023-04-15 19:09:14 -03:00
window-corner-preview
buildGnomeExtension.nix nixosTests.gnome-extensions: Init 2023-11-21 08:42:34 +01:00
collisions.json Revert "gnomeExtensions: Update for GNOME 45" 2023-10-15 13:22:54 +02:00
default.nix Revert "gnomeExtensions: Update for GNOME 45" 2023-10-15 13:22:54 +02:00
extensionOverrides.nix gnomeExtensions.dash-to-dock: remove manual packaging 2023-06-16 22:32:14 +02:00
extensionRenames.nix Revert "gnomeExtensions: Update for GNOME 45" 2023-10-15 13:22:54 +02:00
extensions.json gnomeExtension: Reformat extension.json 2023-11-21 08:42:34 +01:00
manuallyPackaged.nix paperwm: remove manually packaged extension 2023-09-23 23:34:41 +02:00
README.md
update-extensions.py gnomeExtension: Reformat extension.json 2023-11-21 08:42:34 +01:00

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 extensions 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 buildGnomeExtension.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 new names for all extensions that collide.

Extensions updates

For everyday updates,

  1. Run update-extensions.py.
  2. Update extensionRenames.nix according to the comment at the top.

For GNOME updates,

  1. Add a new gnomeXYExtensions set
  2. Remove old ones for GNOME versions we dont want to support any more
  3. Update supported_versions in ./update-extensions.py and re-run it
  4. Change gnomeExtensions to the new version
  5. Update ./extensionsRenames.nix accordingly
  6. Update all-packages.nix accordingly (grep for gnomeExtensions)

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.