diff options
| author | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
|---|---|---|
| committer | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
| commit | 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch) | |
| tree | ab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-theme/gnome/theme-data/extensions/installed/reboottouefi@ubaygd.com/extension.js | |
| parent | 5d94c0a7d44a2255b81815a52a7056a94a39842d (diff) | |
| download | RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip | |
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-theme/gnome/theme-data/extensions/installed/reboottouefi@ubaygd.com/extension.js')
| -rw-r--r-- | raveos-theme/gnome/theme-data/extensions/installed/reboottouefi@ubaygd.com/extension.js | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/raveos-theme/gnome/theme-data/extensions/installed/reboottouefi@ubaygd.com/extension.js b/raveos-theme/gnome/theme-data/extensions/installed/reboottouefi@ubaygd.com/extension.js deleted file mode 100644 index ecaa1f5..0000000 --- a/raveos-theme/gnome/theme-data/extensions/installed/reboottouefi@ubaygd.com/extension.js +++ /dev/null @@ -1,159 +0,0 @@ -/* extension.js - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - * SPDX-License-Identifier: GPL-3.0-only - */ -/* exported init */ -import GLib from 'gi://GLib'; -import Gio from 'gi://Gio'; -import Clutter from 'gi://Clutter'; -import St from 'gi://St'; -import Pango from 'gi://Pango'; -import { panel } from 'resource:///org/gnome/shell/ui/main.js'; -import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js'; -import * as ModalDialog from 'resource:///org/gnome/shell/ui/modalDialog.js'; -import { Extension, gettext as _, } from 'resource:///org/gnome/shell/extensions/extension.js'; -const ManagerInterface = `<node> - <interface name="org.freedesktop.login1.Manager"> - <method name="SetRebootToFirmwareSetup"> - <arg type="b" direction="in"/> - </method> - <method name="Reboot"> - <arg type="b" direction="in"/> - </method> - </interface> -</node>`; -const Manager = Gio.DBusProxy.makeProxyWrapper(ManagerInterface); -export default class RebootToUefiExtension extends Extension { - menu; - proxy; - rebootToUefiItem; - counter; - seconds; - counterIntervalId; - messageIntervalId; - sourceId; - constructor(metadata) { - super(metadata); - } - modifySystemItem() { - this.menu = - panel.statusArea.quickSettings._system?.quickSettingsItems[0].menu; - this.proxy = Manager(Gio.DBus.system, 'org.freedesktop.login1', '/org/freedesktop/login1'); - this.rebootToUefiItem = new PopupMenu.PopupMenuItem(`${_('Restart to UEFI')}...`); - this.rebootToUefiItem.connect('activate', () => { - this.counter = 60; - this.seconds = this.counter; - const dialog = this.buildDialog(); - dialog.open(); - this.counterIntervalId = setInterval(() => { - if (this.counter > 0) { - this.counter--; - if (this.counter % 10 === 0) { - this.seconds = this.counter; - } - } - else { - this.clearIntervals(); - this.reboot(); - } - }, 1000); - }); - this.menu.addMenuItem(this.rebootToUefiItem, 2); - } - queueModifySystemItem() { - this.sourceId = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => { - if (!panel.statusArea.quickSettings._system) - return GLib.SOURCE_CONTINUE; - this.modifySystemItem(); - return GLib.SOURCE_REMOVE; - }); - } - enable() { - if (!panel.statusArea.quickSettings._system) { - this.queueModifySystemItem(); - } - else { - this.modifySystemItem(); - } - } - disable() { - this.clearIntervals(); - this.rebootToUefiItem?.destroy(); - this.rebootToUefiItem = null; - this.proxy = null; - if (this.sourceId) { - GLib.Source.remove(this.sourceId); - this.sourceId = null; - } - } - reboot() { - this.proxy?.SetRebootToFirmwareSetupRemote(true); - this.proxy?.RebootRemote(false); - } - buildDialog() { - const dialog = new ModalDialog.ModalDialog({ styleClass: 'modal-dialog' }); - dialog.setButtons([ - { - label: _('Cancel'), - action: () => { - this.clearIntervals(); - dialog.close(); - }, - key: Clutter.KEY_Escape, - default: false, - }, - { - label: _('Restart'), - action: () => { - this.clearIntervals(); - this.reboot(); - }, - default: false, - }, - ]); - const dialogTitle = new St.Label({ - text: _('Restart to UEFI'), - // style_class: 'dialog-title' // TODO investigate why css classes are not working - style: 'font-weight: bold;font-size:18px', - }); - let dialogMessage = new St.Label({ - text: this.getDialogMessageText(), - }); - dialogMessage.clutterText.ellipsize = Pango.EllipsizeMode.NONE; - dialogMessage.clutterText.lineWrap = true; - const titleBox = new St.BoxLayout({ - xAlign: Clutter.ActorAlign.CENTER, - }); - titleBox.add_child(new St.Label({ text: ' ' })); - titleBox.add_child(dialogTitle); - let box = new St.BoxLayout({ yExpand: true, vertical: true }); - box.add_child(titleBox); - box.add_child(new St.Label({ text: ' ' })); - box.add_child(dialogMessage); - this.messageIntervalId = setInterval(() => { - dialogMessage?.set_text(this.getDialogMessageText()); - }, 500); - dialog.contentLayout.add_child(box); - return dialog; - } - getDialogMessageText() { - return _(`The system will restart automatically in %d seconds.`).replace('%d', String(this.seconds)); - } - clearIntervals() { - clearInterval(this.counterIntervalId); - clearInterval(this.messageIntervalId); - } -} |