From 56b9e537150cc3baae063f98567312eea1d8770a Mon Sep 17 00:00:00 2001 From: Michael Cardillo Date: Thu, 19 Oct 2023 01:13:49 -0700 Subject: [PATCH 01/17] Gnome 45 Updates --- BWClipboard.js | 7 +- blur.js | 60 +++--- carousel.js | 31 +-- convenience.js | 45 +---- extension.js | 112 ++++++----- metadata.json | 2 +- prefs.js | 514 +++++++++++++++++++++++++------------------------ thumbnail.js | 6 +- utils.js | 153 +++++++-------- 9 files changed, 450 insertions(+), 480 deletions(-) diff --git a/BWClipboard.js b/BWClipboard.js index b4e7d67a..279c65e3 100644 --- a/BWClipboard.js +++ b/BWClipboard.js @@ -6,11 +6,12 @@ // (at your option) any later version. // See the GNU General Public License, version 3 or later for details. -const St = imports.gi.St; +import St from 'gi://St'; +import Gio from 'gi://Gio'; + const CLIPBOARD_TYPE = St.ClipboardType.CLIPBOARD; -const Gio = imports.gi.Gio; -var BWClipboard = class BWClipboard { +export default class BWClipboard { constructor() { this.clipboard = St.Clipboard.get_default(); } diff --git a/blur.js b/blur.js index 60b7018a..7f950713 100644 --- a/blur.js +++ b/blur.js @@ -9,22 +9,22 @@ // This code based on https://github.com/PRATAP-KUMAR/Control_Blur_Effect_On_Lock_Screen // and https://github.com/sunwxg/gnome-shell-extension-unlockDialogBackground -const St = imports.gi.St; -const Main = imports.ui.main; -const Shell = imports.gi.Shell; -const Background = imports.ui.background; -const ScreenShield = imports.ui.screenShield; -const UnlockDialog = imports.ui.unlockDialog.UnlockDialog; -const ExtensionUtils = imports.misc.extensionUtils; -var _updateBackgroundEffects = UnlockDialog.prototype._updateBackgroundEffects; -var _showClock = UnlockDialog.prototype._showClock; -var _showPrompt = UnlockDialog.prototype._showPrompt; -const Me = ExtensionUtils.getCurrentExtension(); -const Utils = Me.imports.utils; - -var shellVersionMajor = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[0]); -var shellVersionMinor = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[1]); -var shellVersionPoint = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[2]); +import St from 'gi://St'; +import Shell from 'gi://Shell'; +import * as Main from 'resource:///org/gnome/shell/ui/main.js'; +import * as Background from 'resource:///org/gnome/shell/ui/background.js'; +import * as ScreenShield from 'resource:///org/gnome/shell/ui/screenShield.js'; +import * as UnlockDialog from 'resource:///org/gnome/shell/ui/unlockDialog.js'; +import * as Config from 'resource:///org/gnome/shell/misc/config.js'; +import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js'; +var _updateBackgroundEffects = UnlockDialog.UnlockDialog.prototype._updateBackgroundEffects; +var _showClock = UnlockDialog.UnlockDialog.prototype._showClock; +var _showPrompt = UnlockDialog.UnlockDialog.prototype._showPrompt; +import * as Utils from './utils.js'; + +var shellVersionMajor = parseInt(Config.PACKAGE_VERSION.split('.')[0]); +var shellVersionMinor = parseInt(Config.PACKAGE_VERSION.split('.')[1]); +var shellVersionPoint = parseInt(Config.PACKAGE_VERSION.split('.')[2]); // default BWP mild blur var BWP_BLUR_SIGMA = 2; @@ -86,7 +86,7 @@ function _showPrompt_BWP() { this._updateBackgroundEffects(); } -var Blur = class Blur { +export default class Blur { constructor() { this.enabled = false; log('Bing Wallpaper adjustable blur is '+supportedVersion()?'available':'not available'); @@ -122,15 +122,15 @@ var Blur = class Blur { _enable() { if (supportedVersion()) { - log("Blur._enable() called on GNOME "+imports.misc.config.PACKAGE_VERSION); - UnlockDialog.prototype._updateBackgroundEffects = _updateBackgroundEffects_BWP; + log("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.prototype._showClock = _showClock_BWP; - UnlockDialog.prototype._showPrompt = _showPrompt_BWP; + 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.prototype._showClock_GNOME = _showClock; - UnlockDialog.prototype._showPrompt_GNOME = _showPrompt; + UnlockDialog.UnlockDialog.prototype._showClock_GNOME = _showClock; + UnlockDialog.UnlockDialog.prototype._showPrompt_GNOME = _showPrompt; } this.enabled = true; @@ -142,14 +142,14 @@ var Blur = class Blur { log("_lockscreen_blur_disable() called"); if (supportedVersion()) { // restore default functions - UnlockDialog.prototype._updateBackgroundEffects = _updateBackgroundEffects; - UnlockDialog.prototype._showClock = _showClock; - UnlockDialog.prototype._showPrompt = _showPrompt; + UnlockDialog.UnlockDialog.prototype._updateBackgroundEffects = _updateBackgroundEffects; + UnlockDialog.UnlockDialog.prototype._showClock = _showClock; + UnlockDialog.UnlockDialog.prototype._showPrompt = _showPrompt; // clean up unused functions we created - UnlockDialog.prototype._showClock_GNOME = null; - delete UnlockDialog.prototype._showClock_GNOME; - UnlockDialog.prototype._showPrompt_GNOME = null; - delete UnlockDialog.prototype._showPrompt_GNOME; + 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; } diff --git a/carousel.js b/carousel.js index 97c36b93..e03de222 100644 --- a/carousel.js +++ b/carousel.js @@ -7,18 +7,22 @@ // 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 -const { Gtk, Gdk, GdkPixbuf, Gio, GLib } = imports.gi; -const Me = imports.misc.extensionUtils.getCurrentExtension(); -const Utils = Me.imports.utils; +import Gtk from 'gi://Gtk'; +import Gdk from 'gi://Gdk'; +import GdkPixbuf from 'gi://GdkPixbuf'; +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; +import * as Utils from './utils.js'; +import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; + + -const Gettext = imports.gettext.domain('BingWallpaper'); -const _ = Gettext.gettext; 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; -var Carousel = class Carousel { +export default class Carousel { constructor(settings, button = null, callbackfunc = null, prefs_flowbox = null) { //create_gallery(widget, settings); this.settings = settings; @@ -28,6 +32,7 @@ var Carousel = class Carousel { this.window = null; this.imageList = Utils.imageListSortByDate(Utils.getImageList(this.settings)).reverse(); // get images and reverse order this.searchEntry = null; + this.extensionPath = ExtensionPreferences.lookupByUUID('BingWallpaper@ineffable-gmail.com').path this.log('create carousel...'); @@ -65,12 +70,12 @@ var Carousel = class Carousel { win.set_title(title); if (Gtk.get_major_version() < 4) { - buildable.add_objects_from_file(Me.dir.get_path() + '/ui/carousel.ui', ['carouselScrollable']); + buildable.add_objects_from_file(this.extensionPath + '/ui/carousel.ui', ['carouselScrollable']); flowBox = buildable.get_object('carouselFlowBox'); win.add(buildable.get_object('carouselScrollable')); } else { - buildable.add_objects_from_file(Me.dir.get_path() + '/ui/carousel4.ui', ['carouselViewPort']); + buildable.add_objects_from_file(this.extensionPath + '/ui/carousel4.ui', ['carouselViewPort']); flowBox = buildable.get_object('carouselFlowBox'); win.set_child(buildable.get_object('carouselScrollable')); } @@ -100,9 +105,9 @@ var Carousel = class Carousel { // grab appropriate object from UI file if (Gtk.get_major_version() < 4) - buildable.add_objects_from_file(Me.dir.get_path() + '/ui/carousel.ui', ["flowBoxChild"]); + buildable.add_objects_from_file(this.extensionPath + '/ui/carousel.ui', ["flowBoxChild"]); else - buildable.add_objects_from_file(Me.dir.get_path() + '/ui/carousel4.ui', ["flowBoxChild"]); + 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'); @@ -187,10 +192,10 @@ var Carousel = class Carousel { // grab appropriate object from UI file if (Gtk.get_major_version() < 4) { - buildable.add_objects_from_file(Me.dir.get_path() + '/ui/carousel.ui', ["flowBoxRandom"]); + buildable.add_objects_from_file(this.extensionPath + '/ui/carousel.ui', ["flowBoxRandom"]); } else { - buildable.add_objects_from_file(Me.dir.get_path() + '/ui/carousel4.ui', ["flowBoxRandom"]); + buildable.add_objects_from_file(this.extensionPath + '/ui/carousel4.ui', ["flowBoxRandom"]); } let randomLabel = buildable.get_object('randomLabel'); @@ -214,7 +219,7 @@ var Carousel = class Carousel { // grab appropriate object from UI file if (Gtk.get_major_version() >= 4) { - buildable.add_objects_from_file(Me.dir.get_path() + '/ui/carousel4.ui', ["flowBoxPlaceholder"]); + buildable.add_objects_from_file(this.extensionPath + '/ui/carousel4.ui', ["flowBoxPlaceholder"]); } else { return null; diff --git a/convenience.js b/convenience.js index 3391ced8..bcb6f4d3 100644 --- a/convenience.js +++ b/convenience.js @@ -25,7 +25,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -const Config = imports.misc.config; const versionArray = (v) => v.split(".").map(Number); @@ -44,7 +43,7 @@ function versionEqual(a, b) { , true); } -function versionGreater(a, b) { +export function versionGreater(a, b) { const diff = zip(versionArray(a), versionArray(b), 0).find(([a, b]) => a !== b); if (!diff) { return false; @@ -53,42 +52,10 @@ function versionGreater(a, b) { return x > y; } -function versionSmaller(a, b) { - return (!versionEqual(a, b)) && (!versionGreater(a, b)); -} - -function currentVersion() { - return ''+Config.PACKAGE_VERSION.replace(/(alpha|beta)/,'0'); -} - -function currentVersionEqual(v) { - return versionEqual(currentVersion(), v); -} - -function currentVersionGreater(v) { - return versionGreater(currentVersion(), v); -} - -function currentVersionGreaterEqual(v) { - return versionEqual(currentVersion(), v) - || versionGreater(currentVersion(), v); -} - -function currentVersionSmaller(v) { - return versionSmaller(currentVersion(), v); -} - -function currentVersionSmallerEqual(v) { - return versionEqual(currentVersion(), v) - && (!versionGreater(currentVersion(), v)); +export function versionGreaterEqual(a,b) { + return versionEqual(a, b) || versionGreater(a, b); } -var exports = { - currentVersion, - currentVersionEqual, - currentVersionGreater, - currentVersionGreaterEqual, - currentVersionSmaller, - currentVersionSmallerEqual -}; - +function versionSmaller(a, b) { + return (!versionEqual(a, b)) && (!versionGreater(a, b)); +} \ No newline at end of file diff --git a/extension.js b/extension.js index ba0c2068..3b81dcd1 100644 --- a/extension.js +++ b/extension.js @@ -7,23 +7,29 @@ // 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 -const {St, Soup, Gio, GObject, GLib, Clutter, Cogl, Gdk} = imports.gi; -const Main = imports.ui.main; -const MessageTray = imports.ui.messageTray; -const Util = imports.misc.util; -const PanelMenu = imports.ui.panelMenu; -const PopupMenu = imports.ui.popupMenu; +import St from 'gi://St'; +import Soup from 'gi://Soup'; +import Gio from 'gi://Gio'; +import GObject from 'gi://GObject'; +import GLib from 'gi://GLib'; +import Clutter from 'gi://Clutter'; +import Cogl from 'gi://Cogl'; +import Gdk from 'gi://Gdk'; + +import * as Main from 'resource:///org/gnome/shell/ui/main.js'; +import * as MessageTray from 'resource:///org/gnome/shell/ui/messageTray.js'; +import * as Util from 'resource:///org/gnome/shell/misc/util.js'; +import {Button} from 'resource:///org/gnome/shell/ui/panelMenu.js'; +import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js'; +import * as Config from 'resource:///org/gnome/shell/misc/config.js'; const ByteArray = imports.byteArray; -const ExtensionUtils = imports.misc.extensionUtils; -const Me = ExtensionUtils.getCurrentExtension(); -const Utils = Me.imports.utils; -const Blur = Me.imports.blur; -const Thumbnail = Me.imports.thumbnail; -const BWClipboard = Me.imports.BWClipboard; -const Convenience = Me.imports.convenience; -const Gettext = imports.gettext.domain('BingWallpaper'); -const _ = Gettext.gettext; +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'; +import * as Convenience from './convenience.js'; const BingImageURL = Utils.BingImageURL; const BingURL = 'https://www.bing.com'; @@ -39,16 +45,13 @@ const ICON_TIMED_MODE_BUTTON = 'document-open-recent-symbolic'; const ICON_PAUSE_MODE_BUTTON = 'media-playback-pause-symbolic'; const ICON_PLAY_MODE_BUTTON = 'media-playback-start-symbolic'; const ICON_REFRESH = 'view-refresh-symbolic'; -const ICON_RANDOM = Me.dir.get_child('icons').get_path() + '/'+'game-die-symbolic.svg'; -const ICON_FAVE_BUTTON = Me.dir.get_child('icons').get_path() + '/'+'fav-symbolic.svg'; -const ICON_UNFAVE_BUTTON = Me.dir.get_child('icons').get_path() + '/'+'unfav-symbolic.svg'; let bingWallpaperIndicator = null; let blur = null; // remove this when dropping support for < 3.33, see https://github.com/OttoAllmendinger/ const getActorCompat = (obj) => - Convenience.currentVersionGreaterEqual('3.33') ? obj : obj.actor; + Convenience.versionGreaterEqual(Config.PACKAGE_VERSION.replace(/(alpha|beta)/,'0'), '3.33') ? obj : obj.actor; const newMenuItem = (label) => { return new PopupMenu.PopupMenuItem(label); @@ -90,8 +93,8 @@ function doSetBackground(uri, schema) { } const BingWallpaperIndicator = GObject.registerClass( -class BingWallpaperIndicator extends PanelMenu.Button { - _init(params = {}) { +class BingWallpaperIndicator extends Button { + _init(ext) { super._init(0, IndicatorName, false); this.title = ""; @@ -110,13 +113,19 @@ class BingWallpaperIndicator extends PanelMenu.Button { this.thumbnail = null; this.thumbnailItem = null; this.selected_image = "current"; - this.clipboard = new BWClipboard.BWClipboard(); + this.clipboard = new BWClipboard(); this.imageIndex = null; this.logger = null; this.favourite_status = false; + this._extension = ext; + let extensionIconsPath = ext.dir.get_child('icons').get_path() + this.ICON_RANDOM = extensionIconsPath + '/'+'game-die-symbolic.svg'; + this.ICON_FAVE_BUTTON = extensionIconsPath + '/'+'fav-symbolic.svg'; + this.ICON_UNFAVE_BUTTON = extensionIconsPath + '/'+'unfav-symbolic.svg'; + if (!blur) // as Blur isn't disabled on screen lock (like the rest of the extension is) - blur = new Blur.Blur(); + blur = new Blur(); /* blur.BWP_BLUR_BRIGHTNESS = 2; @@ -124,7 +133,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { */ // take a variety of actions when the gsettings values are modified by prefs - this._settings = ExtensionUtils.getSettings(Utils.BING_SCHEMA); + this._settings = this._extension.getSettings(Utils.BING_SCHEMA); this._initSoup(); @@ -214,7 +223,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { // create soup Session _initSoup() { this.httpSession = new Soup.Session(); - this.httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' + imports.misc.config.PACKAGE_VERSION + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper Gnome Extension/' + Me.metadata.version; + this.httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' + Config.PACKAGE_VERSION + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper Gnome Extension/' + this._extension.metadata.version; } // listen for configuration changes @@ -313,7 +322,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { } _openPrefs() { - ExtensionUtils.openPrefs(); + this._extension.openPreferences(); } _openMenu() { @@ -360,9 +369,9 @@ class BingWallpaperIndicator extends PanelMenu.Button { // set indicator icon (tray icon) _setIcon() { - Utils.validate_icon(this._settings); + Utils.validate_icon(this._settings, this._extension.path); let icon_name = this._settings.get_string('icon-name'); - let gicon = Gio.icon_new_for_string(Me.dir.get_child('icons').get_path() + '/' + icon_name + '.svg'); + let gicon = Gio.icon_new_for_string(this._extension.dir.get_child('icons').get_path() + '/' + icon_name + '.svg'); this.icon = new St.Icon({gicon: gicon, style_class: 'system-status-icon'}); log('Replace icon set to: ' + icon_name); getActorCompat(this).remove_all_children(); @@ -373,7 +382,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { _setBackground() { if (this.filename == '') return; - this.thumbnail = new Thumbnail.Thumbnail(this.filename); // historically thumbnails were a bit unsafe on Wayland, but now fixed + this.thumbnail = new Thumbnail(this.filename); // historically thumbnails were a bit unsafe on Wayland, but now fixed this._setThumbnailImage(); if (this._settings.get_boolean('set-background')) this._setBackgroundDesktop(); @@ -436,7 +445,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { else { this.explainItem.label.set_text(this.explanation ? this.explanation : ''); } - this._setFavouriteIcon(this.favourite_status?ICON_FAVE_BUTTON:ICON_UNFAVE_BUTTON); + this._setFavouriteIcon(this.favourite_status?this.ICON_FAVE_BUTTON:this.ICON_UNFAVE_BUTTON); } _wrapLabelItem(menuItem) { @@ -449,7 +458,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { _setControls() { this.favouriteBtn = this._newMenuIcon( - this.favourite_status?ICON_FAVE_BUTTON:ICON_UNFAVE_BUTTON, + this.favourite_status?this.ICON_FAVE_BUTTON:this.ICON_UNFAVE_BUTTON, this.controlItem, this._favouriteImage); this.prevBtn = this._newMenuIcon( @@ -465,7 +474,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { this.controlItem, this._curImage); this.randomizeBtn = this._newMenuIcon( - ICON_RANDOM, + this.ICON_RANDOM, this.controlItem, this._shuffleImage); } @@ -577,7 +586,7 @@ class BingWallpaperIndicator extends PanelMenu.Button { log('favourite image '+this.imageURL+' status was '+this.favourite_status); this.favourite_status = !this.favourite_status; Utils.setImageFavouriteStatus(this._settings, this.imageURL, this.favourite_status); - this._setFavouriteIcon(this.favourite_status?ICON_FAVE_BUTTON:ICON_UNFAVE_BUTTON); + this._setFavouriteIcon(this.favourite_status?this.ICON_FAVE_BUTTON:this.ICON_UNFAVE_BUTTON); } _setFavouriteIcon(icon_name) { @@ -990,26 +999,23 @@ class BingWallpaperIndicator extends PanelMenu.Button { } }); -function init(extensionMeta) { - ExtensionUtils.initTranslations("BingWallpaper"); -} - -function enable() { - bingWallpaperIndicator = new BingWallpaperIndicator(); - Main.panel.addToStatusArea(IndicatorName, bingWallpaperIndicator); -} - -function disable() { - bingWallpaperIndicator.stop(); - bingWallpaperIndicator.destroy(); - bingWallpaperIndicator = null; - - // *** NOTE for EGO reviewers *** - // blur.js remains active during lockscreen, while the rest of the extension is disabled - // this code ONLY modifies the background blur effects for the lockscreen no web connectivity - if (!Main.sessionMode.isLocked) { - blur._disable(); // disable blur (blur.js) override and cleanup - blur = null; +export default class BingWallpaperExtension extends Extension { + enable() { + bingWallpaperIndicator = new BingWallpaperIndicator(this); + Main.panel.addToStatusArea(IndicatorName, bingWallpaperIndicator); + } + disable() { + bingWallpaperIndicator.stop(); + bingWallpaperIndicator.destroy(); + bingWallpaperIndicator = null; + + // *** NOTE for EGO reviewers *** + // blur.js remains active during lockscreen, while the rest of the extension is disabled + // this code ONLY modifies the background blur effects for the lockscreen no web connectivity + if (!Main.sessionMode.isLocked) { + blur._disable(); // disable blur (blur.js) override and cleanup + blur = null; + } } } diff --git a/metadata.json b/metadata.json index 5eef2c17..673473a3 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "uuid": "BingWallpaper@ineffable-gmail.com", - "shell-version": ["3.36", "3.38", "40", "41", "42", "43", "44"], + "shell-version": ["3.36", "3.38", "40", "41", "42", "43", "44", "45"], "name": "Bing Wallpaper", "settings-schema": "org.gnome.shell.extensions.bingwallpaper", "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_FR), Portuguese (pt, pt_BR), Ukrainian (uk), Russian (ru_RU), Spanish (es), Korean (ko), Indonesian (id), Catalan (ca), Norwegian Bokmål (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:", diff --git a/prefs.js b/prefs.js index b39b9138..c1055a78 100644 --- a/prefs.js +++ b/prefs.js @@ -7,16 +7,18 @@ // 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 -imports.gi.versions.Soup = "2.4"; // force single version of Soup, not sure if there is a way to force latest version - -const {Gtk, Gdk, GdkPixbuf, Gio, GLib, Soup} = imports.gi; -const ExtensionUtils = imports.misc.extensionUtils; -const Me = ExtensionUtils.getCurrentExtension(); -const Utils = Me.imports.utils; -const Convenience = Me.imports.convenience; -const Gettext = imports.gettext.domain('BingWallpaper'); -const _ = Gettext.gettext; -const Carousel = Me.imports.carousel; +import Gtk from 'gi://Gtk'; +import Gdk from 'gi://Gdk'; +import GdkPixbuf from 'gi://GdkPixbuf'; +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; +import Soup from 'gi://Soup?version=2.4'; +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 * as Convenience from './convenience.js'; +import Carousel from './carousel.js'; const BingImageURL = Utils.BingImageURL; @@ -25,272 +27,274 @@ var DESKTOP_SCHEMA = 'org.gnome.desktop.background'; var PREFS_DEFAULT_WIDTH = 650; var PREFS_DEFAULT_HEIGHT = 650; -function init() { - ExtensionUtils.initTranslations("BingWallpaper"); // this is now included in ExtensionUtils -} - -function buildPrefsWidget() { - // formally globals - let settings = ExtensionUtils.getSettings(Utils.BING_SCHEMA); - let desktop_settings = ExtensionUtils.getSettings(Utils.DESKTOP_SCHEMA); - - let icon_image = null; - let provider = new Gtk.CssProvider(); - - let carousel = null; - let httpSession = null; +export default class BingWallpaperExtensionPreferences extends ExtensionPreferences { + fillPreferencesWindow(window) { + // formally globals + let settings = this.getSettings(Utils.BING_SCHEMA); + let desktop_settings = this.getSettings(Utils.DESKTOP_SCHEMA); + + let icon_image = null; + let provider = new Gtk.CssProvider(); + + let carousel = null; + let httpSession = null; + + let log = (msg) => { // avoids need for globals + if (settings.get_boolean('debug-logging')) + print("BingWallpaper extension: " + msg); // disable to keep the noise down in journal + } + + // Prepare labels and controls + let buildable = new Gtk.Builder(); + if (Gtk.get_major_version() == 4) { // GTK4 removes some properties, and builder breaks when it sees them + buildable.add_from_file( this.dir.get_path() + '/ui/Settings4.ui' ); + provider.load_from_path(this.dir.get_path() + '/ui/prefs.css'); + Gtk.StyleContext.add_provider_for_display( + Gdk.Display.get_default(), + provider, + Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + } + else { + buildable.add_from_file( this.dir.get_path() + '/ui/Settings.ui' ); + } + + let box = buildable.get_object('prefs_widget'); + + // fix size of prefs window in GNOME shell 40+ (but super racy, so is unreliable) + + if (Convenience.versionGreaterEqual(Config.PACKAGE_VERSION.replace(/(alpha|beta)/,'0'), '40')) { + box.connect('realize', () => { + let window = box.get_root(); + //window.default_width = PREFS_DEFAULT_WIDTH; + window.default_height = PREFS_DEFAULT_HEIGHT; + }); + } + + buildable.get_object('extension_version').set_text(this.metadata.version.toString()); + buildable.get_object('extension_name').set_text(this.metadata.name.toString()); + + // assign variables to UI objects we've loaded + let hideSwitch = buildable.get_object('hide'); + let iconEntry = buildable.get_object('icon'); + let notifySwitch = buildable.get_object('notify'); + let bgSwitch = buildable.get_object('background'); + let styleEntry = buildable.get_object('background_style'); + let fileChooserBtn = buildable.get_object('download_folder'); + let fileChooser = buildable.get_object('file_chooser'); // this should only exist on Gtk4 + let folderOpenBtn = buildable.get_object('button_open_download_folder'); + let marketEntry = buildable.get_object('market'); + let resolutionEntry = buildable.get_object('resolution'); + let historyEntry = buildable.get_object('history'); + let galleryButton = buildable.get_object('button_open_gallery'); + let deleteSwitch = buildable.get_object('delete_previous'); + icon_image = buildable.get_object('icon_image'); + let overrideSwitch = buildable.get_object('lockscreen_override'); + let strengthEntry = buildable.get_object('entry_strength'); + let brightnessEntry = buildable.get_object('entry_brightness'); + let debugSwitch = buildable.get_object('debug_switch'); + let revertSwitch = buildable.get_object('revert_switch'); + let unsafeSwitch = buildable.get_object('unsafe_switch'); + let randomIntervalEntry = buildable.get_object('entry_random_interval'); + let change_log = buildable.get_object('change_log'); + let buttonGDMdefault = buildable.get_object('button_default_gnome'); + let buttonnoblur = buildable.get_object('button_no_blur'); + let buttonslightblur = buildable.get_object('button_slight_blur'); + let buttonImportData = buildable.get_object('button_json_import'); + let buttonExportData = buildable.get_object('button_json_export'); + let switchAlwaysExport = buildable.get_object('always_export_switch'); + /*let searchEntry = buildable.get_object('searchEntry'); + let searchBuffer = buildable.get_object('searchBuffer');*/ + let carouselFlowBox = (Gtk.get_major_version() == 4) ? buildable.get_object('carouselFlowBox'): null; + + try { + httpSession = new Soup.Session(); + httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' + Config.PACKAGE_VERSION + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper Gnome Extension/' + this.metadata.version; + } + catch (e) { + log("Error creating httpSession: " + e); + } + + // check that these are valid (can be edited through dconf-editor) + Utils.validate_resolution(settings); + Utils.validate_icon(settings, this.path, icon_image); - let log = (msg) => { // avoids need for globals - if (settings.get_boolean('debug-logging')) - print("BingWallpaper extension: " + msg); // disable to keep the noise down in journal - } + // Indicator & notifications + settings.bind('hide', hideSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); + settings.bind('notify', notifySwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - // Prepare labels and controls - let buildable = new Gtk.Builder(); - if (Gtk.get_major_version() == 4) { // GTK4 removes some properties, and builder breaks when it sees them - buildable.add_from_file( Me.dir.get_path() + '/ui/Settings4.ui' ); - provider.load_from_path(Me.dir.get_path() + '/ui/prefs.css'); - Gtk.StyleContext.add_provider_for_display( - Gdk.Display.get_default(), - provider, - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - } - else { - buildable.add_from_file( Me.dir.get_path() + '/ui/Settings.ui' ); - } - - let box = buildable.get_object('prefs_widget'); - - // fix size of prefs window in GNOME shell 40+ (but super racy, so is unreliable) - if (Convenience.currentVersionGreaterEqual('40')) { - box.connect('realize', () => { - let window = box.get_root(); - //window.default_width = PREFS_DEFAULT_WIDTH; - window.default_height = PREFS_DEFAULT_HEIGHT; + // add markets to dropdown list (aka a GtkComboText) + Utils.icon_list.forEach((iconname, index) => { + iconEntry.append(iconname, iconname); }); - } - buildable.get_object('extension_version').set_text(Me.metadata.version.toString()); - buildable.get_object('extension_name').set_text(Me.metadata.name.toString()); - - // assign variables to UI objects we've loaded - let hideSwitch = buildable.get_object('hide'); - let iconEntry = buildable.get_object('icon'); - let notifySwitch = buildable.get_object('notify'); - let bgSwitch = buildable.get_object('background'); - let styleEntry = buildable.get_object('background_style'); - let fileChooserBtn = buildable.get_object('download_folder'); - let fileChooser = buildable.get_object('file_chooser'); // this should only exist on Gtk4 - let folderOpenBtn = buildable.get_object('button_open_download_folder'); - let marketEntry = buildable.get_object('market'); - let resolutionEntry = buildable.get_object('resolution'); - let historyEntry = buildable.get_object('history'); - let galleryButton = buildable.get_object('button_open_gallery'); - let deleteSwitch = buildable.get_object('delete_previous'); - icon_image = buildable.get_object('icon_image'); - let overrideSwitch = buildable.get_object('lockscreen_override'); - let strengthEntry = buildable.get_object('entry_strength'); - let brightnessEntry = buildable.get_object('entry_brightness'); - let debugSwitch = buildable.get_object('debug_switch'); - let revertSwitch = buildable.get_object('revert_switch'); - let unsafeSwitch = buildable.get_object('unsafe_switch'); - let randomIntervalEntry = buildable.get_object('entry_random_interval'); - let change_log = buildable.get_object('change_log'); - let buttonGDMdefault = buildable.get_object('button_default_gnome'); - let buttonnoblur = buildable.get_object('button_no_blur'); - let buttonslightblur = buildable.get_object('button_slight_blur'); - let buttonImportData = buildable.get_object('button_json_import'); - let buttonExportData = buildable.get_object('button_json_export'); - let switchAlwaysExport = buildable.get_object('always_export_switch'); - /*let searchEntry = buildable.get_object('searchEntry'); - let searchBuffer = buildable.get_object('searchBuffer');*/ - let carouselFlowBox = (Gtk.get_major_version() == 4) ? buildable.get_object('carouselFlowBox'): null; - - try { - httpSession = new Soup.Session(); - httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' + imports.misc.config.PACKAGE_VERSION + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper Gnome Extension/' + Me.metadata.version; - } - catch (e) { - log("Error creating httpSession: " + e); - } - - // check that these are valid (can be edited through dconf-editor) - Utils.validate_resolution(settings); - Utils.validate_icon(settings, icon_image); - - // Indicator & notifications - settings.bind('hide', hideSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - settings.bind('notify', notifySwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - - // add markets to dropdown list (aka a GtkComboText) - Utils.icon_list.forEach((iconname, index) => { - iconEntry.append(iconname, iconname); - }); - - // user selectable indicator icons - settings.bind('icon-name', iconEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); - settings.connect('changed::icon-name', () => { - Utils.validate_icon(settings, icon_image); - }); - iconEntry.set_active_id(settings.get_string('icon-name')); - - // connect switches to settings changes - settings.bind('set-background', bgSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - settings.bind('debug-logging', debugSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - settings.bind('revert-to-current-image', revertSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - settings.bind('override-unsafe-wayland', unsafeSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - settings.bind('random-interval', randomIntervalEntry, 'value', Gio.SettingsBindFlags.DEFAULT); - settings.bind('always-export-bing-json', switchAlwaysExport, 'active', Gio.SettingsBindFlags.DEFAULT); - - // button opens Nautilus at our image folder - folderOpenBtn.connect('clicked', (widget) => { - Utils.openImageFolder(settings); - }); - - // open image carousel (gallery) window (gtk3, gnome <40) or populate the tab (gtk4+, gnome 40+) - if (Gtk.get_major_version() == 4) { - carousel = new Carousel.Carousel(settings, null, null, carouselFlowBox); // auto load carousel - - } - else { - galleryButton.connect('clicked', (widget) => { - carousel = new Carousel.Carousel(settings, widget, null, carouselFlowBox); + // user selectable indicator icons + settings.bind('icon-name', iconEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); + settings.connect('changed::icon-name', () => { + Utils.validate_icon(settings, this.path, icon_image); }); - - } - - // 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', () => { - Utils.importBingJSON(settings); - }); - buttonExportData.connect('clicked', () => { - Utils.exportBingJSON(settings); - }); - - //download folder - if (Gtk.get_major_version() == 4) { // we need to use native file choosers in Gtk4 - fileChooserBtn.set_label(Utils.getWallpaperDir(settings)); - - fileChooserBtn.connect('clicked', (widget) => { - let parent = widget.get_root(); - let curWallpaperDir = Gio.File.new_for_path(Utils.getWallpaperDir(settings)); - fileChooser.set_current_folder(curWallpaperDir.get_parent()); - fileChooser.set_action(Gtk.FileChooserAction.SELECT_FOLDER); - fileChooser.set_transient_for(parent); - fileChooser.set_accept_label(_('Select folder')); - fileChooser.show(); + iconEntry.set_active_id(settings.get_string('icon-name')); + + // connect switches to settings changes + settings.bind('set-background', bgSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); + settings.bind('debug-logging', debugSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); + settings.bind('revert-to-current-image', revertSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); + settings.bind('override-unsafe-wayland', unsafeSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); + settings.bind('random-interval', randomIntervalEntry, 'value', Gio.SettingsBindFlags.DEFAULT); + settings.bind('always-export-bing-json', switchAlwaysExport, 'active', Gio.SettingsBindFlags.DEFAULT); + + // button opens Nautilus at our image folder + folderOpenBtn.connect('clicked', (widget) => { + Utils.openImageFolder(settings); }); - fileChooser.connect('response', (widget, response) => { - if (response !== Gtk.ResponseType.ACCEPT) { - return; - } - let fileURI = fileChooser.get_file().get_path().replace('file://', ''); - log("fileChooser returned: "+fileURI); - fileChooserBtn.set_label(fileURI); - Utils.moveImagesToNewFolder(settings, Utils.getWallpaperDir(settings), fileURI); - Utils.setWallpaperDir(settings, fileURI); + // open image carousel (gallery) window (gtk3, gnome <40) or populate the tab (gtk4+, gnome 40+) + if (Gtk.get_major_version() == 4) { + carousel = new Carousel(settings, null, null, carouselFlowBox); // auto load carousel + } + else { + galleryButton.connect('clicked', (widget) => { + carousel = new Carousel(settings, widget, null, carouselFlowBox); + }); + } + + // 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', () => { + Utils.importBingJSON(settings); }); - - // in Gtk 4 instead we use a DropDown, but we need to treat it a bit special - let market_grid = buildable.get_object('market_grid'); - marketEntry = Gtk.DropDown.new_from_strings(Utils.marketName); - marketEntry.set_selected(Utils.markets.indexOf(settings.get_string('market'))); - market_grid.attach(marketEntry, 1, 0, 1, 2); - marketEntry.connect('notify::selected-item', () => { - let id = marketEntry.get_selected(); - settings.set_string('market', Utils.markets[id]); - log('dropdown selected '+id+' = '+Utils.markets[id]+" - "+Utils.marketName[id]); + buttonExportData.connect('clicked', () => { + Utils.exportBingJSON(settings); }); - settings.connect('changed::market', () => { + //download folder + if (Gtk.get_major_version() == 4) { // we need to use native file choosers in Gtk4 + fileChooserBtn.set_label(Utils.getWallpaperDir(settings)); + + fileChooserBtn.connect('clicked', (widget) => { + let parent = widget.get_root(); + let curWallpaperDir = Gio.File.new_for_path(Utils.getWallpaperDir(settings)); + fileChooser.set_current_folder(curWallpaperDir.get_parent()); + fileChooser.set_action(Gtk.FileChooserAction.SELECT_FOLDER); + fileChooser.set_transient_for(parent); + fileChooser.set_accept_label(_('Select folder')); + fileChooser.show(); + }); + + fileChooser.connect('response', (widget, response) => { + if (response !== Gtk.ResponseType.ACCEPT) { + return; + } + let fileURI = fileChooser.get_file().get_path().replace('file://', ''); + log("fileChooser returned: "+fileURI); + fileChooserBtn.set_label(fileURI); + Utils.moveImagesToNewFolder(settings, Utils.getWallpaperDir(settings), fileURI); + Utils.setWallpaperDir(settings, fileURI); + }); + + // in Gtk 4 instead we use a DropDown, but we need to treat it a bit special + let market_grid = buildable.get_object('market_grid'); + marketEntry = Gtk.DropDown.new_from_strings(Utils.marketName); marketEntry.set_selected(Utils.markets.indexOf(settings.get_string('market'))); - }); + market_grid.attach(marketEntry, 1, 0, 1, 2); + marketEntry.connect('notify::selected-item', () => { + let id = marketEntry.get_selected(); + settings.set_string('market', Utils.markets[id]); + log('dropdown selected '+id+' = '+Utils.markets[id]+" - "+Utils.marketName[id]); + }); + + settings.connect('changed::market', () => { + marketEntry.set_selected(Utils.markets.indexOf(settings.get_string('market'))); + }); + + settings.connect('changed::download-folder', () => { + fileChooserBtn.set_label(Utils.getWallpaperDir(settings)); + }); + } + else { // Gtk 3 + fileChooserBtn.set_filename(Utils.getWallpaperDir(settings)); + log("fileChooser filename/dirname set to '"+fileChooserBtn.get_filename()+"' setting is '"+settings.get_string('download-folder')+"'"); - settings.connect('changed::download-folder', () => { - fileChooserBtn.set_label(Utils.getWallpaperDir(settings)); + fileChooserBtn.add_shortcut_folder_uri("file://" + GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_PICTURES)+"/BingWallpaper"); + fileChooserBtn.connect('file-set', (widget) => { + Utils.moveImagesToNewFolder(settings, settings.get_string('download-folder'), widget.get_filename()); + Utils.setWallpaperDir(settings, widget.get_filename()); + }); + + Utils.markets.forEach((bingmarket, index) => { // add markets to dropdown list (aka a GtkComboText) + marketEntry.append(bingmarket, bingmarket+": "+Utils.marketName[index]); + }); + + settings.bind('market', marketEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); + + settings.connect('changed::download-folder', () => { + fileChooserBtn.set_filename(Utils.getWallpaperDir(settings)); + }); + } + + // Resolution + Utils.resolutions.forEach((res) => { // add res to dropdown list (aka a GtkComboText) + resolutionEntry.append(res, res); }); - } - else { // Gtk 3 - fileChooserBtn.set_filename(Utils.getWallpaperDir(settings)); - log("fileChooser filename/dirname set to '"+fileChooserBtn.get_filename()+"' setting is '"+settings.get_string('download-folder')+"'"); - fileChooserBtn.add_shortcut_folder_uri("file://" + GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_PICTURES)+"/BingWallpaper"); - fileChooserBtn.connect('file-set', (widget) => { - Utils.moveImagesToNewFolder(settings, settings.get_string('download-folder'), widget.get_filename()); - Utils.setWallpaperDir(settings, widget.get_filename()); + settings.bind('resolution', resolutionEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); + + settings.connect('changed::resolution', () => { + Utils.validate_resolution(settings); }); - Utils.markets.forEach((bingmarket, index) => { // add markets to dropdown list (aka a GtkComboText) - marketEntry.append(bingmarket, bingmarket+": "+Utils.marketName[index]); + // History + let imageList = Utils.getImageList(settings); + historyEntry.append('current', _('Most recent image')); + historyEntry.append('random', _('Random image')); + + imageList.forEach((image) => { + historyEntry.append(image.urlbase.replace('/th?id=OHR.', ''), Utils.shortenName(Utils.getImageTitle(image), 50)); }); - settings.bind('market', marketEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); + // selected image can also be changed through the menu or even dconf + settings.bind('selected-image', historyEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); + settings.connect('changed::selected-image', () => { + Utils.validate_imagename(settings); + }); - settings.connect('changed::download-folder', () => { - fileChooserBtn.set_filename(Utils.getWallpaperDir(settings)); + // background styles (e.g. zoom or span) + Utils.backgroundStyle.forEach((style) => { + styleEntry.append(style, style); }); - } + desktop_settings.bind('picture-options', styleEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); - // Resolution - Utils.resolutions.forEach((res) => { // add res to dropdown list (aka a GtkComboText) - resolutionEntry.append(res, res); - }); - - settings.bind('resolution', resolutionEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); + settings.bind('delete-previous', deleteSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - settings.connect('changed::resolution', () => { - Utils.validate_resolution(settings); - }); + // 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); + + // add a couple of preset buttons + buttonGDMdefault.connect('clicked', (widget) => { + Utils.set_blur_preset(settings, Utils.PRESET_GNOME_DEFAULT); + }); + buttonnoblur.connect('clicked', (widget) => { + Utils.set_blur_preset(settings, Utils.PRESET_NO_BLUR); + }); + buttonslightblur.connect('clicked', (widget) => { + Utils.set_blur_preset(settings, Utils.PRESET_SLIGHT_BLUR); + }); - // History - let imageList = Utils.getImageList(settings); - historyEntry.append('current', _('Most recent image')); - historyEntry.append('random', _('Random image')); - - imageList.forEach((image) => { - historyEntry.append(image.urlbase.replace('/th?id=OHR.', ''), Utils.shortenName(Utils.getImageTitle(image), 50)); - }); - - // selected image can also be changed through the menu or even dconf - settings.bind('selected-image', historyEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); - settings.connect('changed::selected-image', () => { - Utils.validate_imagename(settings); - }); - - // background styles (e.g. zoom or span) - Utils.backgroundStyle.forEach((style) => { - styleEntry.append(style, style); - }); - desktop_settings.bind('picture-options', styleEntry, 'active_id', Gio.SettingsBindFlags.DEFAULT); - - settings.bind('delete-previous', deleteSwitch, 'active', Gio.SettingsBindFlags.DEFAULT); - - // 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); - - // add a couple of preset buttons - buttonGDMdefault.connect('clicked', (widget) => { - Utils.set_blur_preset(settings, Utils.PRESET_GNOME_DEFAULT); - }); - buttonnoblur.connect('clicked', (widget) => { - Utils.set_blur_preset(settings, Utils.PRESET_NO_BLUR); - }); - buttonslightblur.connect('clicked', (widget) => { - Utils.set_blur_preset(settings, Utils.PRESET_SLIGHT_BLUR); - }); - - // not required in GTK4 as widgets are displayed by default - if (Gtk.get_major_version() < 4) - box.show_all(); - - // fetch - if (httpSession) - Utils.fetch_change_log(Me.metadata.version.toString(), change_log, httpSession); - - return box; -} + // not required in GTK4 as widgets are displayed by default + if (Gtk.get_major_version() < 4) + box.show_all(); + + // fetch + if (httpSession) + Utils.fetch_change_log(this.metadata.version.toString(), change_log, httpSession); + + const page = new Adw.PreferencesPage(); + const group = new Adw.PreferencesGroup(); + group.add(box); + page.add(group); + + window.add(page); + } +} diff --git a/thumbnail.js b/thumbnail.js index e5474821..f4554bf7 100644 --- a/thumbnail.js +++ b/thumbnail.js @@ -6,10 +6,10 @@ // (at your option) any later version. // See the GNU General Public License, version 3 or later for details. -const Gio = imports.gi.Gio; -const GdkPixbuf = imports.gi.GdkPixbuf; +import Gio from 'gi://Gio'; +import GdkPixbuf from 'gi://GdkPixbuf'; -var Thumbnail = class Thumbnail { +export default class Thumbnail { constructor(filePath) { if (!filePath) { throw new Error(`need argument ${filePath}`); diff --git a/utils.js b/utils.js index 7f926bf4..981fd31d 100644 --- a/utils.js +++ b/utils.js @@ -7,26 +7,20 @@ // 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 -const {Gio, GLib, Soup, GdkPixbuf} = imports.gi; -const ExtensionUtils = imports.misc.extensionUtils; -const Me = imports.misc.extensionUtils.getCurrentExtension(); -const Config = imports.misc.config; -const Convenience = Me.imports.convenience; -const Gettext = imports.gettext.domain('BingWallpaper'); -const _ = Gettext.gettext; +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; +import Soup from 'gi://Soup'; +import GdkPixbuf from 'gi://GdkPixbuf'; +import * as Convenience from './convenience.js'; const ByteArray = imports.byteArray; -var PRESET_GNOME_DEFAULT = { blur: 60, dim: 55 }; // as at GNOME 40 -var PRESET_NO_BLUR = { blur: 0, dim: 60 }; -var PRESET_SLIGHT_BLUR = { blur: 2, dim: 60 }; +export var PRESET_GNOME_DEFAULT = { blur: 60, dim: 55 }; // as at GNOME 40 +export var PRESET_NO_BLUR = { blur: 0, dim: 60 }; +export var PRESET_SLIGHT_BLUR = { blur: 2, dim: 60 }; -var BING_SCHEMA = 'org.gnome.shell.extensions.bingwallpaper'; -var DESKTOP_SCHEMA = 'org.gnome.desktop.background'; -var LOCKSCREEN_SCHEMA = 'org.gnome.desktop.screensaver'; - -var shellVersionMajor = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[0]); -var shellVersionMinor = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[1]); //FIXME: these checks work will probably break on newer shell versions -var shellVersionPoint = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[2]); +export var BING_SCHEMA = 'org.gnome.shell.extensions.bingwallpaper'; +export var DESKTOP_SCHEMA = 'org.gnome.desktop.background'; +export var LOCKSCREEN_SCHEMA = 'org.gnome.desktop.screensaver'; var vertical_blur = null; var horizontal_blur = null; @@ -35,18 +29,18 @@ let gitreleaseurl = 'https://api.github.com/repos/neffo/bing-wallpaper-gnome-ext let debug = false; // remove this when dropping support for < 3.33, see https://github.com/OttoAllmendinger/ -var getActorCompat = (obj) => - Convenience.currentVersionGreaterEqual('3.33') ? obj : obj.actor; +export var getActorCompat = (obj) => + Convenience.versionGreaterEqual(Config.PACKAGE_VERSION.replace(/(alpha|beta)/,'0'), '3.33') ? obj : obj.actor; -var icon_list = ['bing-symbolic', 'brick-symbolic', 'high-frame-symbolic', 'mid-frame-symbolic', 'low-frame-symbolic']; -var resolutions = ['auto', 'UHD', '1920x1200', '1920x1080', '1366x768', '1280x720', '1024x768', '800x600']; -var markets = ['auto', 'ar-XA', 'da-DK', 'de-AT', 'de-CH', 'de-DE', 'en-AU', 'en-CA', 'en-GB', +export var icon_list = ['bing-symbolic', 'brick-symbolic', 'high-frame-symbolic', 'mid-frame-symbolic', 'low-frame-symbolic']; +export var resolutions = ['auto', 'UHD', '1920x1200', '1920x1080', '1366x768', '1280x720', '1024x768', '800x600']; +export var markets = ['auto', 'ar-XA', 'da-DK', 'de-AT', 'de-CH', 'de-DE', 'en-AU', 'en-CA', 'en-GB', 'en-ID', 'en-IE', 'en-IN', 'en-MY', 'en-NZ', 'en-PH', 'en-SG', 'en-US', 'en-WW', 'en-XA', 'en-ZA', 'es-AR', 'es-CL', 'es-ES', 'es-MX', 'es-US', 'es-XL', 'et-EE', 'fi-FI', 'fr-BE', 'fr-CA', 'fr-CH', 'fr-FR', 'he-IL', 'hr-HR', 'hu-HU', 'it-IT', 'ja-JP', 'ko-KR', 'lt-LT', 'lv-LV', 'nb-NO', 'nl-BE', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sk-SK', 'sl-SL', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'zh-CN', 'zh-HK', 'zh-TW']; -var marketName = [ +export var marketName = [ 'auto', '(شبه الجزيرة العربية‎) العربية', 'dansk (Danmark)', 'Deutsch (Österreich)', 'Deutsch (Schweiz)', 'Deutsch (Deutschland)', 'English (Australia)', 'English (Canada)', 'English (United Kingdom)', 'English (Indonesia)', 'English (Ireland)', 'English (India)', 'English (Malaysia)', @@ -60,15 +54,15 @@ var marketName = [ 'slovenčina (Slovensko)', 'slovenščina (Slovenija)', 'svenska (Sverige)', 'ไทย (ไทย)', 'Türkçe (Türkiye)', 'українська (Україна)', '中文(中国)', '中文(中國香港特別行政區)', '中文(台灣)' ]; -var backgroundStyle = ['none', 'wallpaper', 'centered', 'scaled', 'stretched', 'zoom', 'spanned']; +export var backgroundStyle = ['none', 'wallpaper', 'centered', 'scaled', 'stretched', 'zoom', 'spanned']; -var randomIntervals = [300, 3600, 86400, 604800]; -var randomIntervalsTitle = ['00:00:05:00', '00:01:00:00', '00:24:00:00', '07:00:00:00']; +export var randomIntervals = [300, 3600, 86400, 604800]; +export var randomIntervalsTitle = ['00:00:05:00', '00:01:00:00', '00:24:00:00', '07:00:00:00']; -var BingImageURL = 'https://www.bing.com/HPImageArchive.aspx'; -var BingParams = { format: 'js', idx: '0' , n: '8' , mbl: '1' , mkt: '' } ; +export var BingImageURL = 'https://www.bing.com/HPImageArchive.aspx'; +export var BingParams = { format: 'js', idx: '0' , n: '8' , mbl: '1' , mkt: '' } ; -function validate_icon(settings, icon_image = null) { +export function validate_icon(settings, extension_path, icon_image = null) { log('validate_icon()'); let icon_name = settings.get_string('icon-name'); if (icon_name == '' || icon_list.indexOf(icon_name) == -1) { @@ -77,20 +71,20 @@ function validate_icon(settings, icon_image = null) { } // if called from prefs if (icon_image) { - log('set icon to: ' + Me.dir.get_path() + '/icons/' + icon_name + '.svg'); - let pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(Me.dir.get_path() + '/icons/' + icon_name + '.svg', 32, 32); + log('set icon to: ' + extension_path + '/icons/' + icon_name + '.svg'); + let pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(extension_path + '/icons/' + icon_name + '.svg', 32, 32); icon_image.set_from_pixbuf(pixbuf); } } -function validate_resolution(settings) { +export function validate_resolution(settings) { let resolution = settings.get_string('resolution'); if (resolution == '' || resolutions.indexOf(resolution) == -1) // if not a valid resolution settings.reset('resolution'); } // FIXME: needs work -function validate_imagename(settings) { +export function validate_imagename(settings) { let filename = settings.get_string('selected-image'); if (filename != 'current' || filename != 'random') return; @@ -101,13 +95,13 @@ function validate_imagename(settings) { } } -function get_current_bg(schema) { +export function get_current_bg(schema) { let gsettings = new Gio.Settings({ schema: schema }); let cur = gsettings.get_string('picture-uri'); return (cur); } -function fetch_change_log(version, label, httpSession) { +export function fetch_change_log(version, label, httpSession) { // create an http message let url = gitreleaseurl + "v" + version; let request = Soup.Message.new('GET', url); @@ -136,36 +130,29 @@ function fetch_change_log(version, label, httpSession) { } } -function set_blur_preset(settings, preset) { +export function set_blur_preset(settings, preset) { settings.set_int('lockscreen-blur-strength', preset.blur); settings.set_int('lockscreen-blur-brightness', preset.dim); log("Set blur preset to " + preset.blur + " brightness to " + preset.dim); } -function is_x11() { +export function is_x11() { return GLib.getenv('XDG_SESSION_TYPE') == 'x11'; // don't do wayland unsafe things if set } -function enabled_unsafe() { +export function enabled_unsafe() { //log("User override, enabling unsafe Wayland functionality"); return true; } -function gnome_major_version() { - let [major] = Config.PACKAGE_VERSION.split('.'); - let shellVersion = Number.parseInt(major); - - return shellVersion; -} - -function imageHasBasename(image_item, i, b) { +export function imageHasBasename(image_item, i, b) { //log("imageHasBasename : " + image_item.urlbase + " =? " + this); if (this && this.search(image_item.urlbase.replace('th?id=OHR.', ''))) return true; return false; } -function dateFromLongDate(longdate, add_seconds) { +export function dateFromLongDate(longdate, add_seconds) { if (typeof longdate === 'number') longdate = longdate.toString(); return GLib.DateTime.new(GLib.TimeZone.new_utc(), @@ -177,7 +164,7 @@ function dateFromLongDate(longdate, add_seconds) { 0 ).add_seconds(add_seconds); // seconds } -function dateFromShortDate(shortdate) { +export function dateFromShortDate(shortdate) { if (typeof shortdate === 'number') shortdate = shortdate.toString(); return GLib.DateTime.new(GLib.TimeZone.new_utc(), @@ -187,31 +174,31 @@ function dateFromShortDate(shortdate) { 0, 0, 0 ); } -function getImageList(settings) { +export function getImageList(settings) { return JSON.parse(settings.get_string('bing-json')); } -function setImageList(settings, imageList) { +export function setImageList(settings, imageList) { settings.set_string('bing-json', JSON.stringify(imageList)); if (settings.get_boolean('always-export-bing-json')) { // save copy of current JSON exportBingJSON(settings); } } -function getImageTitle(image_data) { +export function getImageTitle(image_data) { return image_data.copyright.replace(/\s*\(.*?\)\s*/g, ''); } -function getImageUrlBase(image_data) { +export function getImageUrlBase(image_data) { return image_data.urlbase.replace('/th?id=OHR.', ''); } -function getMaxLongDate(settings) { +export function getMaxLongDate(settings) { let imageList = getImageList(settings); return Math.max.apply(Math, imageList.map(function(o) { return o.fullstartdate; })); } -function getCurrentImageIndex (imageList) { +export function getCurrentImageIndex (imageList) { if (!imageList) return -1; let maxLongDate = Math.max.apply(Math, imageList.map(function(o) { return o.fullstartdate; })); @@ -220,7 +207,7 @@ function getCurrentImageIndex (imageList) { return index; } -function setImageFavouriteStatus(settings, imageURL, newState) { +export function setImageFavouriteStatus(settings, imageURL, newState) { log('set favourite status of '+imageURL+' to '+newState); let imageList = getImageList(settings); imageList.forEach(function(x, i) { @@ -233,7 +220,7 @@ function setImageFavouriteStatus(settings, imageURL, newState) { setImageList(settings, imageList); // save back to settings } -function getCurrentImage(imageList) { +export function getCurrentImage(imageList) { if (!imageList || imageList.length == 0) return null; let index = getCurrentImageIndex(imageList); @@ -242,7 +229,7 @@ function getCurrentImage(imageList) { return imageList[index]; } -function inImageList(imageList, urlbase) { +export function inImageList(imageList, urlbase) { let image = null; imageList.forEach(function(x, i) { if (urlbase.replace('/th?id=OHR.', '') == x.urlbase.replace('/th?id=OHR.', '')) @@ -251,7 +238,7 @@ function inImageList(imageList, urlbase) { return image; } -function inImageListByTitle(imageList, title) { +export function inImageListByTitle(imageList, title) { let image = null; imageList.forEach(function(x, i) { log('inImageListbyTitle(): ' + title + ' == ' + getImageTitle(x)); @@ -261,7 +248,7 @@ function inImageListByTitle(imageList, title) { return image; } -function mergeImageLists(settings, imageList) { +export function mergeImageLists(settings, imageList) { let curList = getImageList(settings); let newList = []; // list of only new images (for future notifications) imageList.forEach(function(x, i) { @@ -274,21 +261,21 @@ function mergeImageLists(settings, imageList) { return newList; // return this to caller for notifications } -function imageIndex(imageList, urlbase) { +export function imageIndex(imageList, urlbase) { return imageList.map(p => p.urlbase.replace('/th?id=OHR.', '')).indexOf(urlbase.replace('/th?id=OHR.', '')); } -function isFavourite(image) { +export function isFavourite(image) { return (image.favourite && image.favourite === true); } -function getImageByIndex(imageList, index) { +export function getImageByIndex(imageList, index) { if (imageList.length == 0 || index < 0 || index > imageList.length - 1) return null; return imageList[index]; } -function cleanupImageList(settings) { +export function cleanupImageList(settings) { let curList = imageListSortByDate(getImageList(settings)); let cutOff = GLib.DateTime.new_now_utc().add_days(-8); // 8 days ago let newList = []; @@ -306,7 +293,7 @@ function cleanupImageList(settings) { setImageList(settings, newList); } -function getWallpaperDir(settings) { +export function getWallpaperDir(settings) { let homeDir = GLib.get_home_dir(); let BingWallpaperDir = settings.get_string('download-folder').replace('~', homeDir); let userPicturesDir = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_PICTURES); @@ -328,24 +315,24 @@ function getWallpaperDir(settings) { return BingWallpaperDir; } -function setWallpaperDir(settings, uri) { +export function setWallpaperDir(settings, uri) { let homeDir = GLib.get_home_dir(); let relUri = uri.replace(homeDir, '~'); settings.set_string('download-folder', relUri); } -function imageToFilename(settings, image, resolution = null) { +export function imageToFilename(settings, image, resolution = null) { return getWallpaperDir(settings) + image.startdate + '-' + image.urlbase.replace(/^.*[\\\/]/, '').replace('th?id=OHR.', '') + '_' + (resolution ? resolution : getResolution(settings, image)) + '.jpg'; } -function getRandomInt(max) { +export function getRandomInt(max) { return Math.floor(Math.random() * max); } // Utility function -function dump(object, level = 0) { +export function dump(object, level = 0) { let output = ''; for (let property in object) { output += ' - '.repeat(level)+property + ': ' + object[property]+'\n '; @@ -357,7 +344,7 @@ function dump(object, level = 0) { return(output); } -function friendly_time_diff(time, short = true) { +export function friendly_time_diff(time, short = true) { // short we want to keep ~4-5 characters let timezone = GLib.TimeZone.new_local(); let now = GLib.DateTime.new_now(timezone).to_unix(); @@ -380,7 +367,7 @@ function friendly_time_diff(time, short = true) { } } -function getResolution(settings, image) { +export function getResolution(settings, image) { let resolution = settings.get_string('resolution'); if (resolutions.indexOf(resolution) == -1 || (image ? image.wp == false : true) || // wp == false when background is animated settings.get_string('resolution') == 'auto' ) { @@ -390,26 +377,26 @@ function getResolution(settings, image) { return resolution; } -function openImageFolder(settings) { +export function openImageFolder(settings) { //const context = global?global.create_app_launch_context(0, -1):null; Gio.AppInfo.launch_default_for_uri('file://' + getWallpaperDir(settings), null); } -function imageListSortByDate(imageList) { +export function imageListSortByDate(imageList) { return imageList.sort(function(a, b) { var x = parseInt(a.fullstartdate); var y = parseInt(b.fullstartdate); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }); } -function shortenName(string, limit) { +export function shortenName(string, limit) { if (string.length > limit) { string = string.substr(0, limit - 4) + '...'; } return string; } -function moveImagesToNewFolder(settings, oldPath, newPath) { +export function moveImagesToNewFolder(settings, oldPath, newPath) { // possible race condition here, need to think about how to fix it //let BingWallpaperDir = settings.get_string('download-folder'); let dir = Gio.file_new_for_path(oldPath); @@ -433,17 +420,17 @@ function moveImagesToNewFolder(settings, oldPath, newPath) { moveBackground(oldPath, newPath, DESKTOP_SCHEMA); } -function dirname(path) { +export function dirname(path) { return path.match(/.*\//); } -function slash(path) { +export function slash(path) { if (!path.endsWith('/')) return path += '/'; return path; } -function moveBackground(oldPath, newPath, schema) { +export function moveBackground(oldPath, newPath, schema) { let gsettings = new Gio.Settings({schema: schema}); let uri = gsettings.get_string('picture-uri'); gsettings.set_string('picture-uri', uri.replace(oldPath, newPath)); @@ -458,12 +445,12 @@ function moveBackground(oldPath, newPath, schema) { gsettings.apply(); } -function log(msg) { +export function log(msg) { if (debug) print("BingWallpaper extension: " + msg); // disable to keep the noise down in journal } -function deleteImage(to_delete) { +export function deleteImage(to_delete) { var file = Gio.file_new_for_path(to_delete); if (file.query_exists(null)) { try { @@ -477,7 +464,7 @@ function deleteImage(to_delete) { } // add image to persistant list so we can delete it later (in chronological order), delete the oldest image (if user wants this) -function purgeImages(settings) { +export function purgeImages(settings) { let deletepictures = settings.get_boolean('delete-previous'); if (deletepictures === false) return; @@ -497,7 +484,7 @@ function purgeImages(settings) { validate_imagename(settings); // if we deleted our current image, we want to reset it to something valid } -function openInSystemViewer(filename, is_file = true) { +export function openInSystemViewer(filename, is_file = true) { let context; try { context = global.create_app_launch_context(0, -1); @@ -510,7 +497,7 @@ function openInSystemViewer(filename, is_file = true) { Gio.AppInfo.launch_default_for_uri(filename, context); } -function exportBingJSON(settings) { +export function exportBingJSON(settings) { let json = settings.get_string('bing-json'); let filepath = getWallpaperDir(settings) + 'bing.json'; let file = Gio.file_new_for_path(filepath); @@ -520,7 +507,7 @@ function exportBingJSON(settings) { } } -function importBingJSON(settings) { +export function importBingJSON(settings) { let filepath = getWallpaperDir(settings) + 'bing.json'; let file = Gio.file_new_for_path(filepath); if (file.query_exists(null)) { From 80a3023596388790a68bc2c81cb0c8a238285805 Mon Sep 17 00:00:00 2001 From: Michael Cardillo Date: Thu, 19 Oct 2023 02:16:11 -0700 Subject: [PATCH 02/17] GNOME 45 Wayland tweaks --- extension.js | 7 +------ utils.js | 9 ++------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/extension.js b/extension.js index 3b81dcd1..743cd238 100644 --- a/extension.js +++ b/extension.js @@ -139,11 +139,6 @@ class BingWallpaperIndicator extends Button { getActorCompat(this).visible = !this._settings.get_boolean('hide'); - // enable testing potentially unsafe features on Wayland if the user overrides it - if (!Utils.is_x11() && this._settings.get_boolean('override-unsafe-wayland')) { - Utils.is_x11 = Utils.enabled_unsafe; - } - this.refreshDueItem = newMenuItem(_("")); this.titleItem = new PopupMenu.PopupSubMenuMenuItem(_("Awaiting refresh..."), false); this.explainItem = newMenuItem(_("Awaiting refresh...")); @@ -328,7 +323,7 @@ class BingWallpaperIndicator extends Button { _openMenu() { // Grey out menu items if an update is pending this.refreshItem.setSensitive(!this._updatePending); - if (Utils.is_x11()) { + if (Utils.is_x11(this._settings)) { this.clipboardImageItem.setSensitive(!this._updatePending && this.imageURL != ""); this.clipboardURLItem.setSensitive(!this._updatePending && this.imageURL != ""); } diff --git a/utils.js b/utils.js index 981fd31d..724577fb 100644 --- a/utils.js +++ b/utils.js @@ -136,13 +136,8 @@ export function set_blur_preset(settings, preset) { log("Set blur preset to " + preset.blur + " brightness to " + preset.dim); } -export function is_x11() { - return GLib.getenv('XDG_SESSION_TYPE') == 'x11'; // don't do wayland unsafe things if set -} - -export function enabled_unsafe() { - //log("User override, enabling unsafe Wayland functionality"); - return true; +export function is_x11(settings) { + return settings.get_boolean('override-unsafe-wayland') || GLib.getenv('XDG_SESSION_TYPE') == 'x11'; // don't do wayland unsafe things if set } export function imageHasBasename(image_item, i, b) { From ec305213137652b3cb2baea7396cbf414824faea Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Sat, 21 Oct 2023 16:35:07 +1000 Subject: [PATCH 03/17] update funding, remove flattr --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 902bc400..965d5cbe 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ github: [neffo] -custom: ['https://flattr.com/@neffo'] +ko_fi: [michaelcarroll] From 97063f1e8fbd5377f4a18b55d6a018cba609773f Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Sat, 21 Oct 2023 17:51:18 +1000 Subject: [PATCH 04/17] add new shuffle to settings schema --- ...shell.extensions.bingwallpaper.gschema.xml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml b/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml index 3e1c0513..c457c1d0 100644 --- a/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml +++ b/schemas/org.gnome.shell.extensions.bingwallpaper.gschema.xml @@ -137,6 +137,12 @@ + + "daily" + Set to either 'daily', 'hourly', 'weekly', 'custom' + Daily is midnight, hourly is on the hour, weekly is midnight on Sunday, or custom as defined by the 'random-interval' + + 3600 @@ -150,6 +156,24 @@ + + false + Pick a random image at random-interval + + + + + false + Only pick from UHD in random mode + + + + + true + Only pick from unhidden in random mode + + + true Override safe defaults for Wayland desktop @@ -162,6 +186,13 @@ Speeds up subsequent loads, but requires some additional disk space + + + 2160 + Minimum image height to be considered UHD + + + false Save backup copy of Bing JSON to wallpaper directory @@ -178,6 +209,11 @@ 32 Size of icons for controls in popup menu + + + false + Trash deletes images or just marks as bad + - - - - - - - - 50 - 1 - 10 - - - 100 - 5 - 10 - - - 300 - 604800 - 300 - 3600 - - - True - False - - - True - False - 12 - 12 - 12 - 12 - vertical - 12 - - - True - False - 0 - in - - - True - False - none - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - Hide the indicator - True - - - 0 - 0 - - - - - True - True - end - True - - - 1 - 0 - - - - - - - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - Indicator icon - True - - - 0 - 0 - - - - - True - False - end - - - 2 - 0 - - - - - True - False - end - True - ../icons/bing-symbolic.svg - - - 1 - 0 - - - - - - - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - Enable desktop notifications - True - - - 0 - 0 - - - - - True - True - end - True - - - 1 - 0 - - - - - - - - - - - - - - False - True - 0 - - - - - True - False - 0 - in - - - True - False - none - - - True - True - - - True - False - 12 - 12 - 12 - 12 - - - True - False - Set background image - - - 0 - 0 - - - - - True - True - end - True - - - 1 - 0 - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Background style option - True - - - 0 - 0 - - - - - True - False - - - 1 - 0 - - - - - - - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - Download folder - - - 0 - 0 - - - - - True - False - end - True - select-folder - Bing Wallpaper pictures folder - - - 1 - 0 - - - - - Open folder - True - True - True - - - 2 - 0 - - - - - - - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - Delete previously downloaded wallpapers - - - 0 - 0 - - - - - True - True - end - True - - - 1 - 0 - - - - - - - - - - - - - - False - True - 1 - - - - - True - False - 0 - in - - - True - False - none - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Selected image - True - - - 0 - 0 - - - - - True - False - start - - - - 0 - 1 - - - - - Select from image gallery - True - True - True - - - 1 - 2 - - - - - True - True - - - 1 - 0 - - - - - - - - - - - - - - False - True - 2 - - - - - True - False - 0 - in - - - True - False - none - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Bing locale - True - - - 0 - 0 - - - - - True - False - start - False - - - - - 0 - 1 - - - - - True - False - - - 1 - 0 - - - - - - - - - - - - - - False - True - 3 - - - - - - - True - False - Settings - - - False - - - - - True - False - 12 - 12 - 12 - 12 - vertical - 12 - - - True - False - 0 - in - - - True - False - none - - - True - False - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - True - end - - - 1 - 0 - - - - - True - False - start - True - Use custom blur and brightness - - - - 0 - 1 - - - - - True - False - start - True - Override GDM3 lockscreen effects - True - - - 0 - 0 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Blur can improve readability of login prompt - - - - 0 - 1 - - - - - True - False - start - True - Background blur intensity - True - - - 0 - 0 - - - - - True - True - adjustment_blur - True - - - 1 - 0 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Can improve contrast of login prompt - - - - 0 - 1 - - - - - True - False - start - True - Background brightness - True - - - 0 - 0 - - - - - True - True - adjustment_brightness - True - - - 1 - 0 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Presets - True - - - 0 - 0 - - - - - True - False - start - True - Commonly used presets - - - - 0 - 1 - - - - - No blur, slight dim - True - True - True - - - 1 - 1 - - - - - GNOME default - True - True - True - - - 1 - 0 - - - - - Slight blur, slight dim - True - True - True - - - 1 - 2 - - - - - - - - - - - - - - - - - True - True - 0 - - - - - 1 - - - - - True - False - Lock Screen - - - 1 - False - - - - - True - False - 12 - 12 - 12 - 12 - vertical - 12 - - - True - False - 0 - in - - - True - False - none - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - True - end - - - 1 - 0 - - - - - True - False - start - True - Debug logging - True - - - 0 - 0 - - - - - True - False - start - True - Enable logging to system journal - - - - 0 - 1 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - True - end - - - 1 - 0 - - - - - True - False - start - True - Always show new images - True - - - 0 - 0 - - - - - True - False - start - True - Switch to new images when available (unless on random mode) - - - - 0 - 1 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - True - end - - - 1 - 0 - - - - - True - False - start - True - Enable all features on Wayland - True - - - 0 - 0 - - - - - True - False - start - True - Some newer features may be unstable on Wayland - - - - 0 - 1 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Screen resolution - True - - - 0 - 0 - - - - - True - False - start - Override automatic resolution selection - - - - 0 - 1 - - - - - True - False - - - 1 - 0 - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Manually adjust random interval (seconds) - - - - 0 - 1 - - - - - True - False - start - True - Random interval - True - - - 0 - 0 - - - - - True - True - adjustment_random_interval - True - - - 1 - 0 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Import Bing Wallpaper data - True - - - 0 - 0 - - - - - True - False - start - True - Import previously exported JSON data from wallpaper directory - - - - 0 - 1 - - - - - Import - True - True - True - - - 1 - 1 - - - - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Export Bing Wallpaper data - True - - - 0 - 0 - - - - - True - False - start - True - Export JSON data to wallpaper dir for backup or data migration - - - - 0 - 1 - - - - - Export - True - True - True - - - 1 - 1 - - - - - - - - - True - True - - - True - False - 12 - 12 - 12 - 12 - 32 - - - True - False - start - True - Always export Bing data - True - - - 0 - 0 - - - - - True - False - start - True - Export Bing JSON whenever data changes - - - - 0 - 1 - - - - - True - True - end - - - 1 - 1 - - - - - - - - - - - - - - True - True - 0 - - - - - debug_box - 2 - - - - - True - False - Debug options - - - 2 - False - - - - - True - False - 12 - 12 - True - True - vertical - 5 - - - - True - False - Bing Wallpaper - - - - - - False - True - 1 - - - - - True - False - New wallpaper images everyday from Bing - center - True - - - False - True - 2 - - - - - True - False - center - 12 - - - False - end - Gnome shell extension version - - - False - True - 0 - - - - - False - start - ... - - - False - True - 1 - - - - - False - True - 3 - - - - - https://github.com/neffo/bing-wallpaper-gnome-extension - True - False - True - - center - none - https://github.com/neffo/bing-wallpaper-gnome-extension - - - False - True - 4 - - - - - True - False - center - vertical - 5 - - - False - Maintained by Michael Carroll - - - False - True - 0 - - - - - False - ineffable@gmail.com - True - - - False - True - 1 - - - - - True - False - Show your support to the author on <a href="https://flattr.com/@neffo">Flattr</a> or <a href="https://github.com/sponsors/neffo">Github Sponsors</a>. - True - - - False - True - 2 - - - - - False - True - 5 - - - - - True - False - vertical - - - True - False - 12 - 12 - True - True - Changes since last version - True - - - True - True - 10 - 0 - - - - - True - False - Based on NASA APOD Gnome shell extension by Elia Argentieri - center - True - - - - - - False - True - 1 - - - - - False - True - 6 - - - - - True - False - end - <span size="small">This program comes with ABSOLUTELY NO WARRANTY. -See the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License, version 3 or later</a> for details.</span> - True - center - True - - - True - True - 9 - - - - - 3 - - - - - True - False - About - - - 3 - False - - - - - 7 - 1 - 2 - - diff --git a/ui/carousel.ui b/ui/carousel.ui deleted file mode 100644 index f8168631..00000000 --- a/ui/carousel.ui +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - True - True - never - - - True - False - - - True - False - center - True - 3 - 5 - - - - - - - True - False - - - - True - False - - - 320 - 180 - True - False - 3 - - - 0 - 0 - 4 - - - - - Apply - True - True - True - - - 0 - 1 - - - - - View - True - True - True - - - 1 - 1 - - - - - Info - True - True - True - - - 2 - 1 - - - - - Delete - True - True - True - - - 3 - 1 - - - - - - - True - False - 360 - - - - True - False - center - - - 320 - 150 - True - False - media-playlist-shuffle - 3 - - - 0 - 0 - 2 - - - - - True - False - <image name here> - - - 0 - 1 - 2 - - - - - Set random mode - True - True - True - - - 0 - 2 - 2 - - - - - - \ No newline at end of file diff --git a/ui/intervals.utils.js.h b/ui/intervals.utils.js.h new file mode 100644 index 00000000..ee96f681 --- /dev/null +++ b/ui/intervals.utils.js.h @@ -0,0 +1,8 @@ +// shuffle at the top of the hour (hourly) +char *s = N_("on the hour"); + +// shuffle at midnight (daily) +char *s = N_("every day at midnight"); + +// shuffle at midnight on Sunday (weekly) +char *s = N_("every Sunday at midnight"); \ No newline at end of file diff --git a/utils.js b/utils.js index 08a99462..2af4b42e 100644 --- a/utils.js +++ b/utils.js @@ -12,7 +12,7 @@ import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import GdkPixbuf from 'gi://GdkPixbuf'; import * as Convenience from './convenience.js'; -import {Extension, gettext as _, dir as myDir} from 'resource:///org/gnome/shell/extensions/extension.js'; +//import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; export var PRESET_GNOME_DEFAULT = { blur: 60, dim: 55 }; // as at GNOME 40 export var PRESET_NO_BLUR = { blur: 0, dim: 60 }; @@ -28,10 +28,6 @@ var horizontal_blur = null; let gitreleaseurl = 'https://api.github.com/repos/neffo/bing-wallpaper-gnome-extension/releases/tags/'; let debug = false; -// remove this when dropping support for < 3.33, see https://github.com/OttoAllmendinger/ -export var getActorCompat = (obj) => - Convenience.versionGreaterEqual(Config.PACKAGE_VERSION.replace(/(alpha|beta)/,'0'), '3.33') ? obj : obj.actor; - export var icon_list = ['bing-symbolic', 'brick-symbolic', 'high-frame-symbolic', 'mid-frame-symbolic', 'low-frame-symbolic']; export var resolutions = ['auto', 'UHD', '1920x1200', '1920x1080', '1366x768', '1280x720', '1024x768', '800x600']; export var markets = ['auto', 'ar-XA', 'da-DK', 'de-AT', 'de-CH', 'de-DE', 'en-AU', 'en-CA', 'en-GB', @@ -56,9 +52,9 @@ export var marketName = [ ]; export var backgroundStyle = ['none', 'wallpaper', 'centered', 'scaled', 'stretched', 'zoom', 'spanned']; -export var randomIntervals = [ {value: 'hourly', title: _('on the hour')}, - {value: 'daily', title: _('every day at midnight')}, - {value: 'weekly', title: _('every Sunday at midnight')} ]; +export var randomIntervals = [ {value: 'hourly', title: ('on the hour')}, + {value: 'daily', title: ('every day at midnight')}, + {value: 'weekly', title: ('every Sunday at midnight')} ]; export var BingImageURL = 'https://www.bing.com/HPImageArchive.aspx'; export var BingParams = { format: 'js', idx: '0' , n: '8' , mbl: '1' , mkt: '' } ; @@ -173,7 +169,7 @@ export function dateFromShortDate(shortdate) { 0, 0, 0 ); } -function getImageList(settings, filter = null) { +export function getImageList(settings, filter = null) { let image_list = JSON.parse(settings.get_string('bing-json')); if (!filter) { return image_list; @@ -198,7 +194,7 @@ export function setImageList(settings, imageList) { } } -function setImageHiddenStatus(settings, hide_image_list, hide_status) { +export function setImageHiddenStatus(settings, hide_image_list, hide_status) { // stub // get current image list let image_list = getImageList(settings); From 64b3ca6cb03ae66a9a55209370b4968fb3061252 Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Sat, 21 Oct 2023 19:16:53 +1000 Subject: [PATCH 12/17] changes from PR #212 --- ui/Settings4.ui | 2 +- utils.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/Settings4.ui b/ui/Settings4.ui index 14fab4d7..bb65091f 100644 --- a/ui/Settings4.ui +++ b/ui/Settings4.ui @@ -1451,7 +1451,7 @@ Bing Wallpaper GNOME extension by: Michael Carroll 0 36 - Based on NASA APOD Gnome shell extension by Elia Argentieri + Based on NASA APOD GNOME shell extension by Elia Argentieri center 1 diff --git a/utils.js b/utils.js index 2af4b42e..fba2ec1f 100644 --- a/utils.js +++ b/utils.js @@ -633,7 +633,7 @@ export function initSoup() { try { let httpSession = new Soup.Session(); this.httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' - + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper Gnome Extension/'; + + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper GNOME Extension/'; //+ Extension.metadata.version; return httpSession; } From e53b719b0e507dd9f585102d5cd1181e1e2f3ae9 Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Sat, 21 Oct 2023 19:42:04 +1000 Subject: [PATCH 13/17] update metadata --- icons/trash-empty-symbolic.svg | 28 +++ icons/trash-full-symbolic.svg | 62 +++++ locale/BingWallpaper.pot | 2 +- locale/fr_FR/LC_MESSAGES/BingWallpaper.mo | Bin 4754 -> 4792 bytes locale/fr_FR/LC_MESSAGES/BingWallpaper.po | 50 ++-- locale/ko/LC_MESSAGES/BingWallpaper.mo | Bin 3420 -> 5758 bytes locale/ko/LC_MESSAGES/BingWallpaper.po | 105 ++++---- locale/ko_KP/LC_MESSAGES/BingWallpaper.mo | Bin 2844 -> 0 bytes locale/ko_KP/LC_MESSAGES/BingWallpaper.po | 294 ---------------------- locale/ko_KR/LC_MESSAGES/BingWallpaper.mo | Bin 2785 -> 0 bytes locale/ko_KR/LC_MESSAGES/BingWallpaper.po | 286 --------------------- locale/tr/LC_MESSAGES/BingWallpaper.mo | Bin 439 -> 7556 bytes locale/tr/LC_MESSAGES/BingWallpaper.po | 284 ++++++++------------- metadata.json | 6 +- 14 files changed, 272 insertions(+), 845 deletions(-) create mode 100644 icons/trash-empty-symbolic.svg create mode 100644 icons/trash-full-symbolic.svg delete mode 100644 locale/ko_KP/LC_MESSAGES/BingWallpaper.mo delete mode 100644 locale/ko_KP/LC_MESSAGES/BingWallpaper.po delete mode 100644 locale/ko_KR/LC_MESSAGES/BingWallpaper.mo delete mode 100644 locale/ko_KR/LC_MESSAGES/BingWallpaper.po diff --git a/icons/trash-empty-symbolic.svg b/icons/trash-empty-symbolic.svg new file mode 100644 index 00000000..cea9587c --- /dev/null +++ b/icons/trash-empty-symbolic.svg @@ -0,0 +1,28 @@ + + + + + + + + + + diff --git a/icons/trash-full-symbolic.svg b/icons/trash-full-symbolic.svg new file mode 100644 index 00000000..df732d85 --- /dev/null +++ b/icons/trash-full-symbolic.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + diff --git a/locale/BingWallpaper.pot b/locale/BingWallpaper.pot index 872a6b00..628aae4a 100644 --- a/locale/BingWallpaper.pot +++ b/locale/BingWallpaper.pot @@ -202,7 +202,7 @@ msgid "Changes since last version" msgstr "" #: ui/Settings4.ui.h:51 -msgid "Based on NASA APOD Gnome shell extension by Elia Argentieri" +msgid "Based on NASA APOD GNOME shell extension by Elia Argentieri" msgstr "" #: ui/Settings4.ui.h:52 diff --git a/locale/fr_FR/LC_MESSAGES/BingWallpaper.mo b/locale/fr_FR/LC_MESSAGES/BingWallpaper.mo index 0b280bb24b0e4dbae50c11023539a8929a6d8b97..f504313a0c4ca22a4b5bf1c607c3058644744fee 100644 GIT binary patch delta 636 zcmYk&JxCj27{Ku-wL@tx$!RqSR^q8iO~p#1l&Uzix>RiaXbH6AksLIj(Ow#n3?`Eh zI<*;!i<5(HLQ3d- zga0s&Nke1+KVT<*!?(DFuki>~y#z%1A&H|nhiTlzK0LuOyv8IB1x23Xr=XN|gH-}C z0>7~x8<@Z&?85&oABIH2oV&3HQ}`U`F^U^Fjz2Mi$1TtC1?L;=#iZH%;df?PWRgIR zz)RdkmXuTEkqcgGfh*)vaA4cj+ zZP`a{=aubR!yoHK+jVo^p6gg^%XVI-?Si*&6^gF4ta2{>Q#yCp=+`b7pS63&EA5#v z|G-|UjRYb=($gQ`TUn=Bxeyqr7Xphuop$LDPs)s)`RX+L=JMHG#{TXUU75{zfAWr% zrTkvht7cp~ubQnpZY>xp={D6+Rr|z@YsbwIlR9tzesaP5p+DZ5QDr^aUh>@m){=+T delta 627 zcmYk&PiWI%7{~D^>>@O2GpDTU+!ou_I7(|_b{^CX_UGUbal-x{l+b1)P~%8j8AB+D z48)to>rNBwX+j6v!HZFPP>12lk<1{+pLE z>ms*kOw-8YOJqrDA&-2fT*d?Br^s(qgHBN0%wSv9zk!>08`a=%XyGvqVAn;FYdDN* z-V$oq-J0nrUC`{tUZlU*c7nhQKLoC|T6TOHcPe4is?-9jY&T9LcQ|!ZPf{241?rAo zpdRTDQi1c-^{ZB`>Xkhr6`6Rp>bWX5`{=$^a#h|jQd*_;%6O;|`WhX`*q&eVicZz7 z1#+(#?)a`%I^UZr29B@7&)tR{TPL*@dri%ogVcF5XV_u$+?jXgo5cSMWZM^*44ccI M@2N#vqn+#8Uk(O!`v3p{ diff --git a/locale/fr_FR/LC_MESSAGES/BingWallpaper.po b/locale/fr_FR/LC_MESSAGES/BingWallpaper.po index dfc3c10c..ee9e6ef0 100644 --- a/locale/fr_FR/LC_MESSAGES/BingWallpaper.po +++ b/locale/fr_FR/LC_MESSAGES/BingWallpaper.po @@ -20,11 +20,11 @@ msgstr "" #: Settings.ui.h:1 Settings4.ui.h:2 msgid "Hide the indicator" -msgstr "Cacher l'indicateur" +msgstr "Cacher l’indicateur" #: Settings.ui.h:2 Settings4.ui.h:3 msgid "Indicator icon" -msgstr "Icône d'indicateur" +msgstr "Icône d’indicateur" #: Settings.ui.h:3 Settings4.ui.h:4 msgid "Enable desktop notifications" @@ -32,11 +32,11 @@ msgstr "Activer les notifications sur le bureau" #: Settings.ui.h:4 Settings4.ui.h:5 extension.js:129 msgid "Set background image" -msgstr "Définir l'arrière-plan" +msgstr "Définir l’arrière-plan" #: Settings.ui.h:5 Settings4.ui.h:6 extension.js:130 msgid "Set lock screen image" -msgstr "Définir l'écran de verrouillage" +msgstr "Définir l’écran de verrouillage" #: Settings.ui.h:6 Settings4.ui.h:7 msgid "Download folder" @@ -44,7 +44,7 @@ msgstr "Dossier de téléchargement" #: Settings.ui.h:7 Settings4.ui.h:1 msgid "Bing Wallpaper pictures folder" -msgstr "Dossier d'image de Bing Wallpaper" +msgstr "Dossier d’image de Bing Wallpaper" #: Settings.ui.h:8 Settings4.ui.h:9 msgid "Delete previously downloaded wallpapers" @@ -53,7 +53,7 @@ msgstr "Supprimer les images précédemment téléchargées" #: Settings.ui.h:9 Settings4.ui.h:10 msgid "Days to store wallpapers before deleting" msgstr "" -"Nombres de jours pendant lesquels les arrière-plans sont conservés avant " +"Nombre de jours pendant lesquels les arrière-plans sont conservés avant " "suppression" #: Settings.ui.h:10 Settings4.ui.h:11 @@ -75,7 +75,7 @@ msgstr "Ignorer la sélection de résolution automatique" #: Settings.ui.h:14 Settings4.ui.h:13 #, fuzzy msgid "Selected image" -msgstr "Définir l'arrière-plan" +msgstr "Définir l’arrière-plan" #: Settings.ui.h:15 Settings4.ui.h:16 extension.js:132 msgid "Settings" @@ -87,23 +87,23 @@ msgstr "Personaliser le flou et la luminosité" #: Settings.ui.h:17 Settings4.ui.h:18 msgid "Override GDM3 lockscreen effects" -msgstr "Passer outre les effets de l'écran de verouillage GDM3" +msgstr "Passer outre les effets de l’écran de verrouillage GDM3" #: Settings.ui.h:18 Settings4.ui.h:19 msgid "Blur can improve readability of login prompt" -msgstr "Le flou peut améliorer la lisibilté sur l'invite de connexion" +msgstr "Le flou peut améliorer la lisibilté sur l’invite de connexion" #: Settings.ui.h:19 Settings4.ui.h:20 msgid "Background blur intensity" -msgstr "Intensité du flou de l'arrière plan" +msgstr "Intensité du flou de l’arrière plan" #: Settings.ui.h:20 Settings4.ui.h:21 msgid "Can improve contrast of login prompt" -msgstr "Peut améliorer le contraste de l'invite de connexion" +msgstr "Peut améliorer le contraste de l’invite de connexion" #: Settings.ui.h:21 Settings4.ui.h:22 msgid "Background brightness" -msgstr "Luminosité de l'arrière plan" +msgstr "Luminosité de l’arrière plan" #: Settings.ui.h:22 Settings4.ui.h:23 msgid "Presets" @@ -111,7 +111,7 @@ msgstr "Pré-définis" #: Settings.ui.h:23 Settings4.ui.h:24 msgid "Commonly used presets" -msgstr "Pré-définis courrament utilisés" +msgstr "Pré-définis couramment utilisés" #: Settings.ui.h:24 Settings4.ui.h:25 msgid "No blur, slight dim" @@ -127,15 +127,15 @@ msgstr "Léger flou, léger dim" #: Settings.ui.h:27 Settings4.ui.h:28 msgid "Lock Screen" -msgstr "Ecran de verouillage" +msgstr "Écran de verrouillage" #: Settings.ui.h:28 Settings4.ui.h:29 msgid "New wallpaper images everyday from Bing" -msgstr "Nouvelle image d'arrière plan chaque jour depuis Bing" +msgstr "Nouvelle image d’arrière plan chaque jour depuis Bing" #: Settings.ui.h:29 Settings4.ui.h:30 msgid "Gnome shell extension version " -msgstr "Version de l'extension Gnome shell " +msgstr "Version de l’extension Gnome shell " #: Settings.ui.h:30 Settings4.ui.h:31 msgid "https://github.com/neffo/bing-wallpaper-gnome-extension" @@ -161,7 +161,7 @@ msgstr "Changements depuis la dernière version" #: Settings.ui.h:34 Settings4.ui.h:35 msgid "Based on NASA APOD Gnome shell extension by Elia Argentieri" -msgstr "Basé sur l'extension Gnome shell NASA APNN de Elia Argentieri" +msgstr "Basé sur l’extension Gnome shell NASA APNN de Elia Argentieri" #: Settings.ui.h:35 Settings4.ui.h:36 #, fuzzy @@ -201,16 +201,16 @@ msgstr "En attente d'actualisation..." #: extension.js:126 #, fuzzy msgid "Copy image to clipboard" -msgstr "Copier l'image dans le presse-papiers" +msgstr "Copier l’image dans le presse-papiers" #: extension.js:127 msgid "Copy image URL to clipboard" -msgstr "Copier l'URL de l'image dans le presse-papiers" +msgstr "Copier l’URL de l’image dans le presse-papiers" #: extension.js:128 #, fuzzy msgid "Open image folder" -msgstr "Ouvrir le dossier d'images" +msgstr "Ouvrir le dossier d’images" #: extension.js:131 msgid "Refresh Now" @@ -226,13 +226,13 @@ msgstr "Prochaine actualisation" #: extension.js:490 extension.js:527 msgid "Bing Wallpaper of the Day for" -msgstr "Le fond d'écran Bing du jour pour" +msgstr "Le fond d’écran Bing du jour pour" #: extension.js:495 #, fuzzy #| msgid "Set wallpaper" msgid "Set as wallpaper" -msgstr "Définir le fond d'écran" +msgstr "Définir le fond d’écran" #: extension.js:498 msgid "More info on Bing.com" @@ -240,17 +240,17 @@ msgstr "Plus d'info sur Bing.com" #: extension.js:553 msgid "No wallpaper available" -msgstr "Aucun fond d'écran disponible" +msgstr "Aucun fond d’écran disponible" #: extension.js:554 msgid "No picture for today." -msgstr "Pas d'image pour aujourd'hui." +msgstr "Pas d’image pour aujourd'hui." #: prefs.js:173 #, fuzzy #| msgid "Set lock screen image" msgid "Most recent image" -msgstr "Définir l'écran de verrouillage" +msgstr "Définir l’écran de verrouillage" #: prefs.js:174 msgid "Random image" diff --git a/locale/ko/LC_MESSAGES/BingWallpaper.mo b/locale/ko/LC_MESSAGES/BingWallpaper.mo index 17d385e73c8c55af44f7fe09b0a2f5e2706fa43a..19e433dd2cb16183ed36a1d7588da3413fcca385 100644 GIT binary patch literal 5758 zcmbVPYit}>6~2Y?sM|tYN?Xe7Hqg>i@A}n{)N!mhvExR>57`cBk*YGgd%ZjL?94JV z8`lv(oMaQ+I3Z5!O*W}*ZG~f}szW!)23*OZKWN1dkPzY_Bm@! zS?}73io_`6Z|6SG`ObIFz4`4ux8@n1cD$d$d&m128wCFQ{rH3DsShxAA8-%w9pKl1 z_X8jKAY=H++JPSfb^<>Ed>Z(1pbgvxoB)0r_%`q}z~2LJ2j21_#_EB00zVII1wIIT z4oLG40zV0y0@8jtEgJ|L~L1qc_|b3j@z38e8Zkj9S#$-b9> zF(C2yB9H^W10?1;VjlH^i_wjCF3R^RHe>R3ud~Yzao*xjlqgy6# z;g-z}%@uZAgVxT6@s$v+rW;PQt%1yMXC2%W?xo1VlrRh~UQpA~9~QZAQxo7&olw>eR-_myNv{J?_GG z2Yp6Dgx!V}*9^gSlBIFPOHU&{2Lv3_5?V|*U^gvmSV`Ta(4{jj+f_3zZkevFIqr>v zQkt2>W{z&g1xUt_kao7qN~bN;7~@&;JOh)2>!39=hV8Ya;QI#la@XQW&tJ!YO3Xf{j@4?%uwht~LKU!+8~=yG)t@W1JD! z%5c+i^wF5{3Wi+BbW^@#OlgjtD<`W3S{*tE52OJmdH zVbc!OP1}i@$i<8?7Oi^Gj#bQL76}*`5?UI&SH4^Mh*j6Kr>CoGa8tCgZWpRIk~T6l zmVsd|JZ;DrC=lBy>1>qc?fZsyN48eSk$uC$j&zxED*>`v`PP{3*7YN8H6yayveQm0 zH#6$f+1|8`2S2wrZmWAb5*)|MxqeF|beFe8TcXW%tW6dsWHIke&2V{S!h3aQ^=eVR zd6CPr$K>pZn_ea4Y?=GhIU4)DWpD1HoE_)#OxZhA^z$>^FXa6rGjg`Ty{l!pFzcPl zaaqK&*Sx8MT*T1)ae4fjH#y-=&PVIKlha(zP08FcP4*6#<@wiW!5egb(|ZR_)5y9@ zNb|Z&h@4&VN(GL+<@{+b4=-VH?w_4lEse|EOg;Cm_C+?w`2;!dW1vjpLM#PK83!0xI$rU#vtA0rOwUL2cvUj*Rp3msk*aSv(Xv8pIw7B(}+rg(Z1(lKF?q z-okZ+$9s83o}HrLdv7e0O6eZtK{tn&-eXWWpq3q_nZuW$cxVPeg7$N2<>EL3;OEQS zI~{0kxwKkBT;Et;y>nP?zCooc$cbbuM#fipPrGEGm4stivawqZOiA#>FWh1=ZdS#6G1Yt z4Hu?B>SZoxiX;XUnu!7>5pf2Ny~#H@+U40xf&ZZse!j@nz_Z5`BT&-H%X02$P>Yn3 z=^PE`P-XHKzon|1N@4OGq{w{EyNX}5<6KRi6De~SxV(n4i0+D#AlP}RF|4kLp}Kvc zP}HP)&0vIi_QbkU9HvxQk?Uc?bqFUY4{xaiMm_cxAmk+kkF@5U7*`SrG9s+gWPIuS zN}gmn%6p{g_KI$)VH#dpoYP-&HRbnYZ7VIiM0``RFT{~tXf}-Wze?HiAr10b;D8i-j}@aEV^M<^{#>cAOFvbUMOM| zO*)dmA;ljlu?T6D<+oSD#NSwPwXgqDG=IF?=&78Wa53b8ce7C%+K?&s`Icc+%V7J@=lM z=XvhA-Tg;fp@)oWkU49H}1n9n(KZcwn8_&4u{}2Si4Dxa=05d!EX2r z+z%gu@53E%0d9d;;REnGqI;?`fK*T0~g;-ns z4xfZKVI^$E-yo{B3+_aJ9Fw-8{}F6M|H5V=FjRaE34RBM;9rmv>T+Nn_7^YUhBJB# za-=6A!HbYf`aR?fZ^Itgjx@OBBaq-2+zwB}R=5bcf(6L)euBJ?hCHtmW#Rz(VWa~$ zua_P~ArH6!x%9bG{|Cq!{Z{f85pAXnUvfMZ^PMTY} zczmNo+~Lx3S-5dFeAxJ)aO3lVr0upVH(1_MCZ{SUbP>>cgJ*!en}mnV!&u{CV?U`IKXi3_D1E?l>s_-ZJyN zyT{en<9eFhz586fU2d1ly@(=oC>$g9iOu&0tKY)LBjmHu#5 z+!=Sz0QqD6o0X?aD|R;QZNkcWA&;q8fUHmR>XU?AYiN($34*NiNxis4YAvQSF)UqB ziG=8RB>E8}Xudbi(lX>7ZenLBC(m%@Pu|l6lgp402Gj%c8g*wUYCk zKOX40D;T6>Dbmtx?66}?&(Ph~lxLf^cdHm;PB;ZJ)e9?B%tqDJl9fdE*=%v`nsq** zR\n" +"PO-Revision-Date: 2023-07-23 01:13+0900\n" +"Last-Translator: izotopo <140181701+izotopo@users.noreply.github.com>\n" "Language-Team: \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.1\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.3.2\n" #: Settings.ui.h:1 Settings4.ui.h:2 msgid "Hide the indicator" -msgstr "인디케이터 숨기기" +msgstr "표시기 숨기기" #: Settings.ui.h:2 Settings4.ui.h:3 msgid "Indicator icon" -msgstr "인디케이터" +msgstr "표시기 아이콘" #: Settings.ui.h:3 Settings4.ui.h:4 msgid "Enable desktop notifications" -msgstr "" +msgstr "데스크톱 알림 사용" #: Settings.ui.h:4 Settings4.ui.h:5 extension.js:129 msgid "Set background image" -msgstr "바탕화면 배경 설정" +msgstr "배경화면 설정" #: Settings.ui.h:5 Settings4.ui.h:6 extension.js:130 msgid "Set lock screen image" -msgstr "잠금화면 배경 설정" +msgstr "잠금화면 설정" #: Settings.ui.h:6 Settings4.ui.h:7 msgid "Download folder" @@ -60,7 +60,7 @@ msgstr "Bing 로케일" #: Settings.ui.h:11 Settings4.ui.h:12 msgid "Default is English - United States" -msgstr "미국 영어가 기본값입니다" +msgstr "미국 영어가 기본값임" #: Settings.ui.h:12 Settings4.ui.h:14 msgid "Screen resolution" @@ -68,11 +68,11 @@ msgstr "화면 해상도" #: Settings.ui.h:13 Settings4.ui.h:15 msgid "Override automatic resolution selection" -msgstr "자동 해상도 선택 무시" +msgstr "자동 해상도 선택 재정의" #: Settings.ui.h:14 Settings4.ui.h:13 msgid "Selected image" -msgstr "" +msgstr "선택한 이미지" #: Settings.ui.h:15 Settings4.ui.h:16 extension.js:132 msgid "Settings" @@ -80,61 +80,59 @@ msgstr "설정" #: Settings.ui.h:16 Settings4.ui.h:17 msgid "Use custom blur and brightness" -msgstr "" +msgstr "사용자 지정 흐림 및 밝기 사용" #: Settings.ui.h:17 Settings4.ui.h:18 msgid "Override GDM3 lockscreen effects" -msgstr "" +msgstr "GDM3 잠금화면 효과 재정의" #: Settings.ui.h:18 Settings4.ui.h:19 msgid "Blur can improve readability of login prompt" -msgstr "" +msgstr "흐림을 통한 로그인 프롬프트 가독성 향상" #: Settings.ui.h:19 Settings4.ui.h:20 msgid "Background blur intensity" -msgstr "" +msgstr "배경화면 흐림 강도" #: Settings.ui.h:20 Settings4.ui.h:21 msgid "Can improve contrast of login prompt" -msgstr "" +msgstr "로그인 프롬프트의 대비 개선" #: Settings.ui.h:21 Settings4.ui.h:22 -#, fuzzy -#| msgid "Set background image" msgid "Background brightness" -msgstr "바탕화면 배경 설정" +msgstr "배경화면 밝기" #: Settings.ui.h:22 Settings4.ui.h:23 msgid "Presets" -msgstr "" +msgstr "프리셋" #: Settings.ui.h:23 Settings4.ui.h:24 msgid "Commonly used presets" -msgstr "" +msgstr "일반적으로 사용되는 프리셋" #: Settings.ui.h:24 Settings4.ui.h:25 msgid "No blur, slight dim" -msgstr "" +msgstr "흐림 없음, 약간 흐릿함" #: Settings.ui.h:25 Settings4.ui.h:26 msgid "GNOME default" -msgstr "" +msgstr "GNOME 기본값" #: Settings.ui.h:26 Settings4.ui.h:27 msgid "Slight blur, slight dim" -msgstr "" +msgstr "약간 흐림, 약간 흐릿함" #: Settings.ui.h:27 Settings4.ui.h:28 msgid "Lock Screen" -msgstr "" +msgstr "잠금화면" #: Settings.ui.h:28 Settings4.ui.h:29 msgid "New wallpaper images everyday from Bing" -msgstr "" +msgstr "매일 새로운 Bing 배경화면 이미지" #: Settings.ui.h:29 Settings4.ui.h:30 msgid "Gnome shell extension version " -msgstr "그놈 쉘 확장 버전" +msgstr "GNOME 셸 확장 버전 " #: Settings.ui.h:30 Settings4.ui.h:31 msgid "https://github.com/neffo/bing-wallpaper-gnome-extension" @@ -142,7 +140,7 @@ msgstr "https://github.com/neffo/bing-wallpaper-gnome-extension" #: Settings.ui.h:31 Settings4.ui.h:32 msgid "Maintained by Michael Carroll" -msgstr "Michael Carroll에 의해 유지됨" +msgstr "Michael Carroll 님이 유지보수 중임" #: Settings.ui.h:32 Settings4.ui.h:33 msgid "" @@ -150,14 +148,16 @@ msgid "" "\">Flattr or Github " "Sponsors." msgstr "" +"Flattr 또는 Github Sponsors에서 개발자를 지지해주세요." #: Settings.ui.h:33 Settings4.ui.h:34 msgid "Changes since last version" -msgstr "" +msgstr "마지막 버전 이후 변경 사항" #: Settings.ui.h:34 Settings4.ui.h:35 msgid "Based on NASA APOD Gnome shell extension by Elia Argentieri" -msgstr "Elia Argentieri의 NASA APOD 그놈 쉘 확장을 기반으로 합니다" +msgstr "Elia Argentieri 님의 NASA APOD Gnome 셸 확장을 기반으로 함" #: Settings.ui.h:35 Settings4.ui.h:36 msgid "" @@ -165,10 +165,11 @@ msgid "" "See the GNU General " "Public License, version 3 or later for details." msgstr "" -"이 프로그램은 어떠한 형태의 보증도 제공되지 않습니다.\n" +"이 프로그램은 어떠한 형태의 보증도 제공되지 않습니" +"다.\n" "더 자세한 내용은 GNU 일반 공중 사용 허가서, 버전 3 또는 그 이상 을 참고하" -"세요." +"gpl-2.0.html\">GNU 일반 공중 사용 허가서, 버전 3 또는 그 이상 을 참고" +"하세요." #: Settings.ui.h:37 Settings4.ui.h:38 msgid "About" @@ -176,7 +177,7 @@ msgstr "정보" #: Settings4.ui.h:8 msgid "Open folder" -msgstr "" +msgstr "폴더 열기" #: extension.js:117 msgid "" @@ -184,19 +185,19 @@ msgstr "<예정된 새로고침 없음>" #: extension.js:119 extension.js:121 extension.js:123 msgid "Awaiting refresh..." -msgstr "새로고침 기다리는 중..." +msgstr "새로고침을 기다리는 중..." #: extension.js:126 msgid "Copy image to clipboard" -msgstr "이미지 클립보드로 복사" +msgstr "클립보드에 이미지 복사" #: extension.js:127 msgid "Copy image URL to clipboard" -msgstr "이미지 URL을 클립보드로 복사" +msgstr "클립보드에 이미지 URL 복사" #: extension.js:128 msgid "Open image folder" -msgstr "" +msgstr "이미지 폴더 열기" #: extension.js:131 msgid "Refresh Now" @@ -204,7 +205,7 @@ msgstr "지금 새로고침" #: extension.js:137 msgid "Thumbnail disabled on Wayland" -msgstr "" +msgstr "Wayland에서 썸네일이 비활성화됨" #: extension.js:203 msgid "Next refresh" @@ -216,31 +217,31 @@ msgstr "오늘의 Bing 배경화면은" #: extension.js:495 msgid "Set as wallpaper" -msgstr "배경화면 설정" +msgstr "배경화면으로 설정" #: extension.js:498 msgid "More info on Bing.com" -msgstr "" +msgstr "Bing.com에서 더 많은 정보를 알아볼 수 있습니다" #: extension.js:553 msgid "No wallpaper available" -msgstr "사용 가능한 배경화면 없음" +msgstr "사용할 수 있는 배경화면이 없습니다" #: extension.js:554 msgid "No picture for today." -msgstr "오늘은 사진이 없네요." +msgstr "오늘은 사진이 없습니다." #: prefs.js:173 msgid "Most recent image" -msgstr "" +msgstr "가장 최근 이미지" #: prefs.js:174 msgid "Random image" -msgstr "" +msgstr "임의의 이미지" #: prefs.js:190 prefs.js:206 msgid "Disabled on current GNOME version" -msgstr "" +msgstr "현재 GNOME 버전에서는 비활성화됨" #: utils.js:139 msgid "Fetching data..." @@ -248,19 +249,19 @@ msgstr "데이터를 가져오는 중..." #: utils.js:150 msgid "Market not available in your region" -msgstr "귀하의 지역에서 사용할 수 없는 마켓입니다" +msgstr "해당 지역에서 사용할 수 없는 마켓입니다" #: utils.js:154 msgid "A network error occured" -msgstr "네트워크 오류 발생" +msgstr "네트워크 오류가 발생했습니다" #: utils.js:159 msgid "Too many requests in 5 seconds" -msgstr "" +msgstr "5초 동안 너무 많은 요청이 발생했습니다" #: utils.js:186 msgid "No change log found for this release" -msgstr "" +msgstr "이 릴리스에 대한 변경 로그를 찾을 수 없습니다" #: utils.js:366 utils.js:369 msgid "minutes" @@ -278,5 +279,5 @@ msgstr "시간" #~ "Changes your wallpaper daily to the Bing picture of the day for your " #~ "region. Displays the picture description and copyright information." #~ msgstr "" -#~ "귀하의 지역에 맞는 그날의 Bing 그림으로 매일 배경화면을 변경해 줍니다. 또" -#~ "한 해당 그림에 대한 설명과 저작권 정보에 대한 알림을 보여줍니다." +#~ "해당 지역에 맞는 그날의 Bing 이미지로 매일 배경화면을 변경합니다. 또한 " +#~ "해당 이미지에 대한 설명과 저작권에 대한 정보를 보여줍니다." diff --git a/locale/ko_KP/LC_MESSAGES/BingWallpaper.mo b/locale/ko_KP/LC_MESSAGES/BingWallpaper.mo deleted file mode 100644 index 31880861d1c45cede6ba55d53682acbd95e11f82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2844 zcmbW1U2GiH6~}K0h15xb2GUR{;qW051hZa8xWLAV>cj~|#EBI^>+G>%9lUJwsRyj2x1sA}JK?!H#3`qKZIU4O*Q zQ?GXRxA*IO{Lk6>e#8Amf$=P!pW}J?2SRj$J@?@Y;|};!@ZaDj@R2n_{1Ds%J_;tl zZQxGuDe(8;X0Qyd1HS;D1iuEifd2&9*ZTW~cmeDL9|jMDkANAF@4o|X08fJtfuDhF z|0ehx_&0Dp_#bd1xE4WioSQ+m+YPe+-+(^>9gyw63qA&(0QufIa4mQPgembQh>!RR zU$27SfDeLe9uVS9XtNG{8uKA6vfU8Gk~j(y_#wC#{4>aT+yVLgCOF|dUIl*v?g3f1 z_rT}Do1g)H53;W7f7HsCz{fG)0sag;46UR*GxKaqwW>R}R)6GKe4J;hM5;oIC5ygX_w@!1d!1>kA^~xCUHb9-J5CkNb}` zd?@L?srd2)^yWu}kH~$r&{>k`5i*N1-Ci zb#iHC`nG_%fLDT0`I5#Ky#XdpBy&xZb(i*ySDV&X z!trd!G7-7hyZDP7OL?N-bi5D`{6g4%$I6=0rClbf=DOJRM`TEz3duZTI^B{?3A ztGtimWl#^XAEj9=q(C>c^=0WHmu-$Gcy%eMWkccs;`BK}Gasr^GjuH236z@;xy}JJ zviO%c*zT|WYD^4TzLegIb7Bwyn!&Pzcp+_CBN<=iJ-b!Tco9V&L6gP?;v(}Zmn;wn zGZ0y1h3_!T1*y)?j1y+_>4c?5J3To(tUA*;X)NVoWVkzxrM?uSj+f`!4*2S~2;A6f z8^3DRAw?YrWls5_(H~?S+t``U1jdlU^1uP(AXwaZ9$8_CzH>y=cp z`=zdAGTE`u3_@ebH@(2+BBp3CpB>MS&;aT~TfC8=tNTUj@f=Iy8R_c&Wo8uB;@EfK zu9wN9qm3bHj>6~SJVhhw?Y9Ox`uFzlUXHXYk?h!|Jp9?XpiyQ@;MG{So+3p&r&v2O3`a+C+zsO@rLxI-->uZN!tl&YvPqeSI2;x_f6N> zqx{hzMP4qR2HU%~QS0aS=b~e?q|cw?f6c1*hpv=XymcBk7NVomr2kN& z=9!{CdqGzU#8zr0UA~1ds9C%c9iN8Pgkb;2N^Bs02Sv47(RyANHO|T znFERDuj}{c#7YMotbYHhu9lm{60VW17WC;EU;?Q$i*<@l&9D^MYt#xN`h1~r{VH^v z)F0IwwTU>>`GrR9kNWHfOIcRxZ8Jz(e_V%eM9?fEf)xq3{fd=m786A>(WfUk2l&v{ zg;=+xdi;;%6kRL8qtKOwXm&PMr`{|end!?M_d;#;j#%~Pic_wXIA2!t(nK_KSu}1; zKol-k D6EXx# diff --git a/locale/ko_KP/LC_MESSAGES/BingWallpaper.po b/locale/ko_KP/LC_MESSAGES/BingWallpaper.po deleted file mode 100644 index 3b73b1e0..00000000 --- a/locale/ko_KP/LC_MESSAGES/BingWallpaper.po +++ /dev/null @@ -1,294 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -# Note: -# The translation of Korean in the Democratic People's Republic of Korea is uncomplete and may look strange to some North Koreans. -# This is mostly because the current translator is an user of the Korean standard language of the Republic of Korea. -# If you are skilled in Culture language of DPR Korea, please contribute in this translation. -# -# 조선민주주의인민공화국 문화어에 대한 번역은 완전하지 않고 일부 사람들에게는 이상하게 보일 수 있습니다. -# 이 문제는 현재 번역가가 대한민국 표준어를 사용하기 때문에 발생합니다. -# 만약 귀하가 조선민주주의인민공화국 문화어에 능숙하다면 이 번역에 기여해주세요. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-09 13:10+1000\n" -"PO-Revision-Date: 2021-05-09 14:05+1000\n" -"Last-Translator: Suhyuk Park (nks15) \n" -"Language-Team: \n" -"Language: ko_KP\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.1\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: Settings.ui.h:1 Settings4.ui.h:2 -msgid "Hide the indicator" -msgstr "인디케이터 숨기기" - -#: Settings.ui.h:2 Settings4.ui.h:3 -msgid "Indicator icon" -msgstr "인디케이터" - -#: Settings.ui.h:3 Settings4.ui.h:4 -msgid "Enable desktop notifications" -msgstr "" - -#: Settings.ui.h:4 Settings4.ui.h:5 extension.js:129 -msgid "Set background image" -msgstr "탁상화면 배경 설정" - -#: Settings.ui.h:5 Settings4.ui.h:6 extension.js:130 -msgid "Set lock screen image" -msgstr "잠금화면 배경 설정" - -#: Settings.ui.h:6 Settings4.ui.h:7 -msgid "Download folder" -msgstr "다운로드 폴더" - -#: Settings.ui.h:7 Settings4.ui.h:1 -msgid "Bing Wallpaper pictures folder" -msgstr "Bing 배경화면 화상 폴더" - -#: Settings.ui.h:8 Settings4.ui.h:9 -msgid "Delete previously downloaded wallpapers" -msgstr "이전에 다운로드한 배경화면 삭제" - -#: Settings.ui.h:9 Settings4.ui.h:10 -msgid "Days to store wallpapers before deleting" -msgstr "배경화면을 삭제하기 전에 저장해 두는 기간" - -#: Settings.ui.h:10 Settings4.ui.h:11 -msgid "Bing locale" -msgstr "Bing 로케일" - -#: Settings.ui.h:11 Settings4.ui.h:12 -msgid "Default is English - United States" -msgstr "미국 영어가 기본값입니다." - -#: Settings.ui.h:12 Settings4.ui.h:14 -msgid "Screen resolution" -msgstr "화면 해상도" - -#: Settings.ui.h:13 Settings4.ui.h:15 -msgid "Override automatic resolution selection" -msgstr "자동 도형표시 선택을 무시" - -#: Settings.ui.h:14 Settings4.ui.h:13 -msgid "Selected image" -msgstr "" - -#: Settings.ui.h:15 Settings4.ui.h:16 extension.js:132 -msgid "Settings" -msgstr "설정" - -#: Settings.ui.h:16 Settings4.ui.h:17 -msgid "Use custom blur and brightness" -msgstr "" - -#: Settings.ui.h:17 Settings4.ui.h:18 -msgid "Override GDM3 lockscreen effects" -msgstr "" - -#: Settings.ui.h:18 Settings4.ui.h:19 -msgid "Blur can improve readability of login prompt" -msgstr "" - -#: Settings.ui.h:19 Settings4.ui.h:20 -msgid "Background blur intensity" -msgstr "" - -#: Settings.ui.h:20 Settings4.ui.h:21 -msgid "Can improve contrast of login prompt" -msgstr "" - -#: Settings.ui.h:21 Settings4.ui.h:22 -msgid "Background brightness" -msgstr "" - -#: Settings.ui.h:22 Settings4.ui.h:23 -msgid "Presets" -msgstr "" - -#: Settings.ui.h:23 Settings4.ui.h:24 -msgid "Commonly used presets" -msgstr "" - -#: Settings.ui.h:24 Settings4.ui.h:25 -msgid "No blur, slight dim" -msgstr "" - -#: Settings.ui.h:25 Settings4.ui.h:26 -msgid "GNOME default" -msgstr "" - -#: Settings.ui.h:26 Settings4.ui.h:27 -msgid "Slight blur, slight dim" -msgstr "" - -#: Settings.ui.h:27 Settings4.ui.h:28 -msgid "Lock Screen" -msgstr "" - -#: Settings.ui.h:28 Settings4.ui.h:29 -msgid "New wallpaper images everyday from Bing" -msgstr "" - -#: Settings.ui.h:29 Settings4.ui.h:30 -msgid "Gnome shell extension version " -msgstr "그놈 쉘 확장 버전" - -#: Settings.ui.h:30 Settings4.ui.h:31 -msgid "https://github.com/neffo/bing-wallpaper-gnome-extension" -msgstr "https://github.com/neffo/bing-wallpaper-gnome-extension" - -#: Settings.ui.h:31 Settings4.ui.h:32 -msgid "Maintained by Michael Carroll" -msgstr "Michael Carroll에 의해 유지됨" - -#: Settings.ui.h:32 Settings4.ui.h:33 -msgid "" -"Show your support to the author on Flattr or Github " -"Sponsors." -msgstr "" - -#: Settings.ui.h:33 Settings4.ui.h:34 -msgid "Changes since last version" -msgstr "" - -#: Settings.ui.h:34 Settings4.ui.h:35 -msgid "Based on NASA APOD Gnome shell extension by Elia Argentieri" -msgstr "Elia Argentieri의 NASA APOD 그놈 쉘 확장을 기반으로 합니다." - -#: Settings.ui.h:35 Settings4.ui.h:36 -#, fuzzy -#| msgid "" -#| "This program comes with ABSOLUTELY NO WARRANTY.\n" -#| "See the GNU General Public License, version 3 or later for details." -msgid "" -"This program comes with ABSOLUTELY NO WARRANTY.\n" -"See the GNU General " -"Public License, version 3 or later for details." -msgstr "" -"이 프로그람은 어떠한 형태의 보증도 제공되지 않습니다.\n" -"더 자세한 내용은 GNU 일반 공중 사용 허가서, 판본 3 또는 그 이상 을 참고하" -"세요." - -#: Settings.ui.h:37 Settings4.ui.h:38 -msgid "About" -msgstr "정보" - -#: Settings4.ui.h:8 -msgid "Open folder" -msgstr "" - -#: extension.js:117 -msgid "" -msgstr "<예정된 새로고침 없음>" - -#: extension.js:119 extension.js:121 extension.js:123 -msgid "Awaiting refresh..." -msgstr "새로고침 기다리는 중..." - -#: extension.js:126 -msgid "Copy image to clipboard" -msgstr "" - -#: extension.js:127 -msgid "Copy image URL to clipboard" -msgstr "화상 유일자원지시기를 클립보드로 복사" - -#: extension.js:128 -msgid "Open image folder" -msgstr "" - -#: extension.js:131 -msgid "Refresh Now" -msgstr "지금 새로고침" - -#: extension.js:137 -msgid "Thumbnail disabled on Wayland" -msgstr "" - -#: extension.js:203 -msgid "Next refresh" -msgstr "다음 새로고침" - -#: extension.js:490 extension.js:527 -msgid "Bing Wallpaper of the Day for" -msgstr "오늘의 Bing 배경화면은" - -#: extension.js:495 -msgid "Set as wallpaper" -msgstr "배경화면 설정" - -#: extension.js:498 -msgid "More info on Bing.com" -msgstr "" - -#: extension.js:553 -msgid "No wallpaper available" -msgstr "리용 가능한 배경화면 없음" - -#: extension.js:554 -msgid "No picture for today." -msgstr "오늘은 화상이 없네요." - -#: prefs.js:173 -msgid "Most recent image" -msgstr "" - -#: prefs.js:174 -msgid "Random image" -msgstr "" - -#: prefs.js:190 prefs.js:206 -msgid "Disabled on current GNOME version" -msgstr "" - -#: utils.js:139 -msgid "Fetching data..." -msgstr "자료를 가져오는 중..." - -#: utils.js:150 -msgid "Market not available in your region" -msgstr "귀하의 구역에서 리용할 수 없는 시장입니다." - -#: utils.js:154 -msgid "A network error occured" -msgstr "망 오류 발생" - -#: utils.js:159 -msgid "Too many requests in 5 seconds" -msgstr "" - -#: utils.js:186 -msgid "No change log found for this release" -msgstr "" - -#: utils.js:366 utils.js:369 -msgid "minutes" -msgstr "분" - -#: utils.js:372 -msgid "days" -msgstr "일" - -#: utils.js:375 -msgid "hours" -msgstr "시간" - -#~ msgid "" -#~ "Changes your wallpaper daily to the Bing picture of the day for your " -#~ "region. Displays the picture description and copyright information." -#~ msgstr "" -#~ "귀하의 구역에 맞는 그날의 Bing 화상으로 매일 배경화면을 변경해 줍니다. 또" -#~ "한 해당 화상에 대한 설명과 저작권 정보에 대한 알림을 보여줍니다." diff --git a/locale/ko_KR/LC_MESSAGES/BingWallpaper.mo b/locale/ko_KR/LC_MESSAGES/BingWallpaper.mo deleted file mode 100644 index d93e5542701566a6cc0da7c9ca8c55d057913350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2785 zcmbW1YjYD-7{?Eaw|c+fT_2Pgbad0SV@GTYW1)am3Y`|z7dp-+dz!4>>}Ga1)V^zJ z#0of6X(V9M2{YxUWz0a3I8*%+z7=0M&M4WFPoOjUe>Q0wkXN3`=9fK}=k|Ycetl?d zPGGFZ^E93fYlLVAU%3Te7=ME6z-!=RJaMZKw*ilX4};HwJzyvJ3}}PTf=9r+!EeE* zz$@U3;LqUm;NRdz@VT`@+z;*q9{}G4`Fs+52>cXeyC=aHz$$nT_zU+jPB2G5n=RvN+ z>E`@Z5M>ZRs26L(gU|Bdv+S2OW4&7kw-Rf{aq!@Jw+@sx)Z$){wc&bk?yMgV){}da z_2a?$vgSxNtTES(#}jx^_Ao#0Rl>6}dUreI%28K(N%G=JX=E&EY!Q8AOMl#P$4I)a zKV%?)1&Qn!ZJ}AjrQ55kNie_-IpG=V6UXKEBBjD#%R(GBcbH7)v^v&*sW zkbXSL$r`$^bJcEMqW#hhOC{bk4H?$Lv<)+^BXTjQo3@V!j!?-#GoI9?McZ`9WLa2s z$D~iTOz$IvGtJiC&`sv)rlfw>%# zp7EWO?wfJg@f<7Tv#=hD66arHxYT^jYJA+aqL@g)=p&5!rES`r{Ht>y_?3I58obc8ypziz8YyqB-*ykvGMPM z!-+H^@{wYD+Cq=?5W2(lq`!IJ-W}Se)qNb;sC2dMcHA*grEc03GyS&rw4KtHZX@C$ zM;fM2osm}~9c@Ea#?>uthvTNaZnD$itGBtMhZ;XOM|;{tugcG;QZAS+keZ$eP8DjG zO6rGmq>dj{#UoopkX@)Bs;aM#)Tb6n{3NscdS+|2ZtAeGmF8Y zIZ_K>@c-q8n?n`zE%#0BN;Nn*L+Z0U)lcNq{ApFp5?d+fRbdJ7P(61(I6MQZ5yAcs z<=H@Z`vm23?c$I16LZ1&iYiVvE}hm%QU?~**(}wMR)Wvxn(L?Gei?6y8t3C{e8oPuKo_8eTg3D!56cf zJJxFDtbl{sl=`YtD^G^0U8>f~U#j^}R?;d~nr4utI$42lL{QHmf|d-Mensn^ z<;;T5%gCmlEeEHU2yRrV8rEt>ga4G7f{R%=6$8tc6sehW9CWoTZn&Vr{EB%_P8CY1 zS1@}{)UHgT0xSh4)bR`0q_XHC6#V4*daeX>SUP@?YZ08CQA@{K66O?&N3LtQ6>TS* zq9LE~d=?d%gY=+ipAC+lK*v{(J?nypUyS6He^{|Qu8I)y!le&aM*2!3)~R@_u>n_&x(Hm Du-xW( diff --git a/locale/ko_KR/LC_MESSAGES/BingWallpaper.po b/locale/ko_KR/LC_MESSAGES/BingWallpaper.po deleted file mode 100644 index 04c3346b..00000000 --- a/locale/ko_KR/LC_MESSAGES/BingWallpaper.po +++ /dev/null @@ -1,286 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-09 13:10+1000\n" -"PO-Revision-Date: 2021-05-09 14:07+1000\n" -"Last-Translator: Suhyuk Park (nks15) \n" -"Language-Team: \n" -"Language: ko_KR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.1\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: Settings.ui.h:1 Settings4.ui.h:2 -msgid "Hide the indicator" -msgstr "Indicator 숨기기" - -#: Settings.ui.h:2 Settings4.ui.h:3 -msgid "Indicator icon" -msgstr "" - -#: Settings.ui.h:3 Settings4.ui.h:4 -msgid "Enable desktop notifications" -msgstr "" - -#: Settings.ui.h:4 Settings4.ui.h:5 extension.js:129 -msgid "Set background image" -msgstr "바탕화면 배경 설정" - -#: Settings.ui.h:5 Settings4.ui.h:6 extension.js:130 -msgid "Set lock screen image" -msgstr "잠금화면 배경 설정" - -#: Settings.ui.h:6 Settings4.ui.h:7 -msgid "Download folder" -msgstr "다운로드 폴더" - -#: Settings.ui.h:7 Settings4.ui.h:1 -msgid "Bing Wallpaper pictures folder" -msgstr "Bing 배경화면 사진 폴더" - -#: Settings.ui.h:8 Settings4.ui.h:9 -msgid "Delete previously downloaded wallpapers" -msgstr "이전에 다운로드한 배경화면 삭제" - -#: Settings.ui.h:9 Settings4.ui.h:10 -msgid "Days to store wallpapers before deleting" -msgstr "배경화면을 삭제하기 전에 저장해 두는 기간" - -#: Settings.ui.h:10 Settings4.ui.h:11 -msgid "Bing locale" -msgstr "Bing 로케일" - -#: Settings.ui.h:11 Settings4.ui.h:12 -msgid "Default is English - United States" -msgstr "미국 영어가 기본값입니다." - -#: Settings.ui.h:12 Settings4.ui.h:14 -msgid "Screen resolution" -msgstr "화면 해상도" - -#: Settings.ui.h:13 Settings4.ui.h:15 -msgid "Override automatic resolution selection" -msgstr "자동 해상도 선택을 무시" - -#: Settings.ui.h:14 Settings4.ui.h:13 -msgid "Selected image" -msgstr "" - -#: Settings.ui.h:15 Settings4.ui.h:16 extension.js:132 -msgid "Settings" -msgstr "설정" - -#: Settings.ui.h:16 Settings4.ui.h:17 -msgid "Use custom blur and brightness" -msgstr "" - -#: Settings.ui.h:17 Settings4.ui.h:18 -msgid "Override GDM3 lockscreen effects" -msgstr "" - -#: Settings.ui.h:18 Settings4.ui.h:19 -msgid "Blur can improve readability of login prompt" -msgstr "" - -#: Settings.ui.h:19 Settings4.ui.h:20 -msgid "Background blur intensity" -msgstr "" - -#: Settings.ui.h:20 Settings4.ui.h:21 -msgid "Can improve contrast of login prompt" -msgstr "" - -#: Settings.ui.h:21 Settings4.ui.h:22 -msgid "Background brightness" -msgstr "" - -#: Settings.ui.h:22 Settings4.ui.h:23 -msgid "Presets" -msgstr "" - -#: Settings.ui.h:23 Settings4.ui.h:24 -msgid "Commonly used presets" -msgstr "" - -#: Settings.ui.h:24 Settings4.ui.h:25 -msgid "No blur, slight dim" -msgstr "" - -#: Settings.ui.h:25 Settings4.ui.h:26 -msgid "GNOME default" -msgstr "" - -#: Settings.ui.h:26 Settings4.ui.h:27 -msgid "Slight blur, slight dim" -msgstr "" - -#: Settings.ui.h:27 Settings4.ui.h:28 -msgid "Lock Screen" -msgstr "" - -#: Settings.ui.h:28 Settings4.ui.h:29 -msgid "New wallpaper images everyday from Bing" -msgstr "" - -#: Settings.ui.h:29 Settings4.ui.h:30 -msgid "Gnome shell extension version " -msgstr "그놈 쉘 확장 버전" - -#: Settings.ui.h:30 Settings4.ui.h:31 -msgid "https://github.com/neffo/bing-wallpaper-gnome-extension" -msgstr "https://github.com/neffo/bing-wallpaper-gnome-extension" - -#: Settings.ui.h:31 Settings4.ui.h:32 -msgid "Maintained by Michael Carroll" -msgstr "Michael Carroll에 의해 유지됨" - -#: Settings.ui.h:32 Settings4.ui.h:33 -msgid "" -"Show your support to the author on Flattr or Github " -"Sponsors." -msgstr "" - -#: Settings.ui.h:33 Settings4.ui.h:34 -msgid "Changes since last version" -msgstr "" - -#: Settings.ui.h:34 Settings4.ui.h:35 -msgid "Based on NASA APOD Gnome shell extension by Elia Argentieri" -msgstr "Elia Argentieri의 NASA APOD 그놈 쉘 확장을 기반으로 합니다." - -#: Settings.ui.h:35 Settings4.ui.h:36 -#, fuzzy -#| msgid "" -#| "This program comes with ABSOLUTELY NO WARRANTY.\n" -#| "See the GNU General Public License, version 3 or later for details." -msgid "" -"This program comes with ABSOLUTELY NO WARRANTY.\n" -"See the GNU General " -"Public License, version 3 or later for details." -msgstr "" -"이 프로그램은 어떠한 형태의 보증도 제공되지 않습니다.\n" -"더 자세한 내용은 GNU 일반 공중 사용 허가서, 버전 3 또는 그 이상 을 참고하" -"세요." - -#: Settings.ui.h:37 Settings4.ui.h:38 -msgid "About" -msgstr "정보" - -#: Settings4.ui.h:8 -msgid "Open folder" -msgstr "" - -#: extension.js:117 -msgid "" -msgstr "<예정된 새로고침 없음>" - -#: extension.js:119 extension.js:121 extension.js:123 -msgid "Awaiting refresh..." -msgstr "새로고침 기다리는 중..." - -#: extension.js:126 -#, fuzzy -msgid "Copy image to clipboard" -msgstr "이미지 클립보드로 복사" - -#: extension.js:127 -msgid "Copy image URL to clipboard" -msgstr "이미지 URL을 클립보드로 복사" - -#: extension.js:128 -msgid "Open image folder" -msgstr "" - -#: extension.js:131 -msgid "Refresh Now" -msgstr "지금 새로고침" - -#: extension.js:137 -msgid "Thumbnail disabled on Wayland" -msgstr "" - -#: extension.js:203 -msgid "Next refresh" -msgstr "다음 새로고침" - -#: extension.js:490 extension.js:527 -msgid "Bing Wallpaper of the Day for" -msgstr "오늘의 Bing 배경화면은" - -#: extension.js:495 -msgid "Set as wallpaper" -msgstr "배경화면 설정" - -#: extension.js:498 -msgid "More info on Bing.com" -msgstr "" - -#: extension.js:553 -msgid "No wallpaper available" -msgstr "사용 가능한 배경화면 없음" - -#: extension.js:554 -msgid "No picture for today." -msgstr "오늘은 사진이 없네요." - -#: prefs.js:173 -msgid "Most recent image" -msgstr "" - -#: prefs.js:174 -msgid "Random image" -msgstr "" - -#: prefs.js:190 prefs.js:206 -msgid "Disabled on current GNOME version" -msgstr "" - -#: utils.js:139 -msgid "Fetching data..." -msgstr "데이터를 가져오는 중..." - -#: utils.js:150 -msgid "Market not available in your region" -msgstr "귀하의 지역에서 사용할 수 없는 마켓입니다." - -#: utils.js:154 -msgid "A network error occured" -msgstr "네트워크 오류 발생" - -#: utils.js:159 -msgid "Too many requests in 5 seconds" -msgstr "" - -#: utils.js:186 -msgid "No change log found for this release" -msgstr "" - -#: utils.js:366 utils.js:369 -msgid "minutes" -msgstr "분" - -#: utils.js:372 -msgid "days" -msgstr "일" - -#: utils.js:375 -msgid "hours" -msgstr "시간" - -#~ msgid "" -#~ "Changes your wallpaper daily to the Bing picture of the day for your " -#~ "region. Displays the picture description and copyright information." -#~ msgstr "" -#~ "귀하의 지역에 맞는 그날의 Bing 그림으로 매일 배경화면을 변경해 줍니다. 또" -#~ "한 해당 그림에 대한 설명과 저작권 정보에 대한 알림을 보여줍니다." diff --git a/locale/tr/LC_MESSAGES/BingWallpaper.mo b/locale/tr/LC_MESSAGES/BingWallpaper.mo index 45c643e88a1550c9684e1edf7c0244eeb92365af..18fa19bb4e8f6c473ecb88d2e2aa1fb54d0d86f4 100644 GIT binary patch literal 7556 zcmb7|TWloRS;r3{B*cM)O~{2?I6J#!c9ZG$%y=hEJhs{P*z1}2HtY86WFClgy6bdz zO;=Ynb+M-%?jnJgNGMU3Bnq)uhz9Y1#u6+NGAO9q3J;M`RtZubh!8@`LnII&fmRBa z-*>9IyX@HzDEavBQ+4W`@ACgHFZfPS&RqnTzz>6R&hLP-&lf>Vp+?30E8yFhf4ji{ z0%gC)ekkAP-QXhgIq)suFMzKHe--3MeT-l7{wG0RRbK?fK1blw;NO7ahgU(->&*zm zpK1;idp`?`eRe_d$30MkzXr;FFM;y@AA>&%eyMo=bx`*EcTn_s55kFj@8y^5e+3l# zErYVp4k-J41mqRf2gT374DzEs!!OzY0VwhugYy0>ATC$`0R9O0ZSd3JcR=CACs|Yl z{|FR*d;=6azk|hMr)LWMASgUr0!7{xaP)mjZGi7){uo9Sd>{Dt;B^qns3$R!__YfD z40sz9|9lh_d;L0i4*V=A@*IQW|F40o;6H=Hn=2^y6u1M59X<+P2R{Km1AY~hbKZdR zKMhtu*>@9^_xqsi`w38Z_lMy3gCkJ%|7%cq@E_nsa0cOIziXh(8{i!HDNy|LWl+xj z8h8PG6T&|aegH&d^;_WM;O9Zn_b-e22`KV^3lyHc3W|TvFvgg@=C!{vP<9V*Uj-xyJl2z!mUS@I1JLG3A^VD7;Myybp@~ ze+h)H>ivxIg~*d@t@!IhlRJ6-5uM}`F5X~>tl|%`g~%sd6M4!PlyEi_K8!Enn%G%% zzsZaPzzg;j%_Qp zNk=Emj`gy@dP{1-@0qsMq3K!Ov9aY&(l?<_`~$mqF6o&dIJdOh@e|#Tqjqe1x*7Fs zqWAr@qif6c?Ty>Js~dOq*0#P=+u5mY?cS}<)UDNN$La;6JDj@bYc{m83G}V3!79Cxue_l5Y@GN}sONMP z>%gQoUYIpYy2Z@1squrPx-cu^FR5B1%2HJe_RS#C_I^K#Q@!kmZS9%VjPEC%XkUkR zUppfts@CrZ16A8Mekw}~b5*NVwQQQ*b{u7)ryD^QYd=g8-cJXop2U8;lZG})%6F4= z5Lg}cQzYkpVm*xtTeW&k*KTdE=(P}o>ZD_X072chJZ}v2YTz4Pi`zC#eH;7AiGK%& z^iAK!I%+u^ub6=t;Ox`B-%K-{&9lI>#p57qn!u`M(V&Tw{T@!;vnXmj)9?fIk!^#h z?T6y;UO!dWOY53Zn8qeaA6?WjVVlDeKWth&!;->R>Uz}cMPV?|nP}ceB%3DO?GJLR z>)SgUI*oKQ@cWI(#9sN?srxIok+nrQq-(2umYX$U7TDAlAgAp4QI>G37wv~ZWIWE^ zADfQl#oe)WRzuUkNi5JUYjVTkgga&sn9x(jW6vhtH0tXxO8u7KG~&@@{IHNqR7nO& zYJ2)#l*OS5)M^|<(3VY`9br||*-G@7*J{-HQ8NfC(L4i&r?R#N#Ou z9HWaz?q#_la!eG~o{sG?#ooh-ZIdwCl0Lr<&)NpHGjlXS9H3v>4(&vHv*vw++JXH?5ql%1N#GcKK~+k&m9 z6}C-I9H^V)!?h26nYJReAp|X=TW!FOf{N`zv5lzN)%9jxwL6J4w;(XnyJCZu2Z0z}VpX9QQ(6M-XZDn%~W;eTuGoH4s7H&wU3rvO&LXFbW!tIXGyqZg0m+F$A(xh^v%H0@{ z6?BsIT}2{DrA}g%4l#)-9;uiu%3K;(DY~=IhL|%txAdI5o_;C|1FEAaTC&*F>ULsvlkmYSuDarG-Ix~B7hsu!(~0U}yhQc?h#;O^d;U2+Zjx)>{`>C*SlHV^=Y~m#!XO%Okln0zHLYg<9Z=#t!R?WHsE_@ z61J7L^ahnlSMa?ar}6Cc_<5biGn+RzSEt6gRJ}NJof=LKs_YK>Xq~e6Y(F5sU6U#k z6LO2Ucb}_Vovst*TQ;t&hRw)Bym@`K;iogV$U-KlJV)|K=5^S2(`51THJ$&t80yCt z^`&bwAFkx>oHO5@TxtDG_0rXfXZL2*!d)BsfrV=are{LxZO?e4Bl^(x@a1@T9Hzr# zvg_zbH#l%$Ub8`6&ZJ#&?dkezee`f^WAt!+V^!Z6Jske#^624?UaLuOI(n!%OE>&D z@VlwiZ5#CLL3O4!h(||ZIywprz1{Eu?aw1|_5bKy1HEo~8GUPl?M6o=>)|n~^k`i7 z?7-+G3TdN8M-qVNLqn$Na{Q!syP!!NKE$%6*4K3%d7qIT7;ykr!5{>?@Brn| zvuIw|-~vB-CELSE>qd^|X>Ox4H>CpjJ*Rz_ZqyMeUpU|!C(vwo!t# zsd_mlJPJu8)98!ZVzZM&zY9ANUfnf=HulinEO0In?+jlKo%k?StxY3@F8Vy(w@(cZ zBPiCT!8Uk%x@15coq2de8bvb@UlV%}zM20UP@FnE*_q9#CJ|)AM zj$SJdd?Y|!bQUg59aYfDMX>mHn?Z7I}G1-R>TOAiN_-szI( z6M3RjNIW{ijd}hm`+~h_6c2>XG#gIlyu~My67j!d*QvID8jfS4Vi4*4g#hL6gYU91 z&pB-|cH2Lo@0=1*6Cq;0JmPfM@B8qBl%aETelN?Q-&l*>emUVvN(wKDlboPsL!xO< zj?O266OeALQ^chH9Q#H^%Op-@>HI!J8dVvi8RD{5W7r1ff-%1M$r z^T~jpV$*_H9>FX*z;k(kIz&N&)bzJWN?k%l>T8~1H4(v_q!k!GDGW*5KFx=x6cQLa zE|Ulvw$F?5QYVD+PT*5vDOQ@kk%zNXqpm+yZju)B0?@qx`&+*JU*P1Boar{sN#@cl zHKJQp>ysSiQrshlvdGC-I$grJ?Mj=5g)OOwk}u5gfm$DDZ8s}(XZ(O#aP}E`iRb*L ze2T~}?sKH;ykT>1xKtrpOPQ21#Xpn|G}Sgx>y{Lir+CMo2V^2lh4 zdt^dgbFQHfkB$!T*(5d=j*&KD@PkWJaxLu$c0IqAg{?kky@nW z;{{PE?Ilx}YV=eT*ypV1gfCb-w$pc8HPJ}Iw$M|J)nA)XQ5>2V^PF$40l8}q;51c^ znX9A+{-bTy|Ng<_+NVcav;XrakE==U%V|<|oRu7H!YWlycwTORPIKQJppNUYN@Z&N zZ=zBqBg2tdAp<4DxOh;TcCVT7pR>S|UW(|?_nF!mR!T!Ue4wAAIm}Z4My5-3H6=(0 l`QeKc$5ZlA0I2FkH`XmWg%UkTM-s0pF(&03s_S=+`X31WK(YV; delta 295 zcmZp%-p*`sPl#nI0}wC*u?!Ha05LNV>i{tbSO9S?P|^}egVeylWN!h#`bbyDAYEU7 zT^C0M4}U9PPwgmwKUXfF#Nra&kfOxA;+({i{30s_ph#YNX<~Y+Zb)ikE)pNe49F=h zO3cx9%P-0;wo=F|0CS6NJ^eyl-CcvM6(9n(t`Px2uED{c{(jb6zMj6Wx?!nB#gi)p z0}~^3ee#p@b%XOui;`18?8KZ@D}|Dx_>dqjs9Zo|QE@8J9XUXS@dY4Gd_g`?(mgdV gwFu%wkQoXYB_##LR{Hutb%{Bd#i@EpnN|7>04sh{\n" +"Language-Team: Turkish \n" +"Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Loco-Source-Locale: tr_TR\n" -"X-Loco-Parser: loco_parse_po\n" -"X-Generator: Loco https://localise.biz/" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.18-dev\n" #: ui/Settings.ui.h:1 ui/Settings4.ui.h:2 -msgctxt "Göstergeyi gizle" msgid "Hide the indicator" -msgstr "" +msgstr "Göstergeyi gizle" #: ui/Settings.ui.h:2 ui/Settings4.ui.h:3 -msgctxt "Gösterge simgesi" msgid "Indicator icon" -msgstr "" +msgstr "Gösterge simgesi" #: ui/Settings.ui.h:3 ui/Settings4.ui.h:4 extension.js:159 -msgctxt "Masaüstü bildirimlerini etkinleştir" msgid "Enable desktop notifications" -msgstr "" +msgstr "Masaüstü bildirimlerini etkinleştir" #: ui/Settings.ui.h:4 ui/Settings4.ui.h:5 extension.js:142 extension.js:156 -msgctxt "Arka plan resmi olarak ayarla" msgid "Set background image" -msgstr "" +msgstr "Arka plan görüntüsünü ayarla" #: ui/Settings.ui.h:5 ui/Settings4.ui.h:6 -msgctxt "Arka plan stili seçeneği" msgid "Background style option" -msgstr "" +msgstr "Arka plan stili seçeneği" #: ui/Settings.ui.h:6 ui/Settings4.ui.h:7 -msgctxt "Klasörü indir" msgid "Download folder" -msgstr "" +msgstr "İndirme klasörü" #: ui/Settings.ui.h:7 ui/Settings4.ui.h:1 -msgctxt "Bing Wallpaper Fotoğraf klasörü" msgid "Bing Wallpaper pictures folder" -msgstr "" +msgstr "Bing Duvar Kağıdı resimleri klasörü" #: ui/Settings.ui.h:8 ui/Settings4.ui.h:8 -msgctxt "Klasörü aç" msgid "Open folder" -msgstr "" +msgstr "Klasörü aç" #: ui/Settings.ui.h:9 ui/Settings4.ui.h:9 -msgctxt "Daha önce indirilen duvar kağıtlarını sil" msgid "Delete previously downloaded wallpapers" -msgstr "" +msgstr "Önceden indirilmiş duvar kağıtlarını sil" #: ui/Settings.ui.h:10 ui/Settings4.ui.h:10 -msgctxt "Seçili resim" msgid "Selected image" -msgstr "" +msgstr "Seçilen görüntü" #: ui/Settings.ui.h:11 -msgctxt "Galeriden resim seç" msgid "Select from image gallery" -msgstr "" +msgstr "Görüntü galerisinden seç" #: ui/Settings.ui.h:12 ui/Settings4.ui.h:11 -msgctxt "Bing konumu" msgid "Bing locale" -msgstr "" +msgstr "Bing yerel ayarı" #: ui/Settings.ui.h:13 ui/Settings4.ui.h:12 extension.js:145 -msgctxt "Ayarlar" msgid "Settings" -msgstr "" +msgstr "Ayarlar" #: ui/Settings.ui.h:14 ui/Settings4.ui.h:13 -msgctxt "Özel bulanıklık ve parlaklık kullan" msgid "Use custom blur and brightness" -msgstr "" +msgstr "Özel bulanıklık ve parlaklık kullan" #: ui/Settings.ui.h:15 ui/Settings4.ui.h:14 -msgctxt "GDM3 kilit ekranı efektlerini geçersiz kıl" msgid "Override GDM3 lockscreen effects" -msgstr "" +msgstr "GDM3 kilit ekranı etkilerini geçersiz kıl" #: ui/Settings.ui.h:16 ui/Settings4.ui.h:15 -msgctxt "Bulanıklaştırma, oturum açma isteminin okunabilirliğini artırabilir" msgid "Blur can improve readability of login prompt" -msgstr "" +msgstr "Bulanıklaştırma, giriş isteminin okunabilirliğini artırabilir" #: ui/Settings.ui.h:17 ui/Settings4.ui.h:16 -msgctxt "Arka plan bulanıklık yoğunluğu" msgid "Background blur intensity" -msgstr "" +msgstr "Arka plan bulanıklık yoğunluğu" #: ui/Settings.ui.h:18 ui/Settings4.ui.h:17 -msgctxt "Oturum açma isteminin kontrastı iyileştirebilir" msgid "Can improve contrast of login prompt" -msgstr "" +msgstr "Giriş isteminin karşıtlığını iyileştirebilir" #: ui/Settings.ui.h:19 ui/Settings4.ui.h:18 -msgctxt "Arka plan parlaklığı" msgid "Background brightness" -msgstr "" +msgstr "Arka plan parlaklığı" #: ui/Settings.ui.h:20 ui/Settings4.ui.h:19 -msgctxt "Ön Ayarlar" msgid "Presets" -msgstr "" +msgstr "Ön Ayarlar" #: ui/Settings.ui.h:21 -msgctxt "Yaygın olarak kullanılan ön ayarlar" msgid "Commonly used presets" -msgstr "" +msgstr "Yaygın kullanılan ön ayarlar" #: ui/Settings.ui.h:22 ui/Settings4.ui.h:20 -msgctxt "Bulanıklık yok, hafif loş" msgid "No blur, slight dim" -msgstr "" +msgstr "Bulanıklık yok, hafif loş" #: ui/Settings.ui.h:23 ui/Settings4.ui.h:21 -msgctxt "GNOME varsayılanı" msgid "GNOME default" -msgstr "" +msgstr "GNOME varsayılanı" #: ui/Settings.ui.h:24 ui/Settings4.ui.h:22 -msgctxt "Hafif bulanıklık, hafif loşluk" msgid "Slight blur, slight dim" -msgstr "" +msgstr "Hafif bulanıklık, hafif loş" #: ui/Settings.ui.h:25 ui/Settings4.ui.h:23 -msgctxt "Kilit Ekranı" msgid "Lock Screen" -msgstr "" +msgstr "Kilit Ekranı" #: ui/Settings.ui.h:26 ui/Settings4.ui.h:25 -msgctxt "Hata ayıklama günlüğü" msgid "Debug logging" -msgstr "" +msgstr "Hata ayıklama günlüğü" #: ui/Settings.ui.h:27 ui/Settings4.ui.h:24 -msgctxt "Sistem günlüğüne günlüğe kaydetmeyi etkinleştirme" msgid "Enable logging to system journal" -msgstr "" +msgstr "Sistem günlüğüne günlüklemeyi etkinleştir" #: ui/Settings.ui.h:28 ui/Settings4.ui.h:27 extension.js:157 -msgctxt "Her zaman yeni görüntüler gösterin" msgid "Always show new images" -msgstr "" +msgstr "Her zaman yeni görüntüleri göster" #: ui/Settings.ui.h:29 ui/Settings4.ui.h:26 -msgctxt "Mevcut olduğunda yeni görüntülere geçin (rastgele modda değilse)" msgid "Switch to new images when available (unless on random mode)" -msgstr "" +msgstr "Mevcut olduğunda yeni görüntülere geç (rastgele kipte değilse)" #: ui/Settings.ui.h:30 ui/Settings4.ui.h:29 -msgctxt "Wayland üzerindeki tüm özellikleri etkinleştirin" msgid "Enable all features on Wayland" -msgstr "" +msgstr "Wayland üzerinde tüm özellikleri etkinleştir" #: ui/Settings.ui.h:31 ui/Settings4.ui.h:28 -msgctxt "Bazı yeni özellikler Wayland üzerinde kararsız olabilir" msgid "Some newer features may be unstable on Wayland" -msgstr "" +msgstr "Bazı yeni özellikler Wayland üzerinde kararsız olabilir" #: ui/Settings.ui.h:32 ui/Settings4.ui.h:30 -msgctxt "Ekran çözünürlüğü" msgid "Screen resolution" -msgstr "" +msgstr "Ekran çözünürlüğü" #: ui/Settings.ui.h:33 ui/Settings4.ui.h:31 -msgctxt "Otomatik çözünürlük seçimini geçersiz kılma" msgid "Override automatic resolution selection" -msgstr "" +msgstr "Kendiliğinden çözünürlük seçimini geçersiz kıl" #: ui/Settings.ui.h:34 ui/Settings4.ui.h:32 -msgctxt "Rastgele aralığı manuel olarak ayarlama (saniye)" msgid "Manually adjust random interval (seconds)" -msgstr "" +msgstr "Rastgele aralığı elle ayarla (saniye)" #: ui/Settings.ui.h:35 ui/Settings4.ui.h:33 -msgctxt "Rastgele aralık" msgid "Random interval" -msgstr "" +msgstr "Rastgele aralık" #: ui/Settings.ui.h:36 ui/Settings4.ui.h:34 -msgctxt "Bing Wallpaper verilerini içe aktarma" msgid "Import Bing Wallpaper data" -msgstr "" +msgstr "Bing Duvar Kağıdı verilerini içe aktar" #: ui/Settings.ui.h:37 ui/Settings4.ui.h:35 -msgctxt "" -"Duvar kağıdı dizininden önceden dışa aktarılmış JSON verilerini içe aktarma" msgid "Import previously exported JSON data from wallpaper directory" msgstr "" +"Duvar kağıdı dizininden önceden dışa aktarılmış JSON verilerini içe aktar" #: ui/Settings.ui.h:38 ui/Settings4.ui.h:36 -msgctxt "İçe Aktar" msgid "Import" -msgstr "" +msgstr "İçe Aktar" #: ui/Settings.ui.h:39 ui/Settings4.ui.h:37 -msgctxt "Bing Wallpaper verilerini dışa aktarma" msgid "Export Bing Wallpaper data" -msgstr "" +msgstr "Bing Duvar Kağıdı verilerini dışa aktar" #: ui/Settings.ui.h:40 ui/Settings4.ui.h:38 msgid "Export JSON data to wallpaper dir for backup or data migration" msgstr "" +"JSON verilerini yedekleme veya veri taşıma için duvar kağıdı dizinine aktar" #: ui/Settings.ui.h:41 ui/Settings4.ui.h:39 -msgctxt "Dışa Aktar" msgid "Export" -msgstr "" +msgstr "Dışa Aktar" #: ui/Settings.ui.h:42 ui/Settings4.ui.h:40 -msgctxt "Bing verilerini her zaman dışa aktarın" msgid "Always export Bing data" -msgstr "" +msgstr "Bing verilerini her zaman dışa aktar" #: ui/Settings.ui.h:43 ui/Settings4.ui.h:41 -msgctxt "Veriler değiştiğinde Bing JSON'u dışa aktarın" msgid "Export Bing JSON whenever data changes" -msgstr "" +msgstr "Veriler her değiştiğinde Bing JSON'u dışa aktar" #: ui/Settings.ui.h:44 ui/Settings4.ui.h:42 -msgctxt "Hata ayıklama seçenekleri" msgid "Debug options" -msgstr "" +msgstr "Hata ayıklama seçenekleri" #: ui/Settings.ui.h:45 ui/Settings4.ui.h:44 -msgctxt "Bing'den her gün yeni duvar kağıdı görselleri" msgid "New wallpaper images everyday from Bing" -msgstr "" +msgstr "Bing'den her gün yeni duvar kağıdı görüntüleri" #: ui/Settings.ui.h:46 -msgctxt "GNOME kabuk uzantısı sürümü " msgid "Gnome shell extension version " -msgstr "" +msgstr "GNOME shell uzantısı sürümü " #: ui/Settings.ui.h:47 ui/Settings4.ui.h:46 -msgctxt "Michael Carroll tarafından geliştiriliyor" msgid "Maintained by Michael Carroll" -msgstr "" +msgstr "Michael Carroll tarafından sürdürülmektedir" #: ui/Settings.ui.h:48 ui/Settings4.ui.h:47 -msgctxt "" -"Yazara desteğinizi Flattr veya GitHub Sponsors üzerinden " -"gösterin." msgid "" -"Show your support to the author on " -"Flattr or Github " +"Show your support to the author on Flattr or Github " "Sponsors." msgstr "" +"Yazara desteğinizi Flattr veya Github Sponsorları üzerinden " +"gösterin." #: ui/Settings.ui.h:49 ui/Settings4.ui.h:48 -msgctxt "Son sürümden bu yana yapılan değişiklikler" msgid "Changes since last version" -msgstr "" +msgstr "Son sürümden bu yana değişiklikler" #: ui/Settings.ui.h:50 ui/Settings4.ui.h:49 -msgctxt "Elia Argentieri'nin NASA APOD GNOME kabuk uzantısına dayanmaktadır" msgid "Based on NASA APOD Gnome shell extension by Elia Argentieri" -msgstr "" +msgstr "Elia Argentieri'nin NASA APOD GNOME shell uzantısına dayanmaktadır" #: ui/Settings.ui.h:51 ui/Settings4.ui.h:50 -msgctxt "" -"Bu program KESİNLİKLE HİÇBİR GARANTİ vermez.\n" -"Ayrıntılar için GNU " -"Genel Kamu Lisansı, sürüm 3 veya sonrası'na bakın." msgid "" "This program comes with ABSOLUTELY NO WARRANTY.\n" "See the GNU General " "Public License, version 3 or later for details." msgstr "" +"Bu program KESİNLİKLE HİÇBİR GARANTİ ile birlikte " +"gelmez.\n" +"Ayrıntılar için GNU " +"Genel Kamu Lisansı, sürüm 3 veya sonrası'na bakın." #: ui/Settings.ui.h:53 ui/Settings4.ui.h:52 -msgctxt "Hakkında" msgid "About" -msgstr "" +msgstr "Hakkında" #: ui/Settings4.ui.h:43 -msgctxt "Galeri" msgid "Gallery" -msgstr "" +msgstr "Galeri" #: ui/Settings4.ui.h:45 -msgctxt "GNOME kabuk uzantısı sürümü " msgid "GNOME shell extension version " -msgstr "" +msgstr "GNOME shell uzantısı sürümü " #: ui/carousel.ui.h:1 ui/carousel4.ui.h:1 -msgctxt "Uygula" msgid "Apply" -msgstr "" +msgstr "Uygula" #: ui/carousel.ui.h:2 ui/carousel4.ui.h:2 -msgctxt "Görünüm" msgid "View" -msgstr "" +msgstr "Görüntüle" #: ui/carousel.ui.h:3 ui/carousel4.ui.h:3 -msgctxt "Bilgi" msgid "Info" -msgstr "" +msgstr "Bilgi" #: ui/carousel.ui.h:4 ui/carousel4.ui.h:4 -msgctxt "Sil" msgid "Delete" -msgstr "" +msgstr "Sil" #: ui/carousel.ui.h:5 ui/carousel4.ui.h:6 -msgctxt "Rastgele modu ayarla" msgid "Set random mode" -msgstr "" +msgstr "Rastgele kipi ayarla" #: ui/carousel4.ui.h:5 -msgctxt "" msgid "" -msgstr "" +msgstr "" #: ui/carousel4.ui.h:7 -msgctxt "Resim galerisini yükle" msgid "Load image gallery" -msgstr "" +msgstr "Görüntü galerisini yükle" #: extension.js:135 -msgctxt "" msgid "" -msgstr "" +msgstr "" #: extension.js:136 extension.js:137 extension.js:138 -msgctxt "Yenilenmeyi bekliyor..." msgid "Awaiting refresh..." -msgstr "" +msgstr "Yenileme bekleniyor..." #: extension.js:139 -msgctxt "Görüntüyü panoya kopyala" msgid "Copy image to clipboard" -msgstr "" +msgstr "Görüntüyü panoya kopyala" #: extension.js:140 -msgctxt "Görüntü URL'sini panoya kopyala" msgid "Copy image URL to clipboard" -msgstr "" +msgstr "Görüntü URL'sini panoya kopyala" #: extension.js:141 -msgctxt "Görüntü klasörünü açın" msgid "Open image folder" -msgstr "" +msgstr "Görüntü klasörünü aç" #: extension.js:143 -msgctxt "Kilit ekranı görüntüsünü ayarla" msgid "Set lock screen image" -msgstr "" +msgstr "Kilit ekranı görüntüsünü ayarla" #: extension.js:144 -msgctxt "Şimdi Yenile" msgid "Refresh Now" -msgstr "" +msgstr "Şimdi Yenile" #: extension.js:146 -msgctxt "Resim görüntüleyicide aç" msgid "Open in image viewer" -msgstr "" +msgstr "Görüntü göstericide aç" #: extension.js:147 -msgctxt "Bing resim bilgi sayfasını açın" msgid "Open Bing image information page" -msgstr "" +msgstr "Bing görüntü bilgileri sayfasını aç" #: extension.js:154 -msgctxt "Hızlı ayarlar" msgid "Quick settings" -msgstr "" +msgstr "Hızlı ayarlar" #: extension.js:158 -msgctxt "Görüntü karıştırma modu" msgid "Image shuffle mode" -msgstr "" +msgstr "Görüntü karıştırma kipi" #: extension.js:160 -msgctxt "Görüntü sayısını göster" msgid "Show image count" -msgstr "" +msgstr "Görüntü sayısını göster" #: extension.js:326 -msgctxt "Sonraki yenileme" msgid "Next refresh" -msgstr "" +msgstr "Sonraki yenileme" #: extension.js:327 -msgctxt "Son yenileme" msgid "Last refresh" -msgstr "" +msgstr "Son yenileme" #: extension.js:724 extension.js:760 -msgctxt "Bing için Günün Duvar Kağıdı" msgid "Bing Wallpaper of the Day for" -msgstr "" +msgstr "Bing Günün Duvar Kağıdı" #: extension.js:784 -msgctxt "Duvar kağıdı mevcut değil" msgid "No wallpaper available" -msgstr "" +msgstr "Kullanılabilir duvar kağıdı yok" #: extension.js:785 -msgctxt "Bugün için fotoğraf yok." msgid "No picture for today." -msgstr "" +msgstr "Bugün için resim yok." #: prefs.js:181 -msgctxt "Klasör seçin" msgid "Select folder" -msgstr "" +msgstr "Klasör seç" #: prefs.js:249 -msgctxt "En son görüntü" msgid "Most recent image" -msgstr "" +msgstr "En son görüntü" #: prefs.js:250 -msgctxt "Rastgele görüntü" msgid "Random image" -msgstr "" +msgstr "Rastgele görüntü" #: utils.js:135 -msgctxt "Değişiklik günlüğü alınırken hata oluştu: " msgid "Error fetching change log: " -msgstr "" +msgstr "Değişiklik günlüğü alınırken hata oluştu: " #: utils.js:350 utils.js:353 -msgctxt "dakika" msgid "minutes" -msgstr "" +msgstr "dakika" #: utils.js:356 -msgctxt "gün" msgid "days" -msgstr "" +msgstr "gün" #: utils.js:359 -msgctxt "saat" msgid "hours" -msgstr "" +msgstr "saat" diff --git a/metadata.json b/metadata.json index 673473a3..f1dd9e35 100644 --- a/metadata.json +++ b/metadata.json @@ -1,10 +1,10 @@ { "uuid": "BingWallpaper@ineffable-gmail.com", - "shell-version": ["3.36", "3.38", "40", "41", "42", "43", "44", "45"], + "shell-version": ["45"], "name": "Bing Wallpaper", "settings-schema": "org.gnome.shell.extensions.bingwallpaper", - "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_FR), Portuguese (pt, pt_BR), Ukrainian (uk), Russian (ru_RU), Spanish (es), Korean (ko), Indonesian (id), Catalan (ca), Norwegian Bokmål (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:", - "version": "45", + "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ål (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:", + "version": "46", "url": "https://github.com/neffo/bing-wallpaper-gnome-extension", "gettext-domain": "BingWallpaper" } From fb945ea0e79c83ced17bacf31ddca383ed4319e6 Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Sat, 21 Oct 2023 20:28:07 +1000 Subject: [PATCH 14/17] fix libsoup issue --- extension.js | 8 +++++++- locale/BingWallpaper.pot | 12 ++++++------ prefs.js | 8 +++++++- utils.js | 17 +---------------- 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/extension.js b/extension.js index 0d4e73d4..1b5de11f 100644 --- a/extension.js +++ b/extension.js @@ -134,7 +134,7 @@ class BingWallpaperIndicator extends Button { this._settings = this._extension.getSettings(); // create Soup session - this.httpSession = Utils.initSoup(); + this._initSoup(); this.visible = !this._settings.get_boolean('hide'); @@ -214,6 +214,12 @@ class BingWallpaperIndicator extends Button { } } + // create Soup session + _initSoup() { + this.httpSession = new Soup.Session(); + this.httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' + Config.PACKAGE_VERSION + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper Gnome Extension/' + this._extension.metadata.version; + } + // listen for configuration changes _setConnections() { this._settings.connect('changed::hide', () => { diff --git a/locale/BingWallpaper.pot b/locale/BingWallpaper.pot index 628aae4a..63b48116 100644 --- a/locale/BingWallpaper.pot +++ b/locale/BingWallpaper.pot @@ -312,27 +312,27 @@ msgstr "" msgid "Show image count" msgstr "" -#: extension.js:329 +#: extension.js:335 msgid "Next refresh" msgstr "" -#: extension.js:330 +#: extension.js:336 msgid "Last refresh" msgstr "" -#: extension.js:777 extension.js:820 +#: extension.js:783 extension.js:826 msgid "Bing Wallpaper of the Day for" msgstr "" -#: extension.js:851 +#: extension.js:857 msgid "No wallpaper available" msgstr "" -#: extension.js:852 +#: extension.js:858 msgid "No picture for today." msgstr "" -#: prefs.js:161 +#: prefs.js:167 msgid "Select folder" msgstr "" diff --git a/prefs.js b/prefs.js index 60525f2a..dcd7c352 100644 --- a/prefs.js +++ b/prefs.js @@ -102,7 +102,13 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen let entryShuffleMode = buildable.get_object('shuffle_mode_combo'); let carouselFlowBox = (Gtk.get_major_version() == 4) ? buildable.get_object('carouselFlowBox'): null; - httpSession = httpSession = Utils.initSoup(); + try { + httpSession = new Soup.Session(); + httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' + Config.PACKAGE_VERSION + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper Gnome Extension/' + this.metadata.version; + } + catch (e) { + log("Error creating httpSession: " + e); + } // check that these are valid (can be edited through dconf-editor) Utils.validate_resolution(settings); diff --git a/utils.js b/utils.js index fba2ec1f..298148de 100644 --- a/utils.js +++ b/utils.js @@ -26,7 +26,7 @@ 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; +let debug = true; export var icon_list = ['bing-symbolic', 'brick-symbolic', 'high-frame-symbolic', 'mid-frame-symbolic', 'low-frame-symbolic']; export var resolutions = ['auto', 'UHD', '1920x1200', '1920x1080', '1366x768', '1280x720', '1024x768', '800x600']; @@ -628,18 +628,3 @@ export function getFileDimensions(filepath) { export function toFilename(wallpaperDir, startdate, imageURL, resolution) { return wallpaperDir + startdate + '-' + imageURL.replace(/^.*[\\\/]/, '').replace('th?id=OHR.', '') + '_' + resolution + '.jpg'; } - -export function initSoup() { - try { - let httpSession = new Soup.Session(); - this.httpSession.user_agent = 'User-Agent: Mozilla/5.0 (X11; GNOME Shell/' - + '; Linux x86_64; +https://github.com/neffo/bing-wallpaper-gnome-extension ) BingWallpaper GNOME Extension/'; - //+ Extension.metadata.version; - return httpSession; - } - catch (e) { - log('Unable to create soup session: '+e); - return null; - } - -} \ No newline at end of file From 4a20c9be890537fc337cd960ca19b053c6a0a464 Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Sun, 22 Oct 2023 00:04:12 +1000 Subject: [PATCH 15/17] resize prefs, reduce log noise --- extension.js | 2 +- locale/BingWallpaper.pot | 10 +++---- prefs.js | 23 ++++------------ ui/Settings4.ui | 18 ++++++------- utils.js | 57 ++++++++++++++++++++-------------------- 5 files changed, 49 insertions(+), 61 deletions(-) diff --git a/extension.js b/extension.js index 1b5de11f..7e7c58ed 100644 --- a/extension.js +++ b/extension.js @@ -67,7 +67,7 @@ const newMenuSwitchItem = (label, state) => { function log(msg) { if (bingWallpaperIndicator && bingWallpaperIndicator._settings.get_boolean('debug-logging')) - print('BingWallpaper extension: ' + msg); // disable to keep the noise down in journal + console.log('BingWallpaper extension: ' + msg); // disable to keep the noise down in journal } function notifyError(msg) { diff --git a/locale/BingWallpaper.pot b/locale/BingWallpaper.pot index 63b48116..21c5851a 100644 --- a/locale/BingWallpaper.pot +++ b/locale/BingWallpaper.pot @@ -332,22 +332,22 @@ msgstr "" msgid "No picture for today." msgstr "" -#: prefs.js:167 +#: prefs.js:160 msgid "Select folder" msgstr "" -#: utils.js:129 +#: utils.js:130 msgid "Error fetching change log: " msgstr "" -#: utils.js:412 utils.js:415 +#: utils.js:413 utils.js:416 msgid "minutes" msgstr "" -#: utils.js:418 +#: utils.js:419 msgid "days" msgstr "" -#: utils.js:421 +#: utils.js:422 msgid "hours" msgstr "" diff --git a/prefs.js b/prefs.js index dcd7c352..cc894a7f 100644 --- a/prefs.js +++ b/prefs.js @@ -24,8 +24,8 @@ const BingImageURL = Utils.BingImageURL; var DESKTOP_SCHEMA = 'org.gnome.desktop.background'; -var PREFS_DEFAULT_WIDTH = 650; -var PREFS_DEFAULT_HEIGHT = 650; +var PREFS_DEFAULT_WIDTH = 900; +var PREFS_DEFAULT_HEIGHT = 1000; export default class BingWallpaperExtensionPreferences extends ExtensionPreferences { fillPreferencesWindow(window) { @@ -33,6 +33,8 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen let settings = this.getSettings(Utils.BING_SCHEMA); let desktop_settings = this.getSettings(Utils.DESKTOP_SCHEMA); + window.set_default_size(PREFS_DEFAULT_WIDTH, PREFS_DEFAULT_HEIGHT); + let icon_image = null; let provider = new Gtk.CssProvider(); @@ -41,7 +43,7 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen let log = (msg) => { // avoids need for globals if (settings.get_boolean('debug-logging')) - print("BingWallpaper extension: " + msg); // disable to keep the noise down in journal + console.log("BingWallpaper extension: " + msg); // disable to keep the noise down in journal } // Prepare labels and controls @@ -58,14 +60,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen // fix size of prefs window in GNOME shell 40+ (but super racy, so is unreliable) - if (Convenience.versionGreaterEqual(Config.PACKAGE_VERSION.replace(/(alpha|beta)/,'0'), '40')) { - box.connect('realize', () => { - let window = box.get_root(); - //window.default_width = PREFS_DEFAULT_WIDTH; - window.default_height = PREFS_DEFAULT_HEIGHT; - }); - } - buildable.get_object('extension_version').set_text(this.metadata.version.toString()); buildable.get_object('extension_name').set_text(this.metadata.name.toString()); @@ -81,7 +75,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen let marketEntry = buildable.get_object('market'); let resolutionEntry = buildable.get_object('resolution'); let historyEntry = buildable.get_object('history'); - let galleryButton = buildable.get_object('button_open_gallery'); let deleteSwitch = buildable.get_object('delete_previous'); icon_image = buildable.get_object('icon_image'); let overrideSwitch = buildable.get_object('lockscreen_override'); @@ -173,7 +166,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen return; } let fileURI = fileChooser.get_file().get_path().replace('file://', ''); - log("fileChooser returned: "+fileURI); fileChooserBtn.set_label(fileURI); Utils.moveImagesToNewFolder(settings, Utils.getWallpaperDir(settings), fileURI); Utils.setWallpaperDir(settings, fileURI); @@ -187,7 +179,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen marketEntry.connect('notify::selected-item', () => { let id = marketEntry.get_selected(); settings.set_string('market', Utils.markets[id]); - log('dropdown selected '+id+' = '+Utils.markets[id]+" - "+Utils.marketName[id]); }); settings.connect('changed::market', () => { @@ -247,10 +238,6 @@ export default class BingWallpaperExtensionPreferences extends ExtensionPreferen Utils.set_blur_preset(settings, Utils.PRESET_SLIGHT_BLUR); }); - // not required in GTK4 as widgets are displayed by default - if (Gtk.get_major_version() < 4) - box.show_all(); - // fetch if (httpSession) Utils.fetch_change_log(this.metadata.version.toString(), change_log, httpSession); diff --git a/ui/Settings4.ui b/ui/Settings4.ui index bb65091f..de169816 100644 --- a/ui/Settings4.ui +++ b/ui/Settings4.ui @@ -142,9 +142,9 @@ Bing Wallpaper GNOME extension by: Michael Carroll 0 end - 2 - 0 - 2 + 1 + 1 + 1 @@ -160,7 +160,7 @@ Bing Wallpaper GNOME extension by: Michael Carroll 1 0 - 2 + 1 @@ -313,7 +313,7 @@ Bing Wallpaper GNOME extension by: Michael Carroll True False end - True + false Bing Wallpaper pictures folder 1 @@ -779,8 +779,8 @@ Bing Wallpaper GNOME extension by: Michael Carroll No blur, slight dim 1 - 0 - 2 + 1 + 3 @@ -799,8 +799,8 @@ Bing Wallpaper GNOME extension by: Michael Carroll Slight blur, slight dim 1 - 2 - 2 + 1 + 4 diff --git a/utils.js b/utils.js index 298148de..1d51723a 100644 --- a/utils.js +++ b/utils.js @@ -26,7 +26,7 @@ var vertical_blur = null; var horizontal_blur = null; let gitreleaseurl = 'https://api.github.com/repos/neffo/bing-wallpaper-gnome-extension/releases/tags/'; -let debug = true; +let debug = false; export var icon_list = ['bing-symbolic', 'brick-symbolic', 'high-frame-symbolic', 'mid-frame-symbolic', 'low-frame-symbolic']; export var resolutions = ['auto', 'UHD', '1920x1200', '1920x1080', '1366x768', '1280x720', '1024x768', '800x600']; @@ -50,6 +50,7 @@ export var marketName = [ 'slovenčina (Slovensko)', 'slovenščina (Slovenija)', 'svenska (Sverige)', 'ไทย (ไทย)', 'Türkçe (Türkiye)', 'українська (Україна)', '中文(中国)', '中文(中國香港特別行政區)', '中文(台灣)' ]; + export var backgroundStyle = ['none', 'wallpaper', 'centered', 'scaled', 'stretched', 'zoom', 'spanned']; export var randomIntervals = [ {value: 'hourly', title: ('on the hour')}, @@ -60,7 +61,7 @@ export var BingImageURL = 'https://www.bing.com/HPImageArchive.aspx'; export var BingParams = { format: 'js', idx: '0' , n: '8' , mbl: '1' , mkt: '' } ; export function validate_icon(settings, extension_path, icon_image = null) { - log('validate_icon()'); + BingLog('validate_icon()'); let icon_name = settings.get_string('icon-name'); if (icon_name == '' || icon_list.indexOf(icon_name) == -1) { settings.reset('icon-name'); @@ -68,7 +69,7 @@ export function validate_icon(settings, extension_path, icon_image = null) { } // if called from prefs if (icon_image) { - log('set icon to: ' + extension_path + '/icons/' + icon_name + '.svg'); + BingLog('set icon to: ' + extension_path + '/icons/' + icon_name + '.svg'); let pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(extension_path + '/icons/' + icon_name + '.svg', 32, 32); icon_image.set_from_pixbuf(pixbuf); } @@ -88,7 +89,7 @@ export function validate_imagename(settings) { return; if (!inImageList(getImageList(settings), filename)) { - log('invalid image selected'); + BingLog('invalid image selected'); //settings.reset('selected-image'); settings.set_string('selected-image', 'current'); } @@ -106,7 +107,7 @@ export function fetch_change_log(version, label, httpSession) { let url = gitreleaseurl + "v" + version; let request = Soup.Message.new('GET', url); request.request_headers.append('Accept', 'application/json'); - log("Fetching " + url); + BingLog("Fetching " + url); // queue the http request try { if (Soup.MAJOR_VERSION >= 3) { @@ -125,7 +126,7 @@ export function fetch_change_log(version, label, httpSession) { } } catch (error) { - log("Error fetching change log: " + error); + BingLog("Error fetching change log: " + error); label.set_label(_("Error fetching change log: "+error)); } } @@ -133,7 +134,7 @@ 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); - log("Set blur preset to " + preset.blur + " brightness to " + preset.dim); + BingLog("Set blur preset to " + preset.blur + " brightness to " + preset.dim); } export function is_x11(settings) { @@ -228,17 +229,17 @@ export function getCurrentImageIndex (imageList) { return -1; let maxLongDate = Math.max.apply(Math, imageList.map(function(o) { return o.fullstartdate; })); let index = imageList.map(p => parseInt(p.fullstartdate)).indexOf(maxLongDate); - log('getCurrentImageIndex for ' + maxLongDate + ': ' + index); + BingLog('getCurrentImageIndex for ' + maxLongDate + ': ' + index); return index; } export function setImageFavouriteStatus(settings, imageURL, newState) { - log('set favourite status of '+imageURL+' to '+newState); + BingLog('set favourite status of '+imageURL+' to '+newState); let imageList = getImageList(settings); imageList.forEach(function(x, i) { //log('testing: '+imageURL+' includes '+x.urlbase); if (imageURL.includes(x.urlbase)) { - log('setting index '+i+' to '+newState?'true':'false'); + BingLog('setting index '+i+' to '+newState?'true':'false'); imageList[i].favourite = newState; } }); @@ -281,7 +282,7 @@ export function inImageList(imageList, urlbase) { export function inImageListByTitle(imageList, title) { let image = null; imageList.forEach(function(x, i) { - log('inImageListbyTitle(): ' + title + ' == ' + getImageTitle(x)); + BingLog('inImageListbyTitle(): ' + title + ' == ' + getImageTitle(x)); if (getImageTitle(x) == title) image = x; }); @@ -327,7 +328,7 @@ export function cleanupImageList(settings) { newList.push(x); } else { - log('Cleaning up: '+filename); + BingLog('Cleaning up: '+filename); } }); setImageList(settings, newList); @@ -356,7 +357,7 @@ export function getWallpaperDir(settings) { let userDesktopDir = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP); // seems to be a safer default if (BingWallpaperDir == '') { BingWallpaperDir = (userPicturesDir?userPicturesDir:userDesktopDir) + '/BingWallpaper/'; - log('Using default download folder: ' + BingWallpaperDir); + BingLog('Using default download folder: ' + BingWallpaperDir); setWallpaperDir(settings, BingWallpaperDir); } else if (!BingWallpaperDir.endsWith('/')) { @@ -396,7 +397,7 @@ export function dump(object, level = 0) { output += dump(object[property], level+1); } if (level == 0) - log(output); + BingLog(output); return(output); } @@ -446,7 +447,7 @@ function seconds_until(until) { day.get_day_of_month(), 0, 0, 0); // midnight } - log('shuffle timer will be set to '+end.format_iso8601()); + BingLog('shuffle timer will be set to '+end.format_iso8601()); return(Math.floor(end.difference(now)/1000000)); // difference in μs -> s } @@ -492,10 +493,10 @@ export function moveImagesToNewFolder(settings, oldPath, newPath) { while (file = dirIter.next_file(null)) { let filename = file.get_name(); // we only want to move files that we think we own if (filename.match(/\d{8}\-.+\.jpg/i)) { - log('file: ' + slash(oldPath) + filename + ' -> ' + slash(newPath) + filename); + BingLog('file: ' + slash(oldPath) + filename + ' -> ' + slash(newPath) + filename); let cur = Gio.file_new_for_path(slash(oldPath) + filename); let dest = Gio.file_new_for_path(slash(newPath) + filename); - cur.move(dest, Gio.FileCopyFlags.OVERWRITE, null, function () { log ('...moved'); }); + cur.move(dest, Gio.FileCopyFlags.OVERWRITE, null, function () { BingLog ('...moved'); }); } } // correct filenames for GNOME backgrounds @@ -522,13 +523,13 @@ export function moveBackground(oldPath, newPath, schema) { gsettings.set_string('picture-uri-dark', dark_uri.replace(oldPath, newPath)); } catch (e) { - log('no dark background gsettings key found ('+e+')'); + BingLog('no dark background gsettings key found ('+e+')'); } Gio.Settings.sync(); gsettings.apply(); } -export function log(msg) { +export function BingLog(msg) { if (debug) print("BingWallpaper extension: " + msg); // disable to keep the noise down in journal } @@ -538,10 +539,10 @@ export function deleteImage(to_delete) { if (file.query_exists(null)) { try { file.delete(null); - log("deleted file: " + to_delete); + BingLog("deleted file: " + to_delete); } catch (error) { - log("an error occured deleting " + to_delete + " : " + error); + BingLog("an error occured deleting " + to_delete + " : " + error); } } } @@ -558,11 +559,11 @@ export function purgeImages(settings) { var to_delete = imagelist.shift(); // get the first (oldest item from the list) if (deletepictures && to_delete != '') { let imageFilename = imageToFilename(settings, to_delete); - log('deleting '+imageFilename); + BingLog('deleting '+imageFilename); deleteImage(imageFilename); } } - log('cleaned up image list, count was '+origlength+' now '+imagelist.length); + BingLog('cleaned up image list, count was '+origlength+' now '+imagelist.length); cleanupImageList(settings); validate_imagename(settings); // if we deleted our current image, we want to reset it to something valid } @@ -586,7 +587,7 @@ export function exportBingJSON(settings) { let file = Gio.file_new_for_path(filepath); let [success, error] = file.replace_contents(json, null, false, Gio.FileCreateFlags.REPLACE_DESTINATION, null); if (!success) { - log('error saving bing-json from '+filepath+': '+error); + BingLog('error saving bing-json from '+filepath+': '+error); } } @@ -597,10 +598,10 @@ export function importBingJSON(settings) { if (file.query_exists(null)) { let [success, contents, etag_out] = file.load_contents(null); if (!success) { - log('error loading bing-json '+filepath+' - '+etag_out); + BingLog('error loading bing-json '+filepath+' - '+etag_out); } else { - log('JSON import success'); + 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); @@ -608,7 +609,7 @@ export function importBingJSON(settings) { } } else { - log('JSON import file not found'); + BingLog('JSON import file not found'); } } @@ -619,7 +620,7 @@ export function getFileDimensions(filepath) { return [width, height]; } catch (e) { - log('unable to getFileDimensions('+filepath+') '+e); + BingLog('unable to getFileDimensions('+filepath+') '+e); return [null, null]; } From 3d60cd84cc5034a4bfe27ea416fb684cd99fc177 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 22 Oct 2023 10:39:56 +0200 Subject: [PATCH 16/17] chore: update german language files --- locale/de/LC_MESSAGES/BingWallpaper.mo | Bin 7058 -> 7374 bytes locale/de/LC_MESSAGES/BingWallpaper.po | 149 +++++++++---------------- 2 files changed, 51 insertions(+), 98 deletions(-) diff --git a/locale/de/LC_MESSAGES/BingWallpaper.mo b/locale/de/LC_MESSAGES/BingWallpaper.mo index 44788c7d6b1540e2ea42dfa0a7e3f4696c9b0904..c6402e2571515d8352a33851aa9b3a0e233518b7 100644 GIT binary patch delta 2616 zcmY+_TWl0n9LMofT3V#7ZGo23B8(Kdx7!Pswp>dEtP~K6SOcircDB2+ox#~%E|pj` z;0-a+2@%l5kSGuOBB_EzAjXQAXfQsgAu(V~e85l=2oN>K`2Fo}Njcg7e9q3!{Lh*H zIn%zq;9^7HbPHe_WxEpivFwVgba4PZj=}#$LQ1KgTS*fPBpN9F*u1lG9v6 zCHf0zVhOX*(kw$g=?3H{(~DYyS5Osu7qvtu(86!APYJKmQG(kz4s)1=g%eQ;7o(oc zMn0y8g9g}xD(P#eJV#J@K15QPQ>e8+k9^D(4$6NWHKEJ`>aPS7IH;sEu@GzV5H_RM z_7Ya%4P?_8i;Gn9EvQO8pLQ>5^X*4X_yA^S7~`X^Kg#Sh!P6YB;CDsTUpIVAeYN{f zpw{{#YC>00rM`&|VIlR@%;)12Y{eDmVg-JdK7R>Sk$-U!j^eQcxB|7A6R7Kt_R-NM zJBO3;57Yo7IdHEjM@=MvHCT@n!90t)uNO73V>kydpel6>HGv8iycz?j>z=`N_%fa`*LJXrWv)C?O2K)YJdZ%#P8rrJd0G@WO0%9Kru2GQ-R9U zfO>$n$lKOuo}yFFiC)x={it32HImC*#|JT+(e?WbRHYhFOYkHr;U3fgZy+CYjDw#1 z3#`R!sQV|gzPhd&3-$i5pre^?LY2HLeZel&W;ux38}B3Az??zti62m#Y7i-!$>VX9 zrvf=;YVZ)Yq8{LPY{V>*Y0oUh*^F=Y)6rU-K<(z!>F?*#euHdcQ%MXp4KUPN(w)|! z6S$1f)2gi^9woG2MiLE#Cax;>=?~BFrYB*drft~CO!~73RcAG^h*(Hy-Bn60Q!}BB zr#+zM(9%3XsA*rRXqX+WU!EJt3r3^1x7)08+#cHxNc6>$#i!aNbt`&%8kEa!o4rbHoX`UQaL{aUE+rLzs2jZO00^(JtFd^;6f~bH+*E zydz@o^aJ@D^VcULo!hLK9gmaQe=+}TZtAX1H{rzl>+dhi@SiK#HMg#^rn<7W)~cy) ztgD$_U0Yo}x|L~HZuEjqEE(!zt8byaiwKPnuX(f?af zOJ>zdJ50%}4m;9gHFbE25Hs$wW7fbvhgm0_?$~zEjl0|2Xf#H_XB2;$vock2|90`b zQLB;_iP-+kk|p!nQbn#@<8~!tR%qaiXDyE;AO7B7oW$K9T6+8~#Z&!*CEl!7JKh_& zt)^}9L@*kOMUtbN)?k;N&SKpi?7xzb|JL|~-%wgJMfI=LFvF@Ji`gutHE=Q%a%{(s zluj#X=}Bhku;X5^GaUE#mF~@H>kK<~H0s|e{bziW(;Ey&dGw*FSwW}Qj`UxfusFkS HDR227LR5k- delta 2297 zcmY+^S!`5Q9LMof+CrhUg;EMF+W`b*X*=D37Amq-XsL*W_<)J#wsU8(!<}$vrlf$G zutW`tpf`<3VnpKuAw;9|h+8B+mB^ckQIx2GNR%Z+V&eM!O~*t}=6^qDZtpqwod5q! zzvy^%P4?UBl2JqJC*~3tCK$69*Ozjk-I-`iE#AfHST@O+&#@k7;WgBwzZJg!g?hfW zZ2W!$&ft41*5Ov1i4HP8YxdJw$BmOX565sm{)FXNHrbd}Sc4DXMy$sOYNEq92VX-i zD2Ej|R`4ri?dAq9!&_K|wNvz-tT9XJXy@H%aR4>oC@#h0s29GE58-8;hUKhIFPe*5 z@QQ*xSk3nsYMz6r@kg)=-@r=z8cTS;xk-nQxy?lx_#KyH-Be>1<7QOqqo^H>ARqG< z7p3-HRAxRyW#k5`1b?FDtznfKZ_#24YMxz~rCjD99iBBuQK>nF8h92p@B;ENA9GO+ zFQayF9c%Dc)QhKZQ{ydCJrlxF>_C;~3O3>mRLN_r$iGt8&nUSMOYl^|QPkl&gIefW zEG{zU9P0TC)Ikdz!|(7aF2awvsd3j(rM-?SK{0jF!seqgy{wx2FQL=T4eekEHNj!* z#&=L9xLLSgNxqetW?YY5*n|gAB{+|I{tD{s+`|P}PntA;CvwZ|L@gworPEAjFS04~ zCTie&sD*urtMCuhiNAgIWJv+b4GgF1W})Zu)#@cl@^y3mCoSM@8Z_~~@h&Eyc(M717 zYTF5pLH<1GyME%@kj{&mvYfSCHV|6~9gNMyf7|1QFZxv|D-DFQ#6Ll^iP%c0kxkQ= z@BROx!>0qT_7E{K-y1I#SVI!`*RYW>7EqL_G?$hY;unMt>6t>>oqC;cJo`hL>4$-%*l?}l^Fmz|gp zgvwv2a?^vcxEHlyC+##gHU^)RHwE|0TZ27QQ^7A&cQ11MAvbNkWZF8zPCVfZBwQQ! z>_{@>Ti=bwlU}f);^~EhF~^I#Hj#|lNHXJvx%xI8i>G)f;W{ZdI8)IY+^VP#=2h+t z4pm;vZL6v&n!h`lw0j+Igs1jp+*CTHx!Y~Z9ZY)RRPf}qk*4N`=9Y%$HrpKPY+t=H z)Eo*;>2p%)hTXp7r4mj$>37;*$MfQYLw0*67L-jtQQFej*4UCeJ$**eqHZSK;ieDl zcm1J=8%wypji=a5CK7eizMFQv-1+L>;$U%Yu5OFNSId)Oa0a5TpNY7hvU0VyJ(x4A zD|m6%>0rlfchx3R*03p_2x~ge_QZTT{rPlQRuW6wVb_mb`Y<}+_`wIWheO+49=mkR zV?f4>rub`uC0HKuZ8+|xT>FIUr^u#_x)JghEU9Y?4%ICQF4kp&?)sl|eRDdB7VOE` b;W+uU8@-6{L|J7%UAx>NhPYmEY;NyA&i6hV diff --git a/locale/de/LC_MESSAGES/BingWallpaper.po b/locale/de/LC_MESSAGES/BingWallpaper.po index a461f876..10117b1e 100644 --- a/locale/de/LC_MESSAGES/BingWallpaper.po +++ b/locale/de/LC_MESSAGES/BingWallpaper.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-12-14 18:32+1000\n" -"PO-Revision-Date: 2021-12-14 10:56+0100\n" -"Last-Translator: Jannick Kuhr\n" +"PO-Revision-Date: 2023-10-22 10:31+0200\n" +"Last-Translator: Sebastian Kessler\n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.4\n" #: ui/Settings.ui.h:1 ui/Settings4.ui.h:2 msgid "Hide the indicator" @@ -209,8 +209,8 @@ msgstr "Betreut von Michael Carroll" #: ui/Settings.ui.h:48 ui/Settings4.ui.h:47 msgid "" -"Show your support to the author on Flattr or Github " +"Show your support to the author on Flattr or Github " "Sponsors." msgstr "" "Unterstützen Sie den Autor auf Flattr for details." msgstr "" "Dieses Programm kommt OHNE JEDWEDE GARANTIE.\n" -"Schauen Sie sich die GNU General Public License, Version 3 oder später für weitere Details " -"an." +"Schauen Sie sich die GNU General Public License, Version 3 oder später für weitere " +"Details an." #: ui/Settings.ui.h:53 ui/Settings4.ui.h:52 msgid "About" msgstr "Über" +#: ui/Settings4.ui.h:43 +msgid "Gallery" +msgstr "Gallerie" + #: ui/Settings4.ui.h:45 msgid "GNOME shell extension version " msgstr "Version der Gnome-Shell-Erweiterung " @@ -263,10 +267,18 @@ msgstr "Löschen" msgid "Set random mode" msgstr "Zufallsmodus festlegen" +#: ui/carousel4.ui.h:1 +msgid "Favorite" +msgstr "Favorit" + #: ui/carousel4.ui.h:1 msgid "" msgstr "" +#: ui/carousel4.ui.h:8 +msgid "Load image gallery" +msgstr "Lade Bilder Gallerie" + #: extension.js:106 msgid "" msgstr "" @@ -295,10 +307,38 @@ msgstr "Für Sperrbildschirm verwenden" msgid "Refresh Now" msgstr "Jetzt aktualisieren" +#: extension.js:149 +msgid "Open in image viewer" +msgstr "Im Bildbetrachter öffnen" + +#: extension.js:150 +msgid "Open Bing image information page" +msgstr "Bing-Bildinformationsseite öffnen" + +#: extension.js:157 +msgid "Quick settings" +msgstr "Schnelleinstellungen" + +#: extension.js:161 +msgid "Image shuffle mode" +msgstr "Shuffle-Modus für Bilder" + +#: extension.js:162 +msgid "Image shuffle only favourites" +msgstr "Shuffle-Modus nur Bilder" + +#: extension.js:164 +msgid "Show image count" +msgstr "Anzahl der Bilder anzeigen" + #: extension.js:209 msgid "Next refresh" msgstr "Nächste Aktualisierung" +#: extension.js:334 +msgid "Last refresh" +msgstr "Letzte Aktualisierung" + #: extension.js:505 extension.js:532 msgid "Bing Wallpaper of the Day for" msgstr "Bing-Hintergrundbild des Tages für" @@ -323,25 +363,9 @@ msgstr "Aktuellstes Bild" msgid "Random image" msgstr "Zufälliges Bild" -#: utils.js:118 -msgid "Fetching data..." -msgstr "Daten werden abgerufen..." - -#: utils.js:129 -msgid "Market not available in your region" -msgstr "Bing-Bilder in Ihrer Region nicht verfügbar" - -#: utils.js:133 -msgid "A network error occured" -msgstr "Ein Netzwerkfehler ist aufgetreten" - -#: utils.js:138 -msgid "Too many requests in 5 seconds" -msgstr "Zu viele Anfragen in 5 Sekunden" - -#: utils.js:163 -msgid "No change log found for this release" -msgstr "Kein Änderungsverlauf für diese Version gefunden" +#: utils.js:135 +msgid "Error fetching change log: " +msgstr "Fehler beim Abrufen des Änderungsprotokolls: " #: utils.js:366 utils.js:369 msgid "minutes" @@ -354,74 +378,3 @@ msgstr "Tage" #: utils.js:375 msgid "hours" msgstr "Stunden" - -#~ msgid "https://github.com/neffo/bing-wallpaper-gnome-extension" -#~ msgstr "https://github.com/neffo/bing-wallpaper-gnome-extension" - -#~ msgid "Open image gallery" -#~ msgstr "Bildergalerie öffnen" - -#~ msgid "Thumbnail disabled on Wayland" -#~ msgstr "Vorschaubild unter Wayland deaktiviert" - -#~ msgid "More info on Bing.com" -#~ msgstr "Mehr Informationen auf Bing.com" - -#~ msgid "Disabled on current GNOME version" -#~ msgstr "Auf aktueller GNOME-Version deaktiviert" - -#~ msgid "Set as wallpaper" -#~ msgstr "Als Hintergrundbild verwenden" - -#~ msgid "Days to store wallpapers before deleting" -#~ msgstr "Tage, bevor Hintergrundbilder gelöscht werden" - -#~ msgid "Default is English - United States" -#~ msgstr "Vorgabe ist English - United States" - -#~ msgid "" -#~ "Changes your wallpaper daily to the Bing picture of the day for your " -#~ "region. Displays the picture description and copyright information." -#~ msgstr "" -#~ "Wechselt täglich Ihr Hintergrundbild zum aktuellen Bing Bild des Tages " -#~ "für Ihre Region. Zeigt eine Benachrichtigung mit Bildbeschreibung und " -#~ "Urheberrechtsinformation an." - -#~ msgid "Set screensaver wallpaper" -#~ msgstr "Sperrbildschirm-Hintergrund einstellen" - -#~ msgid "Send a notification with explanation when a new image is downloaded." -#~ msgstr "" -#~ "Eine Benachrichtigung mit Erklärung anzeigen, wenn ein neues Bild " -#~ "heruntergeladen wurde." - -#~ msgid "Notifications" -#~ msgstr "Benachrichtigungen" - -#~ msgid "Use transient notifications (auto dismiss)" -#~ msgstr "Flüchtige Benachrichtigung (automatisches Entfernen)" - -#~ msgid "Show description" -#~ msgstr "Beschreibung anzeigen" - -#, fuzzy -#~ msgid "Open extension settings" -#~ msgstr "Öffnen Erweiterung Einstellungen" - -#~ msgid "Bing website" -#~ msgstr "Bing-Webseite" - -#, fuzzy -#~ msgid "" -#~ "The selected market is not available in your country or geographic " -#~ "region.\n" -#~ msgstr "" -#~ "Der ausgewählte Bing-Region ist in Ihrem Land oder Ihrer Region nicht " -#~ "verfügbar.\n" - -#, fuzzy -#~ msgid "This market is not available in your region" -#~ msgstr "Bing-Region nicht in Ihrer Region verfügbar" - -#~ msgid "Default is \"auto\"" -#~ msgstr "Vorgabe ist auto" From 9548b251528b28cc5119d934f0662b1ecfd11368 Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Sun, 22 Oct 2023 19:22:44 +1000 Subject: [PATCH 17/17] slightly widen prefs --- prefs.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prefs.js b/prefs.js index cc894a7f..7957d3cb 100644 --- a/prefs.js +++ b/prefs.js @@ -24,8 +24,8 @@ const BingImageURL = Utils.BingImageURL; var DESKTOP_SCHEMA = 'org.gnome.desktop.background'; -var PREFS_DEFAULT_WIDTH = 900; -var PREFS_DEFAULT_HEIGHT = 1000; +var PREFS_DEFAULT_WIDTH = 950; +var PREFS_DEFAULT_HEIGHT = 950; export default class BingWallpaperExtensionPreferences extends ExtensionPreferences { fillPreferencesWindow(window) {