archlinux 常用配置介绍

  • ~3.32K 字
  1. 1. 管理点文件
  2. 2. Terminal Emulator
  3. 3. Shell
    1. 3.1. 关于 ~/.zshrc
  4. 4. font and icons
    1. 4.1. 自动刷新字体缓存

主要讲解安装完后的 archlinux 如何配置各种点文件。
注意文章时效性(不会一直更新)。

管理点文件

这是一个令人相当头疼的问题,我曾写过一个点文件的管理器,但是相当依赖我自己的配置,而且点文件变化很大,管理起来太费心费力,几乎没怎么用就废弃了那个点文件管理器。
后面发现了 chezmoi 这个工具,它有很多优点,但是,用它来管理各种各样的点文件依旧费心费力。所以,我采取了只是备份的方案,只要 chezmoi 上传我的一台电脑的配置到 github 即可。
多余的什么模板文件统统不需要。在传给其他电脑时,只用复制粘贴即可。虽然这个方法看上去简陋,但我认为相比于所谓的“智能化”管理都要方便。而且,因为刚开始使用 archlinux 的时候经常重装,所有配置尽量使用一些默认的方案。

Terminal Emulator

一些可选项:

  • konsole
  • wezterm
  • ghostty
  • kitty
  • alacritty
  • warp

选择终端一般考虑:启动速度、跨平台、自定义扩展、分屏/标签页、字体/emoji支持、是否可以渲染图像(可能会考虑吧)

根据 gpt 生成的一张对比表格(不保证准确):

终端 渲染方式 启动速度 分屏/标签页 跨平台 字体/Emoji/Ligature 图像渲染 配置方式 适用场景
Konsole CPU渲染 标签页、分屏 Linux/KDE专用 基本支持 GUI + 配置文件 KDE 桌面集成、日常开发
Kitty GPU加速 内置分屏、标签页 Linux/Windows/macOS 支持 ligature & emoji 文本配置文件(热重载) 日常开发、高性能需求
WezTerm GPU加速 分屏、标签页 跨平台 支持 ligature & emoji Lua 配置文件 跨平台开发、高性能
Alacritty GPU加速 很快 无(需 tmux 配合) 跨平台 支持 ligature & emoji YAML 配置文件 高性能开发、轻量终端
Ghostty 浏览器渲染 取决前端 跨平台 依赖浏览器 部分 服务端 + 配置 远程管理、Web终端
Warp GPU加速 很快 标签页、分屏 Linux/macOS/Windows Beta 支持 ligature & emoji GUI + 插件扩展 团队协作、开发者友好

我目前主要在使用 kitty(由于kitty可以分标签页,基本替代了tmux和zellij这类分屏器,所以后者我目前很少使用)

主题使用 catppuccin,有官方给的现成的配置文件,开箱即用

一个使用配置文件的命令例子:

1
2
3
mkdir -p ~/.config/kitty
cd ~/.config/kitty
curl -L -o kitty.conf https://raw.githubusercontent.com/catppuccin/kitty/refs/heads/main/themes/macchiato.conf

Shell

一些可选项:

  • bash
  • zsh
  • fish
  • dash
    其他的没怎么用过,fish 由于有些参数不太支持,archlinux 上退回了 zsh。又因为 macos 默认使用 zsh,现在感觉还是 zsh 最好,配置也比较通用。

关于 ~/.zshrc

一些奇奇怪怪的关于 zsh 自身的配置几乎不用,主要还是需要使用各种各样的命令和配置环境变量。

从实用性来说,我最常用的一个是 alias,一个是 export,比如:

1
2
3
4
5
alias -g copy="| col -b | pbcopy"
alias l="eza -la"
alias cat="bat"
alias acti="source /opt/miniconda3/bin/activate"
alias zshc="chezmoi edit ~/.zshrc --apply && source ~/.zshrc"
1
2
3
4
5
6
7
8
9
10
export VERILATOR_ROOT="/usr/local/bin"
export SHIM="$HOME/.pyenv/shims"
export VCPKG_ROOT="$HOME/app/vcpkg"
export HEXO="$HOME/app/hexo/node_modules/.bin"
export LOCAL="$HOME/.local/bin"
export PATH="$PATH:$VERILATOR_ROOT:$SHIM:$VCPKG_ROOT:$HEXO:$LOCAL"

# or
export PATH="$HOME/.config/kitty:$PATH"
export PATH="$HOME/.local/bin:$PATH"

强烈推荐 autojump

在配置文件中加入:

1
[[ -s /usr/share/autojump/autojump.zsh ]] && source /usr/share/autojump/autojump.zsh

另外如果需要写入大一点的函数,我会新建一个 scripts 目录,里面存放各种脚本,然后在 ~/.zshrc 中使用 source 激活。

从美化角度考虑,使用 starship 的 tokyo-night 主题

1
2
paru -S starship
starship preset tokyo-night -o ~/.config/starship.toml

~/.zshrc 最后添加:

1
eval "$(starship init zsh)"

还可以把 x-cmd 当成拓展来使用:

1
[ ! -f "$HOME/.x-cmd.root/X"] || . "$HOME/.x-cmd.root/X"

花里胡哨的,但用来了解还有哪些终端命令有点用

font and icons

  • ttf-nerd-fonts-symbols
  • ttf-nerd-fonts-symbols-common
  • maple mono

自动刷新字体缓存

手动刷新需要执行命令:

1
fc-cache -fv

可以在 /etc/pacman.d/hooks 目录下创建 hook 文件,每次安装字体文件后自动刷新(GPT生成):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = ttf-*
Target = otf-*
Target = adobe-*
Target = noto-*
Target = fontconfig
Target = wqy-*
Target = liberation-*
Target = cantarell-*
Target = dejavu-*
Target = ubuntu-fonts
Target = microsoft-*
Target = nerd-fonts-*

[Action]
Description = Refreshing font cache after font installation or upgrade...
When = PostTransaction
Exec = /usr/bin/fc-cache -fv