Arch Linux 与 Windows 10 的双系统安装与折腾

手贱小白还愿意折腾. 自从上次重装系统之后, Ubuntu 总时不时地卡顿, 一气之下试了好几个发行版, 如 manjaro, deepin (我是没想到 deepin 的卡顿竟然是永久性的, 也许是我空间分配不合理吧), debian (这个体验还蛮好的), 最终一狠心, 要折腾不如折腾大的, 直接 Arch Linux 走起.

从介绍来看 Arch Linux 最吸引我的有两点, 一个是 AUR 仓库, 另一个是 Arch Wiki, 前者提供了海量用户打包好的软件, 后者提供了海量的说明文档.

以下内容如没有特殊说明, 均在普通用户下操作, 即终端起始为 $ 时, 同时也是在 Arch Linux + KDE Plasma 桌面下的配置, 其余发行版或桌面需要自行调整设置

双系统安装

第二次安装我看了另一个教程, 它没有让 Arch 和 Windows 共用一个 EFI, 所以也不会干扰到正常的 Windows 启动. 或者说……这就不是一个双系统的安装教程.

双系统安装可以看这篇知乎, 动手能力强的建议直接看 Arch Wiki, 我选择的桌面环境是 KDE Plasma, 默认环境下就很好看

KDE Plasma

安装后在系统设置中将语言与地区改为中文, 在改 Region 的时候注意是 zh-CN, 不要改成蒙古语 mn_CN.

软件的安装与配置

安装重要组件 yay

添加 archlinuxcn

国内的 Arch 组织也打包了一些软件, 我们将archlinuxcn 的源也添加到 pacman 的源列表

1
kate /etc/pacman.conf

在最下方添加

1
2
[archlinuxcn]
Server = https://repo.archlinuxcn.org/$arch

用管理员权限保存后, 在终端运行

1
sudo pacman -Sy && sudo pacman -S archlinuxcn-keyring

来刷新仓库以及获取 PGP 钥匙串

安装 yay
1
sudo pacman -S yay

简单说一下 yay: Arch Linux 除了官方的软件库以外, 还提供了一个允许用户上传软件包的仓库, AUR 仓库, 你可以在上面找到几乎任何你想要安装的软件, 甚至基于 deepin-wine 的 qq 和微信(这个在我的计算机上出现了问题, QQ 的问题见该issue, 微信的问题为严重卡顿), Arch Linux 官方的包管理软件为 pacman, AUR 仓库的管理软件则为 yay.

当然, 也可以选择去 AUR 仓库 中将 yay 克隆到本地并使用 makepkg -si 进行安装.

我的常用软件

一些软件可以在 Arch Wiki 上找到它们的不同版本的对比信息, 一些软件的详细配置会在后文详述

官方仓库

sudo pacman -S <软件包> 安装, 这里序号后的名称就是包名, 下同

  1. firefox, Mozilla 出品的火狐浏览器, 使用体验不错

  2. flameshot, 火焰截图, 一款截图/贴图软件, 使用方便, 如何设置全局快捷键可以看 README, 英文看不懂的可以看这个博客

  3. fcitx, 小企鹅输入框架, 这里我选了 v4 版本的, 没有用 fcitx5, 我换成 fcitx5-im 了, 同理下面的变成 fcitx5-rime

  4. fcitx-rime, 中州韵输入法, 我常用的小鹤音形可以在该输入法上实现, 具体的其他输入方式可以看 Fcitx (简体中文)

  5. fcitx-qt5, kcm-fcitx, fcitx-configtool, 分别为fcitx 提供对 Qt 提供的输入法模块, fcitx 的图形配置界面, fcitx 的配置工具

  6. zsh, Z-Shell 终端, 有 oh-my-zsh 的配合, 配置起来相对容易

  7. screenfetch, 在终端通过 screenfetch 命令来显示发行版的 logo 与信息, 该软件的 3.9.1 版本输出时会报 warning:

    1
    /usr/bin/screenfetch:行1802: 7020826624-:语法错误: 需要操作数 (错误符号是 "-")

  8. neofetch, 与 screenfetch 相同的功能.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
