Why changing theme of gnome-shell requires installing user-themes extension?
Because, strictly speaking, GNOME Shell does not have themes. It has support for styling for
St widget with CSS stylesheets, but that is not a theme.
user-themes extension adds the ability for users to re-style GNOME Shell and share them with others as stylesheets.
I mean exactly that, but wondering, why I need extension to changing stylesheets?
What is theme then?
Because it’s not a supported feature, so it’s offered as a extension.
Presumably it’s the idea of a fixed user interface, where the layout and appearance of its elements can be altered in a systematic and predictable way. But however you define it, changing themes or stylesheets comes with no guarantees, therefore it is offered as an extension.
Sorry, I worded my question wrong… I mean what extension do to gnome-shell? Modifing variable of stylesheet path or?
That particular extension ships with a GSettings schema that holds a theme name as a string. When the settings key changes, the extension ensures a file called
gnome-shell.css exists in an expected directory and then calls a couple functions to load it.