NakanoMiku39
Articles17
Tags31
Categories3

Categories

Archive

some_configs配置仓库整理

some_configs配置仓库整理

这篇文章整理一下我的 some_configs 配置仓库。仓库里的配置按 GNU Stow 的方式组织,每个顶层目录基本就是一个可以链接到 $HOME 的配置包。本文只说明仓库里各组件的职责、配置路径和基本安装方式,实际启用哪些组件取决于使用的系统、桌面会话和个人工作流;下面的分类不是安装顺序,也不是偏好排序。

AIGC:这篇文章由AI生成

同类组件不要重复启用

这个仓库不是一套“全部装上就完事”的配置,而是把不同桌面环境、不同启动器、不同通知组件和不同 shell 提示符都放在一起保存。同一功能的多个组件通常不在同一个会话里同时启用,否则可能出现重复进程、快捷键冲突或多个界面同时接管同一类功能。

功能 仓库中对应的软件
Wayland 窗口管理 niri
X11 窗口管理 i3wm
macOS 窗口管理 aerospace
状态栏 waybari3blocksi3statuspolybar
启动器 walkerfuzzelrofi
通知 swayncmako
锁屏 swaylocki3lock 脚本
shell 提示符 powerlevel10kstarship
壁纸 swaybg 启动项、swaybg.service

仓库安装和 Stow 管理

仓库地址:

https://github.com/NakanoMiku39/some_configs

以下安装命令以 Fedora/dnf 为例。其他发行版或系统需要替换为对应的软件包管理器和包名。

先安装 Git 和 GNU Stow:

1
sudo dnf install git stow

克隆仓库:

1
2
3
mkdir -p ~/codes
git clone https://github.com/NakanoMiku39/some_configs.git ~/codes/some_configs
cd ~/codes/some_configs

这个仓库的组织方式是:顶层目录是 Stow package,目录内部路径相对 $HOME。例如:

Stow 包 链接后的目标
niri/.config/niri/config.kdl ~/.config/niri/config.kdl
waybar/.config/waybar/config.jsonc ~/.config/waybar/config.jsonc
zsh/.zshrc ~/.zshrc
tmux/.config/tmux/tmux.conf ~/.config/tmux/tmux.conf

正式写入前可以先预览。下面的包名只是示例,实际使用时按需要替换为对应的顶层目录:

1
stow -nv -t "$HOME" niri waybar walker swaync swaylock alacritty zsh tmux git gtk

确认没有冲突后再应用:

1
stow -v -t "$HOME" niri waybar walker swaync swaylock alacritty zsh tmux git gtk

如果 $HOME 里已经有同名文件,需要先备份或移动,再重新运行预览命令。撤销链接可以用:

1
stow -Dv -t "$HOME" niri waybar walker swaync swaylock alacritty zsh tmux git gtk

Wayland 桌面

Niri

Niri 配置在 niri/.config/niri/config.kdl

Fedora/dnf 示例:

1
sudo dnf install niri waybar alacritty swaylock swayidle swaybg fcitx5 brightnessctl wl-clipboard grim slurp pavucontrol

这份 Niri 配置的截图标注快捷键会调用 $HOME/.cargo/bin/satty。如果需要这项功能,可以通过 Cargo 安装:

1
cargo install satty

这份 Niri 配置包含:

  • 输入:键盘布局使用 us,触摸板启用 tap 和 natural scroll。
  • 布局:窗口间距为 6,初始列宽是屏幕宽度的一半,焦点环使用蓝色。
  • 自启动:启动 waybarswayncelephantwalker --gapplication-servicefcitx5swayidle,并用 swaybg 设置壁纸。
  • 快捷键:Mod+T 打开 Alacritty,Mod+D 打开 Walker,Super+Alt+L 锁屏,Mod+N 打开通知中心,Mod+Shift+S 区域截图并进入 Satty 标注。
  • 窗口规则:Alacritty 透明度为 0.9,窗口圆角为 8,并启用 prefer-no-csd

使用这份配置时有两个依赖关系需要检查:

第一,配置里会启动 elephant。如果系统里没有这个组件,或者不使用它,可以把这一行注释掉:

1
spawn-at-startup "elephant"

第二,Niri 里已经有:

1
spawn-sh-at-startup "swaybg -i ~/Pictures/wallpaper.png -m fill"

这和 systemd/.config/systemd/user/swaybg.service 都会启动 swaybg。同一个会话里保留其中一种启动方式即可,否则会重复启动壁纸进程。

状态栏

Waybar

Waybar 配置文件在 waybar/.config/waybar/config.jsonc,样式在 waybar/.config/waybar/style.css,电源菜单在 waybar/.config/waybar/power-menu.xml

