diff --git a/bash/.aliases b/bash/.aliases index 676d976..f1aa5c7 100644 --- a/bash/.aliases +++ b/bash/.aliases @@ -19,8 +19,9 @@ alias gpghup='gpgconf --kill gpg-agent && gpgconf --launch gpg-agent' alias dotup='(cd ~/.dotfiles && git pull public master && make)' alias djlogs="tail -f -n 50 /tmp/django.log" alias clogs="tail -f -n 50 /tmp/celery.log" -alias pullkeys="SSH_ASKPASS_REQUIRE='' scp -r powellc@nfs.service:~/.gnupg ~/" -alias pullvar="SSH_ASKPASS_REQUIRE='' scp -r powellc@nfs.service:~/var ~/" +#alias pullkeys="SSH_ASKPASS_REQUIRE='' scp -r powellc@nfs.service:~/.gnupg ~/" +#alias pullvar="SSH_ASKPASS_REQUIRE='' scp -r powellc@nfs.service:~/var ~/" +#alias sshp="SSH_ASKPASS_REQUIRE='' ssh $*" # Vrobbler shortcuts diff --git a/bin/.local/bin/notify-add-indexes.sh b/bin/.local/bin/notify-add-indexes.sh new file mode 100755 index 0000000..348da2c --- /dev/null +++ b/bin/.local/bin/notify-add-indexes.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# notify-add-indexes.sh - Add recommended indexes to Notify SQLite database +# Usage: ./notify-add-indexes.sh [db_path] [--cleanup] +# +# Options: +# --cleanup Also drops the now-redundant message_by_time index +# +# Default path for Flatpak: ~/.var/app/com.ranfdev.Notify/data/com.ranfdev.Notify.sqlite +# Default path for local build: ~/.local/share/com.ranfdev.Notify.sqlite +# +# Usage: +#./notify-add-indexes.sh # Just add indexes +#./notify-add-indexes.sh --cleanup # Add indexes + remove old one +#./notify-add-indexes.sh ~/.local/share/com.ranfdev.Notify.sqlite --cleanup +DB_PATH="" +CLEANUP=false +# Parse arguments +for arg in "$@"; do + case $arg in + --cleanup) + CLEANUP=true + ;; + *) + DB_PATH="$arg" + ;; + esac +done +DB_PATH="${DB_PATH:-$HOME/.var/app/com.ranfdev.Notify/data/com.ranfdev.Notify.sqlite}" +if [ ! -f "$DB_PATH" ]; then + echo "Error: Database not found at $DB_PATH" + exit 1 +fi +echo "Database: $DB_PATH" +echo "" +# Create composite index for message(server, topic) - used by delete_messages +echo "Creating message_server_topic index..." +sqlite3 "$DB_PATH" "CREATE INDEX IF NOT EXISTS message_server_topic ON message(server, topic);" +# Create covering index for list_messages query +echo "Creating message_list_covering index..." +sqlite3 "$DB_PATH" "CREATE INDEX IF NOT EXISTS message_list_covering ON message(server, topic, data ->> '\$.time');" +# Optional: drop redundant index +if [ "$CLEANUP" = true ]; then + echo "" + echo "Dropping redundant message_by_time index..." + sqlite3 "$DB_PATH" "DROP INDEX IF EXISTS message_by_time;" +fi +# Verify +echo "" +echo "Current indexes:" +sqlite3 "$DB_PATH" "SELECT name FROM sqlite_master WHERE type='index' ORDER BY name;" +echo "" +echo "Done!" diff --git a/bin/.local/bin/webcam-build-timelapses b/bin/.local/bin/webcam-build-timelapses index 9bc653f..ead0dae 100755 --- a/bin/.local/bin/webcam-build-timelapses +++ b/bin/.local/bin/webcam-build-timelapses @@ -31,6 +31,9 @@ WEBCAMS=( "firewood" "garden" "diningroom" + "office" + "office_birds" + "ducks" ) TIMELAPSE_SCRIPT="/usr/local/bin/make_timelapse" diff --git a/emacs/.config/doom/config.el b/emacs/.config/doom/config.el index 1c85e00..0dade61 100644 --- a/emacs/.config/doom/config.el +++ b/emacs/.config/doom/config.el @@ -48,6 +48,13 @@ (setq org-roam-directory "~/var/org/" org-roam-dailies-directory "dailies") +(setq org-roam-dailies-capture-templates + '(("d" "default" entry + "* Meetings :work:hungryroot:meeting:\n* Tasks :work:hungryroot:\n** %?" + :target (file+head "%<%Y-%m-%d>.org" + "#+title: %<%Y-%m-%d>\n") + :empty-lines 1))) + (advice-add 'org-agenda :before #'vulpea-agenda-files-update) (advice-add 'org-todo-list :before #'vulpea-agenda-files-update) diff --git a/emacs/.config/doom/config.org b/emacs/.config/doom/config.org index 7ff3a38..52d046d 100644 --- a/emacs/.config/doom/config.org +++ b/emacs/.config/doom/config.org @@ -264,6 +264,13 @@ easier. I just need to level up with Zettels and web publishing of my notes. #+BEGIN_SRC emacs-lisp (setq org-roam-directory "~/var/org/") (setq org-roam-dailies-directory "dailies") + +(setq org-roam-dailies-capture-templates + '(("d" "default" entry + "* Meetings :work:hungryroot:meeting:\n* Tasks :work:hungryroot:\n** %?" + :target (file+head "%<%Y-%m-%d>.org" + "#+title: %<%Y-%m-%d>\n") + :empty-lines 1))) #+END_SRC * Novel diff --git a/emacs/.config/doom/init.el b/emacs/.config/doom/init.el index 2d7daef..3e6531c 100644 --- a/emacs/.config/doom/init.el +++ b/emacs/.config/doom/init.el @@ -148,7 +148,7 @@ ;;kotlin ; a better, slicker Java(Script) ;;latex ; writing papers in Emacs has never been so fun ;;lean ; for folks with too much to prove - ;;ledger ; be audit you can be + ledger ; be audit you can be ;;lua ; one-based indices? one-based indices markdown ; writing docs for people to ignore ;;nim ; python + lisp at the speed of c diff --git a/git/.gitconfig-hungryroot b/git/.gitconfig-hungryroot index bc62ae4..daa2276 100644 --- a/git/.gitconfig-hungryroot +++ b/git/.gitconfig-hungryroot @@ -1,3 +1,3 @@ [user] email = colin.powell@hungryroot.com - signingkey = 087BAEDCEB065D3039A6B0840B9C9536EC0B6A3B + signingkey = BB257E06080FE639030D9291819A121699A1FD39 diff --git a/git/.gitignore_global b/git/.gitignore_global index dbca01b..5309ec7 100644 --- a/git/.gitignore_global +++ b/git/.gitignore_global @@ -36,4 +36,8 @@ ssh/.ssh/known_hosts *.key emoijis SCRATCH.org -personal-docs +personal-org +bin/.local/bin/agent +bin/.local/bin/claude +bin/.local/bin/cursor +bin/.local/bin/cursor-agent diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/BWClipboard.js b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/BWClipboard.js deleted file mode 100644 index 25ceae3..0000000 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/BWClipboard.js +++ /dev/null @@ -1,34 +0,0 @@ -// Bing Wallpaper GNOME extension -// Copyright (C) 2017-2025 Michael Carroll -// This extension is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// See the GNU General Public License, version 3 or later for details. - -import St from 'gi://St'; -import Gio from 'gi://Gio'; - -const CLIPBOARD_TYPE = St.ClipboardType.CLIPBOARD; - -export default class BWClipboard { - constructor() { - this.clipboard = St.Clipboard.get_default(); - } - - setImage(filename) { - try { - let file = Gio.File.new_for_path(filename); - let [success, image_data] = file.load_contents(null); - //console.log('error: '+success); - if (success) - this.clipboard.set_content(CLIPBOARD_TYPE, 'image/jpeg', image_data); - } catch (err) { - console.log('unable to set clipboard to data in '+filename); - } - } - - setText(text) { - this.clipboard.set_text(CLIPBOARD_TYPE, text); - } -}; diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/README.md b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/README.md index 192b114..5eccc3f 100644 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/README.md +++ b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/README.md @@ -15,11 +15,9 @@ Also, check out my related [Google Earth View wallpaper extension](https://githu * Automatically sets the Bing [Image of the Day](https://www.microsoft.com/en-us/bing/bing-wallpaper) as both lock screen and desktop wallpapers * Only attempts to download wallpapers when they have been updated - doesn't poll continuously * Shuffle/randomise wallpapers at adjustable intervals (including from your stored Bing images) -* Image gallery to view, select and curate stored images * Optionally delete old images after a week, or you can keep (and curate) them forever -* Override the lockscreen blur (NEW: lockscreen blur is now dynamic!) * Language support: English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN, zh_TW), French (fr_FR), Portuguese (pt, pt_BR), Ukrainian (uk), Russian (ru_RU), Spanish (es), Korean (ko), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) & Nynorsk (nn), Swedish (sv), Arabic (ar), Hungarian (hu), Japanese (ja), Czech (cs_CZ), Finnish (fi_FI) and Turkish (tr), Persian (fa_ir) - a HUGE thanks to the translators -* Image preview in menus & ability to manually set wallpapers individually or copy image to clipboard +* Image preview in menus & ability to manually set wallpapers individually * A selection of different theme-aware indicator (tray) icons to choose (or hide it completely) ## Quickstart guide @@ -69,7 +67,7 @@ The 5 buttons in the gallery (3rd page in the preferences) do have tool-tips but ## System Requirements -GNOME 3.36+ or 40+ (Ubuntu 20.04 LTS or later, older versions of the extension work with 3.18+, but are no longer supported). +GNOME 45+ (Ubuntu 24.04 LTS or later, older versions of the extension work with 3.18+, but are no longer supported). ## Package dependencies @@ -110,26 +108,12 @@ GSETTINGS_SCHEMA_DIR=$HOME/.local/share/gnome-shell/extensions/BingWallpaper@ine Please include logs from your journal when submitting bug notices (make sure nothing sensitive is included in the text!). ## Screenshots - -### Image gallery - -![Settings](/screenshot/settings5.png) - ### Preferences ![Settings](/screenshot/settings.png) -![Settings](/screenshot/settings2.png) ![Settings](/screenshot/settings3.png) ![Settings](/screenshot/settings4.png) - -### Lockscreen blur control -From left to right: -* no blur/no dimming -* slight blur/default dimming -* default blur/default dimming -![Blur example](/screenshot/blurexample.jpg) - ## Toss a coin to your coder Do you like this extension and want to show that you appreciate the work that goes into adding new features and keeping it maintained? Please consider buying me a coffee on [GitHub Sponsors](https://github.com/sponsors/neffo) or on [Flattr](https://flattr.com/@neffo). @@ -141,7 +125,7 @@ This extension is unofficial and not affiliated with Bing or Microsoft in any wa ## Special Thanks This extension is based on the NASA APOD extension by [Elinvention](https://github.com/Elinvention) -and inspired by Bing Desktop WallpaperChanger by [Utkarsh Gupta](https://github.com/UtkarshGpta). Lockscreen blur code is based on [Pratap-Kumar's extension](https://github.com/PRATAP-KUMAR/Control_Blur_Effect_On_Lock_Screen). I'd like to give a special shout out to those who have [contributed code and translations](https://github.com/neffo/bing-wallpaper-gnome-extension/graphs/contributors) as well as everyone who has reported bugs or provided feedback and suggestions for improvements. Also, thanks to Microsoft for this great API and wallpaper collection. +and inspired by Bing Desktop WallpaperChanger by [Utkarsh Gupta](https://github.com/UtkarshGpta). I'd like to give a special shout out to those who have [contributed code and translations](https://github.com/neffo/bing-wallpaper-gnome-extension/graphs/contributors) as well as everyone who has reported bugs or provided feedback and suggestions for improvements. Also, thanks to Microsoft for this great API and wallpaper collection. ## License diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/blur.js b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/blur.js deleted file mode 100644 index 355d841..0000000 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/blur.js +++ /dev/null @@ -1,159 +0,0 @@ -// Bing Wallpaper GNOME extension -// Copyright (C) 2017-2025 Michael Carroll -// This extension is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// See the GNU General Public License, version 3 or later for details. -// Based on GNOME shell extension NASA APOD by Elia Argentieri https://github.com/Elinvention/gnome-shell-extension-nasa-apod -// This code based on https://github.com/PRATAP-KUMAR/Control_Blur_Effect_On_Lock_Screen -// and https://github.com/sunwxg/gnome-shell-extension-unlockDialogBackground - -import St from 'gi://St'; -import * as UnlockDialog from 'resource:///org/gnome/shell/ui/unlockDialog.js'; -import * as Config from 'resource:///org/gnome/shell/misc/config.js'; -var _updateBackgroundEffects = UnlockDialog.UnlockDialog.prototype._updateBackgroundEffects; -var _showClock = UnlockDialog.UnlockDialog.prototype._showClock; -var _showPrompt = UnlockDialog.UnlockDialog.prototype._showPrompt; - -var shellVersionMajor = parseInt(Config.PACKAGE_VERSION.split('.')[0]); -var shellVersionMinor = parseInt(Config.PACKAGE_VERSION.split('.')[1]); -var shellVersionPoint = parseInt(Config.PACKAGE_VERSION.split('.')[2]); - -var blurField = shellVersionMajor >= 46 ? "radius" : "sigma"; -// default BWP mild blur -var BWP_BLUR_SIGMA = 2; -var BWP_BLUR_BRIGHTNESS = 55; -// GNOME defaults -var BLUR_BRIGHTNESS = 0.55; -var BLUR_SIGMA = 60; -var debug = false; - -var promptActive = false; // default GNOME method of testing this relies on state of a transisiton - // so we are being explicit here (do not want any races, thanks) - -function BingLog(msg) { - if (debug) // set 'debug' above to false to keep the noise down in journal - console.log("BingWallpaper extension/Blur: " + msg); -} - -// we patch UnlockDialog._updateBackgroundEffects() -export function _updateBackgroundEffects_BWP(monitorIndex) { - // GNOME shell 3.36.4 and above - BingLog("_updateBackgroundEffects_BWP() called for shell >= 3.36.4"); - const themeContext = St.ThemeContext.get_for_stage(global.stage); - for (const widget of this._backgroundGroup.get_children()) { - // set blur effects, we have two modes in lockscreen: login prompt or clock - // blur on when clock is visible is adjustable - const effect = widget.get_effect('blur'); - if (promptActive) { - BingLog('default blur active'); - if (effect) { - effect.set({ // GNOME defaults when login prompt is visible - brightness: BLUR_BRIGHTNESS, - [blurField]: BLUR_SIGMA * themeContext.scale_factor, - }); - } - } - else { - BingLog('adjustable blur active'); - if (effect) { - effect.set({ // adjustable blur when clock is visible - brightness: BWP_BLUR_BRIGHTNESS * 0.01, // we use 0-100 rather than 0-1, so divide by 100 - [blurField]: BWP_BLUR_SIGMA * themeContext.scale_factor, - }); - } - } - } -} - -// we patch both UnlockDialog._showClock() and UnlockDialog._showPrompt() to let us -// adjustable blur in a Windows-like way (this ensures login prompt is readable) -export function _showClock_BWP() { - promptActive = false; - this._showClock_GNOME(); // pass to default GNOME function - this._updateBackgroundEffects(); -} - -export function _showPrompt_BWP() { - promptActive = true; - this._showPrompt_GNOME(); // pass to default GNOME function - this._updateBackgroundEffects(); -} - -export function _clampValue(value) { - // valid values are 0 to 100 - if (value > 100) - value = 100; - if (value < 0 ) - value = 0; - return value; -} -export default class Blur { - constructor() { - this.enabled = false; - BingLog('Bing Wallpaper adjustable blur is '+(supportedVersion()?'available':'not available')); - } - - set_blur_strength(value) { - BWP_BLUR_SIGMA = _clampValue(value); - BingLog("lockscreen blur strength set to "+BWP_BLUR_SIGMA); - } - - set_blur_brightness(value) { - BWP_BLUR_BRIGHTNESS = _clampValue(value); - BingLog("lockscreen brightness set to " + BWP_BLUR_BRIGHTNESS); - } - - _switch(enabled) { - if (enabled && !this.enabled) { - this._enable(); - } - else { - this._disable(); - } - } - - _enable() { - if (supportedVersion()) { - BingLog("Blur._enable() called on GNOME "+Config.PACKAGE_VERSION); - UnlockDialog.UnlockDialog.prototype._updateBackgroundEffects = _updateBackgroundEffects_BWP; - // we override _showClock and _showPrompt to patch in updates to blur effect before calling the GNOME functions - UnlockDialog.UnlockDialog.prototype._showClock = _showClock_BWP; - UnlockDialog.UnlockDialog.prototype._showPrompt = _showPrompt_BWP; - - // this are the original functions which we call into from our versions above - UnlockDialog.UnlockDialog.prototype._showClock_GNOME = _showClock; - UnlockDialog.UnlockDialog.prototype._showPrompt_GNOME = _showPrompt; - - } - this.enabled = true; - } - - _disable() { - if (!this.enabled) - return; - BingLog("_lockscreen_blur_disable() called"); - if (supportedVersion()) { - // restore default functions - UnlockDialog.UnlockDialog.prototype._updateBackgroundEffects = _updateBackgroundEffects; - UnlockDialog.UnlockDialog.prototype._showClock = _showClock; - UnlockDialog.UnlockDialog.prototype._showPrompt = _showPrompt; - // clean up unused functions we created - UnlockDialog.UnlockDialog.prototype._showClock_GNOME = null; - delete UnlockDialog.UnlockDialog.prototype._showClock_GNOME; - UnlockDialog.UnlockDialog.prototype._showPrompt_GNOME = null; - delete UnlockDialog.UnlockDialog.prototype._showPrompt_GNOME; - } - this.enabled = false; - } -}; - -function supportedVersion() { // when current lockscren blur implementation was first shipped (we ignore earlier weird version) - if (shellVersionMajor >= 40 || - (shellVersionMajor == 3 && shellVersionMinor == 36 && shellVersionPoint >= 4)) { - return true; - } - - return false; -} diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/carousel.js b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/carousel.js deleted file mode 100644 index 6b0c106..0000000 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/carousel.js +++ /dev/null @@ -1,203 +0,0 @@ -// Bing Wallpaper GNOME extension -// Copyright (C) 2017-2025 Michael Carroll -// This extension is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// See the GNU General Public License, version 3 or later for details. -// Based on GNOME shell extension NASA APOD by Elia Argentieri https://github.com/Elinvention/gnome-shell-extension-nasa-apod - -import Gtk from 'gi://Gtk'; -import GdkPixbuf from 'gi://GdkPixbuf'; -import Gio from 'gi://Gio'; -import * as Utils from './utils.js'; -import {gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; - -const default_dimensions = [30, 30, 1650, 800]; // TODO: pull from and save dimensions to settings, but perhaps verify that dimensions are ok - -const GALLERY_THUMB_WIDTH = 320; -const GALLERY_THUMB_HEIGHT = 180; - -export default class Carousel { - constructor(settings, button = null, callbackfunc = null, prefs_flowbox = null, extensionPath = null) { - //create_gallery(widget, settings); - this.settings = settings; - this.button = button; - this.callbackfunc = callbackfunc; - this.flowBox = null; - this.window = null; - this.imageList = Utils.imageListSortByDate(Utils.getImageList(this.settings)).reverse(); // get images and reverse order - this.searchEntry = null; - this.extensionPath = extensionPath - - this._log('create carousel...'); - - this.flowBox = prefs_flowbox; - this.flowBox.insert(this._create_placeholder_item(), -1); - } - - _enable_button() { - if (this.button) { - this.button.set_sensitive(state); - } - } - - _create_gallery() { - this.imageList.forEach((image) => { - let item = this._create_gallery_item(image); - this.flowBox.insert(item, -1); - }); - } - - _create_gallery_item(image) { - let buildable = new Gtk.Builder(); - - // grab appropriate object from UI file - buildable.add_objects_from_file(this.extensionPath + '/ui/carousel4.ui', ["flowBoxChild"]); - - // assign variables to the UI objects we've just loaded - let galleryImage = buildable.get_object('galleryImage'); - let filename = Utils.imageToFilename(this.settings, image); - let viewButton = buildable.get_object('viewButton'); - let applyButton = buildable.get_object('applyButton'); - let infoButton = buildable.get_object('infoButton'); - let deleteButton = buildable.get_object('deleteButton'); - let favButton = buildable.get_object('favButton'); - let unfavButton = buildable.get_object('unfavButton'); - - if (Utils.isFavourite(image)) { - favButton.set_visible(false); - this._log('image is favourited'); - } - else { - unfavButton.set_visible(false); - } - - try { - this._load_image(galleryImage, filename); - } - catch (e) { - galleryImage.set_from_icon_name('image-missing'); - galleryImage.set_icon_size = 2; // Gtk.GTK_ICON_SIZE_LARGE; - this._log('create_gallery_image: '+e); - } - - galleryImage.set_tooltip_text(image.copyright); - - // set up actions for when a image button is clicked - viewButton.connect('clicked', () => { - Utils.openInSystemViewer(filename); - }); - - applyButton.connect('clicked', () => { - this.settings.set_string('selected-image', Utils.getImageUrlBase(image)); - this._log('gallery selected '+Utils.getImageUrlBase(image)); - }); - - infoButton.connect('clicked', () => { - Utils.openInSystemViewer(image.copyrightlink, false); - this._log('info page link opened '+image.copyrightlink); - }); - - deleteButton.connect('clicked', (widget) => { - this._log('Delete requested for '+filename); - Utils.deleteImage(filename); - Utils.setImageHiddenStatus(this.settings, image.urlbase, true); - Utils.purgeImages(this.settings); // hide image instead - widget.get_parent().get_parent().set_visible(false); // bit of a hack - if (this.callbackfunc) - this.callbackfunc(); - }); - - // button is unchecked, so we want to make the checked one visible - favButton.connect('clicked', (widget) => { - this._log('favourited '+Utils.getImageUrlBase(image)); - widget.set_visible(false); - unfavButton.set_visible(true); - Utils.setImageFavouriteStatus(this.settings, image.urlbase, true); - }); - - // button is checked, so we want to make the unchecked one visible - unfavButton.connect('clicked', (widget) => { - this._log('unfavourited '+Utils.getImageUrlBase(image)); - widget.set_visible(false); - favButton.set_visible(true); - Utils.setImageFavouriteStatus(this.settings, image.urlbase, false); - }); - - let item = buildable.get_object('flowBoxChild'); - return item; - } - - _create_placeholder_item() { - let buildable = new Gtk.Builder(); - this.flowBox.set_max_children_per_line(1); - - // grab appropriate object from UI file - buildable.add_objects_from_file(this.extensionPath + '/ui/carousel4.ui', ["flowBoxPlaceholder"]); - - let loadButton = buildable.get_object('loadButton'); - - loadButton.connect('clicked', (widget) => { - widget.set_label(_("Loading...")); // does this work??? - this.flowBox.remove(widget.get_parent()); - this.flowBox.set_max_children_per_line(2); - this._create_gallery(); - - }); - - let item = buildable.get_object('flowBoxPlaceholder'); - return item; - } - - _load_image(galleryImage, filename) { - let thumb_path = Utils.getWallpaperDir(this.settings)+'.thumbs/'; - let thumb_dir = Gio.file_new_for_path(thumb_path); - let save_thumbs = !this.settings.get_boolean('delete-previous') && this.settings.get_boolean('create-thumbs'); // create thumbs only if not deleting previous and thumbs are enabled - - if (!thumb_dir.query_exists(null)) { - thumb_dir.make_directory_with_parents(null); - } - - let image_file = Gio.file_new_for_path(filename); - - // load gallery image or create new thumbnail if it doesn't - if (!image_file.query_exists(null)){ - this._set_blank_image(galleryImage); - } - else { - let image_thumb_path = thumb_path + image_file.get_basename(); - let image_thumb = Gio.file_new_for_path(image_thumb_path); - - try { - let pixbuf; - - // use thumbnail if available - if (image_thumb.query_exists(null)) { - pixbuf = GdkPixbuf.Pixbuf.new_from_file(image_thumb_path); - } - else { // save changed thumbnail significantly speeds up gallery loading, but costs some addtional disk space - pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, GALLERY_THUMB_WIDTH, GALLERY_THUMB_HEIGHT); - if (save_thumbs) - pixbuf.savev(image_thumb_path,'jpeg',['quality'], ['90']); - } - - galleryImage.set_pixbuf(pixbuf); - } - catch (e) { - this._set_blank_image(galleryImage); - this._log('create_gallery_image: '+e); - } - } - } - - _set_blank_image(galleryImage) { - //galleryImage.set_from_icon_name('image-missing'); - //galleryImage.set_icon_size = 2; // Gtk.GTK_ICON_SIZE_LARGE; - } - - _log(msg) { - if (this.settings.get_boolean('debug-logging')) - console.log("BingWallpaper extension: " + msg); // disable to keep the noise down in journal - } -}; diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/extension.js b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/extension.js index 1109e56..09ff599 100644 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/extension.js +++ b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/extension.js @@ -23,9 +23,7 @@ import * as Config from 'resource:///org/gnome/shell/misc/config.js'; import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import * as Utils from './utils.js'; -import Blur from './blur.js'; import Thumbnail from './thumbnail.js'; -import BWClipboard from './BWClipboard.js'; const BingImageURL = Utils.BingImageURL; const BingURL = 'https://www.bing.com'; @@ -38,7 +36,6 @@ const ICON_NEXT_BUTTON = 'media-seek-forward-symbolic'; const ICON_CURRENT_BUTTON = 'media-skip-forward-symbolic'; let bingWallpaperIndicator = null; -let blur = null; const newMenuItem = (label) => { return new PopupMenu.PopupMenuItem(label); @@ -107,7 +104,6 @@ class BingWallpaperIndicator extends Button { this.thumbnail = null; this.thumbnailItem = null; this.selected_image = "current"; - this.clipboard = new BWClipboard(); this.imageIndex = null; this.logger = null; this.favourite_status = false; @@ -121,9 +117,6 @@ class BingWallpaperIndicator extends Button { this.ICON_UNFAVE_BUTTON = extensionIconsPath + '/'+'unfav-symbolic.svg'; this.ICON_TRASH_BUTTON = extensionIconsPath + '/'+'trash-empty-symbolic.svg'; this.ICON_UNTRASH_BUTTON = extensionIconsPath + '/'+'trash-full-symbolic.svg'; - - if (!blur) // as Blur isn't disabled on screen lock (like the rest of the extension is) - blur = new Blur(); // take a variety of actions when the gsettings values are modified by prefs this._settings = this._extension.getSettings(); @@ -136,8 +129,6 @@ class BingWallpaperIndicator extends Button { this.refreshDueItem = newMenuItem(_("")); this.explainItem = newMenuItem(_("Awaiting refresh...")); this.copyrightItem = newMenuItem(_("Awaiting refresh...")); - this.clipboardImageItem = newMenuItem(_("Copy image to clipboard")); - this.clipboardURLItem = newMenuItem(_("Copy image URL to clipboard")); this.folderItem = newMenuItem(_("Open image folder")); this.dwallpaperItem = newMenuItem(_("Set background image")); this.swallpaperItem = newMenuItem(_("Set lock screen image")); @@ -149,7 +140,7 @@ class BingWallpaperIndicator extends Button { this.titleItem = new PopupMenu.PopupSubMenuMenuItem(_("Awaiting refresh..."), false); [this.imageResolutionItem, this.openImageInfoLinkItem, this.openImageItem, this.folderItem, - this.clipboardImageItem, this.clipboardURLItem, this.dwallpaperItem] + this.dwallpaperItem] .forEach(e => this.titleItem.menu.addMenuItem(e)); // quick settings submenu @@ -238,9 +229,6 @@ class BingWallpaperIndicator extends Button { {signal: 'changed::icon-name', call: this._setIcon}, {signal: 'changed::market', call: this._refresh}, {signal: 'changed::set-background', call: this._setBackground}, - {signal: 'changed::override-lockscreen-blur', call: this._setBlur}, - {signal: 'changed::lockscreen-blur-strength', call: this._setBlur}, - {signal: 'changed::lockscreen-blur-brightness', call: this._setBlur}, {signal: 'changed::selected-image', call: this._setImage}, {signal: 'changed::delete-previous', call: this._cleanUpImages}, {signal: 'changed::notify', call: this._notifyCurrentImage}, @@ -263,7 +251,6 @@ class BingWallpaperIndicator extends Button { // ensure we're in a sensible initial state this._setIcon(); - this._setBlur(); this._setImage(); this._cleanUpImages(); @@ -307,14 +294,6 @@ class BingWallpaperIndicator extends Button { }); this.folderItem.connect('activate', Utils.openImageFolder.bind(this, this._settings)); - if (this.clipboard.clipboard) { // only if we have a clipboard - this.clipboardImageItem.connect('activate', this._copyImageToClipboard.bind(this)); - this.clipboardURLItem.connect('activate', this._copyURLToClipboard.bind(this)); - } - else { - [this.clipboardImageItem, this.clipboardURLItem]. - forEach(e => e.setSensitive(false)); - } } _setBooleanSetting(key, state) { @@ -349,8 +328,6 @@ class BingWallpaperIndicator extends Button { _openMenu() { // Grey out menu items if an update is pending this.refreshItem.setSensitive(!this._updatePending); - this.clipboardImageItem.setSensitive(!this._updatePending && this.imageURL != ""); - this.clipboardURLItem.setSensitive(!this._updatePending && this.imageURL != ""); this.thumbnailItem.setSensitive(!this._updatePending && this.imageURL != ""); this.dwallpaperItem.setSensitive(!this._updatePending && this.filename != ""); this.swallpaperItem.setSensitive(!this._updatePending && this.filename != ""); @@ -370,12 +347,6 @@ class BingWallpaperIndicator extends Button { this.refreshDueItem.label.set_text(this.refreshduetext); } - _setBlur() { - blur._switch(this._settings.get_boolean('override-lockscreen-blur')); - blur.set_blur_strength(this._settings.get_int('lockscreen-blur-strength')); - blur.set_blur_brightness(this._settings.get_int('lockscreen-blur-brightness')); - } - _setImage() { Utils.validate_imagename(this._settings); this.selected_image = this._settings.get_string('selected-image'); @@ -421,14 +392,6 @@ class BingWallpaperIndicator extends Button { doSetBackground(this.filename, Utils.DESKTOP_SCHEMA); } - _copyURLToClipboard() { - this.clipboard.setText(this.imageURL); - } - - _copyImageToClipboard() { - this.clipboard.setImage(this.filename); - } - // set a timer on when the current image is going to expire _restartTimeoutFromLongDate(longdate) { // all Bing times are in UTC (+0) @@ -680,7 +643,7 @@ class BingWallpaperIndicator extends Button { } // download Bing metadata - _refresh() { + async _refresh() { if (this._updatePending) return; this._updatePending = true; @@ -703,7 +666,7 @@ class BingWallpaperIndicator extends Button { request.request_headers.append('Accept', 'application/json'); try { - this.httpSession.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (httpSession, message) => { + await this.httpSession.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (httpSession, message) => { this._processMessageRefresh(message); }); } @@ -1074,7 +1037,7 @@ class BingWallpaperIndicator extends Button { // download and process new image // FIXME: improve error handling - _downloadImage(url, file, set_background) { + async _downloadImage(url, file, set_background) { let BingWallpaperDir = Utils.getWallpaperDir(this._settings); let dir = Gio.file_new_for_path(BingWallpaperDir); if (!dir.query_exists(null)) { @@ -1088,7 +1051,7 @@ class BingWallpaperIndicator extends Button { // queue the http request try { if (Soup.MAJOR_VERSION >= 3) { - this.httpSession.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (httpSession, message) => { + await this.httpSession.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (httpSession, message) => { this._processFileDownload(message, file, set_background); }); } @@ -1104,13 +1067,13 @@ class BingWallpaperIndicator extends Button { } } - _processFileDownload(message, file, set_background) { + async _processFileDownload(message, file, set_background) { try { let data = (Soup.MAJOR_VERSION >= 3) ? this.httpSession.send_and_read_finish(message).get_data(): message.response_body.flatten().get_as_bytes(); - file.replace_contents_bytes_async( + const [etag] = await file.replace_contents_bytes_async( data, null, false, @@ -1157,8 +1120,6 @@ class BingWallpaperIndicator extends Button { this._timeout = undefined; this._shuffleTimeout = undefined; this.menu.removeAll(); - blur._disable(); // disable blur (blur.js) override and cleanup - blur = null; } }); diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr/LC_MESSAGES/BingWallpaper.mo b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr/LC_MESSAGES/BingWallpaper.mo index 23f8821..e885729 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr/LC_MESSAGES/BingWallpaper.mo and b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr/LC_MESSAGES/BingWallpaper.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr_FR/LC_MESSAGES/BingWallpaper.mo b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr_FR/LC_MESSAGES/BingWallpaper.mo index f504313..e885729 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr_FR/LC_MESSAGES/BingWallpaper.mo and b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/locale/fr_FR/LC_MESSAGES/BingWallpaper.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/metadata.json b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/metadata.json index 959dcb7..17834eb 100644 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/metadata.json +++ b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/metadata.json @@ -1,6 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", - "description": "Sync your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nFeatures:\n* UHD resolution wallpapers\n* Automatically fetches current Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n * random mode (from previously downloaded wallpapers)\n *NEW: select/cycle wallpaper through previously downloaded images\n* Language support: English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN, zh_TW), French (fr), Portuguese (pt), Ukrainian (uk), Russian (ru_RU), Spanish (es), Korean (ko), Indonesian (id), Catalan (ca), Norwegian Bokm\u00e5l (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Japanese (ja) - a HUGE thanks to the translators\n\nThis extension was forked from the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", + "description": "Sync your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nFeatures:\n* UHD resolution wallpapers\n* Automatically fetches current Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n * random mode (from previously downloaded wallpapers)\n * select/cycle wallpaper through previously downloaded images\n* Language support: English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN, zh_TW), French (fr), Portuguese (pt), Ukrainian (uk), Russian (ru_RU), Spanish (es), Korean (ko), Indonesian (id), Catalan (ca), Norwegian Bokm\u00e5l (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Japanese (ja) - a HUGE thanks to the translators\n\nThis extension was forked from the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", "gettext-domain": "BingWallpaper", "name": "Bing Wallpaper", "settings-schema": "org.gnome.shell.extensions.bingwallpaper", @@ -14,5 +14,5 @@ ], "url": "https://github.com/neffo/bing-wallpaper-gnome-extension", "uuid": "BingWallpaper@ineffable-gmail.com", - "version": 52 -} + "version": 53 +} \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/prefs.js b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/prefs.js index 3b81047..2ab1f64 100644 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/prefs.js +++ b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/prefs.js @@ -15,7 +15,7 @@ import Adw from 'gi://Adw'; import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; import * as Config from 'resource:///org/gnome/Shell/Extensions/js/misc/config.js'; import * as Utils from './utils.js'; -import Carousel from './carousel.js'; +/*import Carousel from './carousel.js';*/ const BingImageURL = Utils.BingImageURL; @@ -41,7 +41,7 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - let carousel = null; + /*let carousel = null;*/ let httpSession = null; let BingLog = (msg) => { // avoids need for globals @@ -62,13 +62,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen const shuffleSwitch = buildable.get_object('shuffleSwitch'); const shuffleInterval = buildable.get_object('shuffleInterval'); const folderRow = buildable.get_object('folderRow'); - const lockscreen_page = buildable.get_object('lockscreen_page'); - const overrideSwitch = buildable.get_object('overrideSwitch'); - const blurPresets = buildable.get_object('blurPresets'); - const strengthEntry = buildable.get_object('strengthEntry'); - const brightnessEntry = buildable.get_object('brightnessEntry'); - const blurAdjustment = buildable.get_object('blurAdjustment'); - const brightnessAdjustment = buildable.get_object('brightnessAdjustment'); const resolutionEntry = buildable.get_object('resolutionEntry'); const debugSwitch = buildable.get_object('debug_switch'); const revertSwitch = buildable.get_object('revert_switch'); @@ -76,8 +69,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen const delete_previous_switch = buildable.get_object('delete_previous_switch'); const delete_previous_adjustment = buildable.get_object('delete_previous_adjustment'); const always_export_switch = buildable.get_object('always_export_switch'); - const gallery_page = buildable.get_object('gallery_page'); - const carouselFlowBox = buildable.get_object('carouselFlowBox'); const randomIntervalEntry = buildable.get_object('entry_random_interval'); const debug_page = buildable.get_object('debug_page'); const json_actionrow = buildable.get_object('json_actionrow'); @@ -86,8 +77,8 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen const change_log = buildable.get_object('change_log'); window.add(settings_page); - window.add(lockscreen_page); - window.add(gallery_page); + /*window.add(lockscreen_page); + window.add(gallery_page);*/ window.add(debug_page); window.add(about_page); @@ -116,30 +107,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen folderRow.add_suffix(openBtn); folderRow.add_suffix(changeBtn); - - blurAdjustment.set_value(settings.get_int('lockscreen-blur-strength')); - brightnessAdjustment.set_value(settings.get_int('lockscreen-blur-brightness')); - - const defaultBtn = new Gtk.Button( { - label: _('Default'), - valign: Gtk.Align.CENTER, - halign: Gtk.Align.CENTER, - }); - const noBlurBtn = new Gtk.Button( { - label: _('No blur, slight dim'), - valign: Gtk.Align.CENTER, - halign: Gtk.Align.CENTER, - }); - const slightBlurBtn = new Gtk.Button( { - label: _('Slight blur & dim'), - valign: Gtk.Align.CENTER, - halign: Gtk.Align.CENTER, - }); - - // add to presets row - blurPresets.add_suffix(defaultBtn); - blurPresets.add_suffix(noBlurBtn); - blurPresets.add_suffix(slightBlurBtn); randomIntervalEntry.set_value(settings.get_int('random-interval')); @@ -201,10 +168,7 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen openBtn.connect('clicked', (widget) => { Utils.openImageFolder(settings); }); - - // we populate the tab (gtk4+, gnome 40+), this was previously a button to open a new window in gtk3 - carousel = new Carousel(settings, null, null, carouselFlowBox, this.dir.get_path()); // auto load carousel - + // this is intended for migrating image folders between computers (or even sharing) or backups // we export the Bing JSON data to the image directory, so this folder becomes portable buttonImportData.connect('clicked', () => { @@ -254,24 +218,7 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen settings.connect('changed::random-interval-mode', () => { shuffleInterval.set_selected(Utils.randomIntervals.map( e => e.value).indexOf(settings.get_string('random-interval-mode'))); }); - - // GDM3 lockscreen blur override - settings.bind('override-lockscreen-blur', overrideSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - settings.bind('lockscreen-blur-strength', strengthEntry, 'value', Gio.SettingsBindFlags.DEFAULT); - settings.bind('lockscreen-blur-brightness', brightnessEntry, 'value', Gio.SettingsBindFlags.DEFAULT); - settings.bind('previous-days', delete_previous_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT); - - // add a couple of preset buttons - defaultBtn.connect('clicked', (widget) => { - Utils.set_blur_preset(settings, Utils.PRESET_GNOME_DEFAULT); - }); - noBlurBtn.connect('clicked', (widget) => { - Utils.set_blur_preset(settings, Utils.PRESET_NO_BLUR); - }); - slightBlurBtn.connect('clicked', (widget) => { - Utils.set_blur_preset(settings, Utils.PRESET_SLIGHT_BLUR); - }); - + // fetch change log (on about page) if (httpSession) diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/ui/carousel4.ui b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/ui/carousel4.ui deleted file mode 100644 index 3df7cb6..0000000 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/ui/carousel4.ui +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - never - - - 0 - 0 - 500 - - - 0 - center - 1 - - 2 - 10 - 4 - - - - - - - 0 - - - 0 - 0 - 5 - - - - 320 - 120 - 0 - 1 - 1 - - - - - 0 - vertical - 1 - center - - - - Favorite - checkbox - - 1 - 0 - center - - - - - Favorite - checkbox-checked - - 1 - 0 - center - - - - - Apply - preferences-desktop-wallpaper - 1 - 0 - center - - - - - View - view-reveal - 1 - 0 - center - - - - - Info - preferences-system-details - 1 - 0 - center - - - - - Delete - edit-delete - 1 - 0 - center - - - - - - - - - 0 - - - 0 - center - - - 320 - 120 - 0 - media-playlist-shuffle - 2 - - 0 - 0 - 2 - - - - - - 0 - <image name here> - - 0 - 1 - 2 - - - - - - Image shuffle mode - 1 - - 0 - 2 - 2 - - - - - - - - 0 - - - 0 - center - - - 320 - 120 - 0 - preferences-desktop-wallpaper-symbolic - 2 - - 0 - 0 - - - - - - Load image gallery - 1 - - 0 - 1 - - - - - - - \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/ui/prefsadw.ui b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/ui/prefsadw.ui index 3efdf8d..f34351e 100644 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/ui/prefsadw.ui +++ b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/ui/prefsadw.ui @@ -109,86 +109,6 @@ Bing Wallpaper GNOME extension by: Michael Carroll - - system-lock-screen-symbolic - Lock screen - - - Lockscreen blur - - - Dynamic lockscreen blur - Whether to enable dynamic blur mode on lock screen - - - - - Blur strength - Blur strength when login prompt is not visible - - - 0 - 50 - 10 - 1 - - - - - - - Wallpaper brightness - Dim wallpaper when login prompt is not visible - - - 0 - 100 - 10 - 1 - - - - - - - - - - - - Presets - - - - - - - emblem-photos-symbolic - Gallery - - - 0 - 500 - 0 - 0 - - - - - 0 - center - 1 - 2 - 2 - 2 - 2 - - - - - - - preferences-other-symbolic Debug diff --git a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/utils.js b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/utils.js index 98e289f..134593d 100644 --- a/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/utils.js +++ b/gnome/.local/share/gnome-shell/extensions/BingWallpaper@ineffable-gmail.com/utils.js @@ -12,16 +12,9 @@ import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import GdkPixbuf from 'gi://GdkPixbuf'; -export var PRESET_GNOME_DEFAULT = { blur: 45, dim: 65 }; // as at GNOME 40 -export var PRESET_NO_BLUR = { blur: 0, dim: 65 }; -export var PRESET_SLIGHT_BLUR = { blur: 2, dim: 30 }; - export var BING_SCHEMA = 'org.gnome.shell.extensions.bingwallpaper'; export var DESKTOP_SCHEMA = 'org.gnome.desktop.background'; -var vertical_blur = null; -var horizontal_blur = null; - let gitreleaseurl = 'https://api.github.com/repos/neffo/bing-wallpaper-gnome-extension/releases/tags/'; let debug = false; @@ -111,7 +104,7 @@ export function get_current_bg(schema) { return (cur); } -export function fetch_change_log(version, label, httpSession) { +export async function fetch_change_log(version, label, httpSession) { const decoder = new TextDecoder(); // create an http message let url = gitreleaseurl + "v" + version; @@ -121,7 +114,7 @@ export function fetch_change_log(version, label, httpSession) { // queue the http request try { if (Soup.MAJOR_VERSION >= 3) { - httpSession.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (httpSession, message) => { + await httpSession.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (httpSession, message) => { let data = decoder.decode(httpSession.send_and_read_finish(message).get_data()); let text = JSON.parse(data).body; if (text) @@ -143,12 +136,6 @@ export function fetch_change_log(version, label, httpSession) { } } -export function set_blur_preset(settings, preset) { - settings.set_int('lockscreen-blur-strength', preset.blur); - settings.set_int('lockscreen-blur-brightness', preset.dim); - BingLog("Set blur preset to " + preset.blur + " brightness to " + preset.dim); -} - export function imageHasBasename(image_item, i, b) { //log("imageHasBasename : " + image_item.urlbase + " =? " + this); if (this && this.search(image_item.urlbase.replace('th?id=OHR.', ''))) @@ -595,33 +582,48 @@ export function openInSystemViewer(filename, is_file = true) { Gio.AppInfo.launch_default_for_uri(filename, context); } -export function exportBingJSON(settings) { +export async function exportBingJSON(settings) { let json = settings.get_string('bing-json'); let filepath = getWallpaperDir(settings) + 'bing.json'; let file = Gio.file_new_for_path(filepath); - let [success, error] = file.replace_contents(json, null, false, Gio.FileCreateFlags.REPLACE_DESTINATION, null); - if (!success) { - BingLog('error saving bing-json from '+filepath+': '+error); - } + + const [etag] = await file.replace_contents_async( + json, + null, + false, + Gio.FileCreateFlags.REPLACE_DESTINATION, + null, + (file, res) => { + try { + file.replace_contents_finish(res); + } + catch(e) { + BingLog('error saving bing-json from '+filepath+': '+e); + } + } + ); } -export function importBingJSON(settings) { +export async function importBingJSON(settings) { const decoder = new TextDecoder(); let filepath = getWallpaperDir(settings) + 'bing.json'; let file = Gio.file_new_for_path(filepath); if (file.query_exists(null)) { - let [success, contents, etag_out] = file.load_contents(null); - if (!success) { - BingLog('error loading bing-json '+filepath+' - '+etag_out); - } - else { - BingLog('JSON import success'); - let parsed = JSON.parse(decoder.decode(contents)); // FIXME: triggers GJS warning without the conversion, need to investigate - // need to implement some checks for validity here - mergeImageLists(settings, parsed); - purgeImages(settings); // remove the older missing images - //cleanupImageList(settings); - } + const [contents, etag] = await file.load_contents_async(null, + (file, res) => { + try { + BingLog('JSON import success'); + let parsed = JSON.parse(decoder.decode(contents)); // FIXME: triggers GJS warning without the conversion, need to investigate + // need to implement some checks for validity here + mergeImageLists(settings, parsed); + purgeImages(settings); // remove the older missing images + file.load_contents_finish(res); + } + catch (e) { + BingLog('error loading bing-json '+filepath+' - '+e); + } + } + ); } else { BingLog('JSON import file not found'); diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/extension.js b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/extension.js index 642c4d7..0306a11 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/extension.js +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/extension.js @@ -38,13 +38,263 @@ var VitalsMenuButton = GObject.registerClass({ 'system' : { 'icon': 'system-symbolic.svg' }, 'network' : { 'icon': 'network-symbolic.svg', 'icon-rx': 'network-download-symbolic.svg', - 'icon-tx': 'network-upload-symbolic.svg' }, + 'icon-tx': 'network-upload-symbolic.svg', + 'icon-ad': '../flags/1x1/ad.svg', + 'icon-ae': '../flags/1x1/ae.svg', + 'icon-af': '../flags/1x1/af.svg', + 'icon-ag': '../flags/1x1/ag.svg', + 'icon-ai': '../flags/1x1/ai.svg', + 'icon-al': '../flags/1x1/al.svg', + 'icon-am': '../flags/1x1/am.svg', + 'icon-ao': '../flags/1x1/ao.svg', + 'icon-ar': '../flags/1x1/ar.svg', + 'icon-at': '../flags/1x1/at.svg', + 'icon-au': '../flags/1x1/au.svg', + 'icon-aw': '../flags/1x1/aw.svg', + 'icon-ax': '../flags/1x1/ax.svg', + 'icon-az': '../flags/1x1/az.svg', + 'icon-ba': '../flags/1x1/ba.svg', + 'icon-bb': '../flags/1x1/bb.svg', + 'icon-bd': '../flags/1x1/bd.svg', + 'icon-be': '../flags/1x1/be.svg', + 'icon-bf': '../flags/1x1/bf.svg', + 'icon-bg': '../flags/1x1/bg.svg', + 'icon-bh': '../flags/1x1/bh.svg', + 'icon-bi': '../flags/1x1/bi.svg', + 'icon-bj': '../flags/1x1/bj.svg', + 'icon-bl': '../flags/1x1/bl.svg', + 'icon-bm': '../flags/1x1/bm.svg', + 'icon-bn': '../flags/1x1/bn.svg', + 'icon-bo': '../flags/1x1/bo.svg', + 'icon-bq': '../flags/1x1/bq.svg', + 'icon-br': '../flags/1x1/br.svg', + 'icon-bs': '../flags/1x1/bs.svg', + 'icon-bt': '../flags/1x1/bt.svg', + 'icon-bv': '../flags/1x1/bv.svg', + 'icon-bw': '../flags/1x1/bw.svg', + 'icon-by': '../flags/1x1/by.svg', + 'icon-bz': '../flags/1x1/bz.svg', + 'icon-ca': '../flags/1x1/ca.svg', + 'icon-cc': '../flags/1x1/cc.svg', + 'icon-cd': '../flags/1x1/cd.svg', + 'icon-cf': '../flags/1x1/cf.svg', + 'icon-cg': '../flags/1x1/cg.svg', + 'icon-ch': '../flags/1x1/ch.svg', + 'icon-ci': '../flags/1x1/ci.svg', + 'icon-ck': '../flags/1x1/ck.svg', + 'icon-cl': '../flags/1x1/cl.svg', + 'icon-cm': '../flags/1x1/cm.svg', + 'icon-cn': '../flags/1x1/cn.svg', + 'icon-co': '../flags/1x1/co.svg', + 'icon-cr': '../flags/1x1/cr.svg', + 'icon-cu': '../flags/1x1/cu.svg', + 'icon-cv': '../flags/1x1/cv.svg', + 'icon-cw': '../flags/1x1/cw.svg', + 'icon-cx': '../flags/1x1/cx.svg', + 'icon-cy': '../flags/1x1/cy.svg', + 'icon-cz': '../flags/1x1/cz.svg', + 'icon-de': '../flags/1x1/de.svg', + 'icon-dj': '../flags/1x1/dj.svg', + 'icon-dk': '../flags/1x1/dk.svg', + 'icon-dm': '../flags/1x1/dm.svg', + 'icon-do': '../flags/1x1/do.svg', + 'icon-dz': '../flags/1x1/dz.svg', + 'icon-ec': '../flags/1x1/ec.svg', + 'icon-ee': '../flags/1x1/ee.svg', + 'icon-eg': '../flags/1x1/eg.svg', + 'icon-eh': '../flags/1x1/eh.svg', + 'icon-er': '../flags/1x1/er.svg', + 'icon-es': '../flags/1x1/es.svg', + 'icon-et': '../flags/1x1/et.svg', + 'icon-eu': '../flags/1x1/eu.svg', + 'icon-fi': '../flags/1x1/fi.svg', + 'icon-fj': '../flags/1x1/fj.svg', + 'icon-fk': '../flags/1x1/fk.svg', + 'icon-fm': '../flags/1x1/fm.svg', + 'icon-fo': '../flags/1x1/fo.svg', + 'icon-fr': '../flags/1x1/fr.svg', + 'icon-ga': '../flags/1x1/ga.svg', + 'icon-gb': '../flags/1x1/gb.svg', + 'icon-gd': '../flags/1x1/gd.svg', + 'icon-ge': '../flags/1x1/ge.svg', + 'icon-gf': '../flags/1x1/gf.svg', + 'icon-gg': '../flags/1x1/gg.svg', + 'icon-gh': '../flags/1x1/gh.svg', + 'icon-gi': '../flags/1x1/gi.svg', + 'icon-gl': '../flags/1x1/gl.svg', + 'icon-gm': '../flags/1x1/gm.svg', + 'icon-gn': '../flags/1x1/gn.svg', + 'icon-gp': '../flags/1x1/gp.svg', + 'icon-gq': '../flags/1x1/gq.svg', + 'icon-gr': '../flags/1x1/gr.svg', + 'icon-gs': '../flags/1x1/gs.svg', + 'icon-gt': '../flags/1x1/gt.svg', + 'icon-gu': '../flags/1x1/gu.svg', + 'icon-gw': '../flags/1x1/gw.svg', + 'icon-gy': '../flags/1x1/gy.svg', + 'icon-hk': '../flags/1x1/hk.svg', + 'icon-hm': '../flags/1x1/hm.svg', + 'icon-hn': '../flags/1x1/hn.svg', + 'icon-hr': '../flags/1x1/hr.svg', + 'icon-ht': '../flags/1x1/ht.svg', + 'icon-hu': '../flags/1x1/hu.svg', + 'icon-id': '../flags/1x1/id.svg', + 'icon-ie': '../flags/1x1/ie.svg', + 'icon-il': '../flags/1x1/il.svg', + 'icon-im': '../flags/1x1/im.svg', + 'icon-in': '../flags/1x1/in.svg', + 'icon-io': '../flags/1x1/io.svg', + 'icon-iq': '../flags/1x1/iq.svg', + 'icon-ir': '../flags/1x1/ir.svg', + 'icon-is': '../flags/1x1/is.svg', + 'icon-it': '../flags/1x1/it.svg', + 'icon-je': '../flags/1x1/je.svg', + 'icon-jm': '../flags/1x1/jm.svg', + 'icon-jo': '../flags/1x1/jo.svg', + 'icon-jp': '../flags/1x1/jp.svg', + 'icon-ke': '../flags/1x1/ke.svg', + 'icon-kg': '../flags/1x1/kg.svg', + 'icon-kh': '../flags/1x1/kh.svg', + 'icon-ki': '../flags/1x1/ki.svg', + 'icon-km': '../flags/1x1/km.svg', + 'icon-kn': '../flags/1x1/kn.svg', + 'icon-kp': '../flags/1x1/kp.svg', + 'icon-kr': '../flags/1x1/kr.svg', + 'icon-kw': '../flags/1x1/kw.svg', + 'icon-ky': '../flags/1x1/ky.svg', + 'icon-kz': '../flags/1x1/kz.svg', + 'icon-la': '../flags/1x1/la.svg', + 'icon-lb': '../flags/1x1/lb.svg', + 'icon-lc': '../flags/1x1/lc.svg', + 'icon-li': '../flags/1x1/li.svg', + 'icon-lk': '../flags/1x1/lk.svg', + 'icon-lr': '../flags/1x1/lr.svg', + 'icon-ls': '../flags/1x1/ls.svg', + 'icon-lt': '../flags/1x1/lt.svg', + 'icon-lu': '../flags/1x1/lu.svg', + 'icon-lv': '../flags/1x1/lv.svg', + 'icon-ly': '../flags/1x1/ly.svg', + 'icon-ma': '../flags/1x1/ma.svg', + 'icon-mc': '../flags/1x1/mc.svg', + 'icon-md': '../flags/1x1/md.svg', + 'icon-me': '../flags/1x1/me.svg', + 'icon-mf': '../flags/1x1/mf.svg', + 'icon-mg': '../flags/1x1/mg.svg', + 'icon-mh': '../flags/1x1/mh.svg', + 'icon-mk': '../flags/1x1/mk.svg', + 'icon-ml': '../flags/1x1/ml.svg', + 'icon-mm': '../flags/1x1/mm.svg', + 'icon-mn': '../flags/1x1/mn.svg', + 'icon-mo': '../flags/1x1/mo.svg', + 'icon-mp': '../flags/1x1/mp.svg', + 'icon-mq': '../flags/1x1/mq.svg', + 'icon-mr': '../flags/1x1/mr.svg', + 'icon-ms': '../flags/1x1/ms.svg', + 'icon-mt': '../flags/1x1/mt.svg', + 'icon-mu': '../flags/1x1/mu.svg', + 'icon-mv': '../flags/1x1/mv.svg', + 'icon-mw': '../flags/1x1/mw.svg', + 'icon-mx': '../flags/1x1/mx.svg', + 'icon-my': '../flags/1x1/my.svg', + 'icon-mz': '../flags/1x1/mz.svg', + 'icon-na': '../flags/1x1/na.svg', + 'icon-nc': '../flags/1x1/nc.svg', + 'icon-ne': '../flags/1x1/ne.svg', + 'icon-nf': '../flags/1x1/nf.svg', + 'icon-ng': '../flags/1x1/ng.svg', + 'icon-ni': '../flags/1x1/ni.svg', + 'icon-nl': '../flags/1x1/nl.svg', + 'icon-no': '../flags/1x1/no.svg', + 'icon-np': '../flags/1x1/np.svg', + 'icon-nr': '../flags/1x1/nr.svg', + 'icon-nu': '../flags/1x1/nu.svg', + 'icon-nz': '../flags/1x1/nz.svg', + 'icon-om': '../flags/1x1/om.svg', + 'icon-pa': '../flags/1x1/pa.svg', + 'icon-pe': '../flags/1x1/pe.svg', + 'icon-pf': '../flags/1x1/pf.svg', + 'icon-pg': '../flags/1x1/pg.svg', + 'icon-ph': '../flags/1x1/ph.svg', + 'icon-pk': '../flags/1x1/pk.svg', + 'icon-pl': '../flags/1x1/pl.svg', + 'icon-pm': '../flags/1x1/pm.svg', + 'icon-pn': '../flags/1x1/pn.svg', + 'icon-pr': '../flags/1x1/pr.svg', + 'icon-ps': '../flags/1x1/ps.svg', + 'icon-pt': '../flags/1x1/pt.svg', + 'icon-pw': '../flags/1x1/pw.svg', + 'icon-py': '../flags/1x1/py.svg', + 'icon-qa': '../flags/1x1/qa.svg', + 'icon-re': '../flags/1x1/re.svg', + 'icon-ro': '../flags/1x1/ro.svg', + 'icon-rs': '../flags/1x1/rs.svg', + 'icon-ru': '../flags/1x1/ru.svg', + 'icon-rw': '../flags/1x1/rw.svg', + 'icon-sa': '../flags/1x1/sa.svg', + 'icon-sb': '../flags/1x1/sb.svg', + 'icon-sc': '../flags/1x1/sc.svg', + 'icon-sd': '../flags/1x1/sd.svg', + 'icon-se': '../flags/1x1/se.svg', + 'icon-sg': '../flags/1x1/sg.svg', + 'icon-sh': '../flags/1x1/sh.svg', + 'icon-si': '../flags/1x1/si.svg', + 'icon-sj': '../flags/1x1/sj.svg', + 'icon-sk': '../flags/1x1/sk.svg', + 'icon-sl': '../flags/1x1/sl.svg', + 'icon-sm': '../flags/1x1/sm.svg', + 'icon-sn': '../flags/1x1/sn.svg', + 'icon-so': '../flags/1x1/so.svg', + 'icon-sr': '../flags/1x1/sr.svg', + 'icon-ss': '../flags/1x1/ss.svg', + 'icon-st': '../flags/1x1/st.svg', + 'icon-sv': '../flags/1x1/sv.svg', + 'icon-sx': '../flags/1x1/sx.svg', + 'icon-sy': '../flags/1x1/sy.svg', + 'icon-sz': '../flags/1x1/sz.svg', + 'icon-tc': '../flags/1x1/tc.svg', + 'icon-td': '../flags/1x1/td.svg', + 'icon-tf': '../flags/1x1/tf.svg', + 'icon-tg': '../flags/1x1/tg.svg', + 'icon-th': '../flags/1x1/th.svg', + 'icon-tj': '../flags/1x1/tj.svg', + 'icon-tk': '../flags/1x1/tk.svg', + 'icon-tl': '../flags/1x1/tl.svg', + 'icon-tm': '../flags/1x1/tm.svg', + 'icon-tn': '../flags/1x1/tn.svg', + 'icon-to': '../flags/1x1/to.svg', + 'icon-tr': '../flags/1x1/tr.svg', + 'icon-tt': '../flags/1x1/tt.svg', + 'icon-tv': '../flags/1x1/tv.svg', + 'icon-tw': '../flags/1x1/tw.svg', + 'icon-tz': '../flags/1x1/tz.svg', + 'icon-ua': '../flags/1x1/ua.svg', + 'icon-ug': '../flags/1x1/ug.svg', + 'icon-um': '../flags/1x1/um.svg', + 'icon-us': '../flags/1x1/us.svg', + 'icon-uy': '../flags/1x1/uy.svg', + 'icon-uz': '../flags/1x1/uz.svg', + 'icon-va': '../flags/1x1/va.svg', + 'icon-vc': '../flags/1x1/vc.svg', + 'icon-ve': '../flags/1x1/ve.svg', + 'icon-vg': '../flags/1x1/vg.svg', + 'icon-vi': '../flags/1x1/vi.svg', + 'icon-vn': '../flags/1x1/vn.svg', + 'icon-vu': '../flags/1x1/vu.svg', + 'icon-wf': '../flags/1x1/wf.svg', + 'icon-ws': '../flags/1x1/ws.svg', + 'icon-xk': '../flags/1x1/xk.svg', + 'icon-ye': '../flags/1x1/ye.svg', + 'icon-yt': '../flags/1x1/yt.svg', + 'icon-za': '../flags/1x1/za.svg', + 'icon-zm': '../flags/1x1/zm.svg', + 'icon-zw': '../flags/1x1/zw.svg' + }, 'storage' : { 'icon': 'storage-symbolic.svg' }, 'battery' : { 'icon': 'battery-symbolic.svg' }, 'gpu' : { 'icon': 'gpu-symbolic.svg' } } - // list with the prefixes for the according themes, the index of each + // list with the prefixes for the according themes, the index of each // item must match the index on the combo box this._sensorsIconPathPrefix = ['/icons/original/', '/icons/gnome/']; @@ -81,7 +331,12 @@ var VitalsMenuButton = GObject.registerClass({ this._addSettingChangedSignal('menu-centered', this._positionInPanelChanged.bind(this)); this._addSettingChangedSignal('icon-style', this._iconStyleChanged.bind(this)); - let settings = [ 'use-higher-precision', 'alphabetize', 'hide-zeros', 'fixed-widths', 'hide-icons', 'unit', 'memory-measurement', 'include-public-ip', 'network-speed-format', 'storage-measurement', 'include-static-info', 'include-static-gpu-info' ]; + let settings = [ 'use-higher-precision', 'alphabetize', 'hide-zeros', + 'fixed-widths', 'hide-icons', 'unit', + 'memory-measurement', 'include-public-ip', 'network-public-ip-interval', + 'network-public-ip-show-flag', 'network-speed-format', 'storage-measurement', + 'include-static-info', 'include-static-gpu-info' ]; + for (let setting of Object.values(settings)) this._addSettingChangedSignal(setting, this._redrawMenu.bind(this)); @@ -252,7 +507,7 @@ var VitalsMenuButton = GObject.registerClass({ ); } - _createHotItem(key, value) { + _createHotItem(key, value, gicon) { let item = new St.BoxLayout({ style_class: 'vitals-panel-item', }); @@ -261,6 +516,7 @@ var VitalsMenuButton = GObject.registerClass({ if (!this._settings.get_boolean('hide-icons') || key == '_default_icon_') { let icon = this._defaultIcon(key); + if (gicon) icon.gicon = gicon; item.add_child(icon); } @@ -311,7 +567,7 @@ var VitalsMenuButton = GObject.registerClass({ } _redrawDetailsMenuIcons() { - // updates the icons on the 'details' menu, the one + // updates the icons on the 'details' menu, the one // you have to click to appear this._sensors.resetHistory(); for (const sensor in this._sensorIcons) { @@ -323,7 +579,7 @@ var VitalsMenuButton = GObject.registerClass({ const gpuKeys = Object.keys(this._groups).filter(key => key.startsWith("gpu#")); gpuKeys.forEach((gpuKey) => { this._groups[gpuKey].icon.gicon = Gio.icon_new_for_string(this._sensorIconPath("gpu")); - }); + }); } _iconStyleChanged() { @@ -443,7 +699,7 @@ var VitalsMenuButton = GObject.registerClass({ if (self.checked) { // add selected sensor to panel hotSensors.push(self.key); - this._createHotItem(self.key, self.value); + this._createHotItem(self.key, self.value, self.gicon); } else { // remove selected sensor from panel hotSensors.splice(hotSensors.indexOf(self.key), 1); @@ -573,7 +829,8 @@ var VitalsMenuButton = GObject.registerClass({ this._last_query = now; this._sensors.query((label, value, type, format) => { - const typeKey = type.replace('-group', ''); + let typeKey = type.replace('-group', ''); + if (/^network-(?!rx$|tx$)/.test(typeKey)) typeKey = 'network'; let key = '_' + typeKey + '_' + label.replace(' ', '_').toLowerCase() + '_'; // if a sensor is disabled, gray it out @@ -585,7 +842,7 @@ var VitalsMenuButton = GObject.registerClass({ } // add/initialize any gpu groups that we haven't added yet - if(typeKey.startsWith('gpu') && typeKey !== 'gpu#1') { + if (typeKey.startsWith('gpu') && typeKey !== 'gpu#1') { const split = typeKey.split('#'); if(split.length == 2 && this._numGpus < parseInt(split[1])) { // occasionally two lines from nvidia-smi will be read at once @@ -608,8 +865,24 @@ var VitalsMenuButton = GObject.registerClass({ } let items = this._values.returnIfDifferent(dwell, label, value, type, format, key); - for (let item of Object.values(items)) - this._updateDisplay(_(item[0]), item[1], item[2], item[3]); + for (let item of items) { + if (item.type.startsWith('network-') && item.type.length == 10 && item.type != 'network-rx' && item.type != 'network-tx') { + // Geo / flags: stable key (no country in key); type stays network- for icon-us etc. + const stem = item.type.slice('network-'.length); + let flagGIcon = Gio.icon_new_for_string(this._sensorIconPath('network', 'icon-' + stem)); + if (this._hotItems[item.key] && !this._settings.get_boolean('hide-icons')) { + // change icon in menu bar + let icon = this._hotItems[item.key].get_first_child(); + if (icon instanceof St.Icon) + icon.gicon = flagGIcon; + } + // change icon in dropdown + let menuRow = this._sensorMenuItems[item.key]; + if (menuRow) menuRow.gicon = flagGIcon; + } + + this._updateDisplay(_(item.label), item.value, item.type, item.key); + } }, dwell); //if a new gpu has been detected during the last query, then increment the amount of times we've detected a new gpu diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ad.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ad.svg new file mode 100644 index 0000000..f10067e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ad.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ae.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ae.svg new file mode 100644 index 0000000..b59e113 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ae.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/af.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/af.svg new file mode 100644 index 0000000..9f382e0 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/af.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ag.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ag.svg new file mode 100644 index 0000000..9b951b6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ag.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ai.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ai.svg new file mode 100644 index 0000000..dfde89a --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ai.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/al.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/al.svg new file mode 100644 index 0000000..1056793 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/al.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/am.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/am.svg new file mode 100644 index 0000000..a188adf --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/am.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ao.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ao.svg new file mode 100644 index 0000000..067ffc4 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ao.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/aq.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/aq.svg new file mode 100644 index 0000000..28acee5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/aq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ar.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ar.svg new file mode 100644 index 0000000..1cfbbd9 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ar.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/arab.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/arab.svg new file mode 100644 index 0000000..aa7c958 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/arab.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/as.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/as.svg new file mode 100644 index 0000000..4c7a9bc --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/as.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/asean.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/asean.svg new file mode 100644 index 0000000..8536142 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/asean.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/at.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/at.svg new file mode 100644 index 0000000..758ced6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/at.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/au.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/au.svg new file mode 100644 index 0000000..38bb245 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/au.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/aw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/aw.svg new file mode 100644 index 0000000..1f03d61 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/aw.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ax.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ax.svg new file mode 100644 index 0000000..481d2a3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ax.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/az.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/az.svg new file mode 100644 index 0000000..d692e22 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/az.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ba.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ba.svg new file mode 100644 index 0000000..456ca12 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ba.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bb.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bb.svg new file mode 100644 index 0000000..9a42841 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bd.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bd.svg new file mode 100644 index 0000000..86fcfba --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bd.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/be.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/be.svg new file mode 100644 index 0000000..31d6210 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/be.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bf.svg new file mode 100644 index 0000000..a5078df --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bg.svg new file mode 100644 index 0000000..78412c5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bg.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bh.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bh.svg new file mode 100644 index 0000000..2d131aa --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bi.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bi.svg new file mode 100644 index 0000000..36a0d3a --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bi.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bj.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bj.svg new file mode 100644 index 0000000..bb27414 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bj.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bl.svg new file mode 100644 index 0000000..65550d9 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bm.svg new file mode 100644 index 0000000..0274d14 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bm.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bn.svg new file mode 100644 index 0000000..8cb06d1 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bn.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bo.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bo.svg new file mode 100644 index 0000000..b4830ed --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bo.svg @@ -0,0 +1,674 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bq.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bq.svg new file mode 100644 index 0000000..4b9168e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/br.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/br.svg new file mode 100644 index 0000000..d6095d7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/br.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bs.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bs.svg new file mode 100644 index 0000000..0faa4bb --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bs.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bt.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bt.svg new file mode 100644 index 0000000..15eafc7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bt.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bv.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bv.svg new file mode 100644 index 0000000..dcc6ad1 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bw.svg new file mode 100644 index 0000000..328e13c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/by.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/by.svg new file mode 100644 index 0000000..7d2ef67 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/by.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bz.svg new file mode 100644 index 0000000..913392e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/bz.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ca.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ca.svg new file mode 100644 index 0000000..1c0864c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ca.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cc.svg new file mode 100644 index 0000000..73fc800 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cc.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cd.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cd.svg new file mode 100644 index 0000000..ea17728 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cefta.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cefta.svg new file mode 100644 index 0000000..ff1a19b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cefta.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cf.svg new file mode 100644 index 0000000..b0625db --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cg.svg new file mode 100644 index 0000000..f786884 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ch.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ch.svg new file mode 100644 index 0000000..52578bf --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ci.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ci.svg new file mode 100644 index 0000000..2abf641 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ck.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ck.svg new file mode 100644 index 0000000..43a1057 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ck.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cl.svg new file mode 100644 index 0000000..5fb6096 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cm.svg new file mode 100644 index 0000000..ed4952b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cm.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cn.svg new file mode 100644 index 0000000..e152f01 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/co.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/co.svg new file mode 100644 index 0000000..5804bfe --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/co.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cp.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cp.svg new file mode 100644 index 0000000..ea3bfdc --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cp.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cr.svg new file mode 100644 index 0000000..4e7889e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cu.svg new file mode 100644 index 0000000..a284902 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cu.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cv.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cv.svg new file mode 100644 index 0000000..1170cd7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cw.svg new file mode 100644 index 0000000..57062ab --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cx.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cx.svg new file mode 100644 index 0000000..73c0240 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cy.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cy.svg new file mode 100644 index 0000000..3165d2d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cz.svg new file mode 100644 index 0000000..dcd0a6b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/cz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/de.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/de.svg new file mode 100644 index 0000000..05a0a69 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dg.svg new file mode 100644 index 0000000..8085a08 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dg.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dj.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dj.svg new file mode 100644 index 0000000..f5534d2 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dk.svg new file mode 100644 index 0000000..5aaaa19 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dm.svg new file mode 100644 index 0000000..cb7c958 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dm.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/do.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/do.svg new file mode 100644 index 0000000..727d669 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/do.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dz.svg new file mode 100644 index 0000000..8abcd25 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/dz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eac.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eac.svg new file mode 100644 index 0000000..ee6905e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eac.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ec.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ec.svg new file mode 100644 index 0000000..e11e6ef --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ec.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ee.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ee.svg new file mode 100644 index 0000000..5a6a7e3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ee.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eg.svg new file mode 100644 index 0000000..0ce9c65 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eg.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eh.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eh.svg new file mode 100644 index 0000000..ae509fa --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eh.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/er.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/er.svg new file mode 100644 index 0000000..1a4891e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/er.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-ct.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-ct.svg new file mode 100644 index 0000000..a06a2e3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-ct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-ga.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-ga.svg new file mode 100644 index 0000000..ccbb9f5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-ga.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-pv.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-pv.svg new file mode 100644 index 0000000..7d383ed --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es-pv.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es.svg new file mode 100644 index 0000000..6bfa092 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/es.svg @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/et.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/et.svg new file mode 100644 index 0000000..eb7f3c4 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/et.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eu.svg new file mode 100644 index 0000000..4a07fbe --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/eu.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fi.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fi.svg new file mode 100644 index 0000000..aba2ef3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fj.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fj.svg new file mode 100644 index 0000000..e1c44ee --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fj.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fk.svg new file mode 100644 index 0000000..352eb51 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fk.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fm.svg new file mode 100644 index 0000000..4f7d313 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fm.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fo.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fo.svg new file mode 100644 index 0000000..eec9945 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fr.svg new file mode 100644 index 0000000..0f60170 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/fr.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ga.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ga.svg new file mode 100644 index 0000000..113a5b5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ga.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-eng.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-eng.svg new file mode 100644 index 0000000..ee48fed --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-eng.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-nir.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-nir.svg new file mode 100644 index 0000000..b92e69f --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-nir.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-sct.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-sct.svg new file mode 100644 index 0000000..44d38cc --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-sct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-wls.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-wls.svg new file mode 100644 index 0000000..5115b59 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb-wls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb.svg new file mode 100644 index 0000000..ce4d1e0 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gb.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gd.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gd.svg new file mode 100644 index 0000000..3159c67 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gd.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ge.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ge.svg new file mode 100644 index 0000000..d3dc729 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gf.svg new file mode 100644 index 0000000..9cf5aa2 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gg.svg new file mode 100644 index 0000000..480f550 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gh.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gh.svg new file mode 100644 index 0000000..a64271b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gi.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gi.svg new file mode 100644 index 0000000..fe465ea --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gi.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gl.svg new file mode 100644 index 0000000..eaa817b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gm.svg new file mode 100644 index 0000000..2a8f724 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gm.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gn.svg new file mode 100644 index 0000000..ae81f9d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gp.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gp.svg new file mode 100644 index 0000000..9dd8e3b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gp.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gq.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gq.svg new file mode 100644 index 0000000..3a991a1 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gq.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gr.svg new file mode 100644 index 0000000..a268830 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gr.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gs.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gs.svg new file mode 100644 index 0000000..cf596f6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gs.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gt.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gt.svg new file mode 100644 index 0000000..b736d28 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gt.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gu.svg new file mode 100644 index 0000000..3f4d3da --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gu.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gw.svg new file mode 100644 index 0000000..61a0548 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gw.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gy.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gy.svg new file mode 100644 index 0000000..35e2f08 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/gy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hk.svg new file mode 100644 index 0000000..eef02a1 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hk.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hm.svg new file mode 100644 index 0000000..1f4d007 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hn.svg new file mode 100644 index 0000000..847df20 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hr.svg new file mode 100644 index 0000000..d8719a4 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hr.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ht.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ht.svg new file mode 100644 index 0000000..101bd59 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ht.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hu.svg new file mode 100644 index 0000000..088242d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/hu.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ic.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ic.svg new file mode 100644 index 0000000..096603d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/id.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/id.svg new file mode 100644 index 0000000..df08018 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/id.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ie.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ie.svg new file mode 100644 index 0000000..e13de22 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ie.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/il.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/il.svg new file mode 100644 index 0000000..0a2a6d9 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/il.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/im.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/im.svg new file mode 100644 index 0000000..05c3fa4 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/im.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/in.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/in.svg new file mode 100644 index 0000000..26a02cf --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/in.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/io.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/io.svg new file mode 100644 index 0000000..9ce776a --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/io.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/iq.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/iq.svg new file mode 100644 index 0000000..d354c99 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/iq.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ir.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ir.svg new file mode 100644 index 0000000..66537b6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ir.svg @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/is.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/is.svg new file mode 100644 index 0000000..26510b9 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/is.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/it.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/it.svg new file mode 100644 index 0000000..b9596d0 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/je.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/je.svg new file mode 100644 index 0000000..52c6645 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/je.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jm.svg new file mode 100644 index 0000000..07f023c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jo.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jo.svg new file mode 100644 index 0000000..fbbd681 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jp.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jp.svg new file mode 100644 index 0000000..118686a --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/jp.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ke.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ke.svg new file mode 100644 index 0000000..09168c2 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ke.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kg.svg new file mode 100644 index 0000000..732b2f1 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kg.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kh.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kh.svg new file mode 100644 index 0000000..567577a --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kh.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ki.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ki.svg new file mode 100644 index 0000000..02d7569 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ki.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/km.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/km.svg new file mode 100644 index 0000000..b19fd10 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/km.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kn.svg new file mode 100644 index 0000000..42d5adf --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kp.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kp.svg new file mode 100644 index 0000000..67f3338 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kr.svg new file mode 100644 index 0000000..af3d35e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kr.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kw.svg new file mode 100644 index 0000000..b2fe54f --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ky.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ky.svg new file mode 100644 index 0000000..72e5164 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ky.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kz.svg new file mode 100644 index 0000000..c65c5d5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/kz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/la.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/la.svg new file mode 100644 index 0000000..af70d0d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/la.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lb.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lb.svg new file mode 100644 index 0000000..a5ffc76 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lc.svg new file mode 100644 index 0000000..aa18fac --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/li.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/li.svg new file mode 100644 index 0000000..436dfc5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/li.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lk.svg new file mode 100644 index 0000000..2ac8183 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lk.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lr.svg new file mode 100644 index 0000000..74382ab --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ls.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ls.svg new file mode 100644 index 0000000..605c087 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ls.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lt.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lt.svg new file mode 100644 index 0000000..52ada94 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lu.svg new file mode 100644 index 0000000..037c315 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lv.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lv.svg new file mode 100644 index 0000000..5af883c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/lv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ly.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ly.svg new file mode 100644 index 0000000..4375a9e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ly.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ma.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ma.svg new file mode 100644 index 0000000..8041667 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ma.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mc.svg new file mode 100644 index 0000000..04173a4 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/md.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/md.svg new file mode 100644 index 0000000..f204511 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/md.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/me.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/me.svg new file mode 100644 index 0000000..25c6b28 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/me.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mf.svg new file mode 100644 index 0000000..8d3285b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mg.svg new file mode 100644 index 0000000..4f901ca --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mh.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mh.svg new file mode 100644 index 0000000..1db268d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mh.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mk.svg new file mode 100644 index 0000000..0ee923a --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ml.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ml.svg new file mode 100644 index 0000000..665d6b2 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ml.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mm.svg new file mode 100644 index 0000000..391f0c7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mm.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mn.svg new file mode 100644 index 0000000..0df5211 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mo.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mo.svg new file mode 100644 index 0000000..50624d7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mp.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mp.svg new file mode 100644 index 0000000..27e8980 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mp.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mq.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mq.svg new file mode 100644 index 0000000..dcf0054 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mr.svg new file mode 100644 index 0000000..d06c5b8 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ms.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ms.svg new file mode 100644 index 0000000..53baf7c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ms.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mt.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mt.svg new file mode 100644 index 0000000..bcc01dd --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mt.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mu.svg new file mode 100644 index 0000000..2afe1d3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mu.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mv.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mv.svg new file mode 100644 index 0000000..c9a6c5b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mw.svg new file mode 100644 index 0000000..576ba8c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mw.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mx.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mx.svg new file mode 100644 index 0000000..2b371e7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mx.svg @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/my.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/my.svg new file mode 100644 index 0000000..4f62c7d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/my.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mz.svg new file mode 100644 index 0000000..e1e1569 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/mz.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/na.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/na.svg new file mode 100644 index 0000000..36ac8d7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/na.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nc.svg new file mode 100644 index 0000000..6226ebc --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ne.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ne.svg new file mode 100644 index 0000000..a96b027 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nf.svg new file mode 100644 index 0000000..c9e5743 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nf.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ng.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ng.svg new file mode 100644 index 0000000..62813e8 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ng.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ni.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ni.svg new file mode 100644 index 0000000..7ea3eb6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ni.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nl.svg new file mode 100644 index 0000000..49ca5bc --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/no.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/no.svg new file mode 100644 index 0000000..939920d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/no.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/np.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/np.svg new file mode 100644 index 0000000..f0e0b5d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/np.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nr.svg new file mode 100644 index 0000000..c8c827e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nr.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nu.svg new file mode 100644 index 0000000..ce31672 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nu.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nz.svg new file mode 100644 index 0000000..ee617d6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/nz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/om.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/om.svg new file mode 100644 index 0000000..038631f --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/om.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pa.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pa.svg new file mode 100644 index 0000000..108c40b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pa.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pc.svg new file mode 100644 index 0000000..e0d561b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pc.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pe.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pe.svg new file mode 100644 index 0000000..9ba4c61 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pe.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pf.svg new file mode 100644 index 0000000..2580dd2 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pf.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pg.svg new file mode 100644 index 0000000..1b6e536 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pg.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ph.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ph.svg new file mode 100644 index 0000000..390f1fd --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ph.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pk.svg new file mode 100644 index 0000000..1a573af --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pk.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pl.svg new file mode 100644 index 0000000..8c43577 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pm.svg new file mode 100644 index 0000000..950c6e8 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pm.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pn.svg new file mode 100644 index 0000000..886abca --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pn.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pr.svg new file mode 100644 index 0000000..eb302ad --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ps.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ps.svg new file mode 100644 index 0000000..5d28cc8 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ps.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pt.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pt.svg new file mode 100644 index 0000000..6c8334b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pt.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pw.svg new file mode 100644 index 0000000..ef6be79 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/pw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/py.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/py.svg new file mode 100644 index 0000000..107bd1d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/py.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/qa.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/qa.svg new file mode 100644 index 0000000..897a21b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/qa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/re.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/re.svg new file mode 100644 index 0000000..41d87d9 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/re.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ro.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ro.svg new file mode 100644 index 0000000..e6cf0f6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ro.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/rs.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/rs.svg new file mode 100644 index 0000000..3610fd1 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/rs.svg @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ru.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ru.svg new file mode 100644 index 0000000..f428b0c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ru.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/rw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/rw.svg new file mode 100644 index 0000000..3d484fd --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/rw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sa.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sa.svg new file mode 100644 index 0000000..8bf5eda --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sa.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sb.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sb.svg new file mode 100644 index 0000000..398c708 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sc.svg new file mode 100644 index 0000000..2996bac --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sc.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sd.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sd.svg new file mode 100644 index 0000000..0b9abdc --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/se.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/se.svg new file mode 100644 index 0000000..8f3f134 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/se.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sg.svg new file mode 100644 index 0000000..60625e9 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-ac.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-ac.svg new file mode 100644 index 0000000..5f82d66 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-ac.svg @@ -0,0 +1,690 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-hl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-hl.svg new file mode 100644 index 0000000..179fed6 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-hl.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-ta.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-ta.svg new file mode 100644 index 0000000..619301b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh-ta.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh.svg new file mode 100644 index 0000000..2fd3727 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/si.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/si.svg new file mode 100644 index 0000000..ba67e19 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/si.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sj.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sj.svg new file mode 100644 index 0000000..ecb9c79 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sj.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sk.svg new file mode 100644 index 0000000..4846127 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sl.svg new file mode 100644 index 0000000..b649f1b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sl.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sm.svg new file mode 100644 index 0000000..7fe8b14 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sm.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sn.svg new file mode 100644 index 0000000..ff9cf2e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sn.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/so.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/so.svg new file mode 100644 index 0000000..4848dbe --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/so.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sr.svg new file mode 100644 index 0000000..0ca3596 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ss.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ss.svg new file mode 100644 index 0000000..bb50fac --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ss.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/st.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/st.svg new file mode 100644 index 0000000..c5e7c5c --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/st.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sv.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sv.svg new file mode 100644 index 0000000..110f78d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sv.svg @@ -0,0 +1,593 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sx.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sx.svg new file mode 100644 index 0000000..fbf7468 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sx.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sy.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sy.svg new file mode 100644 index 0000000..b2fdc2f --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sz.svg new file mode 100644 index 0000000..bd5e237 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/sz.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tc.svg new file mode 100644 index 0000000..52a2452 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tc.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/td.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/td.svg new file mode 100644 index 0000000..8201312 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/td.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tf.svg new file mode 100644 index 0000000..1ab7f6a --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tg.svg new file mode 100644 index 0000000..6ed03c5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/th.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/th.svg new file mode 100644 index 0000000..35141d3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/th.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tj.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tj.svg new file mode 100644 index 0000000..9232ec1 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tj.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tk.svg new file mode 100644 index 0000000..9ff92e5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tl.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tl.svg new file mode 100644 index 0000000..4fbb245 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tm.svg new file mode 100644 index 0000000..0272d71 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tm.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tn.svg new file mode 100644 index 0000000..ab3e36e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tn.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/to.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/to.svg new file mode 100644 index 0000000..3f1b600 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/to.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tr.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tr.svg new file mode 100644 index 0000000..0fe9017 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tt.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tt.svg new file mode 100644 index 0000000..0f7f26e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tv.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tv.svg new file mode 100644 index 0000000..098b916 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tv.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tw.svg new file mode 100644 index 0000000..83f4e44 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tw.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tz.svg new file mode 100644 index 0000000..846cbb5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/tz.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ua.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ua.svg new file mode 100644 index 0000000..7ceb894 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ua.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ug.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ug.svg new file mode 100644 index 0000000..fd377df --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ug.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/um.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/um.svg new file mode 100644 index 0000000..b8d4502 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/um.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/un.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/un.svg new file mode 100644 index 0000000..fc75c91 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/un.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/us.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/us.svg new file mode 100644 index 0000000..a722047 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/us.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/uy.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/uy.svg new file mode 100644 index 0000000..f6b08b2 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/uy.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/uz.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/uz.svg new file mode 100644 index 0000000..3385bc5 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/uz.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/va.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/va.svg new file mode 100644 index 0000000..04e6d50 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/va.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vc.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vc.svg new file mode 100644 index 0000000..21d41a8 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ve.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ve.svg new file mode 100644 index 0000000..665135b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ve.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vg.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vg.svg new file mode 100644 index 0000000..31fcae3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vg.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vi.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vi.svg new file mode 100644 index 0000000..4509ac9 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vi.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vn.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vn.svg new file mode 100644 index 0000000..49a68f0 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vu.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vu.svg new file mode 100644 index 0000000..3dbcf95 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/vu.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/wf.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/wf.svg new file mode 100644 index 0000000..5ba64e4 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/wf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ws.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ws.svg new file mode 100644 index 0000000..ab08fdb --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ws.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/xk.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/xk.svg new file mode 100644 index 0000000..b5403e3 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/xk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/xx.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/xx.svg new file mode 100644 index 0000000..5a44cb7 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/xx.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ye.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ye.svg new file mode 100644 index 0000000..2ccb23b --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/ye.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/yt.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/yt.svg new file mode 100644 index 0000000..41a4408 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/yt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/za.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/za.svg new file mode 100644 index 0000000..397696e --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/za.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/zm.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/zm.svg new file mode 100644 index 0000000..9b20601 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/zm.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/zw.svg b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/zw.svg new file mode 100644 index 0000000..f9f65ee --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/1x1/zw.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/flag-icons.LICENSE b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/flag-icons.LICENSE new file mode 100644 index 0000000..22bf5cf --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/icons/flags/flag-icons.LICENSE @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) 2013 Panayiotis Lipiridis + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Vendored from https://github.com/lipis/flag-icons (MIT License). diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/locale/ka/LC_MESSAGES/vitals.mo b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/locale/ka/LC_MESSAGES/vitals.mo new file mode 100644 index 0000000..ad5d7e3 Binary files /dev/null and b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/locale/ka/LC_MESSAGES/vitals.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/menuItem.js b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/menuItem.js index cf112ab..81b6eab 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/menuItem.js +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/menuItem.js @@ -21,7 +21,8 @@ export const MenuItem = GObject.registerClass({ this._gIcon = icon; // add icon - this.add_child(new St.Icon({ style_class: 'popup-menu-icon', gicon : this._gIcon })); + this._iconActor = new St.Icon({ style_class: 'popup-menu-icon', gicon : this._gIcon }); + this.add_child(this._iconActor); // add label this._labelActor = new St.Label({ text: label }); @@ -49,6 +50,12 @@ export const MenuItem = GObject.registerClass({ return this._gIcon; } + set gicon(icon) { + this._gIcon = icon; + if (this._iconActor) + this._iconActor.gicon = icon; + } + set value(value) { this._valueLabel.text = value; } diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/metadata.json b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/metadata.json index bb2e767..0bb8476 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/metadata.json +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/metadata.json @@ -17,5 +17,5 @@ ], "url": "https://github.com/corecoding/Vitals", "uuid": "Vitals@CoreCoding.com", - "version": 75 + "version": 76 } \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.js b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.js index 07916bd..bdeb9a8 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.js +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.js @@ -47,8 +47,8 @@ const Settings = new GObject.Class({ 'show-memory', 'show-processor', 'show-system', 'show-network', 'show-storage', 'use-higher-precision', 'alphabetize', 'hide-zeros', 'include-public-ip', - 'show-battery', 'fixed-widths', 'hide-icons', - 'menu-centered', 'include-static-info', + 'network-public-ip-show-flag', 'show-battery', 'fixed-widths', + 'hide-icons', 'menu-centered', 'include-static-info', 'show-gpu', 'include-static-gpu-info' ]; for (let key in sensors) { @@ -75,6 +75,9 @@ const Settings = new GObject.Class({ this._settings.bind('update-time', this.builder.get_object('update-time'), 'value', Gio.SettingsBindFlags.DEFAULT); + this._settings.bind('network-public-ip-interval', this.builder.get_object('network-public-ip-interval'), + 'value', Gio.SettingsBindFlags.DEFAULT); + // process individual text entry sensor preferences sensors = [ 'storage-path', 'monitor-cmd' ]; for (let key in sensors) { diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.ui b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.ui index 950c1b0..156799b 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.ui +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/prefs.ui @@ -8,7 +8,7 @@ 10 - 0 + 1 12 12 6 @@ -16,10 +16,10 @@ vertical - 0 + 1 - 0 + 1 none @@ -52,6 +52,68 @@ + + + 1 + + + horizontal + 12 + 6 + + + 1 + start + Update in minutes + + + + + + 1 + 1 + if-valid + + + 15 + 1440 + 1 + + + + + + + + + + + True + + + True + 10 + 10 + 10 + 10 + + + True + Show country flag + 0 + + + + + True + end + True + + + + + + 100 diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/gschemas.compiled b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/gschemas.compiled index 936fdb3..b84716f 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/gschemas.compiled and b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/gschemas.compiled differ diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml index 7a0decd..fef102d 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml @@ -81,6 +81,14 @@ Include public IP address Display public IP address of internet connection + + 60 + Public IP refresh interval in minutes + + + true + Show country flag for public IP + 0 Network speed format diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/sensors.js b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/sensors.js index be8df5d..d61b090 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/sensors.js +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/sensors.js @@ -53,6 +53,7 @@ export const Sensors = GObject.registerClass({ this._settingChangedSignals = []; this._addSettingChangedSignal('show-gpu', this._reconfigureNvidiaSmiProcess.bind(this)); this._addSettingChangedSignal('update-time', this._reconfigureNvidiaSmiProcess.bind(this)); + this._addSettingChangedSignal('network-public-ip-interval', () => {this._lastPublicIPCheck = 0;}); //this._addSettingChangedSignal('include-static-gpu-info', this._reconfigureNvidiaSmiProcess.bind(this)); this._gpu_drm_vendors = null; @@ -85,7 +86,11 @@ export const Sensors = GObject.registerClass({ // check IP address new FileModule.File('https://ipv4.corecoding.com').read().then(contents => { let obj = JSON.parse(contents); - this._returnValue(callback, 'Public IP', obj['IPv4'], 'network', 'string'); + let cc = (obj && typeof obj['countryCode'] === 'string') ? obj['countryCode'].trim().toLowerCase() : ''; + let ip = (obj && typeof obj['IPv4'] === 'string') ? obj['IPv4'].trim() : ''; + const showFlag = this._settings.get_boolean('network-public-ip-show-flag'); + let typeOut = (showFlag && /^[a-z]{2}$/.test(cc)) ? ('network-' + cc) : 'network'; + this._returnValue(callback, 'Public IP', ip, typeOut, 'string'); }).catch(err => { }); } @@ -309,7 +314,8 @@ export const Sensors = GObject.registerClass({ if (this._settings.get_boolean('include-public-ip')) { // check the public ip every hour or when waking from sleep if (this._next_public_ip_check <= 0) { - this._next_public_ip_check = 3600; + let intervalMinutes = this._settings.get_int('network-public-ip-interval'); + this._next_public_ip_check = intervalMinutes * 60; this._refreshIPAddress(callback); } diff --git a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/values.js b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/values.js index f16778c..110d0fd 100644 --- a/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/values.js +++ b/gnome/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com/values.js @@ -221,30 +221,33 @@ export const Values = GObject.registerClass({ returnIfDifferent(dwell, label, value, type, format, key) { let output = []; + // Use one history bucket for network- types (geo IP), except for rx/tx. + let historyType = (/^network-(?!rx$|tx$)[a-z]{2}(?:-group)?$/.test(type)) ? 'network' : type; + // make sure the keys exist - if (!(type in this._history)) this._history[type] = {}; + if (!(historyType in this._history)) this._history[historyType] = {}; // no sense in continuing when the raw value has not changed - if (type != 'network-rx' && type != 'network-tx' && - key in this._history[type] && this._history[type][key][1] == value) + if (historyType != 'network-rx' && historyType != 'network-tx' && + key in this._history[historyType] && this._history[historyType][key][1] == value) return output; // is the value different from last time? let legible = this._legible(value, format); // don't return early when dealing with network traffic - if (type != 'network-rx' && type != 'network-tx') { + if (historyType != 'network-rx' && historyType != 'network-tx') { // only update when we are coming through for the first time, or if a value has changed - if (key in this._history[type] && this._history[type][key][0] == legible) + if (key in this._history[historyType] && this._history[historyType][key][0] == legible) return output; - // add label as it was sent from sensors class - output.push([label, legible, type, key]); + // add label as it was sent from sensors class; type stays e.g. network-us for display/icons + output.push({ label, value: legible, type, key }); } // save previous values to update screen on changes only - let previousValue = this._history[type][key]; - this._history[type][key] = [legible, value]; + let previousValue = this._history[historyType][key]; + this._history[historyType][key] = [legible, value]; // process average, min and max values if (type == 'temperature' || type == 'voltage' || type == 'fan') { @@ -253,21 +256,21 @@ export const Values = GObject.registerClass({ // show value in group even if there is one value present let sum = vals.reduce((a, b) => a + b); let avg = this._legible(sum / vals.length, format); - output.push([type, avg, type + '-group', '']); + output.push({ label: type, value: avg, type: type + '-group', key: '' }); // If only one value is present, don't display avg, min and max if (vals.length > 1) { - output.push(['Average', avg, type, '__' + type + '_avg__']); + output.push({ label: 'Average', value: avg, type, key: '__' + type + '_avg__' }); // calculate Minimum value let min = Math.min(...vals); min = this._legible(min, format); - output.push(['Minimum', min, type, '__' + type + '_min__']); + output.push({ label: 'Minimum', value: min, type, key: '__' + type + '_min__' }); // calculate Maximum value let max = Math.max(...vals); max = this._legible(max, format); - output.push(['Maximum', max, type, '__' + type + '_max__']); + output.push({ label: 'Maximum', value: max, type, key: '__' + type + '_max__' }); } } else if (type == 'network-rx' || type == 'network-tx') { let direction = type.split('-')[1]; @@ -276,18 +279,18 @@ export const Values = GObject.registerClass({ let vals = Object.values(this._history[type]).map(x => parseFloat(x[1])); let sum = vals.reduce((partialSum, a) => partialSum + a, 0); const memUnit = this._settings.get_int('memory-measurement') ? 1000 : 1024; - output.push(['Boot ' + direction, this._legible(sum, format), type, '__' + type + '_boot__']); + output.push({ label: 'Boot ' + direction, value: this._legible(sum, format), type, key: '__' + type + '_boot__' }); // keeps track of session start point if (!(key in this._networkSpeedOffset) || this._networkSpeedOffset[key] <= 0) this._networkSpeedOffset[key] = sum; // outputs session upload and download for all interfaces for #234 - output.push(['Session ' + direction, this._legible(sum - this._networkSpeedOffset[key], format), type, '__' + type + '_ses__']); + output.push({ label: 'Session ' + direction, value: this._legible(sum - this._networkSpeedOffset[key], format), type, key: '__' + type + '_ses__' }); // calculate speed for this interface let speed = (value - previousValue[1]) / dwell; - output.push([label, this._legible(speed, 'speed'), type, key]); + output.push({ label, value: this._legible(speed, 'speed'), type, key }); // store speed for Device report if (!(direction in this._networkSpeeds)) this._networkSpeeds[direction] = {}; @@ -304,36 +307,12 @@ export const Values = GObject.registerClass({ sumNum += parseFloat(this._networkSpeeds[direction][iface]); let sum = this._legible(sumNum, 'speed'); - output.push(['Device ' + direction, sum, 'network-' + direction, '__network-' + direction + '_max__']); + output.push({ label: 'Device ' + direction, value: sum, type: 'network-' + direction, key: '__network-' + direction + '_max__' }); // append download speed to group itself - if (direction == 'rx') output.push([type, sum, type + '-group', '']); + if (direction == 'rx') output.push({ label: type, value: sum, type: type + '-group', key: '' }); } } -/* - global.log('before', JSON.stringify(output)); - for (let i = output.length - 1; i >= 0; i--) { - let sensor = output[i]; - // sensor[0]=label, sensor[1]=value, sensor[2]=type, sensor[3]=key) - - //["CPU Core 5","46°C","temperature","_temperature_hwmon8temp7_"] - - // make sure the keys exist - if (!(sensor[2] in this._history2)) this._history2[sensor[2]] = {}; - - if (sensor[3] in this._history2[sensor[2]]) { - if (this._history2[sensor[2]][sensor[3]] == sensor[1]) { - output.splice(i, 1); - } - } - - this._history2[sensor[2]][sensor[3]] = sensor[1]; - } - - global.log(' after', JSON.stringify(output)); - global.log('***************************'); -*/ - return output; } diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/applications.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/applications.js index af55247..5280b55 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/applications.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/applications.js @@ -166,7 +166,7 @@ export const ApplicationsBlur = class ApplicationsBlur { let window_actor = meta_window.get_compositor_private(); if ( - (!meta_window.get_workspace().active) || meta_window.minimized + (!meta_window.get_workspace().active) || meta_window.minimized ) window_actor.hide(); }); @@ -385,10 +385,27 @@ export const ApplicationsBlur = class ApplicationsBlur { // set the window actor's opacity this.set_window_opacity(window_actor, this.settings.applications.OPACITY); + // update corner radius based on window state + this.update_corner_radius(meta_window); + // now set up the signals, for the window actor only: they are disconnected // in `remove_blur`, whereas the signals for the meta window are disconnected // only when the whole component is disabled + // listen for window state changes (maximized/fullscreen) + this.connections.connect( + meta_window, 'notify::maximized-horizontally', + _ => this.update_corner_radius(meta_window) + ); + this.connections.connect( + meta_window, 'notify::maximized-vertically', + _ => this.update_corner_radius(meta_window) + ); + this.connections.connect( + meta_window, 'notify::fullscreen', + _ => this.update_corner_radius(meta_window) + ); + // update the window opacity when it changes, else we don't control it fully this.connections.connect( window_actor, 'notify::opacity', @@ -472,6 +489,33 @@ export const ApplicationsBlur = class ApplicationsBlur { ); } + /// Update the corner radius based on window state (0 for maximized/fullscreen) + /// if the preferences say so. + update_corner_radius(meta_window) { + const is_maximized = meta_window.maximized_horizontally || meta_window.maximized_vertically; + const is_fullscreen = meta_window.fullscreen; + + let use_0_radius = !this.settings.applications.CORNER_WHEN_MAXIMIZED && (is_maximized || is_fullscreen); + + if (this.settings.applications.STATIC_BLUR) { + meta_window.bg_manager?._bms_pipeline?.effects.forEach(effect => { + if (effect.constructor.name === "CornerEffect") + effect.straight_corners = use_0_radius; + }) + } else { + if (meta_window.bg_manager?._bms_pipeline?.effect) + meta_window.bg_manager._bms_pipeline.effect.corner_radius = use_0_radius ? + 0 : this.settings.applications.CORNER_RADIUS; + } + } + + /// Update all corners, to use when the setting has been changed. + update_all_corner_radii() { + this.meta_window_map.forEach( + (meta_window, _pid) => this.update_corner_radius(meta_window) + ) + } + /// Set the opacity of the window actor that sits on top of the blur effect. set_window_opacity(window_actor, opacity) { window_actor?.get_children().forEach(child => { diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js index 6c084cf..bd39166 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js @@ -63,11 +63,34 @@ export const PanelBlur = class PanelBlur { // the blur when a window is near a panel this.connect_to_windows_and_overview(); - // connect to workareas change - this.connections.connect(global.display, 'workareas-changed', - _ => this.reset() + // connect to monitors change, and set a dirty flag to tell the extension that it should be + // reset on 'workareas-changed' signal + this._dirty = false; + this.connections.connect(Main.layoutManager, 'monitors-changed', + _ => this._dirty = true ); + this.connections.connect(global.display, 'workareas-changed', _ => { + if (this._dirty) { + // the monitors chaned + this.reset(); + this._dirty = false; + } + else { + // blur panels created by extension multi-monitors-bar@frederykabryan + // I would like to connect directly to Main.uiGroup 'child-added' but it seems + // like the name is updated too late... + Main.uiGroup.get_children().forEach(child => { + if (child.get_name() === "panelBox" && + child != Main.layoutManager.panelBox && + child.get_n_children() == 1 + ) { + this.maybe_blur_panel(child.get_child_at_index(0)); + } + }); + } + }) + this.enabled = true; } @@ -95,8 +118,18 @@ export const PanelBlur = class PanelBlur { if (this.settings.dash_to_panel.BLUR_ORIGINAL_PANEL && isMainPanelAlive) this.maybe_blur_panel(Main.panel); } else { - // if no dash-to-panel, blur the main and only panel - this.maybe_blur_panel(Main.panel); + // if no dash-to-panel, blur the main panel + if (isMainPanelAlive) + this.maybe_blur_panel(Main.panel); + + // blur panels already created by extension multi-monitors-bar@frederykabryan + Main.uiGroup.get_children().forEach(actor => { + if (actor.get_name() === "panelBox" && actor.get_n_children() === 1) { + let multi_monitor_panel = actor.get_child_at_index(0); + if (isMainPanelAlive && multi_monitor_panel != Main.panel) + this.maybe_blur_panel(multi_monitor_panel); + } + }) } } @@ -385,10 +418,8 @@ export const PanelBlur = class PanelBlur { /// Update the css classname of the panel for light theme update_light_text_classname(disable = false) { - if (!isMainPanelAlive) { - this._log("cannot update light text classname, Main.panel is not alive"); + if (!isMainPanelAlive) return; - } if (this.settings.panel.FORCE_LIGHT_TEXT && !disable) Main.panel.add_style_class_name("panel-light-text"); @@ -561,6 +592,8 @@ export const PanelBlur = class PanelBlur { immutable_actors_list.forEach(actors => this.destroy_blur(actors, false)); this.actors_list = []; + this._dirty = true; + this.connections.disconnect_all(); this.enabled = false; diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/dummy_pipeline.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/dummy_pipeline.js index 544d68c..02b2d13 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/dummy_pipeline.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/dummy_pipeline.js @@ -43,6 +43,7 @@ export const DummyPipeline = class DummyPipeline { this.build_effect({ unscaled_radius: 2 * this.settings.SIGMA, brightness: this.settings.BRIGHTNESS, + corner_radius: this.settings.CORNER_RADIUS, }); this.actor_destroy_id = this.actor.connect( @@ -75,6 +76,9 @@ export const DummyPipeline = class DummyPipeline { this._brightness_changed_id = this.settings.settings.connect( 'changed::brightness', () => this.effect.brightness = this.settings.BRIGHTNESS ); + this._corner_radius_changed_id = this.settings.settings.connect( + 'changed::corner-radius', () => this.effect.corner_radius = this.settings.CORNER_RADIUS + ); } repaint_effect() { @@ -92,8 +96,11 @@ export const DummyPipeline = class DummyPipeline { this.settings.settings.disconnect(this._sigma_changed_id); if (this._brightness_changed_id) this.settings.settings.disconnect(this._brightness_changed_id); + if (this._corner_radius_changed_id) + this.settings.settings.disconnect(this._corner_radius_changed_id); delete this._sigma_changed_id; delete this._brightness_changed_id; + delete this._corner_radius_changed_id; } /// Do nothing for this dummy pipeline. @@ -109,4 +116,4 @@ export const DummyPipeline = class DummyPipeline { _warn(str) { console.warn(`[Blur my Shell > dummy pip] ${str}`); } -}; \ No newline at end of file +}; diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/keys.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/keys.js index fcde72b..d821b88 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/keys.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/keys.js @@ -6,6 +6,7 @@ export const KEYS = [ component: "general", schemas: [ { type: Type.PIPELINES, name: "pipelines" }, { type: Type.I, name: "hacks-level" }, + { type: Type.B, name: "rounded-blur-found" }, { type: Type.B, name: "debug" }, ] }, @@ -31,6 +32,7 @@ export const KEYS = [ { type: Type.S, name: "pipeline" }, { type: Type.I, name: "sigma" }, { type: Type.D, name: "brightness" }, + { type: Type.I, name: "corner-radius" }, { type: Type.B, name: "unblur-in-overview" }, { type: Type.B, name: "force-light-text" }, { type: Type.B, name: "override-background" }, @@ -45,6 +47,7 @@ export const KEYS = [ { type: Type.S, name: "pipeline" }, { type: Type.I, name: "sigma" }, { type: Type.D, name: "brightness" }, + { type: Type.I, name: "corner-radius" }, { type: Type.B, name: "unblur-in-overview" }, { type: Type.B, name: "override-background" }, { type: Type.I, name: "style-dash-to-dock" }, @@ -57,6 +60,8 @@ export const KEYS = [ { type: Type.S, name: "pipeline" }, { type: Type.I, name: "sigma" }, { type: Type.D, name: "brightness" }, + { type: Type.I, name: "corner-radius" }, + { type: Type.B, name: "corner-when-maximized" }, { type: Type.I, name: "opacity" }, { type: Type.B, name: "dynamic-opacity" }, { type: Type.B, name: "blur-on-overview" }, @@ -187,4 +192,4 @@ export const DEPRECATED_KEYS = [ { type: Type.D, name: "noise-lightness" }, ] }, -]; \ No newline at end of file +]; diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/settings_updater.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/settings_updater.js index 2affbc1..f81ce7d 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/settings_updater.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/settings_updater.js @@ -29,6 +29,7 @@ export function update_from_old_settings(gsettings) { if (!deprecated_component.CUSTOMIZE) { new_component.SIGMA = deprecated_preferences.SIGMA; new_component.BRIGHTNESS = deprecated_preferences.BRIGHTNESS; + new_component.CORNER_RADIUS = deprecated_preferences.CORNER_RADIUS; } }); @@ -37,4 +38,4 @@ export function update_from_old_settings(gsettings) { } preferences.settings.set_int('settings-version', CURRENT_SETTINGS_VERSION); -} \ No newline at end of file +} diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/utils.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/utils.js index 0277e0e..20def0b 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/utils.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/conveniences/utils.js @@ -9,7 +9,11 @@ export const IS_IN_PREFERENCES = typeof global === 'undefined'; export async function import_in_shell_only(module) { if (IS_IN_PREFERENCES) return null; - return (await import(module)).default; + try { + return (await import(module)).default; + } catch (e) { + return null; + } } // In use for the effects, to prevent boilerplate code diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.glsl b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.glsl index 760798a..0b7b0fb 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.glsl +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.glsl @@ -7,6 +7,7 @@ uniform float width; uniform float height; uniform bool corners_top; uniform bool corners_bottom; +uniform bool straight_corners; uniform float clip_x0; uniform float clip_y0; @@ -65,7 +66,9 @@ float rounded_rect_coverage(vec2 p, vec4 bounds, float clip_radius) { float center_top = bounds.y + clip_radius; float center_bottom = bounds.w - clip_radius; - if (corners_top && p.y < center_top) + if (straight_corners) + return 1.0; + else if (corners_top && p.y < center_top) center.y = center_top + 2.; else if (corners_bottom && p.y > center_bottom) center.y = center_bottom - 1.; diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.js index 109be12..1727e30 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/corner.js @@ -77,6 +77,7 @@ export const CornerEffect = utils.IS_IN_PREFERENCES ? this._clip_height = null; utils.setup_params(this, params); + this.straight_corners = false; // set shader source this._source = utils.get_shader_source(Shell, SHADER_FILENAME, import.meta.url); @@ -165,6 +166,18 @@ export const CornerEffect = utils.IS_IN_PREFERENCES ? } } + get straight_corners() { + return this._straight_corners; + } + + set straight_corners(value) { + if (this._straight_corners !== value) { + this._straight_corners = value; + + this.set_uniform_value('straight_corners', this._straight_corners ? 1 : 0); + } + } + get clip() { return [this._clip_x0, this._clip_y0, this._clip_width, this._clip_height]; } diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/effects.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/effects.js index e35588d..4ab5a71 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/effects.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/effects.js @@ -11,6 +11,7 @@ import { PixelizeEffect } from './pixelize.js'; import { DerivativeEffect } from './derivative.js'; import { RgbToHslEffect } from './rgb_to_hsl.js'; import { HslToRgbEffect } from './hsl_to_rgb.js'; +import { LuminosityEffect } from './luminosity.js'; // We do in this way because I've not found another way to store our preferences in a dictionnary // while calling `gettext` on it while in preferences. Not so pretty, but works. @@ -33,6 +34,7 @@ export function get_effects_groups(_ = _ => "") { "derivative", "noise", "color", + "luminosity", "rgb_to_hsl", "hsl_to_rgb" ] @@ -167,7 +169,8 @@ export function get_supported_effects(_ = () => "") { color: { name: _("Color"), description: _("The color to blend in. The blending amount is controled by the opacity of the color."), - type: "rgba" + type: "rgba", + use_alpha: true }, blend_mode: { name: _("Blend mode"), @@ -197,6 +200,65 @@ export function get_supported_effects(_ = () => "") { } }, + luminosity: { + class: LuminosityEffect, + name: _("Luminosity"), + description: _("An effect that affects the luminosity of the image."), + is_advanced: false, + editable_params: { + brightness_shift: { + name: _("Shift brightness"), + description: _("The brightness to add of remove to the image."), + type: "float", + min: -1., + max: 1., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + brightness_multiplicator: { + name: _("Multiply brightness"), + description: _("The brightness multiplicator of the image, so that 0 means no brightness and 2 means infinite brightness."), + type: "float", + min: 0., + max: 2., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + contrast: { + name: _("Contrast"), + description: _("The contrast of the image in regard to the center of the contrast."), + type: "float", + min: 0., + max: 2., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + contrast_center: { + name: _("Contrast center"), + description: _("The center of the contrast to use."), + type: "float", + min: 0., + max: 1., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + saturation_multiplicator: { + name: _("Saturation"), + description: _("The saturation of the image, so that 0 means no saturation and 2 means infinite saturation."), + type: "float", + min: 0., + max: 2., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + } + }, + pixelize: { class: PixelizeEffect, name: _("Pixelize"), @@ -343,7 +405,7 @@ export function get_supported_effects(_ = () => "") { description: _("The radius of the corner. GNOME apps use a radius of 12 px by default."), type: "integer", min: 0, - max: 50, + max: 150, increment: 1, }, corners_top: { diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/luminosity.glsl b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/luminosity.glsl new file mode 100644 index 0000000..4c50ca4 --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/luminosity.glsl @@ -0,0 +1,33 @@ +uniform sampler2D tex; +uniform float brightness_shift; +uniform float brightness_multiplicator; +uniform float contrast; +uniform float contrast_center; +uniform float saturation_multiplicator; + +vec3 hsl_to_rgb(vec3 c) { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} + +vec3 rgb_to_hsl(vec3 c) { + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} + +void main() { + vec4 c = texture2D(tex, cogl_tex_coord_in[0].st); + + vec3 pix_hsl = rgb_to_hsl(c.xyz) / c.a; + pix_hsl.z = clamp(pix_hsl.z * brightness_multiplicator, 0., 1.); + pix_hsl.z = clamp((pix_hsl.z - contrast_center) * contrast + contrast_center + brightness_shift, 0., 1.); + pix_hsl.y = clamp(pix_hsl.y * saturation_multiplicator, 0., 1.); + + cogl_color_out = vec4(hsl_to_rgb(pix_hsl) * c.a, c.a); +} \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/luminosity.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/luminosity.js new file mode 100644 index 0000000..c22636d --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/luminosity.js @@ -0,0 +1,141 @@ +import GObject from 'gi://GObject'; + +import * as utils from '../conveniences/utils.js'; +const Shell = await utils.import_in_shell_only('gi://Shell'); +const Clutter = await utils.import_in_shell_only('gi://Clutter'); + +const SHADER_FILENAME = 'luminosity.glsl'; +const DEFAULT_PARAMS = { + brightness_shift: 0., brightness_multiplicator: 1., contrast: 1., contrast_center: 0.5, saturation_multiplicator: 1. +}; + + +export const LuminosityEffect = utils.IS_IN_PREFERENCES ? + { default_params: DEFAULT_PARAMS } : + new GObject.registerClass({ + GTypeName: "LuminosityEffect", + Properties: { + 'brightness_shift': GObject.ParamSpec.double( + `brightness_shift`, + `Brightness shift`, + `Brightness shift value in shader`, + GObject.ParamFlags.READWRITE, + -1.0, 1.0, + 0.0, + ), + 'brightness_multiplicator': GObject.ParamSpec.double( + `brightness_multiplicator`, + `Brightness multiplicator`, + `Brightness multiplicator value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 2.0, + 1.0, + ), + 'contrast': GObject.ParamSpec.double( + `contrast`, + `Contrast`, + `Contrast value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 2.0, + 1.0, + ), + 'contrast_center': GObject.ParamSpec.double( + `contrast_center`, + `Contrast center`, + `Contrast center value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 1.0, + 0.5, + ), + 'saturation_multiplicator': GObject.ParamSpec.double( + `saturation_multiplicator`, + `Saturation multiplicator`, + `Saturation multiplicator value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 2.0, + 1.0, + ), + } + }, class LuminosityEffect extends Clutter.ShaderEffect { + constructor(params) { + super(params); + + utils.setup_params(this, params); + + // set shader source + this._source = utils.get_shader_source(Shell, SHADER_FILENAME, import.meta.url); + if (this._source) + this.set_shader_source(this._source); + } + + static get default_params() { + return DEFAULT_PARAMS; + } + + get brightness_shift() { + return this._brightness; + } + + set brightness_shift(value) { + if (this._brightness_shift !== value) { + this._brightness_shift = value; + + this.set_uniform_value('brightness_shift', parseFloat(this._brightness_shift - 1e-6)); + } + } + + + get brightness_multiplicator() { + return this._brightness_multiplicator; + } + + set brightness_multiplicator(value) { + if (this._brightness_multiplicator !== value) { + this._brightness_multiplicator = value; + + let brightness_mul = 600.; + if (value < 1.995) + brightness_mul = 3. * (1. / (1. - (value / 2.) ** 2) - 1.); + this.set_uniform_value('brightness_multiplicator', parseFloat(brightness_mul - 1e-6)); + } + } + + get contrast() { + return this._contrast; + } + + set contrast(value) { + if (this._contrast !== value) { + this._contrast = value; + + this.set_uniform_value('contrast', parseFloat(this._contrast - 1e-6)); + } + } + + get contrast_center() { + return this._contrast_center; + } + + set contrast_center(value) { + if (this._contrast_center !== value) { + this._contrast_center = value; + + this.set_uniform_value('contrast_center', parseFloat(this._contrast_center - 1e-6)); + } + } + + get saturation_multiplicator() { + return this._saturation_multiplicator; + } + + set saturation_multiplicator(value) { + if (this._saturation_multiplicator !== value) { + this._saturation_multiplicator = value; + + let saturation_mul = 600.; + if (value < 1.995) + saturation_mul = 3. * (1. / (1. - (value / 2.) ** 2) - 1.); + this.set_uniform_value('saturation_multiplicator', parseFloat(saturation_mul - 1e-6)); + } + } + }); \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl index 27b3806..c63d266 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl @@ -35,14 +35,14 @@ void main() { dir = vec2(cos(rv.y), sin(rv.y)); new_uv = uv + rv.x * dir * p; if (new_uv.x > 2. / width && new_uv.y > 2. / height && new_uv.x < 1. - 3. / width && new_uv.y < 1. - 3. / height) { - strength = prefer_closer_pixels ? (iterations - i)^2 : 1; + strength = prefer_closer_pixels ? ((iterations - i) * (iterations - i)) : 1; c += strength * texture2D(tex, new_uv); count += strength; } } if (count == 0 || use_base_pixel) { - strength = prefer_closer_pixels ? (iterations + 1)^2 : 1; + strength = prefer_closer_pixels ? ((iterations + 1) * (iterations + 1)) : 1; c += strength * texture2D(tex, uv); count += strength; } diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js index 556ffa4..3df621b 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js @@ -2,10 +2,17 @@ import GObject from 'gi://GObject'; import * as utils from '../conveniences/utils.js'; const St = await utils.import_in_shell_only('gi://St'); -const Shell = await utils.import_in_shell_only('gi://Shell'); + +let BlurOrShell = await utils.import_in_shell_only('gi://Blur'); +let IS_BLUR_MODULE = true; +if (BlurOrShell === null) { + BlurOrShell = await utils.import_in_shell_only('gi://Shell'); + IS_BLUR_MODULE = false; +} + const DEFAULT_PARAMS = { - unscaled_radius: 30, brightness: 0.6 + unscaled_radius: 30, brightness: 0.6, corner_radius: 14 }; @@ -13,15 +20,21 @@ export const NativeDynamicBlurEffect = utils.IS_IN_PREFERENCES ? { default_params: DEFAULT_PARAMS } : new GObject.registerClass({ GTypeName: "NativeDynamicBlurEffect" - }, class NativeDynamicBlurEffect extends Shell.BlurEffect { + }, class NativeDynamicBlurEffect extends BlurOrShell.BlurEffect { constructor(params) { - const { unscaled_radius, brightness, ...parent_params } = params; - super({ ...parent_params, mode: Shell.BlurMode.BACKGROUND }); + const { unscaled_radius, brightness, corner_radius, ...parent_params } = params; + if (IS_BLUR_MODULE) + super({ ...parent_params, mode: BlurOrShell.BlurMode.BACKGROUND, ...{ 'corner_radius': corner_radius } }); + else + super({ ...parent_params, mode: BlurOrShell.BlurMode.BACKGROUND }); this._theme_context = St.ThemeContext.get_for_stage(global.stage); this._theme_context.connectObject( 'notify::scale-factor', - _ => this.radius = this.unscaled_radius * this._theme_context.scale_factor, + _ => { + this.radius = this.unscaled_radius * this._theme_context.scale_factor; + this.corner_radius = this.unscaled_corner_radius * this._theme_context.scale_factor; + }, this ); @@ -40,4 +53,13 @@ export const NativeDynamicBlurEffect = utils.IS_IN_PREFERENCES ? this._unscaled_radius = value; this.radius = value * this._theme_context.scale_factor; } - }); \ No newline at end of file + + get unscaled_corner_radius() { + return this._unscaled_corner_radius; + } + + set unscaled_corner_radius(value) { + this._unscaled_corner_radius = value; + this.corner_radius = value * this._theme_context.scale_factor; + } + }); diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/extension.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/extension.js index fbfb54c..b94ac65 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/extension.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/extension.js @@ -6,6 +6,7 @@ import * as Config from 'resource:///org/gnome/shell/misc/config.js'; import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js'; import { update_from_old_settings } from './conveniences/settings_updater.js'; +import { import_in_shell_only} from './conveniences/utils.js'; import { PipelinesManager } from './conveniences/pipelines_manager.js'; import { EffectsManager } from './conveniences/effects_manager.js'; import { Connections } from './conveniences/connections.js'; @@ -22,6 +23,8 @@ import { CoverflowAltTabBlur } from './components/coverflow_alt_tab.js'; import { ApplicationsBlur } from './components/applications.js'; import { ScreenshotBlur } from './components/screenshot.js'; +const BlurModule = await import_in_shell_only('gi://Blur'); + /// The main extension class, created when the GNOME Shell is loaded. export default class BlurMyShell extends Extension { @@ -80,6 +83,9 @@ export default class BlurMyShell extends Extension { if (this._settings.lockscreen.BLUR && !this._lockscreen_blur.enabled) this._lockscreen_blur.enable(); + // update whether or not the external rounded corners library was found + this._update_rounded_blur_found(); + // ensure we take the correct action for the current session mode this._user_session_mode_enabled = false; this._on_session_mode_changed(Main.sessionMode); @@ -241,6 +247,19 @@ export default class BlurMyShell extends Extension { } } + /// Verify whether or not the gi://Blur library was found, in order to inform + /// the preferences and instruct the user to install it to have native rounded + /// corners in dynamic blur. + _update_rounded_blur_found() { + if (BlurModule === null) { + this._settings.ROUNDED_BLUR_FOUND = false; + this._log("using original implementation for the native blur effect") + } else { + this._settings.ROUNDED_BLUR_FOUND = true; + this._log("using external library for the native blur effect") + } + } + /// Add or remove the clutter debug flag to disable clipped redraws. /// This will entirely fix the blur effect, but should not be used except if /// the user really needs it, as clipped redraws are a huge performance @@ -488,6 +507,12 @@ export default class BlurMyShell extends Extension { this._applications_blur.change_pipeline(); }); + // rounded corners on maximized windows changed + this._settings.applications.CORNER_WHEN_MAXIMIZED_changed(() => { + if (this._settings.applications.BLUR) + this._applications_blur.update_all_corner_radii(); + }); + // application opacity changed this._settings.applications.OPACITY_changed(() => { if (this._settings.applications.BLUR) diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo index 7fd4c31..f2d9c65 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo index aac168e..91de0ee 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo index 9d8da30..4ee26cb 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo index f804035..24e8c8e 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo index 8f46756..dd5449c 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo index 923e3e6..2146336 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo index c671ffa..b7b834c 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo new file mode 100644 index 0000000..76f5653 Binary files /dev/null and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo index 352d3bc..4d2e14b 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo index 4e50603..1aad6d7 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo index a3a72a3..170aa00 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo index d3801bb..cc8296a 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo index 45ed92c..a3069ab 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo index 40e34c4..d691689 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo index 034f55a..57b3f28 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo index a6fc86a..8417c89 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo index 12d1d52..4d399d4 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo index f38aa09..8511645 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo index 9088bf3..f59c043 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo index 50cdf68..c602b17 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo index a1a3517..0a4628a 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo index 47fc350..06f939a 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo index 10d3aa1..5c09505 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo index 3dcad8d..5bc86f8 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo index dd7822e..799ffb8 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo index f7ba1de..b04ae12 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo index 34b6505..c53d8a9 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo index c7bc46f..0d77d9b 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo index 8fc6e3d..6503f17 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo index 04fce82..46845e8 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo index 9957d99..cfdddf3 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo index 385f8fa..7a65c0e 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo index 7b84952..7b5f217 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo index 20e60f5..427900f 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/metadata.json b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/metadata.json index cce8059..f933c08 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/metadata.json +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/metadata.json @@ -24,5 +24,5 @@ ], "url": "https://github.com/aunetx/blur-my-shell", "uuid": "blur-my-shell@aunetx", - "version": 71 + "version": 72 } \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/applications.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/applications.js index a4dd5be..49d2245 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/applications.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/applications.js @@ -37,6 +37,11 @@ export const Applications = GObject.registerClass({ 'sigma', 'brightness_row', 'brightness', + 'corner_radius_not_found_row', + 'corner_radius_row', + 'corner_radius', + 'corner_when_maximized_row', + 'corner_when_maximized', 'opacity', 'dynamic_opacity', 'blur_on_overview', @@ -97,6 +102,14 @@ export const Applications = GObject.registerClass({ 'brightness', this._brightness, 'value', Gio.SettingsBindFlags.DEFAULT ); + this.preferences.applications.settings.bind( + 'corner-radius', this._corner_radius, 'value', + Gio.SettingsBindFlags.DEFAULT + ); + this.preferences.applications.settings.bind( + 'corner-when-maximized', this._corner_when_maximized, 'active', + Gio.SettingsBindFlags.DEFAULT + ); // connect 'enable all' button to whitelist/blacklist visibility this._enable_all.bind_property( @@ -213,5 +226,9 @@ export const Applications = GObject.registerClass({ this._pipeline_choose_row.set_visible(is_static_blur); this._sigma_row.set_visible(!is_static_blur); this._brightness_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + //this._corner_when_maximized_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + this._corner_radius_not_found_row.set_visible(!is_static_blur && !this.preferences.ROUNDED_BLUR_FOUND); } -}); \ No newline at end of file +}); diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/dash.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/dash.js index aae3768..147c135 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/dash.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/dash.js @@ -16,6 +16,9 @@ export const Dash = GObject.registerClass({ 'sigma', 'brightness_row', 'brightness', + 'corner_radius_not_found_row', + 'corner_radius_row', + 'corner_radius', 'override_background', 'style_dash_to_dock', 'unblur_in_overview' @@ -54,6 +57,10 @@ export const Dash = GObject.registerClass({ 'brightness', this._brightness, 'value', Gio.SettingsBindFlags.DEFAULT ); + this.preferences.dash_to_dock.settings.bind( + 'corner-radius', this._corner_radius, 'value', + Gio.SettingsBindFlags.DEFAULT + ); this.preferences.dash_to_dock.settings.bind( 'override-background', this._override_background, 'enable-expansion', @@ -77,5 +84,7 @@ export const Dash = GObject.registerClass({ this._pipeline_choose_row.set_visible(is_static_blur); this._sigma_row.set_visible(!is_static_blur); this._brightness_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + this._corner_radius_not_found_row.set_visible(!is_static_blur && !this.preferences.ROUNDED_BLUR_FOUND); } -}); \ No newline at end of file +}); diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/panel.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/panel.js index c49f323..1115710 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/panel.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/panel.js @@ -16,6 +16,9 @@ export const Panel = GObject.registerClass({ 'sigma', 'brightness_row', 'brightness', + 'corner_radius_not_found_row', + 'corner_radius_row', + 'corner_radius', 'unblur_in_overview', 'force_light_text', 'override_background', @@ -58,6 +61,10 @@ export const Panel = GObject.registerClass({ 'brightness', this._brightness, 'value', Gio.SettingsBindFlags.DEFAULT ); + this.preferences.panel.settings.bind( + 'corner-radius', this._corner_radius, 'value', + Gio.SettingsBindFlags.DEFAULT + ); this.preferences.panel.settings.bind( 'unblur-in-overview', this._unblur_in_overview, 'active', Gio.SettingsBindFlags.DEFAULT @@ -98,5 +105,7 @@ export const Panel = GObject.registerClass({ this._pipeline_choose_row.set_visible(is_static_blur); this._sigma_row.set_visible(!is_static_blur); this._brightness_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + this._corner_radius_not_found_row.set_visible(!is_static_blur && !this.preferences.ROUNDED_BLUR_FOUND); } -}); \ No newline at end of file +}); diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js index 130edfd..3a95d49 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js @@ -154,18 +154,24 @@ export const EffectRow = GObject.registerClass({ width_request: 75, height_request: 45, show_editor: true, - use_alpha: true + use_alpha: param.use_alpha }); row.add_suffix(color_button); // set original color let c = color_button.get_rgba().copy(); - [c.red, c.green, c.blue, c.alpha] = this.get_effect_param(param_key); + if (param.use_alpha) + [c.red, c.green, c.blue, c.alpha] = this.get_effect_param(param_key); + else + [c.red, c.green, c.blue] = this.get_effect_param(param_key); color_button.set_rgba(c); // update on on 'color-set' color_button.connect( 'color-set', () => { let c = color_button.get_rgba(); - this.set_effect_param(param_key, [c.red, c.green, c.blue, c.alpha]); + if (param.use_alpha) + this.set_effect_param(param_key, [c.red, c.green, c.blue, c.alpha]); + else + this.set_effect_param(param_key, [c.red, c.green, c.blue]); } ); break; diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/prefs.js b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/prefs.js index 43c4889..b3d7980 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/prefs.js +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/prefs.js @@ -1,5 +1,6 @@ import Gdk from 'gi://Gdk'; import Gtk from 'gi://Gtk'; +import Gio from 'gi://Gio'; import { ExtensionPreferences } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; import { update_from_old_settings } from './conveniences/settings_updater.js'; @@ -34,6 +35,17 @@ export default class BlurMyShellPreferences extends ExtensionPreferences { // update from old settings, very important for hacks level specifically update_from_old_settings(this.getSettings()); + const actionGroup = new Gio.SimpleActionGroup(); + window.insert_action_group('link', actionGroup); + const action = new Gio.SimpleAction({ name: 'open-gnome-rounded-blur' }); + action.connect('activate', () => { + Gio.AppInfo.launch_default_for_uri( + 'https://github.com/aunetx/blur-my-shell/blob/master/scripts/GUIDE.md', + null + ); + }); + actionGroup.add_action(action); + const preferences = new Settings(KEYS, this.getSettings()); const pipelines_manager = new PipelinesManager(preferences); diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/gschemas.compiled b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/gschemas.compiled index c2b6708..eb8b556 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/gschemas.compiled and b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/gschemas.compiled differ diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml index 7526e30..2c03cc9 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml @@ -84,6 +84,11 @@ 1 Level of hacks to use (from 0 to 2, 2 disabling clipped redraws entirely) + + + false + Boolean, set to true if a patched version of ShellBlurEffect was found + false @@ -226,6 +231,11 @@ 0.6 Brightness to use for the blur effect + + + 0 + Radius for the corner rounding effect + (0.,0.,0.,0.) @@ -338,7 +348,7 @@ - 12 + 18 Radius for the corner rounding effect @@ -376,6 +386,16 @@ 1. Brightness to use for the blur effect + + + 15 + Radius for the corner rounding effect + + + + false + Boolean, whether to keep rounding the corners of fullscreen and maximized window or not + (0.,0.,0.,0.) @@ -592,4 +612,4 @@ Boolean, whether to blur the original panel (if option selected) with Dash to Panel - \ No newline at end of file + diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/applications.ui b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/applications.ui index 14c9364..e7b57fa 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/applications.ui +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/applications.ui @@ -109,6 +109,47 @@ To get the best results possible, although with reduced performances, you can ch + + + Corner radius + In order to use rounded corners, please install the GNOME Rounded Blur library. + + open_gnome_rounded_blur + + + + external-link-symbolic + center + link.open-gnome-rounded-blur + + + + + + + + Corner radius + Radius for the corner rounding effect. + corner_radius + + + + + + + Enable corner rounding on maximized and fullscreen + Corner rounding effect will keep being applied to maximized and fullscreen windows. + corner_when_maximized + + + + + center + + + + + Opacity @@ -268,6 +309,12 @@ Use * to match any sequence of characters (e.g., Firefox* or *Code*), and ? for 0.01 + + 0 + 150 + 1 + + 25 255 diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/dash.ui b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/dash.ui index b08a4d1..e95f606 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/dash.ui +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/dash.ui @@ -108,6 +108,32 @@ + + + Corner radius + In order to use rounded corners, please install the GNOME Rounded Blur library. + + open_gnome_rounded_blur + + + + external-link-symbolic + center + link.open-gnome-rounded-blur + + + + + + + + Corner radius + Radius for the corner rounding effect. + corner_radius + + + + Override background @@ -161,6 +187,12 @@ 1.0 0.01 + + + 0 + 150 + 1 + @@ -169,4 +201,4 @@ Dark - \ No newline at end of file + diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/effects-dialog.ui b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/effects-dialog.ui index c6baf62..6428766 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/effects-dialog.ui +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/effects-dialog.ui @@ -62,6 +62,11 @@ + + + In order to have rounded corners on a component, add a “Corner” effect at the end of its pipeline. + + diff --git a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/panel.ui b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/panel.ui index 306f4ef..eb9df61 100644 --- a/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/panel.ui +++ b/gnome/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/ui/panel.ui @@ -108,6 +108,32 @@ + + + Corner radius + In order to use rounded corners, please install the GNOME Rounded Blur library. + + open_gnome_rounded_blur + + + + external-link-symbolic + center + link.open-gnome-rounded-blur + + + + + + + + Corner radius + Radius for the corner rounding effect. + corner_radius + + + + Force light text @@ -237,4 +263,10 @@ Recommended unless you want to customize your GNOME theme. 1.0 0.01 + + + 0 + 150 + 1 + \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/metadata.json b/gnome/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/metadata.json index 7f3973e..df6df33 100644 --- a/gnome/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/metadata.json +++ b/gnome/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/metadata.json @@ -13,5 +13,5 @@ ], "url": "https://github.com/SUPERCILEX/gnome-clipboard-history", "uuid": "clipboard-history@alexsaveau.dev", - "version": 47 -} + "version": 48 +} \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/config.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/config.js index 0f26fcb..5902b8a 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/config.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/config.js @@ -3,7 +3,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later export default { - PACKAGE_VERSION: 71, + PACKAGE_VERSION: 72, PACKAGE_URL: 'https://github.com/GSConnect/gnome-shell-extension-gsconnect', PACKAGE_BUGREPORT: 'https://github.com/GSConnect/gnome-shell-extension-gsconnect/issues/new', PACKAGE_DATADIR: '/usr/local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io', diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences index b16ddc7..652f6b2 100755 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences @@ -1,104 +1,19 @@ -#!/usr/bin/env -S gjs -m +#!/bin/sh -// SPDX-FileCopyrightText: GSConnect Developers https://github.com/GSConnect -// -// SPDX-License-Identifier: GPL-2.0-or-later +# SPDX-FileCopyrightText: GSConnect Developers https://github.com/GSConnect +# +# SPDX-License-Identifier: GPL-2.0-or-later -// -*- mode: js; -*- +fallback_dir=$HOME/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/ -import Gdk from 'gi://Gdk?version=3.0'; -import 'gi://GdkPixbuf?version=2.0'; -import Gio from 'gi://Gio?version=2.0'; -import GLib from 'gi://GLib?version=2.0'; -import GObject from 'gi://GObject?version=2.0'; -import Gtk from 'gi://Gtk?version=3.0'; +if [ ! -f "./gsconnect-preferences.js" ]; then + # Try to find home path + extension_dir="$(dirname "$(realpath "$(command -v "$0")")")" + # try even harder + if [ ! -d "$extension_dir" ]; then + extension_dir="$fallback_dir" + fi + cd "$extension_dir" || exit 1 +fi +exec /usr/bin/env gjs -m gsconnect-preferences.js -import system from 'system'; - -import './preferences/init.js'; -import {Window} from './preferences/service.js'; -import Config from './config.js'; - -import('gi://GioUnix?version=2.0').catch(() => {}); // Set version for optional dependency - - -/** - * Class representing the GSConnect service daemon. - */ -const Preferences = GObject.registerClass({ - GTypeName: 'GSConnectPreferences', - Implements: [Gio.ActionGroup], -}, class Preferences extends Gtk.Application { - - _init() { - super._init({ - application_id: 'org.gnome.Shell.Extensions.GSConnect.Preferences', - resource_base_path: '/org/gnome/Shell/Extensions/GSConnect', - }); - - GLib.set_prgname('gsconnect-preferences'); - GLib.set_application_name(_('GSConnect Preferences')); - } - - vfunc_activate() { - if (this._window === undefined) { - this._window = new Window({ - application: this, - }); - } - - this._window.present(); - } - - vfunc_startup() { - super.vfunc_startup(); - - // Init some resources - const provider = new Gtk.CssProvider(); - provider.load_from_resource(`${Config.APP_PATH}/application.css`); - Gtk.StyleContext.add_provider_for_screen( - Gdk.Screen.get_default(), - provider, - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION - ); - - const actions = [ - ['refresh', null], - ['connect', GLib.VariantType.new('s')], - ]; - - for (const [name, type] of actions) { - const action = new Gio.SimpleAction({ - name: name, - parameter_type: type, - }); - this.add_action(action); - } - } - - vfunc_activate_action(action_name, parameter) { - try { - const paramArray = []; - - if (parameter instanceof GLib.Variant) - paramArray[0] = parameter; - - this.get_dbus_connection().call( - 'org.gnome.Shell.Extensions.GSConnect', - '/org/gnome/Shell/Extensions/GSConnect', - 'org.freedesktop.Application', - 'ActivateAction', - GLib.Variant.new('(sava{sv})', [action_name, paramArray, {}]), - null, - Gio.DBusCallFlags.NONE, - -1, - null, - null - ); - } catch (e) { - logError(e); - } - } -}); - -await (new Preferences()).runAsync([system.programInvocationName].concat(ARGV)); diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences.js new file mode 100644 index 0000000..e2b1efe --- /dev/null +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/gsconnect-preferences.js @@ -0,0 +1,102 @@ +// SPDX-FileCopyrightText: GSConnect Developers https://github.com/GSConnect +// +// SPDX-License-Identifier: GPL-2.0-or-later + +// -*- mode: js; -*- + +import Gdk from 'gi://Gdk?version=3.0'; +import 'gi://GdkPixbuf?version=2.0'; +import Gio from 'gi://Gio?version=2.0'; +import GLib from 'gi://GLib?version=2.0'; +import GObject from 'gi://GObject?version=2.0'; +import Gtk from 'gi://Gtk?version=3.0'; + +import system from 'system'; + +import './preferences/init.js'; +import {Window} from './preferences/service.js'; +import Config from './config.js'; + +import('gi://GioUnix?version=2.0').catch(() => {}); // Set version for optional dependency + + +/** + * Class representing the GSConnect service daemon. + */ +const Preferences = GObject.registerClass({ + GTypeName: 'GSConnectPreferences', + Implements: [Gio.ActionGroup], +}, class Preferences extends Gtk.Application { + + _init() { + super._init({ + application_id: 'org.gnome.Shell.Extensions.GSConnect.Preferences', + resource_base_path: '/org/gnome/Shell/Extensions/GSConnect', + }); + + GLib.set_prgname('gsconnect-preferences'); + GLib.set_application_name(_('GSConnect Preferences')); + } + + vfunc_activate() { + if (this._window === undefined) { + this._window = new Window({ + application: this, + }); + } + + this._window.present(); + } + + vfunc_startup() { + super.vfunc_startup(); + + // Init some resources + const provider = new Gtk.CssProvider(); + provider.load_from_resource(`${Config.APP_PATH}/application.css`); + Gtk.StyleContext.add_provider_for_screen( + Gdk.Screen.get_default(), + provider, + Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION + ); + + const actions = [ + ['refresh', null], + ['connect', GLib.VariantType.new('s')], + ]; + + for (const [name, type] of actions) { + const action = new Gio.SimpleAction({ + name: name, + parameter_type: type, + }); + this.add_action(action); + } + } + + vfunc_activate_action(action_name, parameter) { + try { + const paramArray = []; + + if (parameter instanceof GLib.Variant) + paramArray[0] = parameter; + + this.get_dbus_connection().call( + 'org.gnome.Shell.Extensions.GSConnect', + '/org/gnome/Shell/Extensions/GSConnect', + 'org.freedesktop.Application', + 'ActivateAction', + GLib.Variant.new('(sava{sv})', [action_name, paramArray, {}]), + null, + Gio.DBusCallFlags.NONE, + -1, + null, + null + ); + } catch (e) { + logError(e); + } + } +}); + +await (new Preferences()).runAsync([system.programInvocationName].concat(ARGV)); diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/ko/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/ko/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo index 8e32044..f90cf8f 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/ko/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo and b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/ko/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/lt/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/lt/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo index fbb38b5..bcc0783 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/lt/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo and b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/lt/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/ro/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/ro/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo new file mode 100644 index 0000000..e5e6538 Binary files /dev/null and b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/locale/ro/LC_MESSAGES/org.gnome.Shell.Extensions.GSConnect.mo differ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/metadata.json b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/metadata.json index f6c5cda..cafbc1f 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/metadata.json +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/metadata.json @@ -6,9 +6,10 @@ "46", "47", "48", - "49" + "49", + "50" ], "url": "https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki", "uuid": "gsconnect@andyholmes.github.io", - "version": 71 + "version": 72 } \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/prefs.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/prefs.js index 7937bab..e4d38f8 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/prefs.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/prefs.js @@ -26,7 +26,8 @@ export default class GSConnectExtensionPreferences extends ExtensionPreferences window.close(); }); - Gio.Subprocess.new([`${this.path}/gsconnect-preferences`], 0); + const _launcher = Gio.SubprocessLauncher.new({flags: Gio.SubprocessFlags.NONE}); + _launcher.set_cwd(this.path); + _launcher.spawnv(['gjs', '-m', 'gsconnect-preferences.js']); } } - diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/backends/lan.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/backends/lan.js index fc08f3f..bd6ee08 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/backends/lan.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/backends/lan.js @@ -411,9 +411,9 @@ export const ChannelService = GObject.registerClass({ /** * Broadcast an identity packet * - * If @address is not %null it may specify an IPv4 or IPv6 address to send - * the identity packet directly to, otherwise it will be broadcast to the - * default address, 255.255.255.255. + * If {@link address] is not %null it may specify an IPv4 or IPv6 address + * to send the identity packet directly to, otherwise it will be broadcast + * to the default address, 255.255.255.255. * * @param {string} [address] - An optional target IPv4 or IPv6 address */ @@ -773,9 +773,8 @@ export const Channel = GObject.registerClass({ // Starting with protocol version 8, the devices are expected to // exchange identity packets again after TLS negotiation - if (this.identity.body.protocolVersion >= 8) { + if (this.identity.body.protocolVersion >= 8) await this._exchangeIdentities(); - } } catch (e) { this.close(); throw e; @@ -803,9 +802,8 @@ export const Channel = GObject.registerClass({ // Starting with protocol version 8, the devices are expected to // exchange identity packets again after TLS negotiation - if (this.identity.body.protocolVersion >= 8) { + if (this.identity.body.protocolVersion >= 8) await this._exchangeIdentities(); - } } catch (e) { this.close(); throw e; diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/contacts.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/contacts.js index cd30c4a..68cf4c9 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/contacts.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/contacts.js @@ -463,8 +463,8 @@ const Store = GObject.registerClass({ } /** - * Lookup a contact for each address object in @addresses and return a - * dictionary of address (eg. phone number) to contact object. + * Lookup a contact for each address object in {@link addresses} and return + * a dictionary of address (eg. phone number) to contact object. * * { "555-5555": { "name": "...", "numbers": [], ... } } * diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/index.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/index.js index 302dbbe..be31487 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/index.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/index.js @@ -41,7 +41,7 @@ const Default = new Map(); * followed by a call to `release()`. * * @param {string} name - The module name - * @returns {*} The default instance of a component + * @returns {object} The default instance of a component */ export function acquire(name) { if (functionOverrides.acquire) diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/notification.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/notification.js index 36dc482..26d1149 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/notification.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/notification.js @@ -9,6 +9,12 @@ import GObject from 'gi://GObject'; import * as DBus from '../utils/dbus.js'; +// DesktopAppInfo is no longer in Gio in GNOME 49 +let GioUnix; +GioUnix = import('gi://GioUnix?version=2.0').catch(() => { + GioUnix = Gio; +}); + const _nodeInfo = Gio.DBusNodeInfo.new_for_xml(` @@ -100,7 +106,7 @@ const Listener = GObject.registerClass({ path: `/org/gnome/desktop/notifications/application/${app}/`, }); - const appInfo = Gio.DesktopAppInfo.new( + const appInfo = GioUnix.DesktopAppInfo.new( appSettings.get_string('application-id') ); @@ -140,10 +146,10 @@ const Listener = GObject.registerClass({ } /** - * Try and find a well-known name for @sender on the session bus + * Try and find a well-known name for {@link sender} on the session bus * * @param {string} sender - A DBus unique name (eg. :1.2282) - * @param {string} appName - @appName passed to Notify() (Optional) + * @param {string} appName - appName passed to Notify() (Optional) * @returns {string} A well-known name or %null */ async _getAppId(sender, appName) { @@ -185,7 +191,7 @@ const Listener = GObject.registerClass({ } /** - * Try and find the application name for @sender + * Try and find the application name for {@link sender} * * @param {string} sender - A DBus unique name * @param {string} [appName] - `appName` supplied by Notify() @@ -198,7 +204,7 @@ const Listener = GObject.registerClass({ try { const appId = await this._getAppId(sender, appName); - const appInfo = Gio.DesktopAppInfo.new(`${appId}.desktop`); + const appInfo = GioUnix.DesktopAppInfo.new(`${appId}.desktop`); this._names[appName] = appInfo.get_name(); appName = appInfo.get_name(); } catch { @@ -213,10 +219,26 @@ const Listener = GObject.registerClass({ * * @param {DBus.Interface} iface - The DBus interface * @param {string} name - The DBus method name - * @param {GLib.Variant} parameters - The method parameters - * @param {Gio.DBusMethodInvocation} invocation - The method invocation info + * @param {GLib.Variant|Gio.DBusMethodInvocation} param1 - The method parameters or invocation (GNOME 50+ changed order) + * @param {Gio.DBusMethodInvocation|GLib.Variant} param2 - The method invocation or parameters (GNOME 50+ changed order) */ - async _onHandleMethodCall(iface, name, parameters, invocation) { + async _onHandleMethodCall(iface, name, param1, param2) { + let invocation, parameters; + + // GNOME 50+ changed the callback signature from + // (iface, name, parameters, invocation) to + // (iface, name, invocation, parameters) + // Detect which order is being used + if (param1 instanceof GLib.Variant) { + // Old order: parameters, invocation + parameters = param1; + invocation = param2; + } else { + // New order: invocation, parameters + invocation = param1; + parameters = param2; + } + try { // Check if notifications are disabled in desktop settings if (!this._settings.get_boolean('show-banners')) @@ -357,7 +379,7 @@ const Listener = GObject.registerClass({ if (application === 'org.gnome.Shell.Extensions.GSConnect') return; - const appInfo = Gio.DesktopAppInfo.new(`${application}.desktop`); + const appInfo = GioUnix.DesktopAppInfo.new(`${application}.desktop`); // Try to get an icon for the notification if (!notification.hasOwnProperty('icon')) diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/pulseaudio.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/pulseaudio.js index 67dd63f..4b2b168 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/pulseaudio.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/components/pulseaudio.js @@ -80,7 +80,7 @@ class Stream { } /** - * Gradually raise or lower the stream volume to @value + * Gradually raise or lower the stream volume to {@link value} * * @param {number} value - A number in the range 0-1 * @param {number} [duration] - Duration to fade in seconds diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/core.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/core.js index 36948d8..67e34a6 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/core.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/core.js @@ -107,7 +107,7 @@ export class Packet { /** * Check if the packet has a payload. * - * @returns {boolean} %true if @packet has a payload + * @returns {boolean} %true if the packet has a payload */ hasPayload() { if (!this.hasOwnProperty('payloadSize')) @@ -386,7 +386,7 @@ export const ChannelService = GObject.registerClass({ } /** - * Broadcast directly to @address or the whole network if %null + * Broadcast directly to {@link address} or the whole network if %null * * @param {string} [address] - A string address */ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/daemon.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/daemon.js index b241434..dda8b43 100755 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/daemon.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/daemon.js @@ -17,7 +17,11 @@ import('gi://GIRepository?version=3.0').catch(() => { import('gi://GIRepository?version=2.0').catch(() => {}); }); -import('gi://GioUnix?version=2.0').catch(() => {}); // Set version for optional dependency +// DesktopAppInfo is no longer in Gio in GNOME 49 +let GioUnix; +GioUnix = import('gi://GioUnix?version=2.0').catch(() => { + GioUnix = Gio; +}); import system from 'system'; @@ -206,10 +210,11 @@ const Service = GObject.registerClass({ } _preferences() { - Gio.Subprocess.new( - [`${Config.PACKAGE_DATADIR}/gsconnect-preferences`], - Gio.SubprocessFlags.NONE + const _launcher = Gio.SubprocessLauncher.new( + {flags: Gio.SubprocessFlags.NONE} ); + _launcher.set_cwd(Config.PACKAGE_DATADIR); + _launcher.spawnv(['gjs', '-m', 'gsconnect-preferences.js']); } /** @@ -296,7 +301,7 @@ const Service = GObject.registerClass({ // Ensure our handlers are registered try { - const appInfo = Gio.DesktopAppInfo.new(`${Config.APP_ID}.desktop`); + const appInfo = GioUnix.DesktopAppInfo.new(`${Config.APP_ID}.desktop`); appInfo.add_supports_type('x-scheme-handler/sms'); appInfo.add_supports_type('x-scheme-handler/tel'); } catch (e) { @@ -435,6 +440,15 @@ const Service = GObject.registerClass({ '' ); + this.add_main_option( + 'name', + 'n'.charCodeAt(0), + GLib.OptionFlags.NONE, + GLib.OptionArg.STRING, + _('Target Device Name'), + '' + ); + /** * Pairing */ @@ -710,6 +724,32 @@ const Service = GObject.registerClass({ this._cliAction(device, 'shareText', GLib.Variant.new_string(text)); } + _findDeviceID(name) { + const result = Gio.DBus.session.call_sync( + 'org.gnome.Shell.Extensions.GSConnect', + '/org/gnome/Shell/Extensions/GSConnect', + 'org.freedesktop.DBus.ObjectManager', + 'GetManagedObjects', + null, + null, + Gio.DBusCallFlags.NONE, + -1, + null + ); + + const variant = result.unpack()[0].unpack(); + let device; + + for (let object of Object.values(variant)) { + object = object.recursiveUnpack(); + device = object['org.gnome.Shell.Extensions.GSConnect.Device']; + + if (name === device.Name) + return device.Id; + } + return null; + } + vfunc_handle_local_options(options) { try { if (options.contains('version')) { @@ -731,11 +771,15 @@ const Service = GObject.registerClass({ // We need a device for anything else; exit since this is probably // the daemon being started. - if (!options.contains('device')) + let id = null; + if (options.contains('device')) { + id = options.lookup_value('device', null).unpack(); + } else if (options.contains('name')) { + const name = options.lookup_value('name', null).unpack(); + id = this._findDeviceID(name); // May return null if no match found + } + if (id === null) return -1; - - const id = options.lookup_value('device', null).unpack(); - // Pairing if (options.contains('pair')) { this._cliAction(id, 'pair'); diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/device.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/device.js index 9690730..ce1b0ea 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/device.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/device.js @@ -531,8 +531,8 @@ const Device = GObject.registerClass({ } /** - * Get the position of a GMenuItem with @actionName in the top level of the - * device menu. + * Get the position of a GMenuItem with {@link actionName} in the top level + * of the device menu. * * @param {string} actionName - An action name with scope (eg. device.foo) * @returns {number} An 0-based index or -1 if not found @@ -755,7 +755,7 @@ const Device = GObject.registerClass({ } /** - * Reject the transfer payload described by @packet. + * Reject the transfer payload described by {@link packet}. * * @param {Core.Packet} packet - A packet * @returns {void} diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/init.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/init.js index e6ee47b..5add1b7 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/init.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/init.js @@ -194,7 +194,7 @@ String.prototype.toPhoneNumber = function () { * A simple equality check for phone numbers based on `toPhoneNumber()` * * @param {string} number - A phone number string to compare - * @returns {boolean} If `this` and @number are equivalent phone numbers + * @returns {boolean} If `this` and {@link number} are equivalent phone numbers */ String.prototype.equalsPhoneNumber = function (number) { const a = this.toPhoneNumber(); @@ -241,7 +241,7 @@ Gio.File.rm_rf = function (file) { /** * Extend GLib.Variant with a static method to recursively pack a variant * - * @param {*} [obj] - May be a GLib.Variant, Array, standard Object or literal. + * @param {object} [obj] - May be a GLib.Variant, Array, standard Object or literal. * @returns {GLib.Variant} The resulting GVariant */ function _full_pack(obj) { @@ -297,8 +297,8 @@ GLib.Variant.full_pack = _full_pack; /** * Extend GLib.Variant with a method to recursively deepUnpack() a variant * - * @param {*} [obj] - May be a GLib.Variant, Array, standard Object or literal. - * @returns {*} The resulting object + * @param {object} [obj] - May be a GLib.Variant, Array, standard Object or literal. + * @returns {object} The resulting object */ function _full_unpack(obj) { obj = (obj === undefined) ? this : obj; @@ -353,7 +353,7 @@ GLib.Variant.prototype.full_unpack = _full_unpack; * @param {string} keyPath - Absolute path to a private key in PEM format * @param {string} commonName - A unique common name for the certificate * @returns {Gio.TlsCertificate} A TLS certificate - * @throws MissingOpensslError on missing openssl binary + * @throws {MissingOpensslError} on missing openssl binary */ Gio.TlsCertificate.new_for_paths = function (certPath, keyPath, commonName = null) { if (GLib.find_program_in_path(Config.OPENSSL_PATH) === null) { diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/manager.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/manager.js index c58769e..724eb56 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/manager.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/manager.js @@ -394,7 +394,7 @@ const Manager = GObject.registerClass({ } /** - * Return a device for @packet, creating it and adding it to the list of + * Return a device for {@link packet}, creating it and adding it to the list of * of known devices if it doesn't exist. * * @param {Core.Packet} packet - An identity packet for the device diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/contacts.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/contacts.js index 2a46ad2..882daae 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/contacts.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/contacts.js @@ -440,7 +440,7 @@ const ContactsPlugin = GObject.registerClass({ } /** - * Request the vCards for @uids. + * Request the vCards for {@link uids}. * * @param {string[]} uids - A list of contact UIDs */ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/mousepad.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/mousepad.js index 88a8f17..61e18ba 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/mousepad.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/mousepad.js @@ -316,7 +316,7 @@ const MousepadPlugin = GObject.registerClass({ } /** - * Send an echo/ACK of @input, if requested + * Send an echo/ACK of {@link input}, if requested * * @param {object} input - The body of a 'kdeconnect.mousepad.request' */ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/runcommand.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/runcommand.js index f4e6cd7..dbe2e20 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/runcommand.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/runcommand.js @@ -120,7 +120,7 @@ const RunCommandPlugin = GObject.registerClass({ } /** - * Handle a request to execute the local command with the UUID @key + * Handle a request to execute the local command with the UUID {@link key} * * @param {string} key - The UUID of the local command */ @@ -233,7 +233,7 @@ const RunCommandPlugin = GObject.registerClass({ commands() {} /** - * Send a request to execute the remote command with the UUID @key + * Send a request to execute the remote command with the UUID {@link key} * * @param {string} key - The UUID of the remote command */ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sftp.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sftp.js index 1f2257d..da8bf47 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sftp.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sftp.js @@ -263,8 +263,8 @@ const SFTPPlugin = GObject.registerClass({ } /** - * Remove all host keys from ~/.ssh/known_hosts for @host in the port range - * used by KDE Connect (1739-1764). + * Remove all host keys from ~/.ssh/known_hosts for {@link host} in the + * port range used by KDE Connect (1739-1764). * * @param {string} host - A hostname or IP address */ diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sms.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sms.js index ed0bbc7..3f775e9 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sms.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/sms.js @@ -506,7 +506,7 @@ const SMSPlugin = GObject.registerClass({ } /** - * Try to find a thread_id in @smsPlugin for @addresses. + * Try to find a thread_id in for {@link addresses}. * * @param {object[]} addresses - a list of address objects * @returns {string|null} a thread ID diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/systemvolume.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/systemvolume.js index 388bbb2..3fbc0a8 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/systemvolume.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/plugins/systemvolume.js @@ -113,7 +113,7 @@ const SystemVolumePlugin = GObject.registerClass({ } /** - * Update the cache for @stream + * Update the cache for {@link stream} * * @param {"Gvc.MixerStream"} stream - The stream to cache * @returns {object} The updated cache object diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/contacts.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/contacts.js index 119d757..be89efe 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/contacts.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/contacts.js @@ -14,7 +14,7 @@ import system from 'system'; /** * Return a random color * - * @param {*} [salt] - If not %null, will be used as salt for generating a color + * @param {string} [salt] - If not %null, will be used as salt for generating a color * @param {number} alpha - A value in the [0...1] range for the alpha channel * @returns {Gdk.RGBA} A new Gdk.RGBA object generated from the input */ @@ -72,8 +72,8 @@ function getFgRGBA(rgba) { /** - * Get a GdkPixbuf for @path, allowing the corrupt JPEG's KDE Connect sometimes - * sends. This function is synchronous. + * Get a GdkPixbuf for {@link path}, allowing the corrupt JPEG's KDE Connect + * sometimes sends. This function is synchronous. * * @param {string} path - A local file path * @param {number} size - Size in pixels @@ -159,7 +159,7 @@ function getNumberTypeLabel(type) { } /** - * Get a display number from @contact for @address. + * Get a display number from {@link contact} for {@link address}. * * @param {object} contact - A contact object * @param {string} address - A phone number diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/messaging.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/messaging.js index 40cc5e5..510655e 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/messaging.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/ui/messaging.js @@ -1077,7 +1077,7 @@ export const Window = GObject.registerClass({ } /** - * Find the thread row for @contacts + * Find the thread row for {@link contacts} * * @param {object[]} contacts - A contact group * @returns {ConversationSummary|null} The thread row or %null @@ -1160,7 +1160,7 @@ export const Window = GObject.registerClass({ } /** - * Try and find an existing conversation widget for @message. + * Try and find an existing conversation widget for {@link message}. * * @param {object} message - A message object * @returns {Conversation|null} A conversation widget or %null @@ -1202,8 +1202,8 @@ export const Window = GObject.registerClass({ } /** - * Set the contents of the message entry. If @pending is %false set the - * message of the currently selected conversation, otherwise mark the + * Set the contents of the message entry. If {@link pending} is %false set + * the message of the currently selected conversation, otherwise mark the * message to be set for the next selected conversation. * * @param {string} message - The message to place in the entry diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/dbus.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/dbus.js index bcea5ad..4528693 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/dbus.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/dbus.js @@ -111,11 +111,26 @@ export const Interface = GObject.registerClass({ * @param {Gio.DBusInterfaceInfo} info - The DBus interface * @param {Gio.DBusInterface} iface - The DBus interface * @param {string} name - The DBus method name - * @param {GLib.Variant} parameters - The method parameters - * @param {Gio.DBusMethodInvocation} invocation - The method invocation info + * @param {GLib.Variant|Gio.DBusMethodInvocation} param1 - The method parameters or invocation (GNOME 50+ changed order) + * @param {Gio.DBusMethodInvocation|GLib.Variant} param2 - The method invocation or parameters (GNOME 50+ changed order) */ - async _call(info, iface, name, parameters, invocation) { + async _call(info, iface, name, param1, param2) { let retval; + let invocation, parameters; + + // GNOME 50+ changed the callback signature from + // (iface, name, parameters, invocation) to + // (iface, name, invocation, parameters) + // Detect which order is being used + if (param1 instanceof GLib.Variant) { + // Old order: parameters, invocation + parameters = param1; + invocation = param2; + } else { + // New order: invocation, parameters + invocation = param1; + parameters = param2; + } // Invoke the instance method try { @@ -241,7 +256,7 @@ export const Interface = GObject.registerClass({ }); /** - * Get a new, dedicated DBus connection on @busType + * Get a new, dedicated DBus connection on {@link busType} * * @param {Gio.BusType} [busType] - a Gio.BusType constant * @param {Gio.Cancellable} [cancellable] - an optional Gio.Cancellable diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/uri.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/uri.js index 11cbd74..a9db94a 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/uri.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/utils/uri.js @@ -74,9 +74,9 @@ const _numberRegex = new RegExp( /** - * Searches @str for URLs and returns an array of objects with %url + * Searches {@link str} for URLs and returns an array of objects with %url * properties showing the matched URL string, and %pos properties indicating - * the position within @str where the URL was found. + * the position within {@link str} where the URL was found. * * @param {string} str - the string to search * @returns {object[]} the list of match objects, as described above diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/clipboard.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/clipboard.js index db28b9e..454afcf 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/clipboard.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/clipboard.js @@ -137,8 +137,23 @@ export const Clipboard = GObject.registerClass({ } } - async _onHandleMethodCall(iface, name, parameters, invocation) { + async _onHandleMethodCall(iface, name, param1, param2) { let retval; + let invocation, parameters; + + // GNOME 50+ changed the callback signature from + // (iface, name, parameters, invocation) to + // (iface, name, invocation, parameters) + // Detect which order is being used + if (param1 instanceof GLib.Variant) { + // Old order: parameters, invocation + parameters = param1; + invocation = param2; + } else { + // New order: invocation, parameters + invocation = param1; + parameters = param2; + } try { const args = parameters.recursiveUnpack(); @@ -267,7 +282,7 @@ export const Clipboard = GObject.registerClass({ } /** - * Get the content of the clipboard with the type @mimetype. + * Get the content of the clipboard with the type {@link mimetype}. * * @param {string} mimetype - the mimetype to request * @returns {Promise} The content of the clipboard @@ -296,7 +311,8 @@ export const Clipboard = GObject.registerClass({ } /** - * Set the content of the clipboard to @value with the type @mimetype. + * Set the content of the clipboard to {@link value} with the type + * {@link mimetype}. * * @param {Uint8Array} value - the value to set * @param {string} mimetype - the mimetype of the value diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/gmenu.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/gmenu.js index c85e982..f980fb7 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/gmenu.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/gmenu.js @@ -19,7 +19,7 @@ import Tooltip from './tooltip.js'; * Get a dictionary of a GMenuItem's attributes * * @param {Gio.MenuModel} model - The menu model containing the item - * @param {number} index - The index of the item in @model + * @param {number} index - The index of the item in {@link model} * @returns {object} A dictionary of the item's attributes */ function getItemInfo(model, index) { diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/keybindings.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/keybindings.js index 55031df..563c5e6 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/keybindings.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/keybindings.js @@ -6,6 +6,10 @@ import * as Main from 'resource:///org/gnome/shell/ui/main.js'; import Meta from 'gi://Meta'; import Shell from 'gi://Shell'; +/** + * @callback KeybindingCallback + * @returns {void} + */ /** * Keybindings.Manager is a simple convenience class for managing keyboard @@ -48,8 +52,8 @@ export class Manager { * Add a keybinding with callback * * @param {string} accelerator - An accelerator in the form 'q' - * @param {Function} callback - A callback for the accelerator - * @returns {*} A non-zero action id on success, or 0 on failure + * @param {KeybindingCallback} callback - A callback for the accelerator + * @returns {number} A non-zero action id on success, or 0 on failure */ add(accelerator, callback) { try { @@ -65,6 +69,7 @@ export class Manager { return action; } catch (e) { logError(e); + return 0; } } diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/notification.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/notification.js index 4b95dd7..986ab3f 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/notification.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/shell/notification.js @@ -15,7 +15,7 @@ import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js' import {HAS_MESSAGELIST_NOTIFICATIONMESSAGE, getIcon} from './utils.js'; const {NotificationMessage} = HAS_MESSAGELIST_NOTIFICATIONMESSAGE - ? await import('resource:///org/gnome/shell/ui/messageList.js') // GNOME 48 + ? await import('resource:///org/gnome/shell/ui/messageList.js') // GNOME 48+ : await import('resource:///org/gnome/shell/ui/calendar.js'); // GNOME 46/47 const APP_ID = 'org.gnome.Shell.Extensions.GSConnect'; diff --git a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/wl_clipboard.js b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/wl_clipboard.js index b5e847f..c6977a2 100644 --- a/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/wl_clipboard.js +++ b/gnome/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/wl_clipboard.js @@ -106,8 +106,23 @@ export const Clipboard = GObject.registerClass( } } - async _onHandleMethodCall(iface, name, parameters, invocation) { + async _onHandleMethodCall(iface, name, param1, param2) { let retval; + let invocation, parameters; + + // GNOME 50+ changed the callback signature from + // (iface, name, parameters, invocation) to + // (iface, name, invocation, parameters) + // Detect which order is being used + if (param1 instanceof GLib.Variant) { + // Old order: parameters, invocation + parameters = param1; + invocation = param2; + } else { + // New order: invocation, parameters + invocation = param1; + parameters = param2; + } try { const args = parameters.recursiveUnpack(); diff --git a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/extension.js b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/extension.js index d5a5681..502a1f1 100644 --- a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/extension.js +++ b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/extension.js @@ -1,6 +1,7 @@ import * as Main from "resource:///org/gnome/shell/ui/main.js"; import { Extension } from "resource:///org/gnome/shell/extensions/extension.js"; -import { isMatch } from "./isMatch.js"; +import Shell from "gi://Shell"; +import { NotificationApplicationPolicy } from "resource:///org/gnome/shell/ui/messageTray.js"; export var LogLevel; (function (LogLevel) { LogLevel["DEBUG"] = "debug"; @@ -10,66 +11,123 @@ export var LogLevel; })(LogLevel || (LogLevel = {})); function getObjectLabel(name, values) { const labels = Object.entries(values) - .filter(([_, value]) => value) + .filter((entry) => !!entry[1]) .map(([label, value]) => `${label}: '${value}'`); return `${name}(${labels.join(", ")})`; } -function safeRegexTest(pattern, value) { - try { - return new RegExp(pattern).test(value); - } - catch { - return null; - } -} -function getWindowLabel(window) { +function getWindowLabel(window, app) { return getObjectLabel("Window", { - ["Title"]: window.title, - ["WMClass"]: window.wmClass, - ["GTKAppId"]: window.gtkApplicationId, - ["SandboxedAppId"]: window.get_sandboxed_app_id(), + Title: window.title, + AppId: app?.id ?? null, + GtkAppId: window.gtkApplicationId, + WmClass: window.wmClass, + SandboxedAppId: window.get_sandboxed_app_id(), }); } function getSourceLabel(source) { return getObjectLabel("Source", { - ["Title"]: source.title, - ["Icon"]: source.icon?.to_string(), + Title: source.title, + Icon: source.icon?.to_string() ?? null, + PolicyId: source.policy instanceof NotificationApplicationPolicy + ? source.policy.id + : null, }); } +// libnotify clients without a desktop-entry hint set source.icon to an +// app-identifying string. Compare it against window-side identifiers. +function matchByIcon(icon, window) { + return ( + // Ghostty deb: icon matches GTK app id (com.mitchellh.ghostty) + icon === window.gtkApplicationId || + // Slack Flatpak: icon matches sandboxed app id (com.slack.Slack) + icon === window.get_sandboxed_app_id() || + // Firefox deb: icon matches window manager class (firefox) + icon === window.wmClass); +} +// Snap apps expose icon paths like /snap/firefox/6638/default256.png; their +// sandboxed ids often duplicate the snap name (firefox_firefox). +function matchBySnapIcon(icon, window) { + const snap = /^\/snap\/([^/]+)\//.exec(icon)?.[1]; + if (!snap) + return false; + return window.get_sandboxed_app_id() === `${snap}_${snap}`; +} +function matchByTitle(title, window) { + if (window.title == null) + return false; + return ( + // Proton Mail Bridge: title matches window title + title === window.title || + // Extract app name from composite title separated by " - " or " | ". + // `^.+` is greedy, so the rightmost separator wins: + // "foo.ts - project - Cursor" -> "Cursor", "doc | App" -> "App". + title === /^.+ (-|\|) (.+)$/.exec(window.title)?.[2] || + // Thunderbird: title matches window manager class (thunderbird) + title === window.wmClass || + // Discord snap: title duplicated matches sandboxed app id (discord_discord) + `${title}_${title}` === window.get_sandboxed_app_id()); +} +// Prefer authoritative identifiers (policy id, source icon) when present. +// If an icon is set, do not fall back to title matching; title is a +// last-ditch heuristic reserved for sources that expose neither. +function sourceMatchesApp(source, window, appId) { + if (source.policy instanceof NotificationApplicationPolicy) { + return source.policy.id === appId; + } + const icon = source.icon?.to_string(); + if (icon) + return matchByIcon(icon, window) || matchBySnapIcon(icon, window); + if (source.title) + return matchByTitle(source.title, window); + return false; +} export default class JunkNotificationCleaner extends Extension { focusListenerId = null; closeListenerId = null; settings = null; + windowTracker = Shell.WindowTracker.get_default(); log(level, message) { - let minLevel = this.settings.get_string("log-level"); - const levels = Object.values(LogLevel); - if (!levels.includes(minLevel)) - minLevel = LogLevel.INFO; - if (levels.indexOf(level) >= levels.indexOf(minLevel)) { + // gschema enum maps debug=0, info=1, warn=2, error=3, matching the + // declaration order of LogLevel; compare ints directly. + const minLevelIdx = this.settings?.get_enum("log-level") ?? 1; + if (Object.values(LogLevel).indexOf(level) >= minLevelIdx) { log(`[${this.metadata.uuid}][${level}] ${message}`); } } clearNotificationsForApp(window, event) { - const windowLabel = getWindowLabel(window); + const app = this.windowTracker.get_window_app(window); + const windowLabel = getWindowLabel(window, app); this.log(LogLevel.DEBUG, `${windowLabel}: received ${event}`); - const excludedApps = this.settings.get_strv("excluded-apps"); - for (const wmClassPattern of excludedApps) { - const result = safeRegexTest(wmClassPattern, window.wmClass); - if (result === null) { - this.log(LogLevel.WARN, `${windowLabel}: invalid regex '${wmClassPattern}'`); - } - else if (result) { - this.log(LogLevel.DEBUG, `${windowLabel}: excluded by '${wmClassPattern}'`); - return; - } + const settings = this.settings; + if (!settings) { + this.log(LogLevel.ERROR, `${windowLabel}: settings not initialized`); + return; + } + if (!app) { + this.log(LogLevel.DEBUG, `${windowLabel}: no app associated with window`); + return; + } + // Shell.App.id is the desktop filename (e.g. "org.gnome.Nautilus.desktop"); + // NotificationApplicationPolicy.id stores the same id without the + // ".desktop" suffix, so normalize before comparison. + const appId = app.id.replace(/\.desktop$/, ""); + const excludedApps = settings.get_strv("excluded-apps"); + if (excludedApps.includes(appId)) { + this.log(LogLevel.DEBUG, `${windowLabel}: excluded by app id '${appId}'`); + return; } for (const source of Main.messageTray.getSources()) { - const sourceLabel = getSourceLabel(source); + const label = `${windowLabel}: ${getSourceLabel(source)}`; + const matches = sourceMatchesApp(source, window, appId); for (const notification of [...source.notifications]) { - this.log(LogLevel.DEBUG, `${windowLabel}: ${sourceLabel}: found ${notification.isTransient ? "transient" : "persistent"} notification${notification.title ? `: ${notification.title}` : ""}`); - if (isMatch(window, source) && !notification.isTransient) { + const title = notification.title ?? "(untitled notification)"; + const kind = notification.isTransient ? "transient" : "persistent"; + this.log(LogLevel.DEBUG, `${label}: found ${kind} notification: ${title}`); + if (notification.isTransient) + continue; + if (matches) { notification.destroy(); - this.log(LogLevel.INFO, `${windowLabel}: ${sourceLabel}: removed notification${notification.title ? `: ${notification.title}` : ""}`); + this.log(LogLevel.INFO, `${label}: removed notification: ${title}`); } } } @@ -77,17 +135,18 @@ export default class JunkNotificationCleaner extends Extension { enable() { this.settings = this.getSettings(); this.focusListenerId = global.display.connect("notify::focus-window", ({ focusWindow }) => { - if (this.settings.get_boolean("delete-on-focus") && focusWindow) { + if (this.settings?.get_boolean("delete-on-focus") && focusWindow) { this.clearNotificationsForApp(focusWindow, "focus"); } }); this.closeListenerId = global.window_manager.connect("destroy", (_, { metaWindow }) => { - if (this.settings.get_boolean("delete-on-close") && metaWindow) { + if (this.settings?.get_boolean("delete-on-close") && metaWindow) { this.clearNotificationsForApp(metaWindow, "close"); } }); } disable() { + this.settings = null; if (this.focusListenerId !== null) { global.display.disconnect(this.focusListenerId); this.focusListenerId = null; @@ -96,8 +155,5 @@ export default class JunkNotificationCleaner extends Extension { global.window_manager.disconnect(this.closeListenerId); this.closeListenerId = null; } - if (this.settings) { - this.settings = null; - } } } diff --git a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/isMatch.js b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/isMatch.js deleted file mode 100644 index b96d150..0000000 --- a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/isMatch.js +++ /dev/null @@ -1,36 +0,0 @@ -export function isMatch(window, source) { - if (source.icon) { - const icon = source.icon.to_string(); - if ( - // Ghostty deb: icon matches GTK app id (com.mitchellh.ghostty) - icon === window.gtkApplicationId || - // Slack Flatpak: icon matches sandboxed app id (com.slack.Slack) - icon === window.get_sandboxed_app_id() || - // Firefox deb: icon matches window manager class (firefox) - icon === window.wmClass) { - return true; - } - // Snap apps have icon paths like /snap/firefox/6638/default256.png - const snapAppName = icon?.match(/^\/snap\/([^/]+)\//)?.at(1); - // Snap sandboxed ids use format appname_appname (firefox_firefox) - if (snapAppName) { - if (window.get_sandboxed_app_id() === `${snapAppName}_${snapAppName}`) { - return true; - } - } - } - if (source.title) { - if ( - // Proton Mail Bridge: title matches window title - source.title === window.title || - // Extract app name from composite title (isMatch.ts - junk-notification-cleaner - Cursor) - source.title === window.title?.match(/^.+ (-|\|) (.+)$/)?.[2] || - // Thunderbird: title matches window manager class (thunderbird) - source.title === window.wmClass || - // Discord snap: title duplicated matches sandboxed app id (discord_discord) - `${source.title}_${source.title}` === window.get_sandboxed_app_id()) { - return true; - } - } - return false; -} diff --git a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/metadata.json b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/metadata.json index 30d8c7e..7bc0ba3 100644 --- a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/metadata.json +++ b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/metadata.json @@ -12,5 +12,5 @@ ], "url": "https://github.com/murar8/junk-notification-cleaner", "uuid": "junk-notification-cleaner@murar8.github.com", - "version": 10 -} + "version": 13 +} \ No newline at end of file diff --git a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/prefs.js b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/prefs.js index 4b22d05..06cd2e4 100644 --- a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/prefs.js +++ b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/prefs.js @@ -1,171 +1,272 @@ import Adw from "gi://Adw"; import Gio from "gi://Gio"; +import GioUnix from "gi://GioUnix"; import Gtk from "gi://Gtk"; import { ExtensionPreferences } from "resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js"; -const LOG_LEVELS = ["debug", "info", "warn", "error"]; -function isValidRegex(pattern) { - try { - new RegExp(pattern); - return true; - } - catch { - return false; - } -} +const LOG_LEVELS = [ + "debug", + "info", + "warn", + "error", +]; export default class JunkNotificationCleanerPreferences extends ExtensionPreferences { - async fillPreferencesWindow(window) { - const settings = this.getSettings(); + model; + getPreferencesWidget() { + this.model = new PreferencesModel(this.getSettings()); const page = new Adw.PreferencesPage(); page.set_title("Settings"); page.set_icon_name("preferences-system-symbolic"); - window.add(page); - const generalGroup = new Adw.PreferencesGroup(); - generalGroup.set_title("General Settings"); - page.add(generalGroup); - const focusRow = new Adw.ActionRow({ + page.add(this.buildGeneralGroup()); + page.add(this.buildLoggingGroup()); + page.add(this.buildExcludedAppsGroup()); + return page; + } + buildGeneralGroup() { + const group = new Adw.PreferencesGroup(); + group.set_title("General Settings"); + group.add(this.buildSwitchRow({ + key: "delete-on-focus", title: "Delete on Focus", subtitle: "Delete notifications when an application window is focused.", - }); - const focusSwitch = new Gtk.Switch({ - active: settings.get_boolean("delete-on-focus"), - valign: Gtk.Align.CENTER, - }); - settings.bind("delete-on-focus", focusSwitch, "active", Gio.SettingsBindFlags.DEFAULT); - focusRow.add_suffix(focusSwitch); - generalGroup.add(focusRow); - const closeRow = new Adw.ActionRow({ + })); + group.add(this.buildSwitchRow({ + key: "delete-on-close", title: "Delete on Close", subtitle: "Delete notifications when an application window is closed.", + })); + return group; + } + buildSwitchRow(opts) { + const row = new Adw.ActionRow({ + title: opts.title, + subtitle: opts.subtitle, }); - const closeSwitch = new Gtk.Switch({ - active: settings.get_boolean("delete-on-close"), - valign: Gtk.Align.CENTER, - }); - settings.bind("delete-on-close", closeSwitch, "active", Gio.SettingsBindFlags.DEFAULT); - closeRow.add_suffix(closeSwitch); - generalGroup.add(closeRow); - const debugGroup = new Adw.PreferencesGroup(); - debugGroup.set_title("Logging"); - page.add(debugGroup); - const logLevelRow = new Adw.ActionRow({ + const toggle = new Gtk.Switch({ valign: Gtk.Align.CENTER }); + this.model.bindDeleteTrigger(opts.key, toggle, "active"); + row.add_suffix(toggle); + return row; + } + buildLoggingGroup() { + const group = new Adw.PreferencesGroup(); + group.set_title("Logging"); + const row = new Adw.ActionRow({ title: "Log Level", subtitle: "Set the logging level for troubleshooting notification matching.", }); - const logLevelDropdown = new Gtk.DropDown({ - model: Gtk.StringList.new(LOG_LEVELS), + const dropdown = new Gtk.DropDown({ + model: Gtk.StringList.new([...LOG_LEVELS]), valign: Gtk.Align.CENTER, }); - let currentLogLevel = settings.get_string("log-level") || "info"; - const currentIndex = LOG_LEVELS.indexOf(currentLogLevel); - if (currentIndex !== -1) { - logLevelDropdown.set_selected(currentIndex); - } - logLevelDropdown.connect("notify::selected", () => { - const selectedIndex = logLevelDropdown.get_selected(); - settings.set_string("log-level", LOG_LEVELS[selectedIndex]); + this.bindLogLevelDropdown(dropdown); + row.add_suffix(dropdown); + group.add(row); + return group; + } + bindLogLevelDropdown(dropdown) { + const sync = () => { + dropdown.set_selected(this.model.getLogLevelIndex()); + }; + sync(); + const changedId = this.model.onLogLevelChanged(sync); + dropdown.connect("notify::selected", (dd) => { + this.model.setLogLevelIndex(dd.get_selected()); }); - logLevelRow.add_suffix(logLevelDropdown); - debugGroup.add(logLevelRow); - const excludedGroup = new Adw.PreferencesGroup(); - excludedGroup.set_title("Excluded WM Classes"); - excludedGroup.set_description([ - "Window Manager Classes whose notifications will not be automatically deleted.", - "Will be matched against the wm_class property of the window, supports ECMAScript regular expressions.", - ].join("\n")); - page.add(excludedGroup); - const excludedBox = new Gtk.Box({ - orientation: Gtk.Orientation.VERTICAL, - margin_top: 8, - margin_bottom: 8, - margin_start: 8, - margin_end: 8, - spacing: 8, + dropdown.connect("destroy", () => { + this.model.disconnect(changedId); }); - const excludedApps = settings.get_strv("excluded-apps"); + } + buildExcludedAppsGroup() { + const group = new Adw.PreferencesGroup(); + group.set_title("Excluded Applications"); + group.set_description("Applications whose notifications will not be automatically deleted."); + const listBox = this.buildExcludedAppsList(); + const addButton = new Gtk.Button({ + icon_name: "list-add-symbolic", + tooltip_text: "Add application", + css_classes: ["flat"], + valign: Gtk.Align.CENTER, + }); + addButton.connect("clicked", (btn) => { + const parent = btn.get_root(); + this.openAppSelector(parent, (appId) => { + this.model.addExcludedApp(appId); + }); + }); + group.set_header_suffix(addButton); + group.add(listBox); + return group; + } + buildExcludedAppsList() { const listBox = new Gtk.ListBox({ selection_mode: Gtk.SelectionMode.NONE, css_classes: ["boxed-list"], }); - excludedBox.append(listBox); - for (const app of excludedApps) { - this.addExcludedAppRow(app, listBox, settings); - } - const addBox = new Gtk.Box({ - orientation: Gtk.Orientation.HORIZONTAL, - spacing: 8, - margin_top: 8, + listBox.set_placeholder(new Gtk.Label({ + label: "No excluded applications.", + css_classes: ["dim-label"], + margin_top: 12, + margin_bottom: 12, + })); + this.rebuildExcludedAppsList(listBox); + const handlerId = this.model.onExcludedAppsChanged(() => { + this.rebuildExcludedAppsList(listBox); }); - const entry = new Gtk.Entry({ - placeholder_text: "Enter WM Class regex (e.g. .*firefox.*)", - hexpand: true, + listBox.connect("destroy", () => { + this.model.disconnect(handlerId); }); - const errorLabel = new Gtk.Label({ - label: "Invalid regular expression", - css_classes: ["error"], - xalign: 0, - visible: false, - }); - const addButton = new Gtk.Button({ - label: "Add", - css_classes: ["suggested-action"], - }); - entry.connect("changed", () => { - entry.remove_css_class("error"); - errorLabel.set_visible(false); - }); - addButton.connect("clicked", () => { - const text = entry.get_text().trim(); - if (!text) - return; - if (!isValidRegex(text)) { - entry.add_css_class("error"); - errorLabel.set_visible(true); - } - else { - entry.remove_css_class("error"); - errorLabel.set_visible(false); - const currentApps = settings.get_strv("excluded-apps"); - if (currentApps.includes(text)) - return; - settings.set_strv("excluded-apps", [...currentApps, text]); - this.addExcludedAppRow(text, listBox, settings); - entry.set_text(""); - } - }); - addBox.append(entry); - addBox.append(addButton); - excludedBox.append(addBox); - excludedBox.append(errorLabel); - excludedGroup.add(excludedBox); + return listBox; } - addExcludedAppRow(app, listBox, settings) { - const row = new Gtk.ListBoxRow(); - const box = new Gtk.Box({ - orientation: Gtk.Orientation.HORIZONTAL, - spacing: 8, - margin_top: 8, - margin_bottom: 8, - margin_start: 8, - margin_end: 8, - }); - const label = new Gtk.Label({ - label: app, - hexpand: true, - xalign: 0, - }); + rebuildExcludedAppsList(listBox) { + listBox.remove_all(); + for (const appId of this.model.getExcludedApps()) { + listBox.append(this.buildExcludedAppRow(appId)); + } + } + buildExcludedAppRow(appId) { + const app = tryLoadDesktopApp(appId); + const row = buildAppRow(app, appId); + if (!app) + row.set_subtitle("Uninstalled"); const removeButton = new Gtk.Button({ icon_name: "user-trash-symbolic", tooltip_text: "Remove", + css_classes: ["flat"], + valign: Gtk.Align.CENTER, }); removeButton.connect("clicked", () => { - const currentApps = settings.get_strv("excluded-apps"); - const newApps = currentApps.filter((a) => a !== app); - settings.set_strv("excluded-apps", newApps); - listBox.remove(row); + this.model.removeExcludedApp(appId); }); - box.append(label); - box.append(removeButton); - row.set_child(box); - listBox.append(row); + row.add_suffix(removeButton); + return row; + } + openAppSelector(parent, onSelected) { + const window = new Adw.Window({ + title: "Add Excluded Application", + modal: true, + default_width: 420, + default_height: 520, + }); + if (parent) + window.set_transient_for(parent); + const search = new Gtk.SearchEntry({ + placeholder_text: "Search applications", + hexpand: true, + }); + const headerBar = new Adw.HeaderBar(); + headerBar.set_title_widget(search); + const appList = buildSelectableAppList(this.getSelectableApps(), (appId) => { + onSelected(appId); + window.close(); + }); + wireSearchFilter(appList, search); + addCloseOnEscape(window); + const toolbarView = new Adw.ToolbarView(); + toolbarView.add_top_bar(headerBar); + toolbarView.set_content(new Gtk.ScrolledWindow({ child: appList })); + window.set_content(toolbarView); + window.present(); + search.grab_focus(); + } + getSelectableApps() { + const excluded = new Set(this.model.getExcludedApps()); + return Gio.AppInfo.get_all() + .filter((a) => a.should_show() && a.get_id() && !excluded.has(getAppId(a))) + .sort((a, b) => a.get_name().localeCompare(b.get_name())); + } +} +function buildSelectableAppList(apps, onActivated) { + const appList = new Gtk.ListBox({ + selection_mode: Gtk.SelectionMode.NONE, + css_classes: ["boxed-list"], + margin_top: 8, + margin_bottom: 8, + margin_start: 8, + margin_end: 8, + }); + for (const app of apps) { + const appId = getAppId(app); + const row = buildAppRow(app, appId, { activatable: true }); + appList.append(row); + row.connect("activated", () => { + onActivated(appId); + }); + } + return appList; +} +// DesktopAppInfo.new is typed as non-null but returns null when the +// .desktop file is missing (e.g. the user uninstalled the app). +function tryLoadDesktopApp(appId) { + return GioUnix.DesktopAppInfo.new(`${appId}.desktop`); +} +function buildAppRow(app, appId, extra = {}) { + const title = app?.get_name() ?? appId; + const row = new Adw.ActionRow({ ...extra, title, subtitle: appId }); + const icon = app?.get_icon(); + if (icon) { + const image = Gtk.Image.new_from_gicon(icon); + image.set_pixel_size(32); + row.add_prefix(image); + } + return row; +} +function wireSearchFilter(appList, search) { + appList.set_filter_func((row) => { + const query = search.get_text().toLowerCase().trim(); + if (query === "") + return true; + const actionRow = row; + const title = actionRow.get_title().toLowerCase(); + const subtitle = actionRow.get_subtitle()?.toLowerCase() ?? ""; + return title.includes(query) || subtitle.includes(query); + }); + search.connect("search-changed", () => { + appList.invalidate_filter(); + }); +} +function addCloseOnEscape(window) { + const controller = new Gtk.ShortcutController(); + controller.add_shortcut(new Gtk.Shortcut({ + trigger: Gtk.ShortcutTrigger.parse_string("Escape"), + action: Gtk.ShortcutAction.parse_string("action(window.close)"), + })); + window.add_controller(controller); +} +function getAppId(app) { + return (app.get_id() ?? "").replace(/\.desktop$/, ""); +} +class PreferencesModel { + settings; + constructor(settings) { + this.settings = settings; + } + bindDeleteTrigger(key, target, property) { + this.settings.bind(key, target, property, Gio.SettingsBindFlags.DEFAULT); + } + getExcludedApps() { + return this.settings.get_strv("excluded-apps"); + } + addExcludedApp(appId) { + const current = this.getExcludedApps(); + if (current.includes(appId)) + return; + this.settings.set_strv("excluded-apps", [...current, appId]); + } + removeExcludedApp(appId) { + this.settings.set_strv("excluded-apps", this.getExcludedApps().filter((id) => id !== appId)); + } + onExcludedAppsChanged(handler) { + return this.settings.connect("changed::excluded-apps", handler); + } + getLogLevelIndex() { + return this.settings.get_enum("log-level"); + } + setLogLevelIndex(idx) { + this.settings.set_enum("log-level", idx); + } + onLogLevelChanged(handler) { + return this.settings.connect("changed::log-level", handler); + } + disconnect(handlerId) { + this.settings.disconnect(handlerId); } } diff --git a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/gschemas.compiled b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/gschemas.compiled index 72cf47b..e7ba922 100644 Binary files a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/gschemas.compiled and b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/gschemas.compiled differ diff --git a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/org.gnome.shell.extensions.junk-notification-cleaner.gschema.xml b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/org.gnome.shell.extensions.junk-notification-cleaner.gschema.xml index cb75d93..5de08a6 100644 --- a/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/org.gnome.shell.extensions.junk-notification-cleaner.gschema.xml +++ b/gnome/.local/share/gnome-shell/extensions/junk-notification-cleaner@murar8.github.com/schemas/org.gnome.shell.extensions.junk-notification-cleaner.gschema.xml @@ -1,5 +1,11 @@ + + + + + + true @@ -14,9 +20,9 @@ [] Excluded applications - List of application regex patterns for which notifications should not be automatically deleted. + List of application ids (.desktop file names without the suffix) for which notifications should not be automatically deleted. - + 'info' Log level Set the logging level for troubleshooting notification matching issues. diff --git a/gtk/.config/gtk-3.0/bookmarks b/gtk/.config/gtk-3.0/bookmarks index 860717b..1c63058 100644 --- a/gtk/.config/gtk-3.0/bookmarks +++ b/gtk/.config/gtk-3.0/bookmarks @@ -3,5 +3,5 @@ file:///home/powellc/var/inbox file:///home/powellc/var file:///home/powellc/tmp sftp://root@pandora.unbl.ink/root Pandora -davs://colin%40unbl.ink@box.unbl.ink/cloud/remote.php/webdav/var/retroarch retroarch google-drive://colin.powell@hungryroot.com/0AIkuIpavI6MnUk9PVA work docs +davs://colin%40unbl.ink@box.unbl.ink/cloud/remote.php/webdav/var var diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf index fe33954..4f2b457 100644 --- a/kitty/.config/kitty/kitty.conf +++ b/kitty/.config/kitty/kitty.conf @@ -3,7 +3,7 @@ include ./kitty-themes/themes/Monokai.conf font_family IBM Plex Mono -font_size 12.0 +font_size 9.0 enable_audio_bell no visual_bell_duration 0.1 window_padding_width 12 diff --git a/password-store/.password-store/databases/hungryroot.gpg b/password-store/.password-store/databases/hungryroot.gpg new file mode 100644 index 0000000..6c65c8a Binary files /dev/null and b/password-store/.password-store/databases/hungryroot.gpg differ diff --git a/password-store/.password-store/personal/apikey/ebird.gpg b/password-store/.password-store/personal/apikey/ebird.gpg new file mode 100644 index 0000000..6145555 Binary files /dev/null and b/password-store/.password-store/personal/apikey/ebird.gpg differ diff --git a/password-store/.password-store/personal/apikey/simplefin.gpg b/password-store/.password-store/personal/apikey/simplefin.gpg new file mode 100644 index 0000000..f73e047 Binary files /dev/null and b/password-store/.password-store/personal/apikey/simplefin.gpg differ diff --git a/password-store/.password-store/personal/apple.gpg b/password-store/.password-store/personal/apple.gpg index 64cb40e..399a42b 100644 Binary files a/password-store/.password-store/personal/apple.gpg and b/password-store/.password-store/personal/apple.gpg differ diff --git a/password-store/.password-store/work/hungryroot/svb.com.gpg b/password-store/.password-store/work/hungryroot/svb.com.gpg index 7ecd23d..6434e00 100644 Binary files a/password-store/.password-store/work/hungryroot/svb.com.gpg and b/password-store/.password-store/work/hungryroot/svb.com.gpg differ diff --git a/systemd/.config/systemd/user/graphical-session.target.wants/emacs.service b/systemd/.config/systemd/user/graphical-session.target.wants/emacs.service new file mode 120000 index 0000000..bebf0b3 --- /dev/null +++ b/systemd/.config/systemd/user/graphical-session.target.wants/emacs.service @@ -0,0 +1 @@ +/home/powellc/.config/systemd/user/emacs.service \ No newline at end of file diff --git a/systemd/.config/systemd/user/node@.service b/systemd/.config/systemd/user/node@.service new file mode 100644 index 0000000..db9b37c --- /dev/null +++ b/systemd/.config/systemd/user/node@.service @@ -0,0 +1,18 @@ +[Unit] +Description=Node.js dev server for %I +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +Environment=PATH=%h/.local/bin:/home/linuxbrew/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin:/home/powellc/.asdf/shims +EnvironmentFile=%h/.local/etc/node/%i.env +ExecStartPre=/bin/bash -lc 'cd "$NODE_PATH" && if [ -f docker-compose.yml ]; then docker-compose start; fi' +ExecStart=/bin/bash -c 'cd "$NODE_PATH" && exec direnv exec "$NODE_PATH" just run' +Restart=on-failure +RestartSec=2 +StandardOutput=append:/tmp/node.log +StandardError=inherit + +[Install] +WantedBy=default.target diff --git a/systemd/.config/systemd/user/retroarch-playlogs-sync.path b/systemd/.config/systemd/user/retroarch-playlogs-sync.path new file mode 100644 index 0000000..4295a58 --- /dev/null +++ b/systemd/.config/systemd/user/retroarch-playlogs-sync.path @@ -0,0 +1,9 @@ +[Unit] +Description=Watch RetroArch playlogs for changes + +[Path] +PathModified=%h/var/retroarch/playlogs/ +Unit=retroarch-playlogs-sync.service + +[Install] +WantedBy=default.target diff --git a/systemd/.config/systemd/user/retroarch-playlogs-sync.service b/systemd/.config/systemd/user/retroarch-playlogs-sync.service new file mode 100644 index 0000000..d6d35a8 --- /dev/null +++ b/systemd/.config/systemd/user/retroarch-playlogs-sync.service @@ -0,0 +1,6 @@ +[Unit] +Description=Sync RetroArch playlogs to WebDAV + +[Service] +Type=oneshot +ExecStart=rclone copy %h/var/retroarch/playlogs/ retroarch-dav:/ --max-depth 1 --retries 3 --verbose --max-age 5m diff --git a/systemd/.config/systemd/user/retroarch-playlogs-sync.timer b/systemd/.config/systemd/user/retroarch-playlogs-sync.timer new file mode 100644 index 0000000..d6d0627 --- /dev/null +++ b/systemd/.config/systemd/user/retroarch-playlogs-sync.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Periodic RetroArch playlogs sync (fallback) + +[Timer] +OnCalendar=*:0/30 +Persistent=true + +[Install] +WantedBy=default.target diff --git a/systemd/.config/systemd/user/syncthing.service b/systemd/.config/systemd/user/syncthing.service index 47b28eb..5dc734a 100644 --- a/systemd/.config/systemd/user/syncthing.service +++ b/systemd/.config/systemd/user/syncthing.service @@ -4,7 +4,7 @@ Documentation=man:syncthing(1) After=network.target [Service] -ExecStart=/usr/bin/syncthing -no-browser -no-restart +ExecStart=/usr/bin/syncthing --no-browser --no-restart Restart=on-failure SuccessExitStatus=3 4 RestartForceExitStatus=3 4 diff --git a/zsh/.zshrc b/zsh/.zshrc index 2a30f1b..2653c33 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -6,7 +6,7 @@ export ZSH="$HOME/.oh-my-zsh" export GPG_TTY=$(tty) export SSH_ASKPASS="$HOME/.local/bin/ssh-askpass-load-keys" -export SSH_ASKPASS_REQUIRE=force +export SSH_ASKPASS_REQUIRE="" #force # This is a hack to make poetry not hang export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring