KWin for wayland uses the `.desktop` file to determine whether a process
is allowed to access some wayland services.
This would be fine if there was a stable interface to map a process to a
`.desktop` file.
Since there is no such interface, they are scanning `.desktop` files for
one where the executable path matches the resolved file "exe" from
`/proc/$PID/exe`.
This would be fine, if we didn't wrap many (most?) KDE/Plasma binaries.
Since we are wrapping binaries, the `exe` symlink points to a wrapped
binary. No `.desktop` file will match for the wrapped binary.
The solution here is to peel away at the `.${name}-wrapped` layers until
we have the intended name for the executable.
It is expected that no `.desktop` file will ever point to a wrapped
binary.
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 3.36 and 3.38 were added, as we don't support legacy Gnome versions.
The extensions are exposed as an attrset, `pkgs.gnome36Extensions` 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.
`nix-build -A gnome2.gtksourceview` fails to build with autoconf 2.70 with the following error:
...
autoreconf: running: intltoolize --copy --force
You should update your 'aclocal.m4' by running aclocal.
autoreconf: running: gtkdocize --copy
Can't exec "gtkdocize": No such file or directory at /nix/store/hm8xfxprfk4l1msb9hpjwgydilbqlvl5-autoconf-2.70/share/autoconf/Autom4te/FileUtils.pm line 293.
autoreconf: error: gtkdocize failed with exit status: 2
gnome2.gtksourceview builds successfully with autoconf 2.69.