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]
|
[http]
|
||||||
sslVerify = false
|
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):
|
class BaseModule(Module):
|
||||||
def __init__(self, user: str):
|
def __init__(self):
|
||||||
super().__init__("base")
|
super().__init__("base")
|
||||||
self.user = user
|
|
||||||
|
|
||||||
def files(self):
|
def files(self):
|
||||||
return {
|
return {
|
||||||
@@ -17,10 +16,6 @@ class BaseModule(Module):
|
|||||||
source_file="./system/etc/sudoers.d/10-wheel",
|
source_file="./system/etc/sudoers.d/10-wheel",
|
||||||
permissions=0o440,
|
permissions=0o440,
|
||||||
),
|
),
|
||||||
f"/home/{self.user}/.config/git/config": File(
|
|
||||||
source_file="./home/.config/git/config",
|
|
||||||
owner=self.user,
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@pacman_packages
|
@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
|
import decman
|
||||||
from decman import File, Module
|
from decman import Module
|
||||||
from decman.plugins.pacman import packages as pacman_packages
|
from decman.plugins.pacman import packages as pacman_packages
|
||||||
|
|
||||||
BUN_GLOBAL_PACKAGES = [
|
BUN_GLOBAL_PACKAGES = [
|
||||||
@@ -17,35 +17,18 @@ class DevModule(Module):
|
|||||||
super().__init__("dev")
|
super().__init__("dev")
|
||||||
self.user = user
|
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
|
@pacman_packages
|
||||||
def pacman_packages(self) -> set[str]:
|
def pacman_packages(self) -> set[str]:
|
||||||
return {
|
return {
|
||||||
"bat",
|
|
||||||
"biome",
|
"biome",
|
||||||
"btop",
|
|
||||||
"bun",
|
"bun",
|
||||||
"eza",
|
|
||||||
"fastfetch",
|
|
||||||
"fd",
|
|
||||||
"go",
|
"go",
|
||||||
"lazygit",
|
"lazygit",
|
||||||
"micro",
|
|
||||||
"mise",
|
"mise",
|
||||||
"neovim",
|
"neovim",
|
||||||
"nodejs",
|
"nodejs",
|
||||||
"ripgrep",
|
|
||||||
"trash-cli",
|
|
||||||
"uv",
|
"uv",
|
||||||
"yaml-language-server",
|
"yaml-language-server",
|
||||||
"zoxide",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def after_update(self, store):
|
def after_update(self, store):
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import os
|
|||||||
import decman
|
import decman
|
||||||
|
|
||||||
import modules.base
|
import modules.base
|
||||||
|
import modules.cli
|
||||||
import modules.dev
|
import modules.dev
|
||||||
import modules.docker
|
import modules.docker
|
||||||
import modules.locale
|
import modules.locale
|
||||||
@@ -20,7 +21,8 @@ if not USERNAME:
|
|||||||
IS_WSL = os.path.exists("/proc/sys/fs/binfmt_misc/WSLInterop")
|
IS_WSL = os.path.exists("/proc/sys/fs/binfmt_misc/WSLInterop")
|
||||||
|
|
||||||
decman.modules += [
|
decman.modules += [
|
||||||
modules.base.BaseModule(USERNAME),
|
modules.base.BaseModule(),
|
||||||
|
modules.cli.CliModule(USERNAME),
|
||||||
modules.dev.DevModule(USERNAME),
|
modules.dev.DevModule(USERNAME),
|
||||||
modules.docker.DockerModule(USERNAME),
|
modules.docker.DockerModule(USERNAME),
|
||||||
modules.locale.LocaleModule(),
|
modules.locale.LocaleModule(),
|
||||||
|
|||||||
Reference in New Issue
Block a user