Fedora/dnf 示例:

1
sudo dnf install waybar pavucontrol

这份 Waybar 配置是顶部栏,模块包括:

  • 左侧:电源菜单和托盘。
  • 中间:时钟,时区是 Asia/Shanghai
  • 右侧:通知数量、网络、蓝牙、音量、电池。
  • 电源菜单:调用 swaylockniri msg action quitsystemctl suspend/reboot/poweroff
  • 通知模块:通过 swaync-client 获取通知数量,左键打开通知中心,右键切换勿扰。

Waybar 依赖 Nerd Font 图标显示,字体配置是 FiraCode Nerd Font。如果图标显示成方块,需要检查字体是否安装。

启动器

Walker

Walker 配置在 walker/.config/walker/config.toml,主题样式在 walker/.config/walker/themes/niri/style.css。这份 Niri 配置把 Mod+D 绑定为启动 Walker。

Walker 配置里启用了应用启动、计算器、网页搜索等 provider,并设置了一些前缀:

前缀 功能
> 运行命令
= 计算器
@ 网页搜索
$ 窗口切换
bt: 蓝牙设备

安装 Walker 的方式随发行版而定。软件源里没有对应包时,可以使用项目提供的发行版包或自行构建。装好后用 Stow 链接:

1
stow -v -t "$HOME" walker

Fuzzel

仓库里也保留了 Fuzzel 配置:fuzzel/.config/fuzzel/fuzzel.ini

这份 Fuzzel 配置包括:

  • 使用 FiraCode Nerd Font:size=13
  • 默认终端为 alacritty -e
  • match-mode=fzf
  • 居中显示,12 行结果,启用图标。

Fedora/dnf 示例:

1
sudo dnf install fuzzel

如果把 Niri 启动器切换为 Fuzzel,需要把相关快捷键改成:

1
Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }

Walker、Fuzzel 和 Rofi 都能承担应用启动器功能。同一个会话里通常只绑定一个启动器入口,否则会出现多个快捷键或菜单入口指向同类功能。

通知

SwayNC

SwayNC 配置在 swaync/.config/swaync/config.json,样式在 swaync/.config/swaync/style.css

Fedora/dnf 示例:

1
sudo dnf install swaynotificationcenter

这份 SwayNC 配置包含:

  • 右上角通知弹窗。
  • 右上角控制中心,宽度 420,高度 720
  • 勿扰开关。
  • MPRIS 媒体控制。
  • 音量控制,支持显示每个应用的音频流。
  • 按钮网格:隐藏通知、锁屏、睡眠。

这份 Waybar 的通知模块会调用 swaync-client。如果通知组件换成其他实现,需要同步调整 Waybar 的通知模块命令。

Mako

仓库里还保留了 Mako 配置:mako/.config/mako/config

Fedora/dnf 示例:

1
sudo dnf install mako

Mako 配置里设置了右上角位置、圆角、边框、图标、历史数量、低优先级和严重通知的不同颜色。

swayncmako 都是通知守护进程。同一个会话里同时启动二者会让通知行为变得不明确。如果从 SwayNC 切换到 Mako,需要把 Niri 自启动里的 swaync 改为 mako,并同步调整 Waybar 里调用 swaync-client 的通知模块。

锁屏和空闲管理

Swaylock

Wayland 锁屏使用 Swaylock,配置在 swaylock/.config/swaylock/config

Fedora/dnf 示例:

1
sudo dnf install swaylock swayidle

Swaylock 配置里使用 ~/Pictures/wallpaper.png 作为锁屏背景,启用圆形输入指示器、Caps Lock 提示、失败次数显示,并使用和 Waybar/Alacritty 接近的一组颜色。

Swayidle

Niri 里通过 swayidle 做自动锁屏和关屏:

1
2
3
4
spawn-at-startup "swayidle" "-w" \
"timeout" "300" "swaylock -f" \
"timeout" "600" "niri msg action power-off-monitors" \
"resume" "niri msg action power-on-monitors"

这表示 300 秒锁屏,600 秒关闭显示器,恢复输入时重新点亮显示器。

i3lock 脚本

X11/i3 锁屏脚本保存在 scripts/.config/scripts/lock。它调用的是 i3lock,对应 X11 锁屏链路;Wayland 会话通常使用 swaylock 这类 Wayland 锁屏工具。

终端、Shell 和复用工作区

Alacritty

Alacritty 配置在 alacritty/.config/alacritty/alacritty.toml

Fedora/dnf 示例:

1
sudo dnf install alacritty

