[gnome] Update extensions

This commit is contained in:
2026-04-09 09:51:44 -04:00
parent dadc78f2f4
commit 505c67d292
61 changed files with 1729 additions and 365 deletions

View File

@ -0,0 +1,46 @@
#!/usr/bin/env gjs -m
import GLib from 'gi://GLib';
import Gio from 'gi://Gio';
import GioUnix from 'gi://GioUnix';
import * as DBusUtils from '../dbusUtils.js';
async function seekStatusNotifierItems() {
// Some indicators (*coff*, dropbox, *coff*) do not re-register again
// when the plugin is enabled/disabled, thus we need to manually look
// for the objects in the session bus that implements the StatusNotifierItem
// interface...
const cancellable = null;
const bus = Gio.DBus.session;
const uniqueNames = await DBusUtils.getBusNames(bus, cancellable);
const stdErrOutputStream = new GioUnix.OutputStream({fd: 1, closeFd: true});
const introspectName = async name => {
const nodes = DBusUtils.introspectBusObject(bus, name, cancellable,
['org.kde.StatusNotifierItem']);
const services = [...uniqueNames.get(name)];
for await (const node of nodes) {
const {path} = node;
stdErrOutputStream.write(`${JSON.stringify({services, name, path})}\n`,
cancellable);
}
};
await Promise.allSettled([...uniqueNames.keys()].map(n => introspectName(n)));
}
function main(_argv) {
const loop = new GLib.MainLoop(null, false);
let exitCode = 0;
seekStatusNotifierItems().catch(e => {
logError(e);
exitCode = 1;
}).finally(() => loop.quit());
loop.run();
return exitCode;
}
imports.system.exit(main(ARGV));