开发环境配置方案 (Windows, Mac, Linux)。包含了 Alacritty, WezTerm, Neovim, Starship, Zsh 等工具的配置。
此方案会自动下载便携版的工具到 %USERPROFILE%\bin 目录,并配置环境变量和配置文件链接。
-
打开 CMD 或 PowerShell。
-
克隆此仓库(建议路径):
git clone https://github.com/jwu/configs.git %USERPROFILE%\bin\configs -
进入
win目录:cd %USERPROFILE%\bin\configs\win
-
运行安装脚本(自动下载以下工具):
install.bat
安装的工具包括:
- Alacritty v0.17.0 (终端模拟器)
- Nerd Fonts (FiraMono) v3.4.0 (图标字体)
- Clink v1.9.18 + clink-completions v0.6.8 (增强 CMD)
- Starship v1.24.2 (终端提示符)
- fzf 0.71.0 (模糊搜索)
- zoxide 0.9.9 (智能目录跳转)
- fd 10.4.2 (更快的 find)
- bat 0.26.1 (更好的 cat)
- delta 0.19.2 (更好的 diff)
- ripgrep 15.1.0 (更快的 grep)
- eza 0.23.4 (更好的 ls)
- coreutils 0.8.0 (Unix 命令工具集)
-
运行配置脚本(创建配置文件链接):
config.bat
如果你更喜欢手动安装工具,请参考以下步骤:
-
安装工具:
- Alacritty v0.17.0 (终端模拟器)
- Nerd Fonts (FiraMono) v3.4.0 (图标字体)
- Clink v1.9.18 (增强 CMD 体验)
- clink-completions v0.6.8 (Clink 自动补全)
- Starship v1.24.2 (终端提示符)
- fzf 0.71.0 (模糊搜索)
- zoxide 0.9.9 (智能目录跳转)
- fd 10.4.2 (更快的 find)
- bat 0.26.1 (更好的 cat)
- delta 0.19.2 (更好的 diff)
- ripgrep 15.1.0 (更快的 grep)
- eza 0.23.4 (更好的 ls)
- coreutils 0.8.0 (Unix 命令工具集)
-
配置文件映射:
- Alacritty: 创建
%APPDATA%\alacritty\alacritty.toml并引用win/alacritty.toml。 - WezTerm: 复制或链接
common/.wezterm.lua到%USERPROFILE%\.wezterm.lua。 - EZA: 创建目录
%USERPROFILE%\.config\eza。 - Neovim: 复制或链接
common/.config/nvim/init.lua到%LOCALAPPDATA%\nvim\init.lua。 - NeoVide: 复制或链接
common/.config/neovide/config.toml到%APPDATA%\neovide\config.toml。 - OmniSharp: 复制或链接
common/.omnisharp/omnisharp.json到%USERPROFILE%\.omnisharp\omnisharp.json。 - Clink: 配置 Clink 加载
win/clink_scripts中的脚本。
- Alacritty: 创建
脚本会自动安装 Homebrew 包,配置 Oh My Zsh,并链接配置文件。
- 打开终端。
- 克隆此仓库:
git clone https://github.com/jwu/configs.git ~/bin/configs - 运行安装脚本:
cd ~/bin/configs/mac ./install.sh
-
安装 Homebrew (如果尚未安装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
安装软件包:
# 命令行工具 brew install starship zoxide neovim fzf eza fd bat delta yazi gitui glow # GUI 应用 brew install --cask neovide font-fira-mono-nerd-font
-
配置 Shell (Zsh):
- 安装 Oh My Zsh。
- 安装插件
zsh-autosuggestions。 - 参考或直接使用
mac/.zshrc的内容替换~/.zshrc。
-
复制/链接配置文件:
common/.config/nvim/init.lua->~/.config/nvim/init.luacommon/.config/neovide/config.toml->~/.config/neovide/config.tomlcommon/.omnisharp/omnisharp.json->~/.omnisharp/omnisharp.jsoncommon/.gitconfig->~/.config/git/configmac/.config/ghostty/config->~/.config/ghostty/configmac/.config/starship.toml->~/.config/starship.tomlcommon/.config/yazi/->~/.config/yazi/(yazi.toml、theme.toml)common/.config/gitui/theme.ron->~/.config/gitui/theme.roncommon/.config/glow/one-dark.json->~/.config/glow/one-dark.jsonmac/.zshrc->~/.zshrc
mac/config.sh会按顺序完成以上复制,其中 yazi / gitui / glow 只在对应命令已安装时同步,git 配置写入 XDG 路径(~/.config/git/config),不会动~/.gitconfig里已有的身份信息。
如果机器上同时有
configs/desktop-settings/pi-config三个仓库,推荐用顶层入口install-arch:它会 clone/更新三者并逐个执行, 失败不阻断、最后汇总漏装项。下面的流程是它内部实际调用的一步。
当前 linux/install.sh 面向 Arch Linux / pacman 环境,会自动:
- 安装
zsh,starship,zoxide,neovim,fzf,eza,fd,bat,git-delta,terminus-font和otf-firamono-nerd - 安装 Niri、Hyprland、Ghostty、Alacritty、Waybar、Swaylock、Swayidle、Fcitx5/Rime、Noto CJK、Noto Emoji 和
ttf-sarasa-gothic字体 - 设置默认 shell 为
zsh - 安装 Oh My Zsh、
zsh-autosuggestions、Dracula 主题 - 运行
linux/config.sh同步配置文件
使用方式:
cd ~/bin/configs/linux
./install.sh-
安装工具: 使用你的发行版包管理器或参考官方文档安装:
zsh、starship、zoxideneovim、fzf、eza、fd、bat、git-delta- 终端字体(Arch 下自动脚本使用
terminus-font)
-
配置 Shell (Zsh):
- 安装 Oh My Zsh。
- 安装插件
zsh-autosuggestions。 - 参考或直接使用
linux/.zshrc的内容替换~/.zshrc。
-
复制/链接配置文件:
common/.config/nvim/init.lua->~/.config/nvim/init.luacommon/.omnisharp/omnisharp.json->~/.omnisharp/omnisharp.jsonlinux/.config/starship.toml->~/.config/starship.tomllinux/.zshrc->~/.zshrc
-
桌面与输入法配置:
linux/.config/niri/config.kdl->~/.config/niri/config.kdllinux/.config/hypr/hyprland.lua->~/.config/hypr/hyprland.lualinux/.config/ghostty/config.ghostty->~/.config/ghostty/config.ghosttylinux/.config/alacritty/alacritty.toml->~/.config/alacritty/alacritty.toml(对齐 Ghostty 的主题/字体/键位,差异见文件末尾注释)linux/.config/waybar/->~/.config/waybar/(config.jsonc、modules.json、style.css、colors.css,以及scripts/下的 GPU / NVMe 取值脚本)linux/.config/environment.d/fcitx5.conf->~/.config/environment.d/fcitx5.conflinux/.local/share/icons/->~/.local/share/icons/(Fcitx5 托盘图标:hicolor/scalable/apps/下三张 Rime 状态图,加Adwaita/symbolic/devices/input-keyboard-symbolic.svg,见docs/ime-icons.md)- 运行
desktop-settings/fcitx5/install-linux.sh同步 Fcitx5、Rime 和候选窗主题
仓库只保存配置源文件,git pull 之后需要重新同步到用户目录:
cd ~/bin/configs
git pull
# 按平台重新同步(覆盖同名文件,旧文件备份为 *.bak.<时间戳>)
bash mac/config.sh # macOS
bash linux/config.sh # Linux
cmd /c win\config.bat # Windowsinstall.sh / install.bat 除了同步配置还会安装软件包或下载便携工具,日常更新只需要执行上面的 config.sh / config.bat。
Linux 侧 config.sh 还会顺手检查 Waybar 的 cffi/niri-windows 模块:它是我们 fork 的
jwu/waybar-niri-windows 从源码构建的产物,.so.version 与 fork main HEAD 不一致时会自动
重建(需要网络 + Go/gtk3 工具链,几分钟;工具链缺失则只提示)。细节见
docs/waybar.md。
- 安装 nvim
- 安装 neovide
- 先运行一下
- 复制
init.lua到c:\Users\${YOUR_NAME}\AppData\Local\nvim\init.lua - 复制
config.toml到c:\Users\${YOUR_NAME}\AppData\Roaming\neovide\config.toml - 安装 lazy.nvim
- 安装 rg
- 安装
fonts - 编译
nvim-treesitterparsers - 阅读 MSVC session
- 安装 Visual Studio Build Tools
- 打开
x64 Native Tools Command Prompt - 打开
neovide - 输入
:TSUpdate - 等待安装结束
- 安装 nvim
sudo cp -r nvim-linux64/bin/ /usr/sudo cp -r nvim-linux64/lib/ /usr/sudo cp -r nvim-linux64/share/ /usr/- 安装 neovide
sudo cp neovide-linux-x86_64/neovide /usr/bin/- 更新 ubuntu desktop
1.
sudo desktop-file-install neovide.desktop1.sudo update-desktop-database - 复制
init.lua到~/.config/nvim - 复制
config.toml到~/.config/neovide - 安装 lazy.nvim
- 安装 rg
- 安装
fonts - 编译
nvim-treesitterparsers
以下文档记录了原先写在配置注释里的设计与踩坑:
docs/waybar.md— 模块基线与行高约定、配色、cffi/niri-windows、module_path占位符。docs/ghostty.md— quick terminal 的global:绑定为何在 niri 下删掉、bold-is-bright→bold-color的迁移。docs/ghostty-titlebar.md— GTK 标题栏几何、undershoot 线、配色预设。docs/ghostty-gl-version.md— Intel HD 4000 只到 GL 4.2 时,如何用 MESA override 保住硬件渲染、三个注入点与验证命令。docs/gtk4.md— GTK4 全局 CSD 直角微调。docs/bluetooth.md— BlueZ OBEX agent 单槽位、blueman / bluetuith 冲突与诊断命令。docs/xwayland-satellite.md— X11 override-redirect 弹窗的焦点判据、Steam 顶栏菜单闪退、AUR-git包的取舍与拆除条件。docs/ime-icons.md— Fcitx5 托盘图标的同名覆盖规则(含键盘布局那张必须放 Adwaita 目录的原因)、SNIIconName与状态的对应、大小写为何在 Wayland 下失效、重启 waybar 的时机。docs/niri.md— focus-follows-mouse 为何只在跨窗口时触发、warp-mouse-to-focus的三种模式与不生效的场合、光标隐藏的两个开关。
源码注释保持简短,详细推导见以上文档。
- Terminal
- Appearance
- Package Management
- utils (awesome)
- utils (tui)
- utils (network)
- utils (media)
- utils (okay)
- utils (shell)