diff --git a/home.nix b/home.nix index 5d4bfe2..f6c5be5 100644 --- a/home.nix +++ b/home.nix @@ -1,15 +1,19 @@ -{ config, pkgs, inputs, ... }: - -let - spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system}; -in +{ pkgs, ... }: { + imports = [ + ./programs/fish.nix + ./programs/git.nix + ./programs/plasma.nix + ./programs/rime.nix + ./programs/spicetify.nix + ]; + # ⚠️ 极其重要:替换成你的实际系统用户名 home.username = "luodh"; home.homeDirectory = "/home/luodh"; - # 你的个人日常软件全写在这里! + # 个人日常软件 home.packages = with pkgs; [ qq fastfetch @@ -37,100 +41,12 @@ in wemeet ]; - # Rime 输入法配置(雾凇拼音) - home.file.".local/share/fcitx5/rime/default.custom.yaml".text = '' - patch: - schema_list: - - schema: rime_ice - menu/page_size: 7 - ''; - - xdg.configFile."fcitx5/profile" = { - force = true; - text = '' - [Groups/0] - Name=Default - Default Layout=us - DefaultIM=keyboard-us - - [Groups/0/Items/0] - Name=keyboard-us - Layout= - - [Groups/0/Items/1] - Name=rime - Layout= - - [GroupOrder] - 0=Default - ''; - }; - - home.activation.setupRimeIce = config.lib.dag.entryAfter ["writeBoundary"] '' - RIME_DIR="$HOME/.local/share/fcitx5/rime" - mkdir -p "$RIME_DIR" - for item in ${pkgs.rime-data}/share/rime-data/*; do - name=$(basename "$item") - [ -e "$RIME_DIR/$name" ] || ln -sf "$item" "$RIME_DIR" - done - for item in ${pkgs.rime-ice}/share/rime-data/*; do - name=$(basename "$item") - [ -e "$RIME_DIR/$name" ] && rm -rf "$RIME_DIR/$name" - ln -sf "$item" "$RIME_DIR" - done - ''; - - home.sessionPath = [ - "$HOME/.npm-global/bin" - ]; - # 让 nix-shell 等传统命令也能安装 unfree 软件 xdg.configFile."nixpkgs/config.nix".text = "{ allowUnfree = true; }"; - programs.fish = { - enable = true; - interactiveShellInit = '' - fish_add_path "$HOME/.npm-global/bin" - ''; - }; - - programs.git = { - enable = true; - settings = { - user = { - name = "Aloys23"; - email = "aloys233@gmail.com"; - }; - - init.defaultBranch = "main"; - pull.rebase = false; - }; - }; - - programs.spicetify = { - enable = true; - enabledCustomApps = with spicePkgs.apps; [ - marketplace - ]; - }; - - # Plasma 桌面环境接管 - programs.plasma = { - enable = true; - - # 关闭鼠标加速度,灵敏度保持默认 - configFile."kcminputrc" = { - "Mouse" = { - "XLbInptPointerAccel" = 0.0; # 关闭鼠标加速度 - "XLbInptAccelProfileFlat" = true; # 平坦加速曲线 - }; - }; - }; - # 这个版本号不要改!它不是软件版本,而是系统状态标识 home.stateVersion = "25.11"; - # 让 Home Manager 管理自己 programs.home-manager.enable = true; } diff --git a/programs/clash.nix b/programs/clash.nix index 294805b..a458925 100644 --- a/programs/clash.nix +++ b/programs/clash.nix @@ -1,4 +1,6 @@ -{pkgs, ...}: { +{ pkgs, ... }: + +{ programs.clash-verge = { enable = true; package = pkgs.clash-verge-rev; diff --git a/programs/fish.nix b/programs/fish.nix new file mode 100644 index 0000000..96846d2 --- /dev/null +++ b/programs/fish.nix @@ -0,0 +1,14 @@ +{ ... }: + +{ + home.sessionPath = [ + "$HOME/.npm-global/bin" + ]; + + programs.fish = { + enable = true; + interactiveShellInit = '' + fish_add_path "$HOME/.npm-global/bin" + ''; + }; +} diff --git a/programs/git.nix b/programs/git.nix new file mode 100644 index 0000000..f16a182 --- /dev/null +++ b/programs/git.nix @@ -0,0 +1,16 @@ +{ ... }: + +{ + programs.git = { + enable = true; + settings = { + user = { + name = "Aloys23"; + email = "aloys233@gmail.com"; + }; + + init.defaultBranch = "main"; + pull.rebase = false; + }; + }; +} diff --git a/programs/plasma.nix b/programs/plasma.nix new file mode 100644 index 0000000..c2a2ba8 --- /dev/null +++ b/programs/plasma.nix @@ -0,0 +1,14 @@ +{ ... }: + +{ + programs.plasma = { + enable = true; + + configFile."kcminputrc" = { + "Mouse" = { + "XLbInptPointerAccel" = 0.0; + "XLbInptAccelProfileFlat" = true; + }; + }; + }; +} diff --git a/programs/rime.nix b/programs/rime.nix new file mode 100644 index 0000000..0e985e3 --- /dev/null +++ b/programs/rime.nix @@ -0,0 +1,45 @@ +{ config, pkgs, ... }: + +{ + home.file.".local/share/fcitx5/rime/default.custom.yaml".text = '' + patch: + schema_list: + - schema: rime_ice + menu/page_size: 7 + ''; + + xdg.configFile."fcitx5/profile" = { + force = true; + text = '' + [Groups/0] + Name=Default + Default Layout=us + DefaultIM=keyboard-us + + [Groups/0/Items/0] + Name=keyboard-us + Layout= + + [Groups/0/Items/1] + Name=rime + Layout= + + [GroupOrder] + 0=Default + ''; + }; + + home.activation.setupRimeIce = config.lib.dag.entryAfter [ "writeBoundary" ] '' + RIME_DIR="$HOME/.local/share/fcitx5/rime" + mkdir -p "$RIME_DIR" + for item in ${pkgs.rime-data}/share/rime-data/*; do + name=$(basename "$item") + [ -e "$RIME_DIR/$name" ] || ln -sf "$item" "$RIME_DIR" + done + for item in ${pkgs.rime-ice}/share/rime-data/*; do + name=$(basename "$item") + [ -e "$RIME_DIR/$name" ] && rm -rf "$RIME_DIR/$name" + ln -sf "$item" "$RIME_DIR" + done + ''; +} diff --git a/programs/spicetify.nix b/programs/spicetify.nix new file mode 100644 index 0000000..016dce5 --- /dev/null +++ b/programs/spicetify.nix @@ -0,0 +1,14 @@ +{ pkgs, inputs, ... }: + +let + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system}; +in + +{ + programs.spicetify = { + enable = true; + enabledCustomApps = with spicePkgs.apps; [ + marketplace + ]; + }; +}