diff --git a/home-manager/sajenim/features/cli/mpd.nix b/home-manager/sajenim/features/cli/mpd.nix index 5613b4e..4b7c867 100644 --- a/home-manager/sajenim/features/cli/mpd.nix +++ b/home-manager/sajenim/features/cli/mpd.nix @@ -1,6 +1,6 @@ {pkgs, ...}: { - # Install some applications for managing mpd + # Install some applications for managing mpd home.packages = with pkgs; [ mpc ncmpcpp @@ -25,4 +25,17 @@ } ''; }; + + # Discord rich presence for MPD + services.mpd-discord-rpc = { + enable = true; + settings = { + hosts = ["localhost:6600"]; + format = { + details = "$title"; + state = "$artist - $album"; + timestamp = "elapsed"; + }; + }; + }; } diff --git a/home-manager/sajenim/features/desktop/default.nix b/home-manager/sajenim/features/desktop/default.nix index 96e9b5c..bf1ec8a 100644 --- a/home-manager/sajenim/features/desktop/default.nix +++ b/home-manager/sajenim/features/desktop/default.nix @@ -1,6 +1,7 @@ {pkgs, ...}: { imports = [ ./cava + ./discord ./mpv ./obs ]; diff --git a/home-manager/sajenim/features/desktop/discord/config/custom.css b/home-manager/sajenim/features/desktop/discord/config/custom.css new file mode 100644 index 0000000..9499588 --- /dev/null +++ b/home-manager/sajenim/features/desktop/discord/config/custom.css @@ -0,0 +1,132 @@ +:root { + --font-primary: Fisa Code; + + /* Gruvbox Material Dark Medium */ + --bg-dim: #232323; + --bg0: #282828; + --bg1: #32302f; + --bg2: #45403d; + --bg3: #5a524c; + --bg4: #665c54; + --bg5: #7c6f64; + + --bg-diff-green: #34381b; + --bg-diff-red: #402120; + --bg-diff-blue: #0e363e; + + --bg-statusline1: #32302f; + --bg-statusline2: #3a3735; + --bg-statusline3: #504945; + + --bg-current-word: #3c3836; + + --bg-visual-red: #4c3432; + --bg-visual-yellow: #4f422e; + --bg-visual-green: #3b4439; + --bg-visual-blue: #374141; + --bg-visual-purple: #443840; + + --fg0: #d4be98; + --fg1: #ddc7a1; + + --red: #ea6962; + --orange: #e78a4e; + --yellow: #d8a657; + --green: #a9b665; + --aqua: #89b482; + --blue: #7daea3; + --purple: #d3869b; + + --grey0: #7c6f64; + --grey1: #928374; + --grey2: #a89984; +} + +.theme-dark { + /* Text */ + --text-default: var(--fg0); + --text-strong: var(--fg1); + --text-subtle: var(--grey2); + --text-muted: var(--grey2); + --white: var(--fg0); + + /* Icons */ + --icon-strong: var(--fg1); + --icon-subtle: var(--fg1); + --icon-muted: var(--grey2); + + /* Interactive */ + --interactive-text-active: var(--fg1); + --interactive-text-hover: var(--grey2); + --interactive-text-default: var(--grey2); + --interactive-icon-default: var(--grey2); + + /* Control */ + --control-primary-text-default: var(--fg1); + --control-primary-text-hover: var(--fg0); + --control-primary-background-default: var(--bg2); + --control-primary-background-hover: var(--bg3); + --control-secondary-text-default: var(--grey2); + --control-secondary-text-hover: var(--fg0); + + /* Channels */ + --channels-default: var(--grey2); + --channel-icon: var(--grey2); + --channel-text-area-placeholder: var(--grey2); + + /* Input */ + --input-placeholder-text-default: var(--grey2); + --input-background-default: var(--bg0); + --chat-background-default: var(--bg1); + + /* Background: Base */ + --background-base-low: var(--bg0); + --background-base-lower: var(--bg0); + --background-base-lowest: var(--bg-dim); + + /* Background: Surface */ + --background-surface-high: var(--bg0); + --background-surface-higher: var(--bg1); + --background-surface-highest: var(--bg2); + + /* Background: Modifier */ + --background-mod-strong: var(--bg1); + --background-mod-normal: var(--bg2); + --background-mod-subtle: var(--bg1); + --background-mod-muted: var(--bg1); + + /* Background: Misc */ + --background-brand: var(--bg-visual-green); + --background-code: var(--bg1); + --user-profile-overlay-background: var(--bg2); + --message-mentioned-background-default: var(--bg-current-word); + --message-mentioned-background-hover: var(--bg-current-word); + + /* Border */ + --border-normal: var(--bg0); + + /* Scrollbar */ + --scrollbar-thin-thumb: var(--green); + --scrollbar-thin-track: transparent; + --scrollbar-auto-thumb: var(--green); + --scrollbar-auto-track: transparent; +} + +/* Remove input borders */ +[class*="searchBar"], +[class*="channelTextArea"], +[class*="textArea"] { + border: none !important; +} + +/* Hide server banner and boost goal bar */ +[class*="bannerVisible"], +[class*="progressContainer"], +[class*="content"] > [aria-hidden="true"][style*="height"] { + display: none !important; +} + +/* Hide new messages bar */ +[class*="newMessagesBar"] { + display: none !important; +} diff --git a/home-manager/sajenim/features/desktop/discord/default.nix b/home-manager/sajenim/features/desktop/discord/default.nix new file mode 100644 index 0000000..4fb77a4 --- /dev/null +++ b/home-manager/sajenim/features/desktop/discord/default.nix @@ -0,0 +1,17 @@ +{pkgs, ...}: { + nixpkgs.overlays = [ + (final: prev: { + discord = prev.discord.override {withOpenASAR = true;}; + }) + ]; + + home.packages = with pkgs; [ + discord + betterdiscordctl + ]; + + home.file.".config/BetterDiscord/data/stable/custom.css" = { + enable = true; + source = ./config/custom.css; + }; +} diff --git a/home-manager/sajenim/global/default.nix b/home-manager/sajenim/global/default.nix index 01c974d..da7e6a1 100644 --- a/home-manager/sajenim/global/default.nix +++ b/home-manager/sajenim/global/default.nix @@ -21,6 +21,8 @@ # all allowed packages here rather than scattering predicates across feature modules. allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "discord" + # Development tools "claude-code" "idea"