➜ neofetch
-` syvshc@archlinux
.o+` ----------------
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: Inspiron 5577 1.1.3
`+oooooo: Kernel: 5.13.13-arch1-1
-+oooooo+: Uptime: 4 hours, 1 min
`/:-:++oooo+: Packages: 1493 (pacman)
`/++++/+++++++: Shell: zsh 5.8
`/++++++++++++++: Resolution: 1920x1080, 1920x1080
`/+++ooooooooooooo/` DE: Plasma 5.22.5
./ooosssso++osssssso+` WM: KWin
.oossssso-````/ossssss+` Theme: Breeze Light [Plasma], Breeze [GTK2/3]
-osssssso. :ssssssso. Icons: Papirus-Nordic [Plasma], Papirus-Nordic [GTK2/3]
:osssssss/ osssso+++. Terminal: konsole
/ossssssss/ +ssssooo/- CPU: Intel i5-7300HQ (4) @ 3.500GHz
`/ossssso+/:- -:/+osssso+- GPU: Intel HD Graphics 630
`+sso+:-` `.-/+oso: GPU: NVIDIA GeForce GTX 1050 Mobile
`++:. `-/+/ Memory: 8548MiB / 15775MiB
.` `/
  1. steam, 需要在 /etc/pacman.conf 中开启 multilib 仓库, 并且需要安装一些图形驱动, 详见 steam 的 Wiki, 如果开启 steam 后商店等界面均为黑屏幕, 不显示内容, 可以将 steam 的通道改为 beta channel, 具体问题见关于 steam 黑屏的讨论. 在安装 steam 的过程中发现了一个可选的依赖项

    1
    2
    steam 的可选依赖
    steam-native-runtime: steam native runtime support

将其 pacman 安装后 steam 启动很丝滑, 虽然不知道为什么, 好用就行吧

  1. obs-studio, 老牌屏幕录制软件

  2. vim, 文本编辑器, 正在学习

  3. man-pages-zh_cn, 中文帮助手册, 在终端用 man <命令> 来呼出

  4. peek, 好用的 gif 录制软件

  5. latte-dock, KDE 下的 Dock 软件, 挺好看的, 可以按照这个博客来配置一下. 这是我配置好的, 并不完全按照刚才的博客

my desktop
  1. telegram-desktop, 即时通讯软件 Telegram, 可能需要魔法
  2. screenkey, 可以在屏幕上显示按键, 配合录屏软件表现不错
AUR 仓库

