Commit Graph

56 Commits

Author SHA1 Message Date
imbytecat 27d4c68f23 fix(docker): 改用 SourceError 处理组信息查询失败 2026-04-09 16:05:04 +08:00
imbytecat af42eb913f fix(fish): 改用 SourceError 处理 shell 查询失败 2026-04-09 15:51:45 +08:00
imbytecat 33f4beb72a refactor(zsh): 移除 zsh 模块与配置 2026-04-09 15:50:34 +08:00
imbytecat 193cbdb11b feat(fish): 添加 fish 模块与交互配置 2026-04-09 15:50:34 +08:00
imbytecat 99f9608282 feat(base): 添加 fastfetch 系统信息工具 2026-04-09 12:09:54 +08:00
imbytecat b96e144e82 refactor(modules): 添加类型注解并优化 WSL 检测
- 全模块补全类型注解 (files, after_update, on_change)
- docker: 仅在 WSL 环境禁用 networkd-wait-online
- docker: 添加 _is_wsl() 自动检测函数
- zsh/docker: 改进错误输出使用 decman.error
- wsl-init: 统一使用 [[ ]] 并格式化代码
2026-04-09 12:09:00 +08:00
imbytecat ff31160602 feat(base): 精简 WSL 开发环境包列表
移除 WSL 下冗余的媒体处理和工具包:
- chafa, fastfetch, ffmpeg, imagemagick, poppler, resvg, tealdeer, xh

保留核心开发工具:
- micro (友好编辑器) - .zshrc 通过 alias vi=nvim 使用
- gomi-bin (回收站) - .zshrc 通过 alias rm=gomi 使用

同时移除 .zshrc 中的 http 别名 (xh 已移除)

优化后:78 个包 (原 87 个)
2026-04-09 11:51:53 +08:00
imbytecat e9a77f907e feat(base): 补齐 yazi 预览依赖
yazi 的预览能力依赖外部工具,按官方推荐补齐:

- ffmpeg: 视频缩略图
- poppler: PDF 预览
- imagemagick: 图片预览(含 HEIC/JPEG XL/字体)
- resvg: SVG 预览
- chafa: 终端不支持图片协议时的 ASCII fallback
  (Windows Terminal 旧版本无 sixel 时的兜底)
2026-04-08 13:26:03 +08:00
imbytecat 77d51c65b3 feat(zsh): 现代化 zshrc 配置并删除冗余 vim
zshrc 配置更新:
- 新增 EDITOR/VISUAL/MANPAGER/PAGER 环境变量,让 git commit、
  visudo、man 等工具默认使用 nvim 与 bat
- zoxide init --cmd cd 直接接管 cd,删除手动 alias cd=z/cdi=zi
- 新增 yazi yy wrapper:退出时自动 cd 到最后浏览的目录
- FZF 默认配置:fd 联动 + 现代 UI(高度/边框/预览窗口)
- compinit 缓存优化:每天重建一次 zcompdump,平时复用
- eza alias 公共参数提取到 _EZA_BASE,所有列表都带 --git
- 新增 Ctrl+Space 接受 zsh-autosuggestions 建议

base.py 同步:
- 删除冗余 vim:neovim 已装且 EDITOR=nvim 已设置,
  visudo 等工具会通过 $EDITOR fallback 到 nvim
2026-04-08 13:21:59 +08:00
imbytecat 2b3544b4a5 refactor(base): 切换回收站工具 trash-cli → gomi-bin
trash-cli 是 Python 写的老牌方案,启动开销大且 5 年未发布正式
release。gomi 是 Go 实现的现代替代品:

- 完整兼容 freedesktop.org Trash 规范,与 yazi/GNOME/KDE 互通
- 提供交互式 TUI 浏览/恢复界面(gomi 无参数即进入)
- 性能比 trash-cli 快约 10 倍
- 极活跃维护,AUR 提供预编译 gomi-bin

回收站数据无缝迁移:两者都使用 ~/.local/share/Trash/。

- pacman: -trash-cli
- aur: +gomi-bin
- .zshrc: alias rm: trash-put → gomi
2026-04-08 13:21:16 +08:00
imbytecat d4cb2f8acb refactor(base): 用 ouch 替换 atool 与冗余解压器
atool 上次更新于 2016 年,且依赖外部 unzip/unrar/p7zip 二进制。
ouch 是纯 Rust 实现,所有常见格式(zip/7z/rar/tar/gz/bz2/xz/zst 等)
通过 Rust crates 原生支持,运行时零外部依赖。

