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 @@
-
- {{$root.getLz('term.disabled')}}
- {{$root.getLz('settings.option.general.resumebehavior.locally')}}
- {{$root.getLz('settings.option.general.resumebehavior.history')}}
-
+
+
+ {{$root.getLz('term.disabled')}}
+
+ {{$root.getLz('settings.option.general.resumebehavior.locally')}}
+
+
+ {{$root.getLz('settings.option.general.resumebehavior.history')}}
+
+
+
@@ -71,16 +86,21 @@
-
- {{$root.getLz('home.title')}}
- {{$root.getLz('term.recentlyAdded')}}
- {{$root.getLz('term.songs')}}
- {{$root.getLz('term.albums')}}
- {{$root.getLz('term.artists')}}
- {{$root.getLz('term.videos')}}
- {{$root.getLz('term.podcasts')}}
- {{$root.getLz('settings.option.general.resumetabs.dynamic')}}
-
+
+
+ {{$root.getLz('home.title')}}
+ {{$root.getLz('term.recentlyAdded')}}
+ {{$root.getLz('term.songs')}}
+ {{$root.getLz('term.albums')}}
+ {{$root.getLz('term.artists')}}
+ {{$root.getLz('term.videos')}}
+ {{$root.getLz('term.podcasts')}}
+
+ {{$root.getLz('settings.option.general.resumetabs.dynamic')}}
+
+
+
@@ -92,14 +112,18 @@
{{$root.getLz('settings.option.general.customizeSidebar.customize')}}
-
+
@@ -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')}}
-
+
-
- {{app.cfg.general.keybind.search.join(' + ')}}
+
+ {{app.cfg.general.keybindings.search.join(' + ')}}
{{$root.getLz('settings.description.albums')}}
-
+
-
- {{app.cfg.general.keybind.albums.join(' + ')}}
+
+ {{app.cfg.general.keybindings.albums.join(' + ')}}
-
+
{{$root.getLz('settings.description.artists')}}
-
+
-
- {{app.cfg.general.keybind.artists.join(' + ')}}
+
+ {{app.cfg.general.keybindings.artists.join(' + ')}}
-
+
{{$root.getLz('settings.description.browse')}}
-
+
-
- {{app.cfg.general.keybind.browse.join(' + ')}}
+
+ {{app.cfg.general.keybindings.browse.join(' + ')}}
-
+
{{$root.getLz('settings.description.private')}}
-
- {{app.cfg.general.keybind.togglePrivateSession.join(' + ')}}
+
+ {{app.cfg.general.keybindings.togglePrivateSession.join(' + ')}}
@@ -211,8 +255,9 @@
{{$root.getLz('settings.description.remote')}}
-
- {{app.cfg.general.keybind.webRemote.join(' + ')}}
+
+ {{app.cfg.general.keybindings.webRemote.join(' + ')}}
@@ -221,8 +266,9 @@
{{$root.getLz('settings.description.audio')}}
-
- {{app.cfg.general.keybind.audioSettings.join(' + ')}}
+
+ {{app.cfg.general.keybindings.audioSettings.join(' + ')}}
@@ -231,8 +277,9 @@
{{$root.getLz('settings.description.plugins')}}
-
- {{app.cfg.general.keybind.pluginMenu.join(' + ')}}
+
+ {{app.cfg.general.keybindings.pluginMenu.join(' + ')}}
@@ -241,28 +288,31 @@
{{$root.getLz('settings.description.cast')}}
-
- {{app.cfg.general.keybind.castToDevices.join(' + ')}}
+
+ {{app.cfg.general.keybindings.castToDevices.join(' + ')}}
{{$root.getLz('settings.description.settings')}}
-
+
-
- {{app.cfg.general.keybind.settings.join(' + ')}}
+
+ {{app.cfg.general.keybindings.settings.join(' + ')}}
-
+
{{$root.getLz('settings.description.developer')}}
-
- {{app.cfg.general.keybind.openDeveloperTools.join(' + ')}}
+
+ {{app.cfg.general.keybindings.openDeveloperTools.join(' + ')}}
@@ -287,13 +337,19 @@
{{$root.getLz('settings.option.audio.quality')}}
-
-
-
- {{$root.getLz('settings.header.audio.quality.high')}} ({{$root.getLz('settings.header.audio.quality.high.description')}})
- {{$root.getLz('settings.header.audio.quality.standard')}} ({{$root.getLz('settings.header.audio.quality.standard.description')}})
-
+
+
+
+
+ {{$root.getLz('settings.header.audio.quality.high')}}
+ ({{$root.getLz('settings.header.audio.quality.high.description')}})
+
+ {{$root.getLz('settings.header.audio.quality.standard')}}
+ ({{$root.getLz('settings.header.audio.quality.standard.description')}})
+
+
+
@@ -321,7 +377,11 @@
{{$root.getLz('settings.option.audio.seamlessTransition')}}
-
+
+
+
@@ -331,8 +391,11 @@
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.description')}}
-
+
+
+
@@ -382,12 +453,19 @@
{{$root.getLz('settings.header.visual.theme')}}
-
- {{$root.getLz('settings.option.visual.theme.default')}}
- {{$root.getLz('settings.option.visual.theme.dark')}}
- {{ theme.name }}
-
-
+
+
+
+ {{$root.getLz('settings.option.visual.theme.default')}}
+
+ {{$root.getLz('settings.option.visual.theme.dark')}}
+
+ {{ theme.name }}
+
+
+
{{$root.getLz('settings.option.visual.theme.github.explore')}}
@@ -397,10 +475,12 @@
{{$root.getLz("settings.option.visual.windowStyle")}}
-
- Cupertino
- Redmond
-
+
+
+ Cupertino
+ Redmond
+
+
@@ -408,20 +488,23 @@
{{$root.getLz('settings.option.visual.windowBackgroundStyle')}}
-
- {{$root.getLz('settings.header.visual.windowBackgroundStyle.none')}}
-
-
- {{$root.getLz('settings.header.visual.windowBackgroundStyle.artwork')}}
-
-
- {{$root.getLz('settings.header.visual.windowBackgroundStyle.image')}}
-
-
- Mica (Beta)
-
-
+
+
+
+ {{$root.getLz('settings.header.visual.windowBackgroundStyle.none')}}
+
+
+ {{$root.getLz('settings.header.visual.windowBackgroundStyle.artwork')}}
+
+
+ {{$root.getLz('settings.header.visual.windowBackgroundStyle.image')}}
+
+
+ Mica (Beta)
+
+
+
@@ -429,14 +512,19 @@
{{$root.getLz('settings.option.visual.animatedArtwork')}}
-
- {{$root.getLz('settings.header.visual.animatedArtwork.always')}}
-
- {{$root.getLz('settings.header.visual.animatedArtwork.limited')}}
-
- {{$root.getLz('settings.header.visual.animatedArtwork.disable')}}
-
-
+
+
+
+ {{$root.getLz('settings.header.visual.animatedArtwork.always')}}
+
+
+ {{$root.getLz('settings.header.visual.animatedArtwork.limited')}}
+
+
+ {{$root.getLz('settings.header.visual.animatedArtwork.disable')}}
+
+
+
-
- {{$root.getLz('settings.header.visual.animatedArtworkQuality.low')}}
-
- {{$root.getLz('settings.header.visual.animatedArtworkQuality.medium')}}
-
- {{$root.getLz('settings.header.visual.animatedArtworkQuality.high')}}
-
-
- {{$root.getLz('settings.header.visual.animatedArtworkQuality.veryHigh')}}
-
- {{$root.getLz('settings.header.visual.animatedArtworkQuality.extreme')}}
-
-
+
+
+
+ {{$root.getLz('settings.header.visual.animatedArtworkQuality.low')}}
+
+
+ {{$root.getLz('settings.header.visual.animatedArtworkQuality.medium')}}
+
+
+ {{$root.getLz('settings.header.visual.animatedArtworkQuality.high')}}
+
+
+ {{$root.getLz('settings.header.visual.animatedArtworkQuality.veryHigh')}}
+
+
+ {{$root.getLz('settings.header.visual.animatedArtworkQuality.extreme')}}
+
+
+
@@ -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')}})
-
-
- {{$root.getLz('settings.header.visual.hardwareAcceleration.default')}}
-
-
- {{$root.getLz('settings.header.visual.hardwareAcceleration.webGPU')}}
-
- {{$root.getLz('term.disabled')}}
-
+
+
+
+ {{$root.getLz('settings.header.visual.hardwareAcceleration.default')}}
+
+
+ {{$root.getLz('settings.header.visual.hardwareAcceleration.webGPU')}}
+
+ {{$root.getLz('term.disabled')}}
+
+
@@ -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")}}
-
- {{$root.getLz("settings.option.window.windowControlStyle.right")}}
- {{$root.getLz("settings.option.window.windowControlStyle.left")}}
-
+
+
+
+ {{$root.getLz("settings.option.window.windowControlStyle.right")}}
+
+
+ {{$root.getLz("settings.option.window.windowControlStyle.left")}}
+
+
+
@@ -552,18 +666,22 @@
{{$root.getLz('settings.option.lyrics.enableMusixmatch')}}
-
+
+
+
@@ -571,274 +689,276 @@
{{$root.getLz('settings.option.lyrics.musixmatchPreferredLanguage')}}
-
- Disabled
- Abkhazian
- Afar
- Afrikaans
- Akan
- Albanian
- Amharic
- Arabic
- Aragonese
- Armenian
- Assamese
- Assamese-romaji
- Asturian
- Avaric
- Avestan
- Aymara
- Azerbaijani
- Bambara
- Bashkir
- Basque
- Bavarian
- Belarusian
- Bengali
- Bengali-romaji
- Bihari languages
- Bishnupriya
- Bislama
- Bosnian
- Breton
- Bulgarian
- Burmese
- Catalan
- Cebuano
- Central bikol
- Central kurdish
- Chamorro
- Chavacano
- Chechen
- Chichewa
- Chinese (simplified)
- Chinese (traditional)
- Chinese-romaji
- Church slavic
- Chuvash
- Cornish
- Corsican
- Cree
- Creoles and pidgins
- Creoles and pidgins, english based
- Creoles and pidgins, french-based
- Creoles and pidgins, portuguese-based
- Croatian
- Czech
- Danish
- Dimli (individual language)
- Divehi
- Dotyali
- Dutch
- Dzongkha
- Eastern mari
- Egyptian arabic
- Emilian-romagnol
- English
- Erzya
- Esperanto
- Estonian
- Ewe
- Faroese
- Fiji hindi
- Fijian
- Filipino
- Finnish
- French
- Frisian, northern
- Frisian, western
- Fulah
- Galician
- Ganda
- Georgian
- German
- German, low
- Goan konkani
- Greek
- Greek-romaji
- Greenlandic
- Guarani
- Gujarati
- Gujarati-romaji
- Haitian creole
- Hausa
- Hebrew
- Herero
- Hindi
- Hindi-romaji
- Hiri motu
- Hungarian
- Icelandic
- Ido
- Igbo
- Iloko
- Indonesian
- Interlingua
- Interlingue
- Inuktitut
- Inupiaq
- Irish
- Italian
- Japanese
- Japanese-romaji
- Javanese
- Kalmyk
- Kannada
- Kannada-romaji
- Kanuri
- Karachay-balkar
- Kashmiri
- Kazakh
- Khmer, central
- Kikuyu
- Kinyarwanda
- Kirghiz
- Komi
- Kongo
- Korean
- Korean-romaji
- Kuanyama
- Kurdish
- Lao
- Latin
- Latvian
- Lezghian
- Limburgish
- Lingala
- Lithuanian
- Lojban
- Lombard
- Luba-katanga
- Luxembourgish
- Macedonian
- Maithili
- Malagasy
- Malay
- Malayalam
- Malayalam-romaji
- Maltese
- Manx
- Maori
- Marathi
- Marathi-romaji
- Marshallese
- Mazanderani
- Minangkabau
- Mingrelian
- Mirandese
- Moldavian
- Mongolian
- Nahuatl
- Nauru
- Navajo
- Ndebele, north
- Ndebele, south
- Ndonga
- Neapolitan
- Nepal bhasa
- Nepali
- Nepali-romaji
- Northern luri
- Norwegian
- Norwegian bokmål
- Norwegian nynorsk
- Occitan
- Ojibwa
- Oriya
- Oriya-romaji
- Oromo
- Ossetian
- Pali
- Pampanga
- Panjabi
- Panjabi-romaji
- Persian
- Pfaelzisch
- Piemontese
- Polish
- Portuguese
- Pushto
- Quechua
- Romanian
- Romansh
- Rundi
- Russia buriat
- Russian
- Russian-romaji
- Rusyn
- Sami, northern
- Samoan
- Sango
- Sanskrit
- Sanskrit-romaji
- Sardinian
- Scots
- Scottish gaelic
- Serbian
- Serbo-croatian
- Shona
- Sichuan yi
- Sicilian
- Sindhi
- Sinhala
- Slovak
- Slovenian
- Somali
- Sorbian, lower
- Sorbian, upper
- Sotho, southern
- South azerbaijani
- Spanish
- Sundanese
- Swahili
- Swati
- Swedish
- Tagalog
- Tahitian
- Tajik
- Tamil
- Tamil-romaji
- Tatar
- Telugu
- Telugu-romaji
- Thai
- Thai-romaji
- Tibetan
- Tigrinya
- Tonga (tonga islands)
- Tosk albanian
- Tsonga
- Tswana
- Turkish
- Turkmen
- Tuvinian
- Twi
- Uighur
- Ukrainian
- Urdu
- Urdu-romaji
- Uzbek
- Venda
- Venetian
- Veps
- Vietnamese
- Vlaams
- Volapük
- Walloon
- Waray
- Welsh
- Western mari
- Western panjabi
- Wolof
- Wu chinese
- Xhosa
- Yakut
- Yiddish
- Yoruba
- Yue chinese
- Zhuang
- Zulu
-
+
+
+ Disabled
+ Abkhazian
+ Afar
+ Afrikaans
+ Akan
+ Albanian
+ Amharic
+ Arabic
+ Aragonese
+ Armenian
+ Assamese
+ Assamese-romaji
+ Asturian
+ Avaric
+ Avestan
+ Aymara
+ Azerbaijani
+ Bambara
+ Bashkir
+ Basque
+ Bavarian
+ Belarusian
+ Bengali
+ Bengali-romaji
+ Bihari languages
+ Bishnupriya
+ Bislama
+ Bosnian
+ Breton
+ Bulgarian
+ Burmese
+ Catalan
+ Cebuano
+ Central bikol
+ Central kurdish
+ Chamorro
+ Chavacano
+ Chechen
+ Chichewa
+ Chinese (simplified)
+ Chinese (traditional)
+ Chinese-romaji
+ Church slavic
+ Chuvash
+ Cornish
+ Corsican
+ Cree
+ Creoles and pidgins
+ Creoles and pidgins, english based
+ Creoles and pidgins, french-based
+ Creoles and pidgins, portuguese-based
+ Croatian
+ Czech
+ Danish
+ Dimli (individual language)
+ Divehi
+ Dotyali
+ Dutch
+ Dzongkha
+ Eastern mari
+ Egyptian arabic
+ Emilian-romagnol
+ English
+ Erzya
+ Esperanto
+ Estonian
+ Ewe
+ Faroese
+ Fiji hindi
+ Fijian
+ Filipino
+ Finnish
+ French
+ Frisian, northern
+ Frisian, western
+ Fulah
+ Galician
+ Ganda
+ Georgian
+ German
+ German, low
+ Goan konkani
+ Greek
+ Greek-romaji
+ Greenlandic
+ Guarani
+ Gujarati
+ Gujarati-romaji
+ Haitian creole
+ Hausa
+ Hebrew
+ Herero
+ Hindi
+ Hindi-romaji
+ Hiri motu
+ Hungarian
+ Icelandic
+ Ido
+ Igbo
+ Iloko
+ Indonesian
+ Interlingua
+ Interlingue
+ Inuktitut
+ Inupiaq
+ Irish
+ Italian
+ Japanese
+ Japanese-romaji
+ Javanese
+ Kalmyk
+ Kannada
+ Kannada-romaji
+ Kanuri
+ Karachay-balkar
+ Kashmiri
+ Kazakh
+ Khmer, central
+ Kikuyu
+ Kinyarwanda
+ Kirghiz
+ Komi
+ Kongo
+ Korean
+ Korean-romaji
+ Kuanyama
+ Kurdish
+ Lao
+ Latin
+ Latvian
+ Lezghian
+ Limburgish
+ Lingala
+ Lithuanian
+ Lojban
+ Lombard
+ Luba-katanga
+ Luxembourgish
+ Macedonian
+ Maithili
+ Malagasy
+ Malay
+ Malayalam
+ Malayalam-romaji
+ Maltese
+ Manx
+ Maori
+ Marathi
+ Marathi-romaji
+ Marshallese
+ Mazanderani
+ Minangkabau
+ Mingrelian
+ Mirandese
+ Moldavian
+ Mongolian
+ Nahuatl
+ Nauru
+ Navajo
+ Ndebele, north
+ Ndebele, south
+ Ndonga
+ Neapolitan
+ Nepal bhasa
+ Nepali
+ Nepali-romaji
+ Northern luri
+ Norwegian
+ Norwegian bokmål
+ Norwegian nynorsk
+ Occitan
+ Ojibwa
+ Oriya
+ Oriya-romaji
+ Oromo
+ Ossetian
+ Pali
+ Pampanga
+ Panjabi
+ Panjabi-romaji
+ Persian
+ Pfaelzisch
+ Piemontese
+ Polish
+ Portuguese
+ Pushto
+ Quechua
+ Romanian
+ Romansh
+ Rundi
+ Russia buriat
+ Russian
+ Russian-romaji
+ Rusyn
+ Sami, northern
+ Samoan
+ Sango
+ Sanskrit
+ Sanskrit-romaji
+ Sardinian
+ Scots
+ Scottish gaelic
+ Serbian
+ Serbo-croatian
+ Shona
+ Sichuan yi
+ Sicilian
+ Sindhi
+ Sinhala
+ Slovak
+ Slovenian
+ Somali
+ Sorbian, lower
+ Sorbian, upper
+ Sotho, southern
+ South azerbaijani
+ Spanish
+ Sundanese
+ Swahili
+ Swati
+ Swedish
+ Tagalog
+ Tahitian
+ Tajik
+ Tamil
+ Tamil-romaji
+ Tatar
+ Telugu
+ Telugu-romaji
+ Thai
+ Thai-romaji
+ Tibetan
+ Tigrinya
+ Tonga (tonga islands)
+ Tosk albanian
+ Tsonga
+ Tswana
+ Turkish
+ Turkmen
+ Tuvinian
+ Twi
+ Uighur
+ Ukrainian
+ Urdu
+ Urdu-romaji
+ Uzbek
+ Venda
+ Venetian
+ Veps
+ Vietnamese
+ Vlaams
+ Volapük
+ Walloon
+ Waray
+ Welsh
+ Western mari
+ Western panjabi
+ Wolof
+ Wu chinese
+ Xhosa
+ Yakut
+ Yiddish
+ Yoruba
+ Yue chinese
+ Zhuang
+ Zulu
+
+
@@ -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')}}
-
- {{$root.getLz('app.name')}}
- {{$root.getLz('term.appleMusic')}}
-
-
+
+
+ {{$root.getLz('app.name')}}
+ {{$root.getLz('term.appleMusic')}}
+
+
+
@@ -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')}}
+
+
+
+
+
+
+
@@ -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')}}
- {{ $root.getLz("settings.option.visual.plugin.github.explore") }}
+ {{
+ $root.getLz("settings.option.visual.plugin.github.explore") }}
+
@@ -1034,7 +1184,9 @@
{{$root.getLz('settings.option.experimental.reinstallwidevine')}}
- {{$root.getLz('settings.option.experimental.reinstallwidevine')}}
+
+ {{$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')}}
-
-
- {{lang.nameNative}} ({{
- lang.nameEnglish }})
-
-
-
+
+
+
+ {{lang.nameNative}} ({{
+ lang.nameEnglish }})
+
+
+
+
@@ -1110,7 +1281,8 @@
{{$root.getLz('settings.option.general.updateCider')}}
-
+
{{$root.getLz('term.check')}}
@@ -1121,14 +1293,16 @@
({{$root.getLz('settings.option.general.updateCider.branch.description')}})
-
-
- {{$root.getLz('settings.option.general.updateCider.branch.main')}}
-
-
- {{$root.getLz('settings.option.general.updateCider.branch.develop')}}
-
-
+
+
+
+ {{$root.getLz('settings.option.general.updateCider.branch.main')}}
+
+
+ {{$root.getLz('settings.option.general.updateCider.branch.develop')}}
+
+
+
@@ -1137,7 +1311,10 @@
({{$root.getLz('settings.option.visual.transparent.description')}})
-
+
+
+
@@ -1172,7 +1349,8 @@
-
+
<%- include("../svg/check.svg") %>
Connected
@@ -1180,7 +1358,8 @@
@@ -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