diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json
index 2b1e581b..3919dfea 100644
--- a/src/i18n/en_US.json
+++ b/src/i18n/en_US.json
@@ -300,6 +300,9 @@
"menubar.options.trans": "Translation Report/Request",
"menubar.options.license": "View License",
"menubar.options.conf": "Open Configuration File in Editor",
+ "menubar.options.listennow": "Listen Now",
+ "menubar.options.recentlyAdded": "Recently Added",
+ "menubar.options.songs": "Songs",
"settings.header.general": "General",
"settings.header.general.description": "Adjust the general settings for Cider.",
"settings.option.general.language": "Language",
@@ -338,6 +341,9 @@
"settings.description.cast": "Cast to Devices",
"settings.description.settings": "Settings",
"settings.description.developer": "Developer Tools",
+ "settings.description.listnow": "Listen Now",
+ "settings.description.recentAdd": "Recently Added",
+ "settings.description.songs": "Songs",
"settings.notyf.updateCider.update-not-available": "No update available",
"settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply",
"settings.notyf.updateCider.update-error": "Error updating Cider",
diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts
index 0c785691..9b5cced1 100644
--- a/src/main/base/browserwindow.ts
+++ b/src/main/base/browserwindow.ts
@@ -77,6 +77,7 @@ export class BrowserWindow {
"pages/audiolabs",
"pages/zoo",
"pages/plugin-renderer",
+ "pages/keybinds",
"components/mediaitem-artwork",
"components/artwork-material",
"components/menu-panel",
diff --git a/src/main/base/store.ts b/src/main/base/store.ts
index de8590a5..260208ab 100644
--- a/src/main/base/store.ts
+++ b/src/main/base/store.ts
@@ -54,6 +54,22 @@ export class Store {
process.platform == "darwin" ? "Command" : "Control",
"F"
],
+ "listnow": [
+ process.platform == "darwin" ? "Command" : "Control",
+ "L"
+ ],
+ "browse": [
+ process.platform == "darwin" ? "Command" : "Control",
+ "B"
+ ],
+ "recentAdd": [
+ process.platform == "darwin" ? "Command" : "Control",
+ "G"
+ ],
+ "songs" : [
+ process.platform == "darwin" ? "Command" : "Control",
+ "J"
+ ],
"albums": [
process.platform == "darwin" ? "Command" : "Control",
"S"
@@ -62,10 +78,6 @@ export class Store {
process.platform == "darwin" ? "Command" : "Control",
"D"
],
- "browse": [
- process.platform == "darwin" ? "Command" : "Control",
- "B"
- ],
"togglePrivateSession": [
process.platform == "darwin" ? "Command" : "Control",
"P"
diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts
index a9d73428..76a0e52b 100644
--- a/src/main/plugins/menubar.ts
+++ b/src/main/plugins/menubar.ts
@@ -23,8 +23,9 @@ export default class Thumbar {
label: app.getName(),
submenu: [
{
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.about'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('about')`)
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.toggleprivate'),
+ accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`)
},
{type: 'separator'},
{
@@ -40,30 +41,63 @@ export default class Thumbar {
{role: 'hideOthers'},
{role: 'unhide'},
]: [
+ {type: 'separator'},
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.about'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('about')`)
+ },
{type: 'separator'},
{role: 'quit', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.quit')},
]),
],
},
-
{
label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.view'),
submenu: [
- {role: 'reload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload')},
- {role: 'forceReload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload')},
- ...(this.isMac ? [
- {role: 'toggleDevTools'},
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.search'),
+ accelerator: utils.getStoreValue("general.keybindings.search").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('search')`)
+ },
+ {type:'separator'},
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.listennow'),
+ accelerator: utils.getStoreValue('general.keybindings.listnow').join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('listen_now')`)
+ },
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.browse'),
+ accelerator: utils.getStoreValue("general.keybindings.browse").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`)
+ },
{type: 'separator'},
- {role: 'resetZoom'},
- {role: 'zoomIn'},
- {role: 'zoomOut'},
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.recentlyAdded')
+ ,accelerator: utils.getStoreValue("general.keybindings.recentAdd").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-recentlyadded')`)
+ },
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.songs'),
+ accelerator: utils.getStoreValue("general.keybindings.songs").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-songs')`)
+ },
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.albums'),
+ accelerator: utils.getStoreValue("general.keybindings.albums").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`)
+ },
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.artists'),
+ accelerator: utils.getStoreValue("general.keybindings.artists").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`)
+ },
{type: 'separator'},
- {role: 'togglefullscreen'},
-
+ ...(this.isMac ? [
]: []),
],
},
+
{
label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.window'),
submenu: [
@@ -73,15 +107,24 @@ export default class Thumbar {
label: 'Show',
click: () => utils.getWindow().show()
},
- {role: 'zoom'},
+ {role: 'toggleDevTools'},
+ {type: 'separator'},
+ {
+ label:'Zoom',
+ submenu: [
+ {role: 'zoom'},
+ {role: 'resetZoom'},
+ {role: 'zoomIn'},
+ {role: 'zoomOut'},
+ ]
+ },
+ {type: 'separator'},
+ {role: 'togglefullscreen'},
+
{type: 'separator'},
{role: 'front'},
- {role: 'close'},
-
- {role: 'close'},
-
-
+ {role: 'close'},
{
label: 'Edit',
submenu: [
@@ -93,33 +136,14 @@ export default class Thumbar {
{role: 'paste'},
]
},
- ] : []
- ),
- {type: 'separator'},
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.toggleprivate'),
- accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`)
- },
- {type: 'separator'},
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.webremote'),
- accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'),
- sublabel: 'Opens in external window',
- click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`)
- },
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.audio'),
- accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`)
- },
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.plugins'),
- accelerator: utils.getStoreValue("general.keybindings.pluginMenu").join('+'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.pluginMenu = true`)
- }
+ ] : [
+ {type:'separator'},
+ {role: 'reload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload')},
+ {role: 'forceReload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload')},
+ ]),
]
},
+
{
label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.controls'),
submenu: [
@@ -148,35 +172,32 @@ export default class Thumbar {
label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.volumedown'),
accelerator: 'CommandOrControl+Down',
click: () => utils.getWindow().webContents.executeJavaScript(`app.volumeDown()`)
- },
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.browse'),
- accelerator: utils.getStoreValue("general.keybindings.browse").join('+'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`)
- },
- {type: 'separator'},
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.artists'),
- accelerator: utils.getStoreValue("general.keybindings.artists").join('+'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`)
- },
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.search'),
- accelerator: utils.getStoreValue("general.keybindings.search").join('+'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('search')`)
- },
- {type: 'separator'},
- {
- label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.albums'),
- accelerator: utils.getStoreValue("general.keybindings.albums").join('+'),
- click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`)
- },
+ },
{type: 'separator'},
{
label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.cast'),
accelerator: utils.getStoreValue("general.keybindings.castToDevices").join('+'),
click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.castMenu = true`)
+ },
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.webremote'),
+ accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'),
+ sublabel: 'Opens in external window',
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`)
+ },
+ {type: 'separator'},
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.audio'),
+ accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`)
+ },
+ {type: 'separator'},
+ {
+ label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.plugins'),
+ accelerator: utils.getStoreValue("general.keybindings.pluginMenu").join('+'),
+ click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.pluginMenu = true`)
}
+
]
},
{
diff --git a/src/renderer/style.css b/src/renderer/style.css
index 3448d228..539bdcee 100644
--- a/src/renderer/style.css
+++ b/src/renderer/style.css
@@ -13192,3 +13192,18 @@ body[platform="linux"] #window-controls-container {
#app.twopanel .collection-page .top-fab {
bottom: 96px;
}
+
+
+.keybinds-page .md-option-header {
+ padding: 0px 0px;
+ border-bottom: unset;
+ border-top: unset;
+ font-weight: 600;
+ background: rgba(255, 255, 255, 0);
+ font-size: 2em;
+ }
+
+.content-inner.keybinds-page {
+ top: var(--navigationBarHeight);
+ padding: 15px;
+}
\ No newline at end of file
diff --git a/src/renderer/style.less b/src/renderer/style.less
index b24ce657..8e404005 100644
--- a/src/renderer/style.less
+++ b/src/renderer/style.less
@@ -3342,6 +3342,20 @@ body[platform='darwin'] {
display: none;
}
+.keybinds-page .md-option-header {
+ padding: 0px 0px;
+ border-bottom: unset;
+ border-top: unset;
+ font-weight: 600;
+ background: rgba(255, 255, 255, 0);
+ font-size: 2em;
+ }
+
+.content-inner.keybinds-page {
+ top: var(--navigationBarHeight);
+ padding: 15px;
+}
+
@import url("less/macos.less");
@import url("less/linux.less");
@import url("less/compact.less");
diff --git a/src/renderer/views/app/app-content.ejs b/src/renderer/views/app/app-content.ejs
index dfa1cb33..96e6b348 100644
--- a/src/renderer/views/app/app-content.ejs
+++ b/src/renderer/views/app/app-content.ejs
@@ -46,6 +46,11 @@
-
+
+