diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 59567017..1ffbc502 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -49,7 +49,7 @@ export class Store { "tab": "home", "dynamicData": "" }, - "keybind": { + "keybindings": { "search": [ process.platform == "darwin" ? "Command" : "Control", "S" diff --git a/src/main/base/utils.ts b/src/main/base/utils.ts index a7ce2760..9889c4ff 100644 --- a/src/main/base/utils.ts +++ b/src/main/base/utils.ts @@ -6,6 +6,7 @@ import {app, dialog, ipcMain, Notification, shell } from "electron"; import fetch from "electron-fetch"; import {AppImageUpdater, NsisUpdater} from "electron-updater"; import * as log from "electron-log"; +import ElectronStore from "electron-store"; export class utils { @@ -79,6 +80,14 @@ export class utils { return Store.cfg.store } + /** + * Get the store instance + * @returns {Store} + */ + static getStoreInstance(): ElectronStore { + return Store.cfg + } + /** * Sets a store value * @param key diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts index 38ac4886..b47dcabe 100644 --- a/src/main/plugins/menubar.ts +++ b/src/main/plugins/menubar.ts @@ -2,12 +2,6 @@ import {app, Menu, shell} from "electron"; import {utils} from "../base/utils"; export default class Thumbar { - /** - * Private variables for interaction in plugins - */ - private _win: any; - private _app: any; - private _store: any; /** * Base Plugin Details (Eventually implemented into a GUI in settings) @@ -15,27 +9,225 @@ export default class Thumbar { public name: string = 'Menubar Plugin'; public description: string = 'Creates the menubar'; public version: string = '1.0.0'; - public author: string = 'Core / Quacksire'; - - /** - * Thumbnail Toolbar Assets - * NATIVE-IMAGE DOESN'T SUPPORT SVG - private icons: { [key: string]: Electron.NativeImage } = { - remoteIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/smartphone.svg')).toPNG(), - soundIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/headphones.svg')).toPNG(), - aboutIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/info.svg')).toPNG(), - settingsIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/settings.svg')).toPNG(), - logoutIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/log-out.svg')).toPNG(), - ciderIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'assets/logocute.png')).toPNG(), - } - */ + public author: string = 'Core'; + public contributors: string[] = ['Core', 'Qwack', 'Monochromish']; /** * Menubar Assets * @private */ private isMac: boolean = process.platform === 'darwin'; - private _menuTemplate: any; + private _menuTemplate: any = [ + { + label: app.getName(), + submenu: [ + { + label: 'About', + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('about')`) + }, + {type: 'separator'}, + { + label: 'Settings', + accelerator: utils.getStoreValue("general.keybindings.settings").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('settings')`) + }, + {type: 'separator'}, + {role: 'services'}, + {type: 'separator'}, + {role: 'hide'}, + {role: 'hideOthers'}, + {role: 'unhide'}, + {type: 'separator'}, + {role: 'quit'} + ] + }, + { + label: 'View', + submenu: [ + {role: 'reload'}, + {role: 'forceReload'}, + {role: 'toggleDevTools'}, + {type: 'separator'}, + {role: 'resetZoom'}, + {role: 'zoomIn'}, + {role: 'zoomOut'}, + {type: 'separator'}, + {role: 'togglefullscreen'}, + ] + }, + { + label: 'Window', + submenu: [ + {role: 'minimize'}, + { + label: 'Show', + click: () => utils.getWindow().show() + }, + {role: 'zoom'}, + ...(this.isMac ? [ + {type: 'separator'}, + {role: 'front'}, + {role: 'close'}, + ] : [ + {role: 'close'}, + ]), + + { + label: 'Edit', + submenu: [ + {role: 'undo'}, + {role: 'redo'}, + {type: 'separator'}, + {role: 'cut'}, + {role: 'copy'}, + {role: 'paste'}, + ] + }, + {type: 'separator'}, + { + label: 'Toggle Private Session', + accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) + }, + {type: 'separator'}, + { + label: 'Web Remote', + accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'), + sublabel: 'Opens in external window', + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`) + }, + { + label: 'Audio Settings', + accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`) + }, + { + label: 'Plug-in Menu', + accelerator: utils.getStoreValue("general.keybindings.pluginMenu").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.pluginMenu = true`) + } + ] + }, + { + label: 'Controls', + submenu: [ + { + label: 'Pause / Play', + accelerator: 'Space', + click: () => utils.getWindow().webContents.executeJavaScript(`app.SpacePause()`) + }, + { + label: 'Next', + accelerator: 'CommandOrControl+Right', + click: () => utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.next()`) + }, + { + label: 'Previous', + accelerator: 'CommandOrControl+Left', + click: () => utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.previous()`) + }, + {type: 'separator'}, + { + label: 'Volume Up', + accelerator: 'CommandOrControl+Up', + click: () => utils.getWindow().webContents.executeJavaScript(`app.volumeUp()`) + }, + { + label: 'Volume Down', + accelerator: 'CommandOrControl+Down', + click: () => utils.getWindow().webContents.executeJavaScript(`app.volumeDown()`) + }, + { + label: 'Browse', + accelerator: utils.getStoreValue("general.keybindings.browse").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`) + }, + {type: 'separator'}, + { + label: 'Artists', + accelerator: utils.getStoreValue("general.keybindings.artists").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`) + }, + { + label: 'Search', + accelerator: utils.getStoreValue("general.keybindings.search").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('search')`) + }, + {type: 'separator'}, + { + label: 'Album', + accelerator: utils.getStoreValue("general.keybindings.albums").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`) + }, + {type: 'separator'}, + { + label: 'Cast To Devices', + accelerator: utils.getStoreValue("general.keybindings.castToDevices").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.castMenu = true`) + } + ] + }, + { + label: 'Account', + submenu: [ + { + label: 'Account Settings', + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('apple-account-settings')`) + }, + { + label: 'Sign Out', + click: () => utils.getWindow().webContents.executeJavaScript(`app.unauthorize()`) + } + ] + }, + { + label: 'Support', + role: 'help', + submenu: [ + { + label: 'Discord', + click: () => shell.openExternal("https://discord.gg/AppleMusic").catch(console.error) + }, + { + label: 'GitHub Wiki', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error) + }, + {type: 'separator'}, + { + label: 'Report a...', + submenu: [ + { + label: 'Bug', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug%2Ctriage&template=bug_report.yaml&title=%5BBug%5D%3A+").catch(console.error) + }, + { + label: 'Feature Request', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/discussions/new?category=feature-request").catch(console.error) + }, + { + label: 'Translation Report/Request', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=%F0%9F%8C%90+Translations&template=translation.yaml&title=%5BTranslation%5D%3A+").catch(console.error) + }, + ] + }, + {type: 'separator'}, + { + label: 'View License', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/blob/main/LICENSE").catch(console.error) + }, + {type: 'separator'}, + { + label: 'Toggle Developer Tools', + accelerator: utils.getStoreValue("general.keybindings.openDeveloperTools").join('+'), + click: () => utils.getWindow().webContents.openDevTools() + }, + { + label: 'Open Configuration File in Editor', + click: () => utils.getStoreInstance().openInEditor() + } + ] + } + ]; /******************************************************************************************* * Public Methods @@ -44,230 +236,14 @@ export default class Thumbar { /** * Runs on plugin load (Currently run on application start) */ - constructor(utils: { getApp: () => any; getStore: () => any; getWindow: () => any; }) { - this._app = utils.getApp(); - this._store = utils.getStore(); - - this._menuTemplate = [ - { - label: app.getName(), - submenu: [ - { - label: 'About', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`) - }, - {type: 'separator'}, - { - label: 'Settings', - accelerator: this._store.general.keybind.settings.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`) - }, - {type: 'separator'}, - {role: 'services'}, - {type: 'separator'}, - {role: 'hide'}, - {role: 'hideOthers'}, - {role: 'unhide'}, - {type: 'separator'}, - {role: 'quit'} - ] - }, - { - label: 'View', - submenu: [ - {role: 'reload'}, - {role: 'forceReload'}, - {role: 'toggleDevTools'}, - {type: 'separator'}, - {role: 'resetZoom'}, - {role: 'zoomIn'}, - {role: 'zoomOut'}, - {type: 'separator'}, - {role: 'togglefullscreen'}, - ] - }, - { - label: 'Window', - submenu: [ - {role: 'minimize'}, - { - label: 'Show', - click: () => utils.getWindow().show() - }, - {role: 'zoom'}, - ...(this.isMac ? [ - {type: 'separator'}, - {role: 'front'}, - {role: 'close'}, - ] : [ - {role: 'close'}, - ]), - - { - label: 'Edit', - submenu: [ - {role: 'undo'}, - {role: 'redo'}, - {type: 'separator'}, - {role: 'cut'}, - {role: 'copy'}, - {role: 'paste'}, - ] - }, - {type: 'separator'}, - { - label: 'Toggle Private Session', - accelerator: this._store.general.keybind.togglePrivateSession.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) - }, - {type: 'separator'}, - { - label: 'Web Remote', - accelerator: this._store.general.keybind.webRemote.join('+'), - sublabel: 'Opens in external window', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('remote-pair')`) - }, - { - label: 'Audio Settings', - accelerator: this._store.general.keybind.audioSettings.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.modals.audioSettings = true`) - }, - { - label: 'Plug-in Menu', - accelerator: this._store.general.keybind.pluginMenu.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.modals.pluginMenu = true`) - } - ] - }, - { - label: 'Controls', - submenu: [ - { - label: 'Pause / Play', - accelerator: 'Space', - click: () => this._win.webContents.executeJavaScript(`app.SpacePause()`) - }, - { - label: 'Next', - accelerator: 'CommandOrControl+Right', - click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.next()`) - }, - { - label: 'Previous', - accelerator: 'CommandOrControl+Left', - click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`) - }, - {type: 'separator'}, - { - label: 'Volume Up', - accelerator: 'CommandOrControl+Up', - click: () => this._win.webContents.executeJavaScript(`app.volumeUp()`) - }, - { - label: 'Volume Down', - accelerator: 'CommandOrControl+Down', - click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`) - }, - { - label: 'Browse', - accelerator: this._store.general.keybind.browse.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.appRoute('browse')`) - }, - {type: 'separator'}, - { - label: 'Artists', - accelerator: this._store.general.keybind.artists.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.appRoute('library-artists')`) - }, - { - label: 'Search', - accelerator: this._store.general.keybind.search.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.appRoute('search')`) - }, - {type: 'separator'}, - { - label: 'Album', - accelerator: this._store.general.keybind.albums.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.appRoute('library-albums')`) - }, - {type: 'separator'}, - { - label: 'Cast To Devices', - accelerator: this._store.general.keybind.castToDevices.join('+'), - click: () => this._win.webContents.executeJavaScript(`app.modals.castMenu = true`) - } - ] - }, - { - label: 'Account', - submenu: [ - { - label: 'Account Settings', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('apple-account-settings')`) - }, - { - label: 'Sign Out', - click: () => this._win.webContents.executeJavaScript(`app.unauthorize()`) - } - ] - }, - { - label: 'Support', - role: 'help', - submenu: [ - { - label: 'Discord', - click: () => shell.openExternal("https://discord.gg/AppleMusic").catch(console.error) - }, - { - label: 'GitHub Wiki', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error) - }, - {type: 'separator'}, - { - label: 'Report a...', - submenu: [ - { - label: 'Bug', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug%2Ctriage&template=bug_report.yaml&title=%5BBug%5D%3A+").catch(console.error) - }, - { - label: 'Feature Request', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/discussions/new?category=feature-request").catch(console.error) - }, - { - label: 'Translation Report/Request', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=%F0%9F%8C%90+Translations&template=translation.yaml&title=%5BTranslation%5D%3A+").catch(console.error) - }, - ] - }, - {type: 'separator'}, - { - label: 'View License', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/blob/main/LICENSE").catch(console.error) - }, - {type: 'separator'}, - { - label: 'Toggle Developer Tools', - accelerator: this._store.general.keybind.openDeveloperTools.join('+'), - click: () => this._win.webContents.openDevTools() - }, - { - label: 'Open Configuration File in Editor', - click: () => this._store.openInEditor() - } - ] - } - ]; - + constructor(_utils: utils) { console.debug(`[Plugin][${this.name}] Loading Complete.`); } /** * Runs on app ready */ - onReady(win: Electron.BrowserWindow): void { - this._win = win; + onReady(_win: Electron.BrowserWindow): void { const menu = Menu.buildFromTemplate(this._menuTemplate); Menu.setApplicationMenu(menu) } diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index a5b44296..bacca2d8 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -23,7 +23,11 @@ {{$root.getLz('term.privateSession')}}
- +
@@ -31,7 +35,9 @@ {{$root.getLz('settings.option.window.openOnStartup')}}
- +
@@ -39,7 +45,9 @@ {{$root.getLz('settings.option.window.openOnStartup.hidden')}}
- +
@@ -54,11 +62,18 @@
- +
@@ -71,16 +86,21 @@
- +
@@ -92,14 +112,18 @@ {{$root.getLz('settings.option.general.customizeSidebar.customize')}}
- +
{{ $root.getLz('term.recentlyAdded') }}
- +
@@ -107,7 +131,9 @@ {{ $root.getLz('term.songs') }}
- +
@@ -115,7 +141,10 @@ {{ $root.getLz('term.albums') }}
- +
@@ -123,7 +152,10 @@ {{ $root.getLz('term.artists') }}
- +
@@ -131,7 +163,10 @@ {{ $root.getLz('term.videos') }}
- +
@@ -139,7 +174,10 @@ {{ $root.getLz('term.podcasts') }}
- +
@@ -154,55 +192,61 @@ {{$root.getLz('settings.option.general.keybindings.open')}} - +
{{$root.getLz('settings.description.search')}} -
+
-
{{$root.getLz('settings.description.albums')}} -
+
- -
+
{{$root.getLz('settings.description.artists')}} -
+
- -
+
{{$root.getLz('settings.description.browse')}} -
+
-
- +
{{$root.getLz('settings.description.private')}}
-
@@ -211,8 +255,9 @@ {{$root.getLz('settings.description.remote')}}
-
@@ -221,8 +266,9 @@ {{$root.getLz('settings.description.audio')}}
-
@@ -231,8 +277,9 @@ {{$root.getLz('settings.description.plugins')}}
-
@@ -241,28 +288,31 @@ {{$root.getLz('settings.description.cast')}}
-
{{$root.getLz('settings.description.settings')}} -
+
- -
+
{{$root.getLz('settings.description.developer')}}
-
@@ -287,13 +337,19 @@ {{$root.getLz('settings.option.audio.quality')}}
- +
@@ -321,7 +377,11 @@ {{$root.getLz('settings.option.audio.seamlessTransition')}}
- +
@@ -331,8 +391,11 @@ {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.description')}}
- +
@@ -360,11 +423,19 @@
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization')}} - {{app.cfg.audio.equalizer.vibrantBass != 0 || app.cfg.audio.maikiwiAudio.spatial === true || app.cfg.audio.maikiwiAudio.ciderPPE === true ? `${$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}\n${$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled')}` : $root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}} + {{app.cfg.audio.equalizer.vibrantBass != 0 || app.cfg.audio.maikiwiAudio.spatial + === true || app.cfg.audio.maikiwiAudio.ciderPPE === true ? + `${$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}\n${$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled')}` + : + $root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}}
- +
@@ -382,12 +453,19 @@ {{$root.getLz('settings.header.visual.theme')}}
- -
@@ -397,10 +475,12 @@ {{$root.getLz("settings.option.visual.windowStyle")}}
- +
@@ -408,20 +488,23 @@ {{$root.getLz('settings.option.visual.windowBackgroundStyle')}}
- +
@@ -429,14 +512,19 @@ {{$root.getLz('settings.option.visual.animatedArtwork')}}
- +
- +
@@ -465,7 +559,9 @@ {{$root.getLz('settings.option.visual.animatedWindowBackground')}}
- +
@@ -473,7 +569,10 @@ {{$root.getLz('settings.option.visual.uiscale')}}
- +
@@ -482,15 +581,17 @@ ({{$root.getLz('settings.option.visual.hardwareAcceleration.description')}})
- +
@@ -498,8 +599,11 @@ {{$root.getLz('settings.option.visual.showPersonalInfo')}}
- +
@@ -513,7 +617,9 @@ {{$root.getLz("settings.option.window.close_button_hide")}}
- +
@@ -522,7 +628,9 @@ ({{$root.getLz("settings.option.visual.hardwareAcceleration.description")}})
- +
@@ -530,10 +638,16 @@ {{$root.getLz("settings.option.window.windowControlStyle")}}
- +
@@ -552,18 +666,22 @@ {{$root.getLz('settings.option.lyrics.enableMusixmatch')}}
- +
- +
{{$root.getLz('settings.option.lyrics.enableMusixmatchKaraoke')}}
- +
@@ -571,274 +689,276 @@ {{$root.getLz('settings.option.lyrics.musixmatchPreferredLanguage')}}
- +
@@ -846,7 +966,9 @@ {{$root.getLz('settings.option.lyrics.enableYoutubeLyrics')}}
- +
@@ -854,7 +976,9 @@ {{$root.getLz('settings.option.lyrics.enableQQLyrics')}}
- +
@@ -873,7 +997,9 @@ {{$root.getLz('settings.option.connectivity.playbackNotifications')}}
- +
@@ -883,7 +1009,9 @@ {{$root.getLz('settings.option.connectivity.discordRPC')}}
- +
@@ -892,11 +1020,13 @@ {{$root.getLz('settings.option.connectivity.discordRPC.clientName')}}
- +
@@ -905,36 +1035,46 @@ {{$root.getLz('settings.option.connectivity.discordRPC.clearOnPause')}}
- +
-
- {{$root.getLz('settings.option.connectivity.discordRPC.hideButtons')}} -
-
- -
-
+
+ {{$root.getLz('settings.option.connectivity.discordRPC.hideButtons')}} +
+
+ +
+
{{$root.getLz('settings.option.connectivity.discordRPC.detailsFormat')}}
- {{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, {trackNumber} + {{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, + {trackNumber}
- +
{{$root.getLz('settings.option.connectivity.discordRPC.stateFormat')}} - {{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, {trackNumber} + {{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, + {trackNumber}
- +
@@ -955,7 +1095,9 @@ {{$root.getLz('settings.option.connectivity.lastfmScrobble.delay')}}
- +
@@ -963,7 +1105,9 @@ {{$root.getLz('settings.option.connectivity.lastfmScrobble.nowPlaying')}}
- +
@@ -971,7 +1115,9 @@ {{$root.getLz('settings.option.connectivity.lastfmScrobble.removeFeatured')}}
- +
@@ -979,7 +1125,9 @@ {{$root.getLz('settings.option.connectivity.lastfmScrobble.filterLoop')}}
- +
@@ -1025,7 +1173,9 @@ {{$root.getLz('settings.option.visual.plugin.github.explore')}}
- +
@@ -1034,7 +1184,9 @@ {{$root.getLz('settings.option.experimental.reinstallwidevine')}}
- +
@@ -1042,7 +1194,8 @@
Style Editor
- Mix and match various theme components to get Cider looking exactly how you want. + Mix and match various theme components to get Cider looking exactly how you + want.
@@ -1056,7 +1209,12 @@ {{$root.getLz('settings.option.experimental.unknownPlugin.description')}}
- +
@@ -1067,7 +1225,9 @@ {{$root.getLz('settings.option.advanced.playlistTrackMapping.description')}}
- +
@@ -1077,7 +1237,11 @@ {{$root.getLz('settings.option.experimental.compactUI')}}
- +
@@ -1086,7 +1250,12 @@ {{$root.getLz('settings.option.experimental.inline_playlists')}}
- +
@@ -1095,14 +1264,16 @@ {{$root.getLz('term.language')}}
- +
@@ -1110,7 +1281,8 @@ {{$root.getLz('settings.option.general.updateCider')}}
-
@@ -1121,14 +1293,16 @@ ({{$root.getLz('settings.option.general.updateCider.branch.description')}})
- +
@@ -1137,7 +1311,10 @@ ({{$root.getLz('settings.option.visual.transparent.description')}})
- +
@@ -1172,7 +1349,8 @@
- @@ -1180,7 +1358,8 @@
{{app.cfg.connectUser.username}} - + Discord Avatar
@@ -1188,7 +1367,11 @@ Sync Settings
- +
@@ -1197,7 +1380,11 @@ Sync Themes
- +
@@ -1206,7 +1393,11 @@ Sync Plugins
- +
@@ -1219,10 +1410,10 @@ \ No newline at end of file