- pacman: -atool -unrar -unzip +ouch
- 保留 7zip:yazi 用作存档预览/提取的可选依赖
- .zshrc: alias x: aunpack → ouch decompress
2026-04-08 13:20:55 +08:00
imbytecat f626c12e49 fix(dev): hook 失败改为 raise SourceError 而非静默警告
全局包安装失败原本只 print 警告,decman 退出码仍为 0,违反声明式语义。
改为汇总后 raise decman.SourceError,符合官方 docstring 推荐(失败应被感知,
下次 sync 会重试)。保留"尝试所有包"逻辑,一次性看到全部失败。
2026-04-08 12:37:49 +08:00
imbytecat 04d517a2c2 refactor: 清理 source.py 死代码与空 __init__.py
- source.py: 删除插件存在性检查,modules import 阶段已会 ImportError
- modules/__init__.py: 删除空文件,PEP 420 namespace package 不需要
2026-04-08 12:37:41 +08:00
imbytecat 171aaa55fd fix(docker): 禁用 systemd-networkd-wait-online 解决 docker 启动卡两分钟 2026-04-08 12:18:04 +08:00
imbytecat 885926335f refactor(zsh): 移除 oh-my-zsh 依赖,改用原生配置 2026-04-08 10:45:09 +08:00
imbytecat 63975a334d fix(dev): 修正 dockerfile LSP 包名并添加国内镜像 2026-04-08 09:39:01 +08:00
imbytecat 5c851ea250 feat(dev): 添加 Vue LSP 2026-04-03 16:56:33 +08:00
imbytecat 4a147ea7f3 feat(dev): 添加 ruff 和 dockerfile-language-server LSP 2026-04-03 16:46:31 +08:00
imbytecat af6ed36fdc feat(dev): 添加 TypeScript 和 Go 的 LSP 支持 2026-04-03 16:38:39 +08:00
imbytecat d1a48ffedc feat(dev): 添加 shell LSP 支持 2026-04-03 16:29:53 +08:00
imbytecat 4e64c20cf1 chore(dev): 移除 pi-coding-agent 2026-04-03 16:16:26 +08:00
imbytecat 4c7d0b57bd refactor(base): 增强配置健壮性与开发体验
- 新增 pacman.conf 管理(Color + ILoveCandy + ParallelDownloads)
- dev 模块改用 decman 原生 user/mimic_login 替代手拼 su -
- dev 模块异常处理改为收集汇总,不再静默吞掉
- install.sh 改用 mktemp + trap 清理临时目录
- 移除 AGENTS.md 中不存在的 wsl.py 引用
2026-04-03 15:49:59 +08:00
imbytecat c87f440017 refactor: 改进代码健壮性与文档一致性 2026-04-03 15:07:26 +08:00
imbytecat ffb200fd43 refactor(install): 移除 yay 依赖,decman 改为直接 makepkg 安装 2026-04-03 14:36:49 +08:00
imbytecat bbb192ffd5 feat: 现代化终端体验升级
- 新增包:starship, atuin, direnv, xh, yq, sd, zellij
- 重写 .zshrc:Starship 提示符、Atuin 历史搜索、fzf 键绑定、
  增强别名(eza --icons, ll, la, lt)、shell 选项、WSL 剪贴板
- 新增 starship.toml 配置
- 优化 git config:SSL 限定到内网地址、pull.rebase、
  push.autoSetupRemote、rerere、delta line-numbers