这份配置设置了:

  • TERM=xterm-256color
  • 窗口透明度 0.92
  • padding 为 14
  • 选择文本自动保存到剪贴板。
  • 光标为闪烁方块。
  • 字体为 FiraCode Nerd Font
  • 颜色和 Waybar/Swaylock 保持一致。

Zsh + Oh My Zsh + Powerlevel10k

Zsh 配置在 zsh/.zshrc,Powerlevel10k 配置在 zsh/.p10k.zsh

Fedora/dnf 示例:

1
sudo dnf install zsh zoxide eza

安装 Oh My Zsh、Powerlevel10k 和两个插件:

1
2
3
4
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel10k
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

仓库里的 .zshrc 启用了:

  • Powerlevel10k instant prompt。
  • gitzsh-autosuggestionszsh-syntax-highlighting 插件。
  • zoxide 智能跳转。
  • eza 替代 lslllalt
  • $HOME/.cargo/bin$HOME/.local/bin PATH。

切换默认 shell 的命令是:

1
chsh -s "$(which zsh)"

Starship

Starship 配置在 starship/.config/starship.toml

Fedora/dnf 示例:

1
sudo dnf install starship

这份 Starship 配置使用 Catppuccin Mocha 调色板,会显示 OS、用户名、目录、Git 状态、语言版本、命令耗时和右侧时间。

仓库里的 .zshrc 加载的是 Powerlevel10k,没有启用 Starship。如果改用 Starship,需要在 .zshrc 里加入:

1
eval "$(starship init zsh)"

Powerlevel10k 和 Starship 都会接管 prompt,同一个 shell 配置里只应保留一套 prompt 初始化逻辑。

Tmux

Tmux 配置在 tmux/.config/tmux/tmux.conf,仓库里还保留了兼容老路径的 tmux/.tmux.conf

Fedora/dnf 示例:

1
sudo dnf install tmux

这份配置把 prefix 改成 C-g,启用鼠标、vi 模式、从当前路径打开新 pane/window,并给状态栏设置了和终端一致的深色主题。

编辑器和开发工具

Emacs

Emacs 配置在 emacs/.emacs.d/init.el,拆分配置在 emacs/.emacs.d/lisp。之前已经单独写过一篇 Emacs实用插件分享,这篇只做简单归档。

Fedora/dnf 示例:

1
sudo dnf install emacs ripgrep fd-find

仓库里的 Emacs 配置包括:

  • straight.el + use-package 管理插件。
  • 启动阶段调高 GC 阈值,并启用 gcmh
  • yaml-modejson-modemarkdown-modeorg-mode
  • verticoorderlessmarginalia 做补全。
  • consultembarkdeadgrep 做搜索和动作菜单。
  • dirvish 增强 Dired。
  • avyace-window 做快速跳转和窗口切换。
  • magitgit-gutterdiff-hl 做 Git 集成。
  • rainbow-delimitershighlight-indent-guideshl-todo 等视觉增强。

需要注意的是,emacs 包会链接常规 ~/.emacs.d。仓库里也保留了旧的 emacs/.spacemacs,但它和 ~/.emacs.d 是两套不同的 Emacs 配置入口,同一个用户目录里通常只保留一套生效配置。

Vim

Vim 配置在 vim/.vimrc

Fedora/dnf 示例:

1
sudo dnf install vim

这份 Vim 配置比较基础,包括 UTF-8 编码、行号、相对行号、括号匹配、自动缩进、搜索高亮、当前行高亮、简单括号补全等。

最后设置了:

1
2
colorscheme molokai
let g:airline_theme='molokai'

如果没有安装 Molokai 或 vim-airline,启动 Vim 时可能会报主题不存在。处理方式是安装对应插件,或者注释掉这两行。

Git

Git 配置在 git/.gitconfig

这个文件目前只设置了用户名和邮箱。如果别人复用这套配置,应该先改成自己的身份信息,再用 Stow 链接:

1
2
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

仓库本身还带了 secret 检查脚本:.githooks/check-secretsGitHub Actions 配置。本地启用 Git hooks:

1
git config core.hooksPath .githooks

X11/i3

i3wm

i3 相关配置主要用于 X11 环境。完整 i3 配置在 i3wm/.config/i3wm/config

Fedora/dnf 示例:

1
sudo dnf install i3 i3status i3blocks rofi picom feh playerctl dex xss-lock nm-connection-editor

如果使用 i3lock-color,包名可能随发行版不同而不同,需要按自己的软件源安装。

i3 配置里包含:

  • $modMod4
  • rofi -show run 作为启动器。
  • xss-lock 调用 ~/.config/scripts/lock
  • nm-applet 网络托盘。
  • 多媒体键通过 pactlplayerctl 控制。
  • feh 设置壁纸。
  • picom -f 做 X11 合成。
  • polybar -q 作为状态栏。

