diff --git a/modules/applications/discord/darwin.nix b/modules/applications/discord/darwin.nix deleted file mode 100644 index 73c0e65..0000000 --- a/modules/applications/discord/darwin.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - homebrew = { - enable = true; - casks = [ "vesktop" ]; - }; -} diff --git a/modules/applications/discord/home.nix b/modules/applications/discord/home.nix index fcc10c1..2a8d8d3 100644 --- a/modules/applications/discord/home.nix +++ b/modules/applications/discord/home.nix @@ -1,19 +1,95 @@ -{ lib, pkgs, ... }: -let - vesktop = pkgs.vesktop.overrideAttrs (oldAttrs: { - # Electron does not enable the PipeWire WebRTC capturer in Vesktop's - # wrapper, so Wayland compositors cannot hand screen sharing to their - # xdg-desktop-portal backend. - postFixup = - builtins.replaceStrings - [ "WaylandWindowDecorations" ] - [ "WaylandWindowDecorations,WebRTCPipeWireCapturer" ] - oldAttrs.postFixup; - }); -in -lib.mkIf pkgs.stdenv.hostPlatform.isLinux { +_: { programs.vesktop = { enable = true; - package = vesktop; + + settings = { + discordBranch = "stable"; + + hardwareAcceleration = true; + hardwareVideoAcceleration = true; + + tray = true; + minimizeToTray = true; + + # Discord Rich Presence + arRPC = true; + + openLinksWithElectron = false; + + spellCheckLanguages = [ + "ja-JP" + "en-US" + ]; + }; + + vencord = { + useSystem = false; + + settings = { + autoUpdate = true; + autoUpdateNotification = false; + + useQuickCss = false; + + cloud.settingsSync = false; + + notifications = { + position = "bottom-right"; + useNative = "not-focused"; + timeout = 5000; + logLimit = 50; + }; + + plugins = { + # プライバシー・安全性 + NoTrack.enabled = true; + ClearURLs.enabled = true; + + # 設定・セッション + BetterSettings.enabled = true; + BetterSessions.enabled = true; + + # 画像・添付ファイル + FixImagesQuality.enabled = true; + ImageZoom.enabled = true; + ViewIcons.enabled = true; + CopyFileContents.enabled = true; + + # メッセージ操作 + QuickReply.enabled = true; + SendTimestamps.enabled = true; + FullSearchContext.enabled = true; + MessageLinkEmbeds.enabled = true; + Unindent.enabled = true; + ValidReply.enabled = true; + + # 通知・誤操作対策 + ReadAllNotificationsButton.enabled = true; + NoReplyMention.enabled = true; + NotificationVolume.enabled = true; + + # UI・パフォーマンス + NoTypingAnimation.enabled = true; + FavoriteEmojiFirst.enabled = true; + KeepCurrentChannel.enabled = true; + + # サーバー・権限確認 + PermissionsViewer.enabled = true; + MemberCount.enabled = true; + + # ボイス・アクティビティ + CallTimer.enabled = true; + GameActivityToggle.enabled = true; + + # Vesktop向け + WebKeybinds.enabled = true; + WebScreenShareFixes.enabled = true; + + # Message history + MessageLogger.enable = true; + ShowHiddenChannels.enable = true; + }; + }; + }; }; }