GNOME Shell 45 moved to ESM (ECMAScript modules). That means you MUST use the standard import declaration instead of relying on the previous imports.* approach.
well that’s what I tried, but how would I know where Volume is located in the path 'gi:// … '. Is there any way of browsing / exploring the jave files to that I can actually know what the path is?
I edited my comment with an example for your code and my best advice for figuring out the path of gnome shell imports is by browsing /usr/share/gnome-shell/js/, the docs are not very helpful.
Just to clarify. The gi:// resources are GObject Introspection modules which are used for multilanguage bindings to native libraries. On my system, GI modules are found in /usr/share/gir-1.0/ . They’re just imported by name and sometimes version using gi:// (there are examples in the link in my first comment).
As I don’t have Gnome installed I can’t be sure of the path to gnome shell modules imported using resource://, but it’s probably the path I wrote, but without js/.
It is very likely the wrong path, I just extrapolated the path from the gnome-shell git repo. I don’t use Gnome myself, I’m on the enemy team using LXDE on Devuan ;)
https://gjs.guide/extensions/upgrading/gnome-shell-45.html
So the imports in your extensions is changed from:
const Clutter = imports.gi.Clutter; const Gio = imports.gi.Gio; const Main = imports.ui.main; const Volume = imports.ui.status.volume;
to
import Clutter from 'gi://Clutter'; import Gio from 'gi://Gio'; import * as Main from 'resource:///org/gnome/shell/ui/main.js' import * as Volume from 'resource:///org/gnome/shell/ui/status/volume.js';
well that’s what I tried, but how would I know where Volume is located in the path 'gi:// … '. Is there any way of browsing / exploring the jave files to that I can actually know what the path is?
I edited my comment with an example for your code and my best advice for figuring out the path of gnome shell imports is by browsing
/usr/share/gnome-shell/js/
, the docs are not very helpful.Aha I see. Except I’m not sure if the path
/usr/share/gnome-shell/js/
is correct? The folder/filejs
does not exist on my end.Just to clarify. The
gi://
resources are GObject Introspection modules which are used for multilanguage bindings to native libraries. On my system, GI modules are found in/usr/share/gir-1.0/
. They’re just imported by name and sometimes version usinggi://
(there are examples in the link in my first comment).As I don’t have Gnome installed I can’t be sure of the path to gnome shell modules imported using
resource://
, but it’s probably the path I wrote, but withoutjs/
.It is very likely the wrong path, I just extrapolated the path from the gnome-shell git repo. I don’t use Gnome myself, I’m on the enemy team using LXDE on Devuan ;)