i3blocks

i3blocks 状态栏配置在 i3blocks/.config/i3blocks/i3blocks.conf

这份配置包含电池、磁盘和时间模块。如果要使用它,需要把 i3 配置里的 bar status command 指向:

1
i3blocks -c ~/.config/i3blocks/i3blocks.conf

i3status

i3status 状态栏配置在 i3status/.config/i3status/i3status.conf

它会显示无线网络、有线网络、电池、磁盘、内存和本地时间。i3blocks 和 i3status 都是 i3 状态栏方案,实际使用时选一个即可。

Rofi

i3 配置里使用 rofi -show run 作为启动器。仓库没有单独保存 Rofi 配置,只是在 i3wm/.config/i3wm/config 里绑定了启动命令。

Rofi 和 Walker、Fuzzel 都是启动器。在哪个会话里使用哪个启动器,取决于对应窗口管理器配置和快捷键绑定。

Picom

Picom 配置在 picom/.config/picom/picom.conf

picom 是 X11 合成器。Wayland/Niri 会话不使用 X11 合成器。

Polybar

i3 配置里有:

1
exec_always polybar -q

仓库里没有单独的 Polybar 配置文件。如果系统没有安装或不使用 Polybar,需要把这一行注释掉。i3blocks、i3status 和 Polybar 都会提供状态栏或状态信息入口,同一会话里同时启动多个状态栏会产生多个栏。

i3lock 脚本

i3lock 锁屏脚本在 scripts/.config/scripts/lock

它用于 X11/i3 环境,功能上和 Wayland 下的 Swaylock 重叠。不同会话需要使用对应协议和锁屏工具。

macOS

AeroSpace

AeroSpace 配置在 aerospace/.config/aerospace/aerospace.toml

这是 macOS 上的平铺窗口管理配置,和 Linux 下的 Niri/i3 属于不同系统环境。安装 AeroSpace 后,可以把配置链接到用户目录。

如果使用 Homebrew,可以按 AeroSpace 官方文档安装对应 cask,然后运行:

1
stow -v -t "$HOME" aerospace

这份配置里:

  • start-at-login = true
  • 默认布局是 tiles
  • gap 为 10
  • alt-enter 打开 Alacritty。
  • alt-c 打开 Clash Verge。
  • alt-s 打开 Safari。
  • alt-1alt-9 切换 workspace。
  • alt-shift-1alt-shift-9 移动窗口到 workspace。
  • alt-f 全屏,alt-q 关闭窗口。

GTK 小配置

GTK 3.0

GTK 配置在 gtk/.config/gtk-3.0/settings.ini

内容很简单,就是把 GTK tooltip 延迟设为 0

1
2
3
gtk-tooltip-timeout=0
gtk-tooltip-browse-timeout=0
gtk-tooltip-browse-mode-timeout=0

这个配置主要是为了让 Waybar 和其他 GTK3 界面的提示响应更快,不是必须项。

安装组合示例

下面是按功能组合列出的 Fedora/dnf 示例,不表示优先级。实际安装时需要按系统、桌面会话和需要启用的组件增删包名。

Niri/Wayland 相关组件示例:

1
sudo dnf install git stow niri waybar alacritty swaylock swayidle swaybg fcitx5 brightnessctl wl-clipboard grim slurp pavucontrol zsh zoxide eza tmux emacs vim

然后链接:

1
2
3
cd ~/codes/some_configs
stow -nv -t "$HOME" niri waybar walker swaync swaylock alacritty zsh tmux emacs vim git gtk
stow -v -t "$HOME" niri waybar walker swaync swaylock alacritty zsh tmux emacs vim git gtk

如果不链接 Emacs/Vim,可以从 Stow 命令里去掉 emacs vim。如果不链接 Git 全局身份配置,也可以去掉 git,避免把固定用户名邮箱链接到当前用户。

i3/X11 相关组件示例:

1
2
sudo dnf install git stow i3 i3status i3blocks rofi picom feh playerctl dex xss-lock alacritty zsh tmux
stow -v -t "$HOME" i3wm i3blocks i3status picom scripts alacritty zsh tmux

最后再强调一次:这个仓库是配置集合,不是每个目录都要安装。实际使用时应按系统、桌面会话和组件职责选择 Stow 包,尤其是启动器、通知守护进程、状态栏、锁屏和 shell prompt 这些功能重复的部分。

Author:NakanoMiku39
Link:http://nakanomiku39.github.io/2026/07/08/some-configs%E9%85%8D%E7%BD%AE%E4%BB%93%E5%BA%93%E6%95%B4%E7%90%86/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可