about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/by-name/yt/ytdownloader/config-dir.patch18
-rw-r--r--pkgs/by-name/yt/ytdownloader/package.nix10
2 files changed, 25 insertions, 3 deletions
diff --git a/pkgs/by-name/yt/ytdownloader/config-dir.patch b/pkgs/by-name/yt/ytdownloader/config-dir.patch
new file mode 100644
index 000000000000..eb3684a24887
--- /dev/null
+++ b/pkgs/by-name/yt/ytdownloader/config-dir.patch
@@ -0,0 +1,18 @@
+--- a/main.js
++++ b/main.js
+@@ -13,6 +13,15 @@
+ const fs = require("fs");
+ const path = require("path");
+ autoUpdater.autoDownload = false;
++
++// Set the config directory to XDG_CONFIG_HOME/ytdownloader
++const xdgConfigHome = process.env.XDG_CONFIG_HOME;
++let configDir = app.getPath('home') + "/.config/ytdownloader";
++if (xdgConfigHome) {
++	configDir = xdgConfigHome + "/ytdownloader";
++}
++app.setPath ('userData', configDir);
++
+ /**@type {BrowserWindow} */
+ let win = null;
+ let secondaryWindow = null;
diff --git a/pkgs/by-name/yt/ytdownloader/package.nix b/pkgs/by-name/yt/ytdownloader/package.nix
index e5e3c202e81d..9a607c16e4aa 100644
--- a/pkgs/by-name/yt/ytdownloader/package.nix
+++ b/pkgs/by-name/yt/ytdownloader/package.nix
@@ -25,19 +25,23 @@ buildNpmPackage rec {
   buildInputs = [ ffmpeg yt-dlp ];
 
   desktopItem = makeDesktopItem {
-    name = "YTDownloader";
+    name = "ytDownloader";
     exec = "ytdownloader %U";
     icon = "ytdownloader";
-    desktopName = "YT Downloader";
+    desktopName = "ytDownloader";
     comment = "A modern GUI video and audio downloader";
     categories = [ "Utility" ];
-    startupWMClass = "YTDownloader";
+    startupWMClass = "ytDownloader";
   };
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
   dontNpmBuild = true;
 
+  # Patch config dir to ~/.config/ytdownloader
+  # Otherwise it stores config in ~/.config/Electron
+  patches = [ ./config-dir.patch ];
+
   # Replace hardcoded ffmpeg and ytdlp paths
   # Also stop it from downloading ytdlp
   postPatch = ''