yay -S <软件包> 安装,

  1. microsoft-edge-dev-bin, 微软的新 edge, 由于我的插件与书签等都备份在了 Windows 的 edge 上, 这里我首选 edge, 如果没有这些包袱, 新的 FireFox 也是很好的选择. 注意!95.0.0997.1 及以后的版本疑似与更新的 systemd 不兼容, 会无法启动, 见 techcommunity, 请在"查看更改"处选择 94.0.982.2 版本 进行下载并本地安装, 且在 yay -Syu 时忽略 microsoft-edge-dev-bin 的更新! 95.0.1020.0-1 版本已经修复问题, 可以正常使用.

  2. visual-studio-code-bin, 这里我选择了微软官方专用软件版本, 为了设置同步. 安装后可以直接在终端使用 code <文件夹/文件> 打开文件夹/文件

  3. telegram-desktop-bin 该软件已经被官方仓库收编, 原来它一直都在官方仓库里. 即时通讯软件 Telegram, 虽然我把它贴在这了, 但是由于无法下载部分组件, 我还是去了 Telegram 的官网下载了 AppImage

  4. oh-my-zsh-git, 对于 zsh 的美化, 提供了一些易用的接口, 通过 yay 安装后需要手动将 oh-my-zsh 中的 zshrc 文件复制出来:

    1
    cp /usr/share/oh-my-zsh/zshrc ~/.zshrc

  5. listen1-desktop-appimage, Listen1, 集成了网易云音乐, QQ 音乐, 咪咕音乐的开源播放器, QQ 音乐也有自己的包

  6. deepin-wine-qq, 用 deepin-wine 实现的 windows qq, 这里只是列出, 我并没有使用

  7. deepin-wine-wechat, 用 deepin-wine 实现的 windows wechat, 我同样没有使用 我还是用了, 这次很流畅……有玄学内味了. 由于源内的 deepin-udis86 没有更新, 所以安装 deepin-wine-wechat 前要注意先自己安装 deepin-udis86, 在 Github 上有打包好的 repo.

  8. sunloginclient, 向日葵, 远程控制软件, 注意安装后的提示

    1
    2
    3
    4
    *************************************************************************
    * sunlogin daemon service must be running for sunloginclient to work *
    * Type: systemctl start runsunloginclient.service *
    *************************************************************************

    需要在终端运行

    1
    systemctl start runsunloginclient.service  

    开启向日葵的服务才能运行软件.

  9. 7-zip, 老牌解压软件, 好用

  10. ttf-ms-win10, Windows10 的字体, 由于版权问题, 需要额外处理,详见安装 Windows10 字体

  11. wemeet-bin, 腾讯会议 Linux 版, 新鲜的

  12. picgo-appimage, 本地图床软件, 配置见其配置手册1

  13. wudao-dict-git, 无道词典, 项目地址在 Github, 可以通过终端 wd <单词> 来查询单词.

  14. v2raya, 持续维护的代理软件, 这里是 Github repoWiki

手动安装
  1. TeX Live 2021, 安装可以参考啸行的 install-latex-guide-zh-cn 中的 Ubuntu 20.04 部分进行安装. 由于系统不同, 可以不在 visudo 中添加可信路径, 直接使用 sudo tlmgr 即可, 当然, Arch 官方仓库也打包了 TeX Live. 使用文档见 Arch Wiki, 但是我没用明白, 又给卸了

注意: 安装 TeX Live 后运行 biber 可能会出现

1
biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory

的错误, 需要

1
yay -S libxcrypt-compat

参见 stackoverflow

代理

我这里代理使用的是 qv2ray(可惜开发者由于矛盾放弃了这个项目, 正在寻找持续维护的替代品) + v2core, 由于某些原因, 直接看链接吧.

如果连接时出现类似

1
[Warning] failed to handler mux client connection > v2ray.com/core/proxy/vmess/outbound: connection ends > v2ray.com/core/proxy/vmess/outbound: failed to read header > v2ray.com/core/proxy/vmess/encoding: failed to read response header > websocket: close 1000 (normal)

的错误, 首先校对一下系统时间, 再进行连接.

软件配置

这里会给出一些软件的配置, 使用的插件等等.

baloo

这是 KDE 桌面自带的索引程序, 会检测文件的内容提供更精确的搜索服务, 但是屁用没有, 在建立索引的时候还会占用大量的 CPU 资源, Arch 社区的仙子建议直接把它干掉

chat

系统时间

由于 Windows 和 Linux 对于硬件时间的处理不同, 会出现切换到另一个系统时系统时间不对的情况. 可以参考少数派的文章, 我修改的是 Linux 的时间.

microsoft-edge

我使用的插件有

vscode

