From e18d4b277081583a64e3574c81ec8081387b1664 Mon Sep 17 00:00:00 2001 From: Sean Kovacs Date: Wed, 17 Dec 2025 10:55:13 -0500 Subject: [PATCH] nix-native config for discord/vesktop --- home/default.nix | 42 +--- home/graphical/discord/default.nix | 70 ++++++ home/graphical/discord/vencord.nix | 350 +++++++++++++++++++++++++++++ system/all.nix | 1 + 4 files changed, 422 insertions(+), 41 deletions(-) create mode 100644 home/graphical/discord/default.nix create mode 100644 home/graphical/discord/vencord.nix diff --git a/home/default.nix b/home/default.nix index 76eaf3b..fdea720 100755 --- a/home/default.nix +++ b/home/default.nix @@ -147,7 +147,6 @@ kdePackages.partitionmanager # gui applications - vesktop input-leap libreoffice-qt-fresh # helium-browser @@ -217,46 +216,7 @@ gtk = { enable = true; - theme = - let - mapping = { - maroon = "red"; - red = "red"; - peach = "orange"; - yellow = "yellow"; - green = "green"; - teal = "teal"; - sky = "teal"; - sapphire = "default"; - blue = "default"; - mauve = "purple"; - lavender = "purple"; - pink = "pink"; - flamingo = "pink"; - rosewater = "pink"; - }; - rawThemeVariant = lib.attrByPath [ config.catppuccin.accent ] "default" mapping; - rawColorVariant = if config.userOptions.isDark then "dark" else "light"; - capitalize = - s: - if s == "" then - "" - else - (lib.strings.toUpper (builtins.substring 0 1 s)) - + (builtins.substring 1 (builtins.stringLength s) s); - formattedThemeColor = if rawThemeVariant == "default" then "" else "-${capitalize rawThemeVariant}"; - in - { - name = "Colloid${formattedThemeColor}-${capitalize rawColorVariant}-Catppuccin"; - package = ( - pkgs.colloid-gtk-theme.override { - themeVariants = [ rawThemeVariant ]; - sizeVariants = [ "standard" ]; - colorVariants = [ rawColorVariant ]; - tweaks = [ "catppuccin" ]; - } - ); - }; + colorScheme = if config.userOptions.isDark then "dark" else "light"; iconTheme = { name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light"; diff --git a/home/graphical/discord/default.nix b/home/graphical/discord/default.nix new file mode 100644 index 0000000..fc3784b --- /dev/null +++ b/home/graphical/discord/default.nix @@ -0,0 +1,70 @@ +{ config, pkgs, ... }: + +let + catppuccin-discord = pkgs.fetchurl { + url = "https://catppuccin.github.io/discord/dist/catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}.theme.css"; + sha256 = "sha256-bMxCPo7vg+iHXspsVnrboonlUvkShk5l+gqFIbAxd0o="; + }; + + mergedThemes = pkgs.runCommand "mergedConfig" { } '' + mkdir -p $out + cp ${catppuccin-discord} $out/catppuccin.css + ''; + + vesktopSettings = { + discordBranch = "stable"; + minimizeToTray = true; + arRPC = true; + splashColor = "${pkgs.catppuccin.rgb.${config.catppuccin.flavor}.text}"; + splashBackground = "${pkgs.catppuccin.rgb.${config.catppuccin.flavor}.base}"; + spellCheckLanguages = [ + "en-US" + "en" + ]; + disableMinSize = true; + }; + + stateConfig = { + firstLaunch = false; + windowBounds = { + x = 0; + y = 0; + width = 853; + height = 1071; + }; + }; +in +{ + home.packages = with pkgs; [ vesktop ]; + + home.file.".config/vesktop/settings.json" = { + text = builtins.toJSON vesktopSettings; + force = true; + }; + + home.file.".config/vesktop/settings/settings.json" = { + text = builtins.toJSON (import ./vencord.nix); + force = true; + }; + + home.file.".config/vesktop/settings/quickCss.css" = { + text = '' + * { + font-family: "${config.userOptions.fontSans.name}" !important; + font-size: ${toString config.userOptions.fontSans.size}px; + } + ''; + force = true; + }; + + home.file.".config/vesktop/state.json" = { + text = builtins.toJSON stateConfig; + force = true; + }; + + home.file.".config/vesktop/themes" = { + source = mergedThemes; + recursive = true; + force = true; + }; +} diff --git a/home/graphical/discord/vencord.nix b/home/graphical/discord/vencord.nix new file mode 100644 index 0000000..9442180 --- /dev/null +++ b/home/graphical/discord/vencord.nix @@ -0,0 +1,350 @@ +{ + autoUpdate = true; + autoUpdateNotification = true; + useQuickCss = true; + themeLinks = [ ]; + eagerPatches = false; + enabledThemes = [ "catppuccin.css" ]; + enableReactDevtools = false; + frameless = false; + transparent = true; + winCtrlQ = false; + disableMinSize = true; + winNativeTitleBar = false; + plugins = { + BadgeAPI.enabled = true; + CommandsAPI.enabled = true; + ContextMenuAPI.enabled = true; + MemberListDecoratorsAPI.enabled = false; + MessageAccessoriesAPI.enabled = true; + MessageDecorationsAPI.enabled = false; + MessageEventsAPI.enabled = true; + MessagePopoverAPI.enabled = true; + NoticesAPI.enabled = true; + ServerListAPI.enabled = false; + SettingsStoreAPI.enabled = false; + NoTrack = { + enabled = true; + disableAnalytics = true; + }; + Settings = { + enabled = true; + settingsLocation = "aboveActivity"; + }; + SupportHelper.enabled = true; + AlwaysAnimate.enabled = false; + AlwaysTrust = { + enabled = true; + domain = true; + file = true; + }; + AnonymiseFileNames = { + enabled = false; + method = 0; + randomisedLength = 7; + anonymiseByDefault = true; + }; + "WebRichPresence (arRPC)".enabled = false; + BANger = { + enabled = false; + source = "https://i.imgur.com/wp5q52C.mp4"; + }; + BetterFolders = { + enabled = false; + sidebar = true; + showFolderIcon = 1; + closeAllHomeButton = false; + keepIcons = false; + sidebarAnim = true; + closeAllFolders = false; + forceOpen = false; + closeOthers = false; + }; + BetterGifAltText.enabled = false; + BetterNotesBox = { + enabled = false; + hide = false; + noSpellCheck = false; + }; + BetterRoleDot = { + enabled = false; + bothStyles = false; + copyRoleColorInProfilePopout = false; + }; + BetterUploadButton.enabled = false; + BiggerStreamPreview.enabled = true; + BlurNSFW = { + enabled = false; + blurAmount = 10; + }; + CallTimer = { + enabled = true; + format = "stopwatch"; + }; + ClearURLs.enabled = true; + ClientTheme = { + enabled = false; + color = "31363b"; + }; + ColorSighted.enabled = false; + ConsoleShortcuts.enabled = false; + CopyUserURLs.enabled = false; + CrashHandler.enabled = true; + CustomRPC.enabled = false; + Dearrow = { + enabled = false; + hideButton = false; + replaceElements = 0; + dearrowByDefault = true; + }; + Experiments = { + enabled = true; + toolbarDevMenu = false; + }; + F8Break.enabled = false; + FakeNitro = { + enabled = true; + enableEmojiBypass = true; + enableStickerBypass = true; + enableStreamQualityBypass = true; + transformStickers = true; + transformEmojis = true; + transformCompoundSentence = false; + emojiSize = 48; + stickerSize = 160; + useHyperLinks = true; + hyperLinkText = "{{NAME}}"; + disableEmbedPermissionCheck = false; + }; + FakeProfileThemes.enabled = false; + FavoriteEmojiFirst.enabled = false; + FavoriteGifSearch.enabled = false; + FixImagesQuality.enabled = false; + ForceOwnerCrown.enabled = false; + FriendInvites.enabled = false; + GameActivityToggle.enabled = false; + GifPaste.enabled = false; + GreetStickerPicker = { + enabled = true; + greetMode = "Greet"; + }; + iLoveSpam.enabled = false; + IgnoreActivities.enabled = false; + ImageZoom.enabled = false; + KeepCurrentChannel.enabled = false; + LastFMRichPresence.enabled = false; + LoadingQuotes.enabled = false; + MemberCount.enabled = false; + MessageClickActions.enabled = false; + MessageLinkEmbeds.enabled = false; + MessageLogger = { + enabled = true; + deleteStyle = "text"; + ignoreBots = false; + ignoreSelf = false; + ignoreUsers = ""; + ignoreChannels = ""; + ignoreGuilds = ""; + logEdits = true; + logDeletes = true; + collapseDeleted = false; + inlineEdits = true; + }; + MessageTags.enabled = false; + MoreCommands.enabled = false; + MoreKaomoji.enabled = false; + MoreUserTags.enabled = false; + Moyai.enabled = false; + MutualGroupDMs.enabled = false; + NoBlockedMessages.enabled = false; + NoDevtoolsWarning.enabled = false; + NoF1.enabled = false; + NoMosaic.enabled = false; + NoPendingCount = { + enabled = true; + hideFriendRequestsCount = true; + hideMessageRequestsCount = true; + hidePremiumOffersCount = true; + }; + NoProfileThemes.enabled = true; + NoReplyMention.enabled = false; + NoScreensharePreview.enabled = false; + NoTypingAnimation.enabled = false; + NoUnblockToJump.enabled = false; + NormalizeMessageLinks.enabled = false; + NSFWGateBypass.enabled = false; + OnePingPerDM.enabled = false; + oneko.enabled = false; + OpenInApp.enabled = false; + PermissionFreeWill.enabled = false; + PermissionsViewer.enabled = false; + petpet.enabled = false; + PictureInPicture.enabled = true; + PinDMs.enabled = false; + PlainFolderIcon.enabled = false; + PlatformIndicators.enabled = false; + PreviewMessage.enabled = false; + QuickMention.enabled = false; + QuickReply.enabled = false; + ReactErrorDecoder.enabled = false; + ReadAllNotificationsButton.enabled = false; + RelationshipNotifier.enabled = false; + RevealAllSpoilers.enabled = false; + ReverseImageSearch.enabled = false; + RoleColorEverywhere.enabled = false; + SecretRingToneEnabler.enabled = false; + SendTimestamps.enabled = false; + ServerListIndicators.enabled = false; + ShowAllMessageButtons.enabled = false; + ShowConnections.enabled = false; + ShowHiddenChannels = { + enabled = false; + showMode = 0; + hideUnreads = true; + defaultAllowedUsersAndRolesDropdownState = true; + }; + ShowMeYourName.enabled = false; + SilentMessageToggle.enabled = false; + SilentTyping.enabled = false; + SortFriendRequests.enabled = false; + SpotifyControls.enabled = false; + SpotifyCrack.enabled = false; + SpotifyShareCommands.enabled = false; + StartupTimings.enabled = true; + SuperReactionTweaks.enabled = false; + TextReplace.enabled = false; + ThemeAttributes.enabled = false; + TimeBarAllActivities.enabled = false; + Translate.enabled = false; + TypingIndicator.enabled = false; + TypingTweaks.enabled = false; + Unindent.enabled = false; + UnsuppressEmbeds.enabled = false; + UrbanDictionary.enabled = false; + UserVoiceShow.enabled = false; + USRBG = { + enabled = false; + voiceBackground = true; + nitroFirst = true; + }; + ValidUser.enabled = false; + VoiceChatDoubleClick.enabled = true; + VcNarrator.enabled = false; + ViewIcons.enabled = false; + ViewRaw = { + enabled = true; + clickMethod = "Left"; + }; + VoiceMessages = { + enabled = false; + noiseSuppression = true; + echoCancellation = true; + }; + WebContextMenus = { + enabled = false; + addBack = true; + }; + WebKeybinds.enabled = true; + WhoReacted.enabled = true; + Wikisearch.enabled = true; + Decor.enabled = false; + NotificationVolume.enabled = false; + FixSpotifyEmbeds.enabled = false; + InvisibleChat.enabled = false; + ShikiCodeblocks.enabled = false; + XSOverlay.enabled = false; + BetterGifPicker.enabled = false; + FixCodeblockGap.enabled = false; + ReviewDB = { + enabled = true; + notifyReviews = true; + showWarning = true; + hideTimestamps = false; + hideBlockedUsers = true; + }; + FixYoutubeEmbeds.enabled = false; + ChatInputButtonAPI.enabled = false; + DisableCallIdle.enabled = false; + NewGuildSettings.enabled = false; + BetterRoleContext.enabled = false; + FriendsSince.enabled = false; + ResurrectHome.enabled = false; + BetterSettings.enabled = false; + OverrideForumDefaults.enabled = false; + UnlockedAvatarZoom.enabled = false; + ShowHiddenThings.enabled = false; + BetterSessions.enabled = false; + ImplicitRelationships.enabled = false; + StreamerModeOnStream.enabled = false; + ImageLink.enabled = false; + MessageLatency.enabled = false; + PauseInvitesForever.enabled = false; + ReplyTimestamp.enabled = false; + VoiceDownload.enabled = true; + WebScreenShareFixes.enabled = true; + PartyMode.enabled = false; + AutomodContext.enabled = false; + CtrlEnterSend.enabled = false; + CustomIdle.enabled = false; + NoDefaultHangStatus.enabled = false; + NoServerEmojis.enabled = false; + ReplaceGoogleSearch.enabled = false; + ShowTimeoutDuration.enabled = false; + ValidReply.enabled = false; + DontRoundMyTimestamps.enabled = false; + MaskedLinkPaste.enabled = false; + Summaries.enabled = false; + ServerInfo.enabled = false; + YoutubeAdblock.enabled = false; + MessageUpdaterAPI.enabled = true; + UserSettingsAPI.enabled = true; + AppleMusicRichPresence.enabled = false; + ConsoleJanitor.enabled = false; + CopyEmojiMarkdown.enabled = false; + MentionAvatars.enabled = false; + NoOnboardingDelay.enabled = false; + SuncordToolbox.enabled = true; + AlwaysExpandRoles.enabled = false; + NoMaskedUrlPaste.enabled = false; + VencordToolbox.enabled = false; + AccountPanelServerProfile.enabled = false; + CopyFileContents.enabled = false; + StickerPaste.enabled = false; + VolumeBooster.enabled = false; + FullSearchContext.enabled = false; + UserMessagesPronouns = { + enabled = false; + showInMessages = true; + showSelf = true; + pronounSource = 0; + showInProfile = true; + pronounsFormat = "LOWERCASE"; + }; + DynamicImageModalAPI.enabled = false; + FullUserInChatbox.enabled = false; + HideMedia.enabled = false; + IrcColors.enabled = false; + DisableDeepLinks.enabled = true; + ExpressionCloner.enabled = true; + CopyStickerLinks.enabled = false; + ImageFilename.enabled = false; + }; + uiElements = { + chatBarButtons = { }; + messagePopoverButtons = { }; + }; + notifications = { + timeout = 5000; + position = "bottom-right"; + useNative = "not-focused"; + logLimit = 50; + }; + cloud = { + authenticated = false; + url = "https://api.vencord.dev/"; + settingsSync = false; + settingsSyncVersion = 1765984819568; + }; + notifyAboutUpdates = false; + macosTranslucency = false; +} diff --git a/system/all.nix b/system/all.nix index 2950aef..cbe7845 100755 --- a/system/all.nix +++ b/system/all.nix @@ -54,6 +54,7 @@ home-manager.users.sckova = { imports = [ ../home + ../home/graphical/discord ../home/graphical/firefox ../home/graphical/mpv ../home/tiling/niri