From 04c9007f084d101648f80a4ec97ea56c0d5a606e Mon Sep 17 00:00:00 2001 From: imnyang Date: Tue, 7 Jul 2026 09:45:04 +0900 Subject: [PATCH] wow --- assets/config/KawaDark.colors | 147 +++++++++++++++++++++++ hosts/installer/default.nix | 18 ++- hosts/installer/home.nix | 16 +++ hosts/installer/plasma.nix | 13 ++ hosts/installer/shell.nix | 54 +++++++++ hosts/machine/ena/home/config/plasma.nix | 4 +- hosts/machine/ena/home/default.nix | 2 + hosts/machine/mizuki/home/default.nix | 25 +--- modules/home/devtool/ghostty.nix | 81 +++++++++---- modules/home/devtool/vscode.nix | 2 +- modules/home/devtool/zed.nix | 54 ++++++++- modules/home/plasma.nix | 1 + modules/home/ssh.nix | 25 ++++ modules/mizukios/features/catppuccin.nix | 6 +- 14 files changed, 389 insertions(+), 59 deletions(-) create mode 100644 assets/config/KawaDark.colors create mode 100644 hosts/installer/home.nix create mode 100644 hosts/installer/plasma.nix create mode 100644 hosts/installer/shell.nix create mode 100644 modules/home/ssh.nix diff --git a/assets/config/KawaDark.colors b/assets/config/KawaDark.colors new file mode 100644 index 0000000..329595f --- /dev/null +++ b/assets/config/KawaDark.colors @@ -0,0 +1,147 @@ +[ColorEffects:Disabled] +Color=56,56,56 +ColorAmount=0 +ColorEffect=0 +ContrastAmount=0.65 +ContrastEffect=1 +IntensityAmount=0.1 +IntensityEffect=2 + +[ColorEffects:Inactive] +ChangeSelectionColor=true +Color=112,111,110 +ColorAmount=0.025 +ColorEffect=2 +ContrastAmount=0.1 +ContrastEffect=2 +Enable=false +IntensityAmount=0 +IntensityEffect=0 + +[Colors:Button] +BackgroundAlternate=44,31,45 +BackgroundNormal=25,16,23 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=236,183,213 +ForegroundInactive=169,169,177 +ForegroundLink=137,180,250 +ForegroundNegative=243,139,168 +ForegroundNeutral=249,226,175 +ForegroundNormal=250,250,250 +ForegroundPositive=166,227,161 +ForegroundVisited=245,194,231 + +[Colors:Complementary] +BackgroundAlternate=44,31,45 +BackgroundNormal=25,16,23 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=236,183,213 +ForegroundInactive=169,169,177 +ForegroundLink=137,180,250 +ForegroundNegative=243,139,168 +ForegroundNeutral=249,226,175 +ForegroundNormal=250,250,250 +ForegroundPositive=166,227,161 +ForegroundVisited=245,194,231 + +[Colors:Header] +BackgroundAlternate=44,31,45 +BackgroundNormal=25,16,23 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=236,183,213 +ForegroundInactive=169,169,177 +ForegroundLink=137,180,250 +ForegroundNegative=243,139,168 +ForegroundNeutral=249,226,175 +ForegroundNormal=250,250,250 +ForegroundPositive=166,227,161 +ForegroundVisited=245,194,231 + +[Colors:Header][Inactive] +BackgroundAlternate=44,31,45 +BackgroundNormal=25,16,23 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=236,183,213 +ForegroundInactive=169,169,177 +ForegroundLink=137,180,250 +ForegroundNegative=243,139,168 +ForegroundNeutral=249,226,175 +ForegroundNormal=169,169,177 +ForegroundPositive=166,227,161 +ForegroundVisited=245,194,231 + +[Colors:Selection] +BackgroundAlternate=96,69,98 +BackgroundNormal=236,183,213 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=25,16,23 +ForegroundInactive=169,169,177 +ForegroundLink=30,102,245 +ForegroundNegative=176,55,69 +ForegroundNeutral=198,92,0 +ForegroundNormal=25,16,23 +ForegroundPositive=23,104,57 +ForegroundVisited=155,89,182 + +[Colors:Tooltip] +BackgroundAlternate=44,31,45 +BackgroundNormal=25,16,23 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=236,183,213 +ForegroundInactive=169,169,177 +ForegroundLink=137,180,250 +ForegroundNegative=243,139,168 +ForegroundNeutral=249,226,175 +ForegroundNormal=250,250,250 +ForegroundPositive=166,227,161 +ForegroundVisited=245,194,231 + +[Colors:View] +BackgroundAlternate=44,31,45 +BackgroundNormal=25,16,23 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=236,183,213 +ForegroundInactive=169,169,177 +ForegroundLink=137,180,250 +ForegroundNegative=243,139,168 +ForegroundNeutral=249,226,175 +ForegroundNormal=250,250,250 +ForegroundPositive=166,227,161 +ForegroundVisited=245,194,231 + +[Colors:Window] +BackgroundAlternate=44,31,45 +BackgroundNormal=25,16,23 +DecorationFocus=236,183,213 +DecorationHover=236,183,213 +ForegroundActive=236,183,213 +ForegroundInactive=169,169,177 +ForegroundLink=137,180,250 +ForegroundNegative=243,139,168 +ForegroundNeutral=249,226,175 +ForegroundNormal=250,250,250 +ForegroundPositive=166,227,161 +ForegroundVisited=245,194,231 + +[General] +ColorScheme=BreezeDark +Name=Kawa Dark +shadeSortColumn=true + +[KDE] +contrast=4 + +[WM] +activeBackground=25,16,23 +activeBlend=25,16,23 +activeForeground=250,250,250 +inactiveBackground=44,31,45 +inactiveBlend=44,31,45 +inactiveForeground=169,169,177 diff --git a/hosts/installer/default.nix b/hosts/installer/default.nix index e996624..c28af5b 100644 --- a/hosts/installer/default.nix +++ b/hosts/installer/default.nix @@ -3,7 +3,11 @@ overlays, }: let - inherit (inputs) nixpkgs; + inherit (inputs) + nixpkgs + home-manager + plasma-manager + ; in nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -13,6 +17,18 @@ nixpkgs.lib.nixosSystem { "${inputs.self}/modules/mizukios/base" + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.backupFileExtension = "backup"; + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.users.nixos = import ./home.nix; + home-manager.sharedModules = [ + plasma-manager.homeModules.plasma-manager + ]; + } + ({ pkgs, ... }: { environment.systemPackages = with pkgs; [ fastfetch diff --git a/hosts/installer/home.nix b/hosts/installer/home.nix new file mode 100644 index 0000000..1b65ad3 --- /dev/null +++ b/hosts/installer/home.nix @@ -0,0 +1,16 @@ +{ inputs, ... }: + +{ + xdg.enable = true; + + home.stateVersion = "25.11"; + home.username = "nixos"; + home.homeDirectory = "/home/nixos"; + + imports = [ + "${inputs.self}/modules/home/devtool/ghostty.nix" + "${inputs.self}/modules/home/devtool/zed.nix" + ./plasma.nix + ./shell.nix + ]; +} diff --git a/hosts/installer/plasma.nix b/hosts/installer/plasma.nix new file mode 100644 index 0000000..1a7fd6f --- /dev/null +++ b/hosts/installer/plasma.nix @@ -0,0 +1,13 @@ +{ inputs, lib, ... }: +let + assets = "${inputs.self}/assets"; +in +{ + imports = [ "${inputs.self}/modules/home/plasma.nix" ]; + + programs.plasma.workspace.cursor = { + theme = "pjsk-cursor-n25-mizuki-ani"; + }; + + programs.plasma.workspace.colorScheme = lib.mkForce "Kawa"; +} diff --git a/hosts/installer/shell.nix b/hosts/installer/shell.nix new file mode 100644 index 0000000..2cf6319 --- /dev/null +++ b/hosts/installer/shell.nix @@ -0,0 +1,54 @@ +{ + programs.fish = { + enable = true; + + shellAliases = { + ".." = "cd .."; + "..." = "cd ../.."; + + ls = "eza --icons=always"; + ll = "eza --icons=always -l"; + la = "eza --icons=always -a"; + lla = "eza --icons=always -la"; + + cat = "bat --plain"; + + clean = "sudo nix-collect-garbage -d"; + }; + + interactiveShellInit = '' + set -g fish_greeting "" + set -g fish_color_command blue + set -g fish_color_error red + set -g fish_color_param cyan + ''; + }; + + programs.starship = { + enable = true; + settings = { + format = "🦔 $directory:$character"; + add_newline = false; + # username = { + # style_user = "purple"; + # style_root = "purple"; + # format = "[$user]($style)"; + # show_always = true; + # }; + # hostname = { + # style = "green"; + # format = "[$hostname]($style)"; + # ssh_only = false; + # }; + directory = { + style = "fg:#fbb6c4"; + format = "[$path]($style)"; + truncation_length = 3; + }; + character = { + success_symbol = " 💕"; + error_symbol = " ⚠️"; + }; + }; + }; +} diff --git a/hosts/machine/ena/home/config/plasma.nix b/hosts/machine/ena/home/config/plasma.nix index 85a6f65..3fd9b62 100644 --- a/hosts/machine/ena/home/config/plasma.nix +++ b/hosts/machine/ena/home/config/plasma.nix @@ -1,4 +1,4 @@ -{ inputs, ... }: +{ inputs, lib, ... }: let assets = "${inputs.self}/assets"; in @@ -9,6 +9,8 @@ in theme = "pjsk-cursor-n25-ena-ani"; }; + programs.plasma.workspace.colorScheme = lib.mkForce "KawaDark"; + programs.plasma.workspace.wallpaper = "${assets}/wallpaper/wallpaper1.jpg"; programs.plasma.kscreenlocker.appearance.wallpaper = "${assets}/wallpaper/wallpaper3.png"; diff --git a/hosts/machine/ena/home/default.nix b/hosts/machine/ena/home/default.nix index 5aaa397..2caf6f0 100644 --- a/hosts/machine/ena/home/default.nix +++ b/hosts/machine/ena/home/default.nix @@ -40,6 +40,8 @@ "${inputs.self}/modules/home/discord/linux.nix" "${inputs.self}/modules/home/devtool/vscode.nix" "${inputs.self}/modules/home/devtool/ciscopackettracer.nix" + "${inputs.self}/modules/home/ssh.nix" + ./config/shell.nix ./config/plasma.nix ]; diff --git a/hosts/machine/mizuki/home/default.nix b/hosts/machine/mizuki/home/default.nix index 175c2a7..fe57254 100644 --- a/hosts/machine/mizuki/home/default.nix +++ b/hosts/machine/mizuki/home/default.nix @@ -18,30 +18,6 @@ VISUAL = "nvim"; }; - programs.ssh = { - enable = true; - matchBlocks = { - "*" = { - forwardAgent = false; - identityAgent = "~/.1password/agent.sock"; - setEnv = { - TERM = "xterm-256color"; - }; - extraOptions = { - ServerAliveInterval = "0"; - ServerAliveCountMax = "3"; - Compression = "no"; - AddKeysToAgent = "no"; - HashKnownHosts = "no"; - UserKnownHostsFile = "~/.ssh/known_hosts"; - ControlMaster = "no"; - ControlPath = "~/.ssh/master-%r@%n:%p"; - ControlPersist = "no"; - }; - }; - }; - }; - xdg.configFile."fontconfig/conf.d/10-hm-fonts.conf".force = true; imports = [ @@ -58,5 +34,6 @@ "${inputs.self}/modules/home/obs-studio.nix" "${inputs.self}/modules/home/devtool/vscode.nix" "${inputs.self}/modules/home/devtool/ciscopackettracer.nix" + "${inputs.self}/modules/home/ssh.nix" ]; } diff --git a/modules/home/devtool/ghostty.nix b/modules/home/devtool/ghostty.nix index 2aeba40..2c95aa9 100644 --- a/modules/home/devtool/ghostty.nix +++ b/modules/home/devtool/ghostty.nix @@ -1,35 +1,12 @@ -{pkgs, ...}: { +{ pkgs, ... }: { programs.ghostty = { enable = true; package = if pkgs.stdenv.isDarwin then pkgs.ghostty-bin else pkgs.ghostty; enableFishIntegration = true; - settings = { - background = "#fcf8f9"; - foreground = "#191017"; - - cursor-color = "#301d23"; - selection-background = "#f4ecee"; - selection-foreground = "#191017"; - palette = [ - "0=#5c5f77" - "1=#d20f39" - "2=#40a02b" - "3=#df8e1d" - "4=#1e66f5" - "5=#ea76cb" - "6=#179299" - "7=#acb0be" - "8=#6c6f85" - "9=#d20f39" - "10=#40a02b" - "11=#df8e1d" - "12=#1e66f5" - "13=#ea76cb" - "14=#179299" - "15=#bcc0cc" - ]; + settings = { + theme = "light:Mizuki Light,dark:Mizuki Dark"; window-colorspace = "srgb"; window-theme = "ghostty"; @@ -46,4 +23,56 @@ auto-update = "off"; }; }; + + xdg.configFile."ghostty/themes/Mizuki Light".text = '' + background = #fcf8f9 + foreground = #191017 + + cursor-color = #301d23 + selection-background = #f4ecee + selection-foreground = #191017 + + palette = 0=#5c5f77 + palette = 1=#d20f39 + palette = 2=#40a02b + palette = 3=#df8e1d + palette = 4=#1e66f5 + palette = 5=#ea76cb + palette = 6=#179299 + palette = 7=#acb0be + palette = 8=#6c6f85 + palette = 9=#d20f39 + palette = 10=#40a02b + palette = 11=#df8e1d + palette = 12=#1e66f5 + palette = 13=#ea76cb + palette = 14=#179299 + palette = 15=#bcc0cc + ''; + + xdg.configFile."ghostty/themes/Mizuki Dark".text = '' + background = #191017 + foreground = #fafafa + + cursor-color = #fafafa + selection-background = #2c1f2d + selection-foreground = #fafafa + + palette = 0=#5c5f77 + palette = 1=#f38ba8 + palette = 2=#a6e3a1 + palette = 3=#f9e2af + palette = 4=#89b4fa + palette = 5=#f5c2e7 + palette = 6=#94e2d5 + palette = 7=#bac2de + palette = 8=#6c7086 + palette = 9=#f38ba8 + palette = 10=#a6e3a1 + palette = 11=#f9e2af + palette = 12=#89b4fa + palette = 13=#f5c2e7 + palette = 14=#94e2d5 + palette = 15=#cdd6f4 + ''; } diff --git a/modules/home/devtool/vscode.nix b/modules/home/devtool/vscode.nix index 28e9efc..95cc1cf 100644 --- a/modules/home/devtool/vscode.nix +++ b/modules/home/devtool/vscode.nix @@ -29,7 +29,7 @@ in src = builtins.fetchTarball { url = "https://code.visualstudio.com/sha/download?build=insider&os=linux-x64"; - sha256 = "1vzf897inlzxfwmnaykkj3gqg18wbh9zhv7lnh3if6agixv0v91b"; + sha256 = "19cq6pwyzickckc5zi4lpxrqjhb4lhpwkr83jy2ma6jg3zh1cjk3"; }; buildInputs = oldAttrs.buildInputs ++ [ diff --git a/modules/home/devtool/zed.nix b/modules/home/devtool/zed.nix index dbe252e..c3e65c5 100644 --- a/modules/home/devtool/zed.nix +++ b/modules/home/devtool/zed.nix @@ -16,7 +16,7 @@ "buffer_font_size" = 15; "theme" = { - "mode" = "light"; + "mode" = "system"; "light" = "One Light"; "dark" = "One Dark"; }; @@ -28,7 +28,6 @@ "title_bar.background" = "#FDF7F9"; "elevated_surface.background" = "#FDF7F9"; - # 핵심: sidebar/project panel 쪽은 투명 제거 "surface.background" = "#FDF7F9"; "panel.background" = "#FDF7F9"; "editor.gutter.background" = "#FDF7F9"; @@ -36,7 +35,6 @@ "toolbar.background" = "#FDF7F9"; "terminal.background" = "#FDF7F9"; - # editor만 투명 유지하고 싶으면 이건 남겨도 됨 "editor.background" = "#00000000"; "editor.line_number" = "#A38F96"; @@ -69,6 +67,56 @@ "drop_target.background" = "#8165701a"; "editor.highlighted_line.background" = "#8165701a"; }; + + "One Dark" = { + "background" = "#191017"; + "status_bar.background" = "#191017"; + "title_bar.background" = "#191017"; + "elevated_surface.background" = "#191017"; + + "surface.background" = "#191017"; + "panel.background" = "#191017"; + "editor.gutter.background" = "#191017"; + "tab_bar.background" = "#191017"; + "toolbar.background" = "#191017"; + "terminal.background" = "#191017"; + + "editor.background" = "#00000000"; + + "editor.foreground" = "#FAFAFA"; + "text" = "#FAFAFA"; + "text.muted" = "#A9A9B1"; + "editor.line_number" = "#A38F96"; + "editor.active_line_number" = "#FAFAFA"; + + "border" = "#2C1F2D"; + "hint.background" = "#2C1F2D"; + + "tab.active_background" = "#2C1F2D"; + "tab.inactive_background" = "#191017"; + "element.selected" = "#2C1F2D"; + "element.active" = "#2C1F2D99"; + "element.hover" = "#2C1F2D80"; + + "editor.indent_guide" = "#2C1F2D"; + "editor.indent_guide_active" = "#4A354C"; + "panel.indent_guide" = "#2C1F2D"; + "panel.indent_guide_hover" = "#4A354C"; + "panel.indent_guide_active" = "#604562"; + + "panel.focused_border" = "#00000000"; + "border.variant" = "#00000000"; + "scrollbar.track.border" = "#00000000"; + "editor.active_line.background" = "#2C1F2D66"; + "scrollbar.track.background" = "#00000000"; + "scrollbar.thumb.background" = "#A38F9680"; + "ghost_element.background" = "#00000000"; + "ghost_element.hover" = "#2C1F2D80"; + "ghost_element.active" = "#2C1F2D99"; + "ghost_element.selected" = "#2C1F2DCC"; + "drop_target.background" = "#2C1F2D99"; + "editor.highlighted_line.background" = "#2C1F2D99"; + }; }; }; }; diff --git a/modules/home/plasma.nix b/modules/home/plasma.nix index 8c23a9a..a160e5a 100644 --- a/modules/home/plasma.nix +++ b/modules/home/plasma.nix @@ -8,6 +8,7 @@ let in { home.file.".local/share/color-schemes/Kawa.colors".source = "${assets}/config/Kawa.colors"; + home.file.".local/share/color-schemes/KawaDark.colors".source = "${assets}/config/KawaDark.colors"; home.file.".config/autostart/1password.desktop".source = "${assets}/config/1password.desktop"; programs.plasma = { diff --git a/modules/home/ssh.nix b/modules/home/ssh.nix new file mode 100644 index 0000000..1175cdc --- /dev/null +++ b/modules/home/ssh.nix @@ -0,0 +1,25 @@ +{ ... }: { + programs.ssh = { + enable = true; + matchBlocks = { + "*" = { + forwardAgent = false; + identityAgent = "~/.1password/agent.sock"; + setEnv = { + TERM = "xterm-256color"; + }; + extraOptions = { + ServerAliveInterval = "0"; + ServerAliveCountMax = "3"; + Compression = "no"; + AddKeysToAgent = "no"; + HashKnownHosts = "no"; + UserKnownHostsFile = "~/.ssh/known_hosts"; + ControlMaster = "no"; + ControlPath = "~/.ssh/master-%r@%n:%p"; + ControlPersist = "no"; + }; + }; + }; + }; +} diff --git a/modules/mizukios/features/catppuccin.nix b/modules/mizukios/features/catppuccin.nix index 60f1af5..e5c72e0 100644 --- a/modules/mizukios/features/catppuccin.nix +++ b/modules/mizukios/features/catppuccin.nix @@ -1,9 +1,9 @@ { pkgs, ... }: { - catppuccin.enable = true; - catppuccin.flavor = "latte"; - catppuccin.autoEnable = false; catppuccin = { + enable = true; + flavor = "latte"; + autoEnable = false; cache.enable = true; cursors.enable = false; fcitx5.enable = true;