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 = ''