Commit Graph

7 Commits

Author SHA1 Message Date
piegames
49041cd82e gnomeExtensions: rename extensionPatches.nix to extensionOverrides.nix 2021-09-24 20:59:15 +02:00
piegames
2c063fe250 gnomeExtensions: add patch framework
It's like Haskell's overlay system, but way more primitive. We simply pre-define some
package overrides that are required for an automatically packaged extension to work.
Ideally, all (or almost all) currently manually pacakged extensions will work this way.

Since these are mostly just a few lines each, there is no need to split this up into a
lot of small files.
2021-09-08 22:54:31 +02:00
piegames
bffbf4617a gnomeExtensions: integrate manually packaged extensions better with the others
Their keys are now not used directly. Instead, we go the standard route of mapping to the
UUID in order to apply the rename procedure. This makes sure the manual override always does
the correct thing, and also gives us more consistency overall.
2021-07-14 03:35:11 +02:00
piegames
48db86f42c gnomeExtensions: Remove remove-dropdown-arrows 2021-07-14 03:23:36 +02:00
Anders Kaseorg
4f0cf23ea3 gnomeExtensions: allowAliases should default to true if unset
Make this use of config.allowAliases consistent with every other use
in the tree.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2021-06-01 10:24:49 -07:00
Jan Tojnar
571d540abf
gnomeExtensions: Fix the package names
I did not realize the attribute names are derived from the Nix package names
so I accidentally, renamed them in https://github.com/NixOS/nixpkgs/pull/124295.
2021-05-25 02:35:04 +02:00
piegames
b642ac7b70
gnome: Package all the GNOME extensions
An automatic way to do this that scales up and requires little manual intervention is really needed. It works by scraping extensions.gnome.org with a python script, that writes all relevant information into the `extensions.json`. Every attribute of besaid file can be built into a package using `buildShellExtension`.

Extensions are grouped by GNOME Shell version for practical reasons. Only extensions for GNOME 40 and 3.38 were added, as we don't support legacy GNOME versions.
The extensions are exposed as an attrset, `pkgs.gnome40Extensions` and `pkgs.gnome38Extensions` respectively. The package name of each extensions is generated automatically from its UUID.

The attribute `pkgs.gnomeExtensions` contains the officially packaged and supported extensions set. It contains all the automatically packaged extensions for the current GNOME Shell version, which are overwritten by manually packaged ones where needed. Unlike gnomeXYExtensions, the names are not UUIDs, but automatically generated human-friendly names. Naming collisions – which are tracked in collisions.json – need to be manually resolved in the `extensionRenames` attrset.
2021-05-21 23:10:12 +02:00