我主要使用 vscode 写 LaTeX, 这里并没有其他的配置信息.

  1. 我使用的插件有

    • C/C++
    • Chinese (Simplified) Language Pack for Visual Studio Code: 中文语言包
    • Git History: 查看 git 历史的插件, 现在貌似有 vscode 官方的管理器了
    • Jupyter: vscode 中使用 jupyter notebook
    • LaTeX Workshop: LaTeX 用户必备插件
    • Local History: 本地保存的时候会生成一个副本, 可以回滚版本, 一般用不上, 用上了就救命
    • Markdown All in One: markdown 高亮等支持
    • Markdown Preview Enhanced: 更强的 md 渲染器
    • Material Icon Theme: 好看的图标包
    • One Dark Pro: 好看的主题
    • Pylance & Python: Python 用户插件
    • QQ: vscode 中使用 QQ
    • Terminal Here: 直接使 Terminal 定位在所打开的文件夹上
    • Cloudmusic: vscode 中使用网易云音乐
  2. 这里是我的 settings.json, latex.jsonkeybindings.json 的内容, 点击链接即可查看/下载, 其中有针对 Windows 用户以及 KDE/Okular 用户的 LaTeX 正反向搜索的内容2.

  3. 如果登录账户的时候出现将登陆信息写入钥匙串失败的错误信息, 在终端运行

    1
    yay -S qtkeychain gnome-keyring

    再重新在 vscode 中登录即可

Okular
  • 如果无法显示中文, 在终端运行

    1
    sudo pacman -S  poppler-data

    并重启 okular 即可.

  • 使用 vscode 与 okular 进行 LaTeX 的正反向搜索, 在上述 settings.json 正确写入的基础上, 在 okular->设置->配置 Okular->编辑器 中, 选择自定义文本编辑器, 命令部分填写

    1
    code -r -g %f:%l

    okular 应用后, 在默认设置下, 在 vscode 中的 .tex 文件中同时按 Ctrl+Alt+j 会唤起 okular 到对应的位置, 在 okular 中激活"手型工具"的基础上, 按住 Shift, 同时鼠标左键点击 PDF 中的内容, 即可唤起 vscode 跳转到对应的源代码位置3.

zsh & oh-my-zsh
  1. 我使用的插件:

    • git: oh-my-zsh 自带插件, 直接填入 plugin 即可使用, 提供了一些 git 的 alias

    • z: oh-my-zsh 自带插件, 会记录曾经 cd 过的路径, 通过 z <不完整路径> 即可实现跳转, 如

      1
      2
      cd ~/git/syvshc.github.io
      z github

      即可直接进入 ~/git/syvshc.github.io 文件夹.

    • sudo: oh-my-zsh 自带插件, 敲两下 ESC 键即可为命令添加 sudo

    • zsh-syntax-highlighting, 命令高亮, 默认设置下绿色为正确, 红色为错误

    • zsh-autosuggestions, 会记录用户输入过的命令, 并将其显示为灰色, 按 -> 即可补全.

  2. 安装插件

    1. 可以通过直接 git clone 到用户目录的方式进行安装, 以 zsh-autosuggestions 插件为例

      1
      git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

    2. 可以先 clone 到本地目录

      1
      git clone git@github.com:zsh-users/zsh-autosuggestions.git ~/.zsh/zsh-autosuggestions

      再将下面一行添加到 ~/.zshrc

      1
      source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh

      重启终端即可, 注意: 如果使用这种方法, 则不需要在 plugins 中进行添加, 事实是就算添加了它也提示找不到插件.

    3. 通过 AUR 仓库与符号链接安装

      1
      yay -S zsh-autosuggestions

      安装后在 zsh 的目录下建立符号链接

      1
      sudo ln -s /usr/share/zsh/plugins/zsh-autosuggestions /usr/share/oh-my-zsh/custom/plugins/

      这样做的好处是 yay -Syu 更新软件的时候插件同样会被更新, 而不用手动再去 git pull

    安装完成后需要在 ~/.zshrc 中修改 plugins 词条, 比如

    1
    plugins=(git z sudo zsh-autosuggestions)

    然后保存, 终端运行 source ~/.zshrc 使配置生效

  3. 安装皮肤

    1. 官方提供了一些皮肤, 可以在 oh-my-zsh 的 Wiki 上查看,
    2. 用户皮肤. 一些皮肤没有进入到官方的皮肤库, 需要自行安装, 官方也整理了一些民间皮肤, 在 External themes 中, 每个皮肤都配备了对应的安装说明, 按照其说明安装即可

