diff --git a/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/extension.js b/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/extension.js
index 177477b..85577c5 100644
--- a/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/extension.js
+++ b/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/extension.js
@@ -1,35 +1,40 @@
-const Shell = imports.gi.Shell;
-const Gio = imports.gi.Gio;
+import Shell from 'gi://Shell';
+import Gio from 'gi://Gio';
-const KeymapperInterface = '\
- \
- \
- \
- \
- \
- \
-';
+export default class KeymapperExtension {
+ constructor() {
+ const KeymapperInterface = '\
+ \
+ \
+ \
+ \
+ \
+ \
+ ';
-const KeymapperProxy = Gio.DBusProxy.makeProxyWrapper(KeymapperInterface);
+ const KeymapperProxy = Gio.DBusProxy.makeProxyWrapper(KeymapperInterface);
-const keymapper = new KeymapperProxy(
- Gio.DBus.session,
- "com.github.houmain.Keymapper",
- "/com/github/houmain/Keymapper"
-);
+ this._keymapper = new KeymapperProxy(
+ Gio.DBus.session,
+ "com.github.houmain.Keymapper",
+ "/com/github/houmain/Keymapper"
+ );
-let enabled = false;
+ Shell.WindowTracker.get_default().connect('notify::focus-app', () => {
+ const window = global.display.focus_window;
+ if (this._enabled)
+ this._keymapper.WindowFocusSync(
+ (window ? window.get_title() : ''),
+ (window ? window.get_wm_class() : "root"));
+ });
+ }
-function init() {
- Shell.WindowTracker.get_default().connect('notify::focus-app', () => {
- const window = global.display.focus_window;
- if (enabled)
- keymapper.WindowFocusSync(
- (window ? window.get_title() : ''),
- (window ? window.get_wm_class() : "root"));
- });
- return {
- enable: ()=>{ enabled = true; },
- disable: ()=>{ enabled = false; }
- };
+ enable() {
+ this._enabled = true;
+ }
+
+ disable() {
+ this._enabled = false;
+ }
}
+
diff --git a/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/metadata.json b/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/metadata.json
index b559b3c..51c7d66 100644
--- a/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/metadata.json
+++ b/extra/share/gnome-shell/extensions/keymapper@houmain.github.com/metadata.json
@@ -3,9 +3,9 @@
"name": "Keymapper",
"description": "Informs keymapper about the currently focused window.",
"url": "https://github.com/houmain/keymapper",
- "version": 1,
+ "version": 2,
"shell-version": [
- "40", "41", "42", "43", "44", "45", "46", "47", "48", "49"
+ "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55"
]
}