From 5df798588863eee145747224771c69010cdeae3e Mon Sep 17 00:00:00 2001 From: Jacob Birkett Date: Tue, 24 Jun 2025 00:02:06 -0700 Subject: [PATCH 1/2] tidal-hifi: reorder desktop entry keys according to spec This reorders all of the attributes to follow the same order as the Freedesktop.org specification. --- pkgs/by-name/ti/tidal-hifi/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ti/tidal-hifi/package.nix b/pkgs/by-name/ti/tidal-hifi/package.nix index c7314ecfa706..d71e1ab39cf4 100644 --- a/pkgs/by-name/ti/tidal-hifi/package.nix +++ b/pkgs/by-name/ti/tidal-hifi/package.nix @@ -125,15 +125,15 @@ buildNpmPackage { desktopItems = [ (makeDesktopItem { - exec = "tidal-hifi"; + type = "Application"; name = "TIDAL Hi-Fi"; desktopName = "tidal-hifi"; genericName = "TIDAL Hi-Fi"; comment = "The web version of listen.tidal.com running in electron with hifi support thanks to widevine."; icon = "tidal-hifi"; - startupNotify = true; + exec = "tidal-hifi"; terminal = false; - type = "Application"; + mimeTypes = [ "x-scheme-handler/tidal" ]; categories = [ "Network" "Application" @@ -141,8 +141,8 @@ buildNpmPackage { "Audio" "Video" ]; + startupNotify = true; startupWMClass = "tidal-hifi"; - mimeTypes = [ "x-scheme-handler/tidal" ]; extraConfig.X-PulseAudio-Properties = "media.role=music"; }) ]; From 29b86572318ed7b2f9cb2db96f8255a9ec3be49b Mon Sep 17 00:00:00 2001 From: Jacob Birkett Date: Mon, 23 Jun 2025 23:55:46 -0700 Subject: [PATCH 2/2] tidal-hifi: improve quality of the desktop entry This patch improves the desktop entry for `tidal-hifi` because I noticed it looked a little funny. Summary: - Changed the file name to `tidal-hifi` (to remove the whitespace). - Change the `desktopName` (aesthetic name) to "TIDAL Hi-Fi". - Change the generic name to "Music Player" because "TIDAL Hi-Fi" is not generic. - Make `comment` and `exec` (and `name`) follow the values used for `meta` attributes to reduce maintenance overhead slightly. - Fix capitalization errors in `meta.description`. - Change the `categories` slightly to be more similar to other streaming service programs. - Re-ordered the attributes to make it easier to read along with . Each commit has a justification in its summary. tidal-hifi: remove type from desktop entry It already has a default value of `"Application"` if left unspecified. It's also not included in the example for this build helper. tidal-hifi: change desktop entry filename to self.pname The `name` argument for this function corresponds to the filename in the Nix store, it is not the human-friendly display name. Some desktop entries use the display name as the filename, but I hate spaces in filenames if they aren't necessary. tidal-hifi: change desktop entry display name to TIDAL Hi-Fi The `desktopName` argument to this function corresponds with the `Name` key in the generated `.desktop` file, which is the display name for the human. tidal-hifi: change desktop entry generic name to Music Player Judging by the example given in the Nixpkgs documentation, this generic name should be a short description of what the program does. In this case, it is a "Music Player". tidal-hifi: desktop entry comment same as meta.description There's no reason to say the same thing twice. Also fixed the capitalization of "Electron" and "Widevine" since they are proper nouns. tidal-hifi: change desktop entry exec to meta.mainProgram The `meta.mainProgram` attribute is now considered the source of truth if the binary name changes upstream, it only has to be updated in one position for this package. tidal-hifi: change desktop entry categories to match other music players Removed `Video`, kept `Network`, now it matches Spotify's desktop entry more closely. --- pkgs/by-name/ti/tidal-hifi/package.nix | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/ti/tidal-hifi/package.nix b/pkgs/by-name/ti/tidal-hifi/package.nix index d71e1ab39cf4..bbfa8be84b00 100644 --- a/pkgs/by-name/ti/tidal-hifi/package.nix +++ b/pkgs/by-name/ti/tidal-hifi/package.nix @@ -87,7 +87,7 @@ let vulkan-loader ]; in -buildNpmPackage { +buildNpmPackage (self: { pname = "tidal-hifi"; inherit version; @@ -125,21 +125,20 @@ buildNpmPackage { desktopItems = [ (makeDesktopItem { - type = "Application"; - name = "TIDAL Hi-Fi"; - desktopName = "tidal-hifi"; - genericName = "TIDAL Hi-Fi"; - comment = "The web version of listen.tidal.com running in electron with hifi support thanks to widevine."; + name = self.pname; + desktopName = "TIDAL Hi-Fi"; + genericName = "Music Player"; + comment = self.meta.description; icon = "tidal-hifi"; - exec = "tidal-hifi"; + exec = self.meta.mainProgram; terminal = false; mimeTypes = [ "x-scheme-handler/tidal" ]; categories = [ - "Network" - "Application" - "AudioVideo" "Audio" - "Video" + "Music" + "Player" + "Network" + "AudioVideo" ]; startupNotify = true; startupWMClass = "tidal-hifi"; @@ -190,7 +189,7 @@ buildNpmPackage { meta = { changelog = "https://github.com/Mastermindzh/tidal-hifi/releases/tag/${version}"; - description = "Web version of Tidal running in electron with hifi support thanks to widevine"; + description = "Web version of Tidal running in Electron with Hi-Fi support thanks to Widevine"; homepage = "https://github.com/Mastermindzh/tidal-hifi"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ @@ -201,4 +200,4 @@ buildNpmPackage { platforms = lib.platforms.linux; mainProgram = "tidal-hifi"; }; -} +})