找到/安装完合适的皮肤后直接修改 ~/.zshrc 文件中的 ZSH_THEME 词条即可. 然后 source ~/.zshrc 使配置生效, 我选择的皮肤为 spaceship spaceship

fcitx-rime

需要在安装 fcitx 相关的软件包后进行

fcitx4

我使用的方案是小鹤音形, 从小鹤音形的官网提供的网盘中的"____3.小鹤音形挂接第三方平台"中下载"小鹤音形“鼠须管”for macOS.zip", 解压后将 /rime 文件夹覆盖到 ~/.config/fcitx/rime 文件夹, 再在配置中将 Rime 提到第一位, 重新部署即可.

在某些软件中会出现无法调出 fcitx 输入法的情况, 如 Telegram, 这时需要配置环境

1
kate ~/.pam_environment

~/.pam_environment 中写入

1
2
3
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=\@im=fcitx

重新登录 Arch 使环境生效. 我的皮肤是在这里进行选择以及安装的. 更多的配置需要查看 fcitx 的 Wiki

我又换了 fcitx5

需要安装 fcitx5-im, 及 fcitx5-rime

1
sudo pacman -S fcitx5-im fcitx5-rime

然后将上文提到的 rime 文件夹放入 ~/.local/share/fcitx5/ 中, 覆盖其中的同名文件夹 rime/, 重新部署即可. 然后参照 Wiki 中的内容, 在 ~/.pam_envionment 中写入

1
2
3
4
5
6
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=\@im=fcitx
INPUT_METHOD DEFAULT=fcitx
SDL_IM_MODULE DEFAULT=fcitx
GLFW_IM_MODULE DEFAULT=ibus

皮肤我在使用 fcitx5-skin-material, 使用 yay -S fcitx5-skin-material 即可安装, 安装后在 ~/.config/fcitx5/conf/classicui.conf 中添加

1
Theme=fcitx5-skin-material

也可以在其中的 Font 选项处修改字体及字号. 如果想修改输入法为单行输入, 可以在 ~/.config/fcitx5/conf 中新建 rime.conf, 并添加

1
PreeditInApplication=True

配置结束后要重启 fcitx5 来更新配置.

vim

暂时作为 vim 半吊子的存在. 先装插件 Vundle 按着 README.md 中的操作安装即可. 然后配置一下 vim 与 fcitx5 的配合, 使得按下 ESC 返回 normal 模式时可以自动将输入法切换为英文, 再进入输入模式时自动切换为退出前的模式, 见仙子的 fcitx.vim, 解压到 ~/.vim 中即可使用, 注意要将 ttimeoutlen 设置为较小的值, 如在 vim 中

1
:set ttimeoutlen=100

插件折腾挺热心, 软件倒没学咋样……

KRunnner

还可以按照 Wiki 的指示来配置一下 KRunner 的快捷键, 作为全局搜索来用.

向日葵 Sunloginclient

上文提到过安装后需要运行

1
systemctl start runsunloginclient.service  

开启向日葵服务, 如果需要远程操作 GNOME 的 Ubuntu 系统, 会显示"链接已中断", 这时需要 Ubuntu 用户安装 x11 的桌面环境如 lightdm:

1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo apt install lightdm

安装后可以任意选择桌面环境, 也可以使用 sudo dpkg-reconfigure lightdmsudo dpkg-reconfigure gdm3 来进行切换桌面环境, 注意在接受向日葵远程的时候需要保证处于 lightdm 环境下.4

安装字体

解决系统默认字体显示效果差的问题

照着这个博客弄就ok: Linux 下的字体调教指南

