commit 29848001bebaada364e1ac34b72d7a880d6cb60b Author: Tobias Date: Wed May 17 05:24:26 2023 +0200 Initial commit, Notification function diff --git a/cinnamon-dynamic-wallpaper@TobiZog/extension.js b/cinnamon-dynamic-wallpaper@TobiZog/extension.js new file mode 100644 index 0000000..1183b28 --- /dev/null +++ b/cinnamon-dynamic-wallpaper@TobiZog/extension.js @@ -0,0 +1,119 @@ +/** + * @name Cinnamon-Dynamic-Wallpaper + * @alias TobiZog + * @since 2023 + */ + + +/********** Constants **********/ + +const UUID = "cinnamon-dynamic-wallpaper@TobiZog"; +const APPNAME = "Cinnamon Dynamic Wallpaper" + + +/********** Imports **********/ + +const MessageTray = imports.ui.messageTray; +const St = imports.gi.St; +const Main = imports.ui.main; + + +/********** Global Variables **********/ + +// The extension object +let extension; + + +/********** Objects **********/ + +function CinnamonDynamicWallpaperExtension(uuid) { + this._init(uuid); +} + + +CinnamonDynamicWallpaperExtension.prototype = { + /** + * Initialization + * + * @param {string} uuid Universally Unique Identifier + */ + _init: function(uuid) { + // todo + + // Display the welcome notification on activation + this.showNotification( + APPNAME, + "Welcome to " + APPNAME + "! Open the settings and configure the extensions.", + true + ); + }, + + + /** + * Displaying a desktop notification + * + * @param {string} title The Title in the notification + * @param {string} text The text in the notification + * @param {boolean} showOpenSettings Display the "Open settings" button in the notification, defaults to false + */ + showNotification: function (title, text, showOpenSettings = false) { + let source = new MessageTray.Source(this.uuid); + + // Parameter + let params = { + icon: new St.Icon({ + icon_name: "icon", + icon_type: St.IconType.FULLCOLOR, + icon_size: source.ICON_SIZE + }) + }; + + // The notification itself + let notification = new MessageTray.Notification(source, title, text, params); + + // Display the "Open settings" button, if showOpenSettings + if (showOpenSettings) { + notification.addButton("open-settings", _("Open settings")); + + notification.connect("action-invoked", () => + Util.spawnCommandLine("xlet-settings extension " + UUID)); + } + + // Put all together + Main.messageTray.add(source); + + // Display it + source.notify(notification); + }, +} + + + +/********** Lifecycle **********/ + +/** + * Lifecycle function on initialization + * + * @param {*} extensionMeta Metadata of the extension + */ +function init(extensionMeta) { + extension = new CinnamonDynamicWallpaperExtension(extensionMeta.uuid); +} + + +/** + * Lifecycle function on enable + * + * @returns The extension object + */ +function enable() { + return extension; +} + + +/** + * Lifecycle function on disable + */ +function disable() { + // todo +} \ No newline at end of file diff --git a/cinnamon-dynamic-wallpaper@TobiZog/icon.png b/cinnamon-dynamic-wallpaper@TobiZog/icon.png new file mode 120000 index 0000000..9db683c --- /dev/null +++ b/cinnamon-dynamic-wallpaper@TobiZog/icon.png @@ -0,0 +1 @@ +icons/icon.png \ No newline at end of file diff --git a/cinnamon-dynamic-wallpaper@TobiZog/icons/icon.png b/cinnamon-dynamic-wallpaper@TobiZog/icons/icon.png new file mode 100644 index 0000000..d9aa7a8 Binary files /dev/null and b/cinnamon-dynamic-wallpaper@TobiZog/icons/icon.png differ diff --git a/cinnamon-dynamic-wallpaper@TobiZog/metadata.json b/cinnamon-dynamic-wallpaper@TobiZog/metadata.json new file mode 100644 index 0000000..f406400 --- /dev/null +++ b/cinnamon-dynamic-wallpaper@TobiZog/metadata.json @@ -0,0 +1,11 @@ +{ + "uuid": "cinnamon-dynamic-wallpaper@TobiZog", + "name": "Cinnamon Dynamic Wallpaper", + "description": "Cinnamon extension for dynamic desktop backgrounds based on time and location", + "version": "1.0", + "cinnamon-version": [ + "5.6" + ], + "max-instances": 1, + "url": "https://github.com/TobiZog/cinnamon-dynamic-wallpaper" +} \ No newline at end of file