0xbbuddha/my-env-dotfiles
GitHub: 0xbbuddha/my-env-dotfiles
一套基于 Zellij、Helix、Yazi、Kitty 和 Fish 的个人终端 dotfiles,同时服务于日常编程开发与渗透测试任务,内置自动化命令日志记录功能。
Stars: 0 | Forks: 0
# my-env-dotfiles
**一个用于编写代码和进行安全测试的终端工作站。**
Zellij, Helix, Yazi, Kitty, Fish.
这套配置并非一蹴而就。它是几个月日常
使用的结果,每次遇到阻碍时都会进行微调,直到只保留下真正
有效的内容。
其背后的理念很简单:**编辑器负责编辑,多路复用器负责其余一切。**
Zellij 负责处理文件树、终端和会话持久化,因此 helix
无需关心这些。
渗透测试布局的成长方式也是如此,一次解决一个痛点。那些
被反复用到的命令变成了自动记录功能。对于 shell 属于哪个作用域的疑问,
变成了状态栏中的永久指示器。这些都不是
提前规划好的。
## 为什么选择这些工具
选择它们的原因相同:每一个都能开箱即用,
独立完成工作。
**Zellij。** tmux 也有会话功能,这不是区别所在。zellij 无需安装任何东西就自带
会话*恢复*(resurrection)、纯文件形式的布局,以及
一个能告诉你按键功能的状态栏。在 tmux 下,这些需要 tmux-resurrect
和 tmuxinator。它的 plugin API 也正是让状态栏能够显示作用域
指示器的原因。
**Helix。** 内置 LSP、tree-sitter、模糊查找器和格式化功能,无需
额外配置。整个配置就是一个单独的 TOML 文件,而在 vim 下要达到同样的
效果,意味着要维护一个会自我膨胀的配置文件。
**Yazi。** Helix 已经有了模糊查找器,所以那从来不是缺口。浏览
一个陌生的文件树是另一项任务,而这正是 yazi 的用武之地。
**Kitty。** GPU 渲染,以及 yazi 用于图像
预览的图形协议。Kittens 涵盖了其余部分。
**Fish。** 这个没什么可争辩的。我以前是 zsh 用户,偶然
用上了 fish,然后再也没找到回去的理由。自动补全和语法
高亮在空配置文件下就能工作,这就足够了。唯一的代价
是它不兼容 POSIX,这也是为什么 `hx-open` 是一个 bash 脚本。
出于显而易见的原因,我自己的 `config.fish` 并没有包含在内 :) 只包含了
函数部分。
## 开发
左侧是 Yazi,右侧是 helix,下方是一个 shell。在文件树中按 Enter 键
会在**正在运行**的 helix 实例中打开它,而不是打开第二个实例。
## 安全测试
四个标签页:`recon`、`exploit`、`services`、`report`。在 `recon`
和 `exploit` 中输入的每一条命令都会被原样记录,并带有时间戳,无需进行任何额外操作。
## 环境要求
| 工具 | 已测试版本 |
|:--|:--|
| zellij | 0.44.3 |
| helix | 25.07.1 |
| yazi | 26.5.6 |
| fish | 4.8.1 |
| kitty | any |
| util-linux | `script`, `scriptreplay` |
## 安装
```
git clone https://github.com/0xbbuddha/my-env-dotfiles
cd my-env-dotfiles
cp -r .config/* ~/.config/
mkdir -p ~/.local/bin
cp .local/bin/hx-open ~/.local/bin/ && chmod +x ~/.local/bin/hx-open
```
`~/.local/bin` 必须位于你的 `PATH` 中。
状态栏(必需,没有它状态栏会保持空白)
``` mkdir -p ~/.local/share/zellij/plugins curl -fsSL -o ~/.local/share/zellij/plugins/zjstatus.wasm \ https://github.com/dj95/zjstatus/releases/latest/download/zjstatus.wasm ``` 然后授予该插件一次权限。提示渲染在 **plugin 窗格内部**,该窗格只有一行高,因此永远无法从状态栏本身进行回应, 状态栏会保持空白且没有错误消息。 ``` zellij plugin --floating -- file:$HOME/.local/share/zellij/plugins/zjstatus.wasm # 回答 "y",然后关闭该 pane ```Yazi git 指示器
``` ya pkg install ``` `.config/yazi/package.toml` 固定了确切的插件版本。语言服务器
`.config/helix/languages.toml` 声明了 bash、python、toml 和 markdown。安装 你需要的那些,然后使用 `helix --health` 进行检查。标签:Dotfiles, Python安全, 命令记录, 开发环境, 效率工具, 终端工具