2026-04-03 13:46:26 +08:00
imbytecat 8845398d84 feat(dev): 添加 oh-my-opencode 依赖(ast-grep, github-cli, tmux) 2026-04-02 21:14:53 +08:00
imbytecat 0aaf26a529 fix: 移除 wsl 模块及 WSL 检测逻辑 2026-04-02 20:57:59 +08:00
imbytecat 87ecc69601 refactor(zsh): 移除 .zshenv,PATH 移入 .zshrc 并支持 .zshrc.local
- 删除 .zshenv,PATH 声明合并至 .zshrc 顶部
- 末尾加载 ~/.zshrc.local 用于机密和机器特定配置
- zsh 模块不再声明 .zshenv 文件
2026-04-02 20:46:34 +08:00
imbytecat 443afbccb1 refactor: 合并 cli 模块至 base,移除 cli.py 2026-04-02 20:41:09 +08:00
imbytecat 5d081f87d1 fix: mise 配置归属 dev 模块,更新 AGENTS.md 匹配当前结构
- 将 mise config.toml 从 base 移至 dev(包与配置同模块)
- AGENTS.md 仓库结构图更新为 modules/ 目录
- 验证命令改为遍历 modules/*.py
- 模块示例代码同步为当前写法
2026-04-02 20:37:51 +08:00
imbytecat 339a27d736 refactor: 拆分 cli 模块,分离现代终端工具与开发工具链
- 新增 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 配置
2026-04-02 20:24:23 +08:00
imbytecat caed1d5b4e feat(dev,base): 添加 mise 全局信任和 Git 跳过 SSL 验证配置
- mise: 信任根目录下所有配置 (trusted_config_paths = ["/"])
- git: 全局禁用 SSL 证书验证 (http.sslVerify = false)
2026-04-02 20:10:14 +08:00
imbytecat 7d0ceb4e1c fix: 修复模块收敛性、异常处理和引导脚本健壮性
- dev: 异常捕获改为 except Exception 适配 decman 自定义异常
- docker/zsh/wsl: on_enable 改为 after_update + 状态检查确保收敛
- docker/zsh: subprocess 失败时 early return 避免误触发
- wsl: systemctl 调用加 try/except 防止 systemd 不可用时崩溃
- zsh: shell 路径改为精确解析 passwd 字段
- docker: decorator 别名统一为 pacman_packages
- install.sh: 开头验证 sudo 权限、mkdir -p 确保父目录、[ 改 [[
- wsl-init.sh: pacman -Sy 改 -Syu 避免 partial upgrade、已有用户补 wheel 组
2026-03-26 20:41:54 +08:00
imbytecat bd04de439c feat(wsl): 添加 WSL 模块,mask systemd-networkd-wait-online.service 2026-03-26 19:13:14 +08:00
imbytecat abd93310b8 fix(dev): 使用 after_update 替代 on_change 确保每次同步都安装全局包 2026-03-26 17:21:02 +08:00
imbytecat b6a2209603 feat(base): 添加 base 包;fix(source): 精简错误提示文案 2026-03-26 16:55:43 +08:00
imbytecat a2f3ceb6b5 refactor(zsh): 将 PATH 配置提取到 .zshenv 2026-03-26 16:11:52 +08:00
imbytecat 2734133d62 feat(dev): 添加 Go 并将 comment-checker 改用 go install 安装 2026-03-26 16:07:06 +08:00
imbytecat ba1bf38c71 refactor(modules): 拆分开发工具为独立 DevModule,替换 DockerModule 2026-03-26 15:53:53 +08:00
imbytecat b3e7d059ec feat(docker): 改用 socket activation 并在启用时加入 docker 用户组 2026-03-26 15:17:02 +08:00
imbytecat ccbd2c55d4 chore(base): 将 yay 替换为 yay-bin 加速安装 2026-03-26 15:06:42 +08:00
imbytecat a98a46bee8 feat(base): 添加 eza;feat(zsh): 添加 ls/tree/cat alias 2026-03-26 14:49:24 +08:00
imbytecat 91829a621d refactor(source): 移除冗余注释;feat(base): 添加 btop/fastfetch/lazygit/micro 2026-03-26 14:40:44 +08:00
imbytecat afeaddca12 refactor(modules): 提取 BaseModule,将基础包和系统文件移入模块 2026-03-26 14:39:24 +08:00
imbytecat 6ea16d27e1 refactor(modules): 提取 ZshModule 并将所有模块移入 modules/ 包 2026-03-26 14:26:07 +08:00
imbytecat 56a2cc483f refactor: 从 dcli 迁移到 decman 声明式配置管理
- 新增 source.py 统一声明包、系统文件和 dotfiles
- 简化 install.sh,由 decman 接管系统文件和 locale 配置
- 移除 dcli 配置(config.yaml、hosts/、modules/、state/)
- 添加 pyproject.toml 和 uv.lock 用于开发环境类型提示
- 更新 README.md 和 AGENTS.md 适配 decman 工作流
2026-03-26 10:31:07 +08:00
imbytecat 34d4325f09 fix(modules): 修正 zsh hook 脚本路径 2026-03-25 16:21:46 +08:00
imbytecat efa5fd835c feat(modules): 添加 zsh 默认 shell 自动设置 2026-03-25 16:19:55 +08:00
imbytecat 92c1f26667 更新 zsh 配置与插件清单 2026-03-25 15:37:09 +08:00
imbytecat 669edf8dc3 调整基础与开发模块包分组 2026-03-25 15:37:09 +08:00