From 32b42d71b4b22c4465963285bb6e462d7c93d45e Mon Sep 17 00:00:00 2001 From: kira <67888720+koffydrop@users.noreply.github.com> Date: Tue, 12 May 2026 21:38:25 -0300 Subject: [PATCH] discord: add option for different config locations Different discord branches use different config locations, but home-manager uses `${configDir}/discord` unconditionally. This adds an option that changes that to `${configDir}/${configName}`. --- modules/programs/discord.nix | 11 ++++++++- tests/modules/programs/discord/default.nix | 1 + .../discord/non-default-config-dir.nix | 24 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tests/modules/programs/discord/non-default-config-dir.nix diff --git a/modules/programs/discord.nix b/modules/programs/discord.nix index 75ca334bc..3008dc0f9 100644 --- a/modules/programs/discord.nix +++ b/modules/programs/discord.nix @@ -16,6 +16,15 @@ in options.programs.discord = { enable = lib.mkEnableOption "Discord, the chat platform"; package = lib.mkPackageOption pkgs "discord" { nullable = true; }; + configName = lib.mkOption { + type = lib.types.str; + default = "discord"; + example = "discordptb"; + description = '' + Name of the subdirectory where {file}`settings.json` is linked under. + For example discord-canary uses `discordcanary`. + ''; + }; settings = lib.mkOption { description = '' Configuration for Discord. @@ -62,7 +71,7 @@ in in { home.packages = lib.mkIf (cfg.package != null) [ cfg.package ]; - home.file."${configDir}/discord/settings.json".source = + home.file."${configDir}/${cfg.configName}/settings.json".source = jsonFormat.generate "discord-settings" cfg.settings; } ); diff --git a/tests/modules/programs/discord/default.nix b/tests/modules/programs/discord/default.nix index 9f42443e4..8322ac99f 100644 --- a/tests/modules/programs/discord/default.nix +++ b/tests/modules/programs/discord/default.nix @@ -1,3 +1,4 @@ { discord-basic-configuration = ./basic-configuration.nix; + discord-non-default-config-dir = ./non-default-config-dir.nix; } diff --git a/tests/modules/programs/discord/non-default-config-dir.nix b/tests/modules/programs/discord/non-default-config-dir.nix new file mode 100644 index 000000000..67ff3a43c --- /dev/null +++ b/tests/modules/programs/discord/non-default-config-dir.nix @@ -0,0 +1,24 @@ +{ pkgs, ... }: +{ + config = { + programs.discord = { + enable = true; + configName = "discordcanary"; + settings.DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING = true; + }; + + nmt.script = + let + configDir = + if pkgs.stdenv.hostPlatform.isLinux then + "home-files/.config/discordcanary" + else + "home-files/Library/Application Support/discordcanary"; + in + '' + assertFileExists "${configDir}/settings.json" + assertFileContent "${configDir}/settings.json" \ + ${./basic-settings.json} + ''; + }; +}