added the option to disable the system tray icon and fixed the settings menu

This commit is contained in:
Rick van Lieshout 2020-10-07 20:10:31 +02:00
parent c222113cf1
commit e2ea4d13c4
11 changed files with 51 additions and 20 deletions

View File

@ -4,6 +4,16 @@ 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).
## 1.2.0
- Added the ability to disable the tray icon
## 1.1.1
Bugfixes:
- Arch AUR install failed before, it is fixed now by using the included build scripts
## 1.1.0
- updated to electron 8.0.0

View File

@ -95,7 +95,12 @@ Whilst there are a handful of projects attempting to run Tidal on Electron they
Sometimes it's just easier to start over, cover my own needs and then making it available to the public :)
## Special thanks to..
## Special thanks to...
- [Castlabs](https://castlabs.com/)
For maintaining Electron with Widevine CDM installation, Verified Media Path (VMP), and persistent licenses (StorageID)
## Buy me a coffee? Please don't
Instead spend some money on a charity I care for: [kwf.nl](secure.kwf.nl/donation)
Inspired by [haydenjames' issue](https://github.com/Mastermindzh/tidal-hifi/issues/27#issuecomment-704198429)

View File

@ -1,6 +1,6 @@
pkgbase = tidal-hifi-git
pkgdesc = The web version of listen.tidal.com running in electron with hifi support thanks to widevine.
pkgver = 1.1.1
pkgver = 1.2.0
pkgrel = 1
url = https://github.com/Mastermindzh/tidal-hifi
arch = x86_64
@ -11,7 +11,7 @@ pkgbase = tidal-hifi-git
depends = nss
depends = gtk3
provides = tidal-hifi
source = https://github.com/Mastermindzh/tidal-hifi/archive/1.1.1.zip
source = https://github.com/Mastermindzh/tidal-hifi/archive/1.2.0.zip
source = tidal-hifi.desktop
sha512sums = ed6127627400cc8d1a614f3084eaed0ee9109cc4be99ad8865a7cd68c45d9bbd7b20404c394930af005320da5cc2221a8818a7cb48d4cccc73991e88320408e5
sha512sums = 35f38ac308b871c1822d7f6f760f2fb54c3748cf769822cb0f0dfb90f0f5754ba9316da5e903a0d2e9839de3a43ec76f238f3f2e44021956fa1da19142081349

View File

@ -2,7 +2,7 @@
_pkgname=tidal-hifi
pkgname="$_pkgname-git"
pkgver=1.1.1
pkgver=1.2.0
pkgrel=1
pkgdesc="The web version of listen.tidal.com running in electron with hifi support thanks to widevine."
arch=("x86_64")

View File

@ -1,6 +1,6 @@
{
"name": "tidal-hifi",
"version": "1.1.1",
"version": "1.2.0",
"description": "Tidal on Electron with widevine(hifi) support",
"main": "src/main.js",
"scripts": {

View File

@ -18,6 +18,7 @@ const settings = {
port: "apiSettings.port",
},
mpris: "mpris",
trayIcon: "trayIcon",
windowBounds: {
root: "windowBounds",
width: "windowBounds.width",

View File

@ -83,8 +83,7 @@ app.on("ready", () => {
addMenu();
createSettingsWindow();
addGlobalShortcuts();
addTray({ icon });
refreshTray();
store.get(settings.trayIcon) && addTray({ icon }) && refreshTray();
store.get(settings.api) && expressModule.run(mainWindow);
});

View File

@ -17,7 +17,8 @@ function refreshSettings() {
api.checked = store.get(settings.api);
port.value = store.get(settings.apiSettings.port);
menuBar.checked = store.get(settings.menuBar);
mpris.checked = store.get(settings.mpris);
trayIcon.checked = store.get(settings.trayIcon);
// mpris.checked = store.get(settings.mpris);
}
/**
@ -76,7 +77,8 @@ window.addEventListener("DOMContentLoaded", () => {
api = get("apiCheckbox");
port = get("port");
menuBar = get("menuBar");
mpris = get("mprisCheckbox");
trayIcon = get("trayIcon");
// mpris = get("mprisCheckbox");
refreshSettings();
@ -85,5 +87,6 @@ window.addEventListener("DOMContentLoaded", () => {
addInputListener(api, settings.api);
addInputListener(port, settings.apiSettings.port);
addInputListener(menuBar, settings.menuBar);
addInputListener(mpris, settings.mpris);
addInputListener(trayIcon, settings.trayIcon);
// addInputListener(mpris, settings.mpris);
});

View File

@ -68,15 +68,25 @@
</label>
</div>
</div>
<div class="section">
<h3>System</h3>
<div class="option">
<h4>Tray icon</h4>
<p>
Show Tidal-hifi's tray icon<br />
</p>
<label class="switch">
<input id="trayIcon" type="checkbox">
<span class="slider round"></span>
</label>
</div>
</div>
</section>
<section id="api" class="tab-panel">
<div class="section">
<h3>Api</h3>
<p style="margin-bottom: 15px;">
Tidal-hifi has a web api built in to allow users to get current song information. You can optionally enable playback control as well.
<br />
<br />
<small>* api changes require a restart to update</small>
</p>
<div class="option">
@ -104,15 +114,12 @@
</label>
</div>
</div>
<button onClick="restart()">Restart Tidal-hifi</button>
</section>
<section id="integrations" class="tab-panel">
<div class="section">
<h3>integrations</h3>
<p style="margin-bottom: 15px;">
Tidal-hifi is extensible trough the use of integrations. You can enable or disable integrations here
<br />
* not all integrations require restarting but some do, your best bet is to restart :)
</p>
<!-- disabled until the 403 with mpris-service/dbus is fixed -->
<!-- <div class="option">
@ -125,7 +132,6 @@
<span class="slider round"></span>
</label>
</div> -->
<button onClick="restart()">Restart Tidal-hifi</button>
</div>
</section>
<section id="about" class="tab-panel">
@ -138,6 +144,9 @@
</div>
</section>
<small>Some settings require a restart of Tidal-hifi. To do so click the button below:</small>
<button onClick="restart()" style ="width: 100%">Restart Tidal-hifi</button>
</div>
</div>
</div>

View File

@ -14,6 +14,7 @@ const store = new Store({
apiSettings: {
port: 47836,
},
trayIcon: true,
mpris: false,
windowBounds: { width: 800, height: 600 },
},

View File

@ -3,12 +3,15 @@ const { getMenu } = require("./menu");
const trayModule = {};
let tray;
trayModule.addTray = function(options = { icon: "" }) {
trayModule.addTray = function (options = { icon: "" }) {
tray = new Tray(options.icon);
};
trayModule.refreshTray = function() {
tray.on("click", function(e) {
trayModule.refreshTray = function () {
if (!tray) {
trayModule.addTray();
}
tray.on("click", function (e) {
// do nothing on click
});