diff --git a/CHANGELOG.md b/CHANGELOG.md index ad19ee4..c466dbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 4.4.0 + +- Updated shortcut hint on the menubar to reflect the new `ctrl+=` shortcut. +- Reverted icon path to `icon.png` instead of the hardcoded linux path. +- Add support to autoHide the menubar and showing it with the `alt` key. +- Move the quit command from the system sub-menu to the main menu +- Added single click focus/show on the tray icon + - Doesn't work on all platforms. Nothing I can do about that unfortunately! +- Added a list of artists to automatically skip. + - I don't like the vast majority of dutch music so I added one of them to my list to test: [./docs/no-dutch-music.mp4](./docs/no-dutch-music.mp4) + ## 4.3.1 - fix: App always requests a default-url-handler-scheme change on start diff --git a/build/electron-builder.base.yml b/build/electron-builder.base.yml index daef921..206adfa 100644 --- a/build/electron-builder.base.yml +++ b/build/electron-builder.base.yml @@ -18,7 +18,7 @@ linux: Name: TIDAL Hi-Fi GenericName: TIDAL Hi-Fi Comment: The web version of listen.tidal.com running in electron with hifi support thanks to widevine. - Icon: /usr/share/icons/hicolor/0x0/apps/tidal-hifi.png + Icon: icon.png StartupNotify: true Terminal: false Type: Application diff --git a/docs/no-dutch-music.mp4 b/docs/no-dutch-music.mp4 new file mode 100644 index 0000000..d20de1b Binary files /dev/null and b/docs/no-dutch-music.mp4 differ diff --git a/package.json b/package.json index eddca5d..7efda62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tidal-hifi", - "version": "4.3.1", + "version": "4.4.0", "description": "Tidal on Electron with widevine(hifi) support", "main": "src/main.js", "scripts": { @@ -50,4 +50,4 @@ "sass-lint-auto-fix": "^0.21.2" }, "prettier": "@mastermindzh/prettier-config" -} \ No newline at end of file +} diff --git a/src/constants/settings.js b/src/constants/settings.js index f84bc40..1a4e7ff 100644 --- a/src/constants/settings.js +++ b/src/constants/settings.js @@ -15,6 +15,8 @@ const settings = { playBackControl: "playBackControl", muteArtists: "muteArtists", mutedArtists: "mutedArtists", + skipArtists: "skipArtists", + skippedArtists: "skippedArtists", disableBackgroundThrottle: "disableBackgroundThrottle", apiSettings: { root: "apiSettings", diff --git a/src/main.js b/src/main.js index 234c105..c09e380 100644 --- a/src/main.js +++ b/src/main.js @@ -49,7 +49,10 @@ function setFlags() { * */ function syncMenuBarWithStore() { - mainWindow.setMenuBarVisibility(store.get(settings.menuBar)); + const fixedMenuBar = store.get(settings.menuBar); + + mainWindow.autoHideMenuBar = !fixedMenuBar; + mainWindow.setMenuBarVisibility(fixedMenuBar); } /** @@ -78,6 +81,7 @@ function createWindow(options = {}) { height: store && store.get(settings.windowBounds.height), icon, backgroundColor: options.backgroundColor, + autoHideMenuBar: true, webPreferences: { preload: path.join(__dirname, "preload.js"), plugins: true, @@ -123,7 +127,7 @@ function registerHttpProtocols() { protocol.registerHttpProtocol(PROTOCOL_PREFIX, (request, _callback) => { mainWindow.loadURL(`${tidalUrl}/${request.url.substring(PROTOCOL_PREFIX.length + 3)}`); }); - if (!app.isDefaultProtocolClient(PROTOCOL_PREFIX)) { + if (!app.isDefaultProtocolClient(PROTOCOL_PREFIX)) { app.setAsDefaultProtocolClient(PROTOCOL_PREFIX); } } diff --git a/src/pages/settings/preload.js b/src/pages/settings/preload.js index fc663a9..49c23a8 100644 --- a/src/pages/settings/preload.js +++ b/src/pages/settings/preload.js @@ -4,12 +4,14 @@ let trayIcon, enableCustomHotkeys, enableDiscord, muteArtists, + skipArtists, notifications, playBackControl, api, port, menuBar, mutedArtists, + skippedArtists, disableBackgroundThrottle, singleInstance, disableHardwareMediaKeys, @@ -36,6 +38,8 @@ function refreshSettings() { minimizeOnClose.checked = store.get(settings.minimizeOnClose); muteArtists.checked = store.get(settings.muteArtists); mutedArtists.value = store.get(settings.mutedArtists).join("\n"); + skipArtists.checked = store.get(settings.skipArtists); + skippedArtists.value = store.get(settings.skippedArtists).join("\n"); singleInstance.checked = store.get(settings.singleInstance); disableHardwareMediaKeys.checked = store.get(settings.flags.disableHardwareMediaKeys); gpuRasterization.checked = store.get(settings.flags.gpuRasterization); @@ -119,6 +123,8 @@ window.addEventListener("DOMContentLoaded", () => { enableDiscord = get("enableDiscord"); muteArtists = get("muteArtists"); mutedArtists = get("mutedArtists"); + skipArtists = get("skipArtists"); + skippedArtists = get("skippedArtists"); disableBackgroundThrottle = get("disableBackgroundThrottle"); singleInstance = get("singleInstance"); disableHardwareMediaKeys = get("disableHardwareMediaKeys"); @@ -138,6 +144,8 @@ window.addEventListener("DOMContentLoaded", () => { addInputListener(minimizeOnClose, settings.minimizeOnClose); addInputListener(muteArtists, settings.muteArtists); addTextAreaListener(mutedArtists, settings.mutedArtists); + addInputListener(skipArtists, settings.skipArtists); + addTextAreaListener(skippedArtists, settings.skippedArtists); addInputListener(disableBackgroundThrottle, settings.disableBackgroundThrottle); addInputListener(singleInstance, settings.singleInstance); addInputListener(disableHardwareMediaKeys, settings.flags.disableHardwareMediaKeys); diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 6ec8991..85bf67f 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -63,13 +63,25 @@ +
The following list of artists (1 per line) will be skipped automatically.
+UI
Show TIDAL Hi-Fi's menu bar.
+Always show TIDAL Hi-Fi's menu bar.