安装用户字体
  1. Arch 的源中有一部分字体可以直接通过 sudo pacman -S 安装, 如

    1. noto-fonts-sc, 包含了 Google 打包的思源宋体 (Noto Serif CJK SC), 思源黑体 (Noto Sans CJK SC), 以及 Noto Mono CJK SC (这个我不知道怎么称呼, 我也没用过)
    2. ttf-sarasa-gothic, 更纱黑体, 特点是中文宽度严格为英文的 2 倍, 适合用在代码环境, 其文件命名的介绍可以看 README
    3. noto-fonts-emoji 提供了 emoji 表情. 这三款字体在上一小节中已经安装过了
    4. adobe-source-han-sans-cn-fonts, 由 Adobe 打包的思源黑体 (Source Han Sans CN), 由于我需要字形更多的 SC 版本, 故没有安装, adobe-source-han-serif-cn-fonts 同.
    5. adobe-source-han-serif-cn-fonts, 由 Adobe 打包的思源宋体 (Source Han Serif CN).
  2. AUR 源中的字体可以通过 yay -S 安装, 如

    1. ttf-lxgw-wenkai, 霞鹜文楷, 很不错的一款中文楷书, 它的介绍可以看 README
    2. nerd-fonts-fira-code, 带图标的 Fira Code, 是一款不错的等宽字体, 字形介绍可以看 README
    3. otf-fira-code-git, 不带图标的 Fira Code, 字形介绍可以看 README. AUR 源中只有 -git 的版本, 关于软件包 foofoo-git 的区别可以参考 Wiki, 这个我没有编译成功, 可以直接去 Release 处下载字体然后手动安装
    4. nerd-fonts-jetbrains-mono, JetBrains 提供的一款带图标的等宽字体, 适合用在终端
  3. 手动安装字体: 这里以 Fira Code 为例. 在 Release 处下载 .zip 文件, 解压到 ~/FiraCode 文件夹, 将它复制/移动到系统字体文件夹 /usr/share/fonts 下, 也可以在 /usr/share/fonts/ 下建立一个新的用户字体文件夹, 下面进行示例5

    1
    2
    sudo mkdir /usr/share/fonts/myfonts
    sudo cp -r ~/FiraCode /usr/share/fonts/myfonts/

    复制结束后可以删除 ~/FiraCode 文件夹, 并在终端运行

    1
    sudo fc-cache -fv

    刷新字体缓存, 安装后可以在终端中运行

    1
    fc-list > font.txt && kate font.txt

    在打开的 font.txt 文件中可以搜索来查看是否存在 /myfonts 路径下的 FiraCode 等字体, 下面列一些我没有找到软件包或者软件包编译不成功的字体, 这里只给出仓库地址, 不给出具体如何下载

    1. FiraCode
    2. Source Han Serif SC Adobe 打包的思源宋体
    3. Source Han Sans SC Adobe 打包的思源黑体

安装 Windows10 字体

安装 Windows 字体可能导致桌面环境字体混乱, 请自行甄别利弊

由于版权原因, 不允许直接下载各 Windows 字体, 所以需要自己手动提取字体后, 用 makepkg 进行安装.

  1. 先使用 git clone 将该 repo 克隆到本地,
  2. 然后在微软官网下载 Windows10 的镜像, 并且按照 Wiki 使用 7zip 将 ISO 中的字体与许可证提取出来, 放到刚才克隆到本地的 ttf-ms-win10 文件夹中, 如果中途出现需要手动确认的项目, 选 Y,
  3. 终端在 ttf-ms-win10 中运行 makepkg -si 安装字体, 并运行 fc-cache -fv 刷新字体缓存, 安装后的字体位于 /usr/share/fonts/TTF 中,
  4. 如果想要在 LaTeX 的 ctex 宏集中使用 fontset=windows 选项的话, 还需要在 Windows 中复制 "黑体, 楷体, 微软雅黑, 隶书, 幼圆" 到 /usr/share/fonts/TTF, 并运行 fc-cache -fv 刷新缓存后即可使用.

暂时告一段落, 再有什么东西再往上添吧