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 配置
This commit is contained in:
@@ -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
|
||||
|
||||
+1
-6
@@ -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
|
||||
|
||||
@@ -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",
|
||||
}
|
||||
+1
-18
@@ -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):
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user