From 9cff918c2e70f19b8bc730e6c39693f7faaa6cc9 Mon Sep 17 00:00:00 2001 From: hodasemi Date: Mon, 13 Mar 2023 14:07:01 +0100 Subject: [PATCH] Initial commit --- extension.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ metadata.json | 8 ++++++ stylesheet.css | 1 + 3 files changed, 79 insertions(+) create mode 100644 extension.js create mode 100644 metadata.json create mode 100644 stylesheet.css diff --git a/extension.js b/extension.js new file mode 100644 index 0000000..9ed2c38 --- /dev/null +++ b/extension.js @@ -0,0 +1,70 @@ +/* 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 . + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +/* exported init */ + +const GETTEXT_DOMAIN = 'my-indicator-extension'; + +const { GObject, St } = imports.gi; + +const ExtensionUtils = imports.misc.extensionUtils; +const Main = imports.ui.main; +const PanelMenu = imports.ui.panelMenu; +const PopupMenu = imports.ui.popupMenu; + +const _ = ExtensionUtils.gettext; + +const Indicator = GObject.registerClass( +class Indicator extends PanelMenu.Button { + _init() { + super._init(0.0, _('My Shiny Indicator')); + + this.add_child(new St.Icon({ + icon_name: 'face-smile-symbolic', + style_class: 'system-status-icon', + })); + + let item = new PopupMenu.PopupMenuItem(_('Show Notification')); + item.connect('activate', () => { + Main.notify(_('Whatʼs up, folks?')); + }); + this.menu.addMenuItem(item); + } +}); + +class Extension { + constructor(uuid) { + this._uuid = uuid; + + ExtensionUtils.initTranslations(GETTEXT_DOMAIN); + } + + enable() { + this._indicator = new Indicator(); + Main.panel.addToStatusArea(this._uuid, this._indicator); + } + + disable() { + this._indicator.destroy(); + this._indicator = null; + } +} + +function init(meta) { + return new Extension(meta.uuid); +} diff --git a/metadata.json b/metadata.json new file mode 100644 index 0000000..51504fe --- /dev/null +++ b/metadata.json @@ -0,0 +1,8 @@ +{ + "name": "PipewireSettings", + "description": "Change pipewire settings for this session", + "uuid": "michaelh.95@t-online.de", + "shell-version": [ + "43" + ] +} diff --git a/stylesheet.css b/stylesheet.css new file mode 100644 index 0000000..37b93f2 --- /dev/null +++ b/stylesheet.css @@ -0,0 +1 @@ +/* Add your custom extension styling here */