From 339a27d736887b1e397bfbbaeff54c124e9fdb77 Mon Sep 17 00:00:00 2001 From: imbytecat Date: Thu, 2 Apr 2026 20:24:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=8B=86=E5=88=86=20cli=20?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=EF=BC=8C=E5=88=86=E7=A6=BB=E7=8E=B0=E4=BB=A3?= =?UTF-8?q?=E7=BB=88=E7=AB=AF=E5=B7=A5=E5=85=B7=E4=B8=8E=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 cli 模块:bat, btop, duf, dust, eza, fastfetch, fd, git-delta, jq, micro, procs, ripgrep, tealdeer, trash-cli, yazi, zoxide + git/mise 用户配置 - dev 瘦身为纯开发工具:语言运行时、LSP、编辑器 - base 还原为无参构造,移除用户配置文件职责 - git config 添加 delta pager 配置 --- home/.config/git/config | 9 +++++++++ modules/base.py | 7 +------ modules/cli.py | 41 +++++++++++++++++++++++++++++++++++++++++ modules/dev.py | 19 +------------------ source.py | 4 +++- 5 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 modules/cli.py diff --git a/home/.config/git/config b/home/.config/git/config index 3b80064..962c7bd 100644 --- a/home/.config/git/config +++ b/home/.config/git/config @@ -1,2 +1,11 @@ [http] sslVerify = false +[core] + pager = delta +[interactive] + diffFilter = delta --color-only +[delta] + navigate = true + side-by-side = true +[merge] + conflictstyle = zdiff3 diff --git a/modules/base.py b/modules/base.py index 1e76abe..4fedc7a 100644 --- a/modules/base.py +++ b/modules/base.py @@ -4,9 +4,8 @@ from decman.plugins.pacman import packages as pacman_packages class BaseModule(Module): - def __init__(self, user: str): + def __init__(self): super().__init__("base") - self.user = user def files(self): return { @@ -17,10 +16,6 @@ class BaseModule(Module): source_file="./system/etc/sudoers.d/10-wheel", permissions=0o440, ), - f"/home/{self.user}/.config/git/config": File( - source_file="./home/.config/git/config", - owner=self.user, - ), } @pacman_packages diff --git a/modules/cli.py b/modules/cli.py new file mode 100644 index 0000000..0690097 --- /dev/null +++ b/modules/cli.py @@ -0,0 +1,41 @@ +from decman import File, Module +from decman.plugins.pacman import packages as pacman_packages + + +class CliModule(Module): + def __init__(self, user: str): + super().__init__("cli") + self.user = user + + def files(self): + return { + f"/home/{self.user}/.config/git/config": File( + source_file="./home/.config/git/config", + owner=self.user, + ), + f"/home/{self.user}/.config/mise/config.toml": File( + source_file="./home/.config/mise/config.toml", + owner=self.user, + ), + } + + @pacman_packages + def pacman_packages(self) -> set[str]: + return { + "bat", + "btop", + "duf", + "dust", + "eza", + "fastfetch", + "fd", + "git-delta", + "jq", + "micro", + "procs", + "ripgrep", + "tealdeer", + "trash-cli", + "yazi", + "zoxide", + } diff --git a/modules/dev.py b/modules/dev.py index db70da2..dbb3d37 100644 --- a/modules/dev.py +++ b/modules/dev.py @@ -1,5 +1,5 @@ import decman -from decman import File, Module +from decman import Module from decman.plugins.pacman import packages as pacman_packages BUN_GLOBAL_PACKAGES = [ @@ -17,35 +17,18 @@ class DevModule(Module): super().__init__("dev") self.user = user - def files(self): - return { - f"/home/{self.user}/.config/mise/config.toml": File( - source_file="./home/.config/mise/config.toml", - owner=self.user, - ), - } - @pacman_packages def pacman_packages(self) -> set[str]: return { - "bat", "biome", - "btop", "bun", - "eza", - "fastfetch", - "fd", "go", "lazygit", - "micro", "mise", "neovim", "nodejs", - "ripgrep", - "trash-cli", "uv", "yaml-language-server", - "zoxide", } def after_update(self, store): diff --git a/source.py b/source.py index fa9e39a..4974d88 100644 --- a/source.py +++ b/source.py @@ -3,6 +3,7 @@ import os import decman import modules.base +import modules.cli import modules.dev import modules.docker import modules.locale @@ -20,7 +21,8 @@ if not USERNAME: IS_WSL = os.path.exists("/proc/sys/fs/binfmt_misc/WSLInterop") decman.modules += [ - modules.base.BaseModule(USERNAME), + modules.base.BaseModule(), + modules.cli.CliModule(USERNAME), modules.dev.DevModule(USERNAME), modules.docker.DockerModule(USERNAME), modules.locale.LocaleModule(),