#!/usr/bin/gjs -m import Adw from 'gi://Adw'; import Gio from 'gi://Gio'; import Gtk from 'gi://Gtk'; import Gdk from 'gi://Gdk'; import { fillSettingsWindow } from '../gnome-extension/jarvis@qvac.local/settings-window.js'; const directory = Gio.File.new_for_uri(import.meta.url).get_parent().get_parent().get_child('gnome-extension').get_child('jarvis@qvac.local').get_path(); const application = new Adw.Application({ application_id: 'io.qvac.Jarvis.Control', flags: Gio.ApplicationFlags.DEFAULT_FLAGS }); let window; application.connect('startup', () => { try { Gtk.IconTheme.get_for_display(Gdk.Display.get_default()).add_search_path(`${directory}/brand/icons`); } catch {} }); application.connect('activate', () => { if (!window) { const source = Gio.SettingsSchemaSource.new_from_directory(`${directory}/schemas`, Gio.SettingsSchemaSource.get_default(), false); const settings = new Gio.Settings({ settings_schema: source.lookup('org.gnome.shell.extensions.jarvis', true) }); window = new Adw.PreferencesWindow({ application, icon_name: 'io.qvac.Jarvis.Control' }); fillSettingsWindow(window, settings, directory); window.connect('close-request', () => { window = null; return false; }); } window.present(); }); application.run([]);