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, 默认环境下就很好看
安装后在系统设置中将语言与地区改为中文, 在改 Region 的时候注意是
zh-CN
, 不要改成蒙古语 mn_CN
.
软件的安装与配置
安装重要组件 yay
添加 archlinuxcn
源
国内的 Arch 组织也打包了一些软件, 我们将archlinuxcn
的源也添加到 pacman
的源列表
1 | kate /etc/pacman.conf |
在最下方添加
1 | [archlinuxcn] |
用管理员权限保存后, 在终端运行
1 | sudo pacman -Sy && sudo pacman -S archlinuxcn-keyring |
来刷新仓库以及获取 PGP 钥匙串
安装 yay
1 | sudo pacman -S yay |
简单说一下 yay
: Arch Linux 除了官方的软件库以外,
还提供了一个允许用户上传软件包的仓库, AUR 仓库,
你可以在上面找到几乎任何你想要安装的软件, 甚至基于
(这个在我的计算机上出现了问题, QQ 的问题见该issue,
微信的问题为严重卡顿), Arch Linux 官方的包管理软件为
deepin-wine
的 qq
和微信pacman
, AUR 仓库的管理软件则为 yay
.
当然, 也可以选择去 AUR 仓库 中将
yay
克隆到本地并使用 makepkg -si
进行安装.
我的常用软件
一些软件可以在 Arch Wiki 上找到它们的不同版本的对比信息, 一些软件的详细配置会在后文详述
官方仓库
用 sudo pacman -S <软件包>
安装,
这里序号后的名称就是包名, 下同
firefox, Mozilla 出品的火狐浏览器, 使用体验不错
flameshot, 火焰截图, 一款截图/贴图软件, 使用方便, 如何设置全局快捷键可以看 README, 英文看不懂的可以看这个博客
fcitx, 小企鹅输入框架,
这里我选了 v4 版本的, 没有用 fcitx5, 我换成 fcitx5-im 了, 同理下面的变成 fcitx5-rimefcitx-rime, 中州韵输入法, 我常用的小鹤音形可以在该输入法上实现, 具体的其他输入方式可以看 Fcitx (简体中文)
fcitx-qt5, kcm-fcitx, fcitx-configtool, 分别为fcitx 提供对 Qt 提供的输入法模块, fcitx 的图形配置界面, fcitx 的配置工具
zsh, Z-Shell 终端, 有
oh-my-zsh
的配合, 配置起来相对容易screenfetch, 在终端通过screenfetch
命令来显示发行版的 logo 与信息, 该软件的 3.9.1 版本输出时会报 warning:1
/usr/bin/screenfetch:行1802: 7020826624-:语法错误: 需要操作数 (错误符号是 "-")
neofetch, 与 screenfetch 相同的功能.
1 | ➜ neofetch |
steam, 需要在
/etc/pacman.conf
中开启multilib
仓库, 并且需要安装一些图形驱动, 详见 steam 的 Wiki, 如果开启 steam 后商店等界面均为黑屏幕, 不显示内容, 可以将 steam 的通道改为beta channel
, 具体问题见关于 steam 黑屏的讨论. 在安装 steam 的过程中发现了一个可选的依赖项1
2steam 的可选依赖
steam-native-runtime: steam native runtime support
将其 pacman
安装后 steam 启动很丝滑, 虽然不知道为什么,
好用就行吧
obs-studio, 老牌屏幕录制软件
vim, 文本编辑器, 正在学习
man-pages-zh_cn, 中文帮助手册, 在终端用
man <命令>
来呼出peek, 好用的 gif 录制软件
latte-dock, KDE 下的 Dock 软件, 挺好看的, 可以按照这个博客来配置一下. 这是我配置好的, 并不完全按照刚才的博客
- telegram-desktop, 即时通讯软件 Telegram, 可能需要魔法
- screenkey, 可以在屏幕上显示按键, 配合录屏软件表现不错
AUR 仓库
用 yay -S <软件包>
安装,
microsoft-edge-dev-bin, 微软的新 edge, 由于我的插件与书签等都备份在了 Windows 的 edge 上, 这里我首选 edge, 如果没有这些包袱, 新的 FireFox 也是很好的选择.
注意!95.0.0997.1 及以后的版本疑似与更新的95.0.1020.0-1 版本已经修复问题, 可以正常使用.systemd
不兼容, 会无法启动, 见 techcommunity, 请在"查看更改"处选择 94.0.982.2 版本 进行下载并本地安装, 且在yay -Syu
时忽略 microsoft-edge-dev-bin 的更新!visual-studio-code-bin, 这里我选择了微软官方专用软件版本, 为了设置同步. 安装后可以直接在终端使用
code <文件夹/文件>
打开文件夹/文件telegram-desktop-bin该软件已经被官方仓库收编, 原来它一直都在官方仓库里. 即时通讯软件 Telegram, 虽然我把它贴在这了, 但是由于无法下载部分组件, 我还是去了 Telegram 的官网下载了AppImage
oh-my-zsh-git, 对于
zsh
的美化, 提供了一些易用的接口, 通过yay
安装后需要手动将oh-my-zsh
中的zshrc
文件复制出来:1
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
listen1-desktop-appimage, Listen1, 集成了网易云音乐, QQ 音乐, 咪咕音乐的开源播放器, QQ 音乐也有自己的包
deepin-wine-qq, 用 deepin-wine 实现的 windows qq, 这里只是列出, 我并没有使用
deepin-wine-wechat, 用 deepin-wine 实现的 windows wechat,
我同样没有使用我还是用了, 这次很流畅……有玄学内味了. 由于源内的 deepin-udis86 没有更新, 所以安装 deepin-wine-wechat 前要注意先自己安装 deepin-udis86, 在 Github 上有打包好的 repo.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
开启向日葵的服务才能运行软件.
7-zip, 老牌解压软件, 好用
ttf-ms-win10, Windows10 的字体, 由于版权问题, 需要额外处理,详见安装 Windows10 字体
wemeet-bin, 腾讯会议 Linux 版, 新鲜的
picgo-appimage, 本地图床软件, 配置见其配置手册1
wudao-dict-git, 无道词典, 项目地址在 Github, 可以通过终端
wd <单词>
来查询单词.v2raya, 持续维护的代理软件, 这里是 Github repo 与 Wiki
手动安装
- 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 |
代理
我这里代理使用的是 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 社区的仙子建议直接把它干掉
系统时间
由于 Windows 和 Linux 对于硬件时间的处理不同, 会出现切换到另一个系统时系统时间不对的情况. 可以参考少数派的文章, 我修改的是 Linux 的时间.
microsoft-edge
我使用的插件有
- AD Block 广告拦截插件
- AD Block Plus 广告拦截插件
- Listen 1 与桌面版的 Listen 1 同样功能, 此为浏览器插件版本
- Office 在线的 Office 软件, 对于买了 Microsoft 365 的用户体验会有提升
- smartUp 手势 鼠标手势插件
- Bilibili 助手 提供 B 站的一些支持, 自动签到等
- 沙拉查词 词典插件, 支持划词查询, 集成了多家词典
- Absolute Enable Right Click & Copy 强制启用复制, 右键功能, 此为 Chrome 插件
vscode
我主要使用 vscode 写 LaTeX, 这里并没有其他的配置信息.
我使用的插件有
- 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 中使用网易云音乐
这里是我的 settings.json, latex.json 与 keybindings.json 的内容, 点击链接即可查看/下载, 其中有针对 Windows 用户以及 KDE/Okular 用户的 LaTeX 正反向搜索的内容2.
如果登录账户的时候出现将登陆信息写入钥匙串失败的错误信息, 在终端运行
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
应用后, 在默认设置下, 在 vscode 中的
.tex
文件中同时按Ctrl+Alt+j
会唤起 okular 到对应的位置, 在 okular 中激活"手型工具"的基础上, 按住Shift
, 同时鼠标左键点击PDF
中的内容, 即可唤起 vscode 跳转到对应的源代码位置3.
zsh & oh-my-zsh
我使用的插件:
git: oh-my-zsh 自带插件, 直接填入 plugin 即可使用, 提供了一些
git
的 aliasz: oh-my-zsh 自带插件, 会记录曾经
cd
过的路径, 通过z <不完整路径>
即可实现跳转, 如1
2cd ~/git/syvshc.github.io
z github即可直接进入
~/git/syvshc.github.io
文件夹.sudo: oh-my-zsh 自带插件, 敲两下
ESC
键即可为命令添加sudo
zsh-syntax-highlighting, 命令高亮, 默认设置下绿色为正确, 红色为错误
zsh-autosuggestions, 会记录用户输入过的命令, 并将其显示为灰色, 按
->
即可补全.
安装插件
可以通过直接
git clone
到用户目录的方式进行安装, 以zsh-autosuggestions
插件为例1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
可以先
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
中进行添加, 事实是就算添加了它也提示找不到插件.通过 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
使配置生效安装皮肤
- 官方提供了一些皮肤, 可以在 oh-my-zsh 的 Wiki 上查看,
- 用户皮肤. 一些皮肤没有进入到官方的皮肤库, 需要自行安装, 官方也整理了一些民间皮肤, 在 External themes 中, 每个皮肤都配备了对应的安装说明, 按照其说明安装即可
找到/安装完合适的皮肤后直接修改 ~/.zshrc
文件中的
ZSH_THEME
词条即可. 然后 source ~/.zshrc
使配置生效, 我选择的皮肤为 spaceship
fcitx-rime
需要在安装 fcitx 相关的软件包后进行
fcitx4
我使用的方案是小鹤音形, 从小鹤音形的官网提供的网盘中的"____3.小鹤音形挂接第三方平台"中下载"小鹤音形“鼠须管”for
macOS.zip", 解压后将 /rime
文件夹覆盖到
~/.config/fcitx/rime
文件夹, 再在配置中将 Rime 提到第一位,
重新部署即可.
在某些软件中会出现无法调出 fcitx 输入法的情况, 如 Telegram, 这时需要配置环境
1 | kate ~/.pam_environment |
在 ~/.pam_environment
中写入
1 | GTK_IM_MODULE DEFAULT=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 | GTK_IM_MODULE DEFAULT=fcitx |
皮肤我在使用 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 | sudo apt-get update |
安装后可以任意选择桌面环境, 也可以使用
sudo dpkg-reconfigure lightdm
与
sudo dpkg-reconfigure gdm3
来进行切换桌面环境,
注意在接受向日葵远程的时候需要保证处于 lightdm
环境下.4
安装字体
解决系统默认字体显示效果差的问题
照着这个博客弄就ok: Linux 下的字体调教指南
安装用户字体
Arch 的源中有一部分字体可以直接通过
sudo pacman -S
安装, 如- noto-fonts-sc, 包含了 Google 打包的思源宋体 (Noto Serif CJK SC), 思源黑体 (Noto Sans CJK SC), 以及 Noto Mono CJK SC (这个我不知道怎么称呼, 我也没用过)
- ttf-sarasa-gothic, 更纱黑体, 特点是中文宽度严格为英文的 2 倍, 适合用在代码环境, 其文件命名的介绍可以看 README
- noto-fonts-emoji 提供了 emoji 表情. 这三款字体在上一小节中已经安装过了
- adobe-source-han-sans-cn-fonts,
由 Adobe 打包的思源黑体 (Source Han Sans CN), 由于我需要字形更多的 SC
版本, 故没有安装,
adobe-source-han-serif-cn-fonts
同. - adobe-source-han-serif-cn-fonts, 由 Adobe 打包的思源宋体 (Source Han Serif CN).
AUR 源中的字体可以通过
yay -S
安装, 如- ttf-lxgw-wenkai, 霞鹜文楷, 很不错的一款中文楷书, 它的介绍可以看 README
- nerd-fonts-fira-code, 带图标的 Fira Code, 是一款不错的等宽字体, 字形介绍可以看 README
otf-fira-code-git, 不带图标的 Fira Code, 字形介绍可以看 README. AUR 源中只有-git
的版本, 关于软件包foo
与foo-git
的区别可以参考 Wiki, 这个我没有编译成功, 可以直接去 Release 处下载字体然后手动安装- nerd-fonts-jetbrains-mono, JetBrains 提供的一款带图标的等宽字体, 适合用在终端
手动安装字体: 这里以
Fira Code
为例. 在 Release 处下载.zip
文件, 解压到~/FiraCode
文件夹, 将它复制/移动到系统字体文件夹/usr/share/fonts
下, 也可以在/usr/share/fonts/
下建立一个新的用户字体文件夹, 下面进行示例51
2sudo 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
等字体, 下面列一些我没有找到软件包或者软件包编译不成功的字体, 这里只给出仓库地址, 不给出具体如何下载- FiraCode
- Source Han Serif SC Adobe 打包的思源宋体
- Source Han Sans SC Adobe 打包的思源黑体
安装 Windows10 字体
安装 Windows 字体可能导致桌面环境字体混乱, 请自行甄别利弊
由于版权原因, 不允许直接下载各 Windows 字体,
所以需要自己手动提取字体后, 用 makepkg
进行安装.
- 先使用
git clone
将该 repo 克隆到本地, - 然后在微软官网下载
Windows10 的镜像, 并且按照 Wiki
使用
7zip
将 ISO 中的字体与许可证提取出来, 放到刚才克隆到本地的ttf-ms-win10
文件夹中, 如果中途出现需要手动确认的项目, 选Y
, - 终端在
ttf-ms-win10
中运行makepkg -si
安装字体, 并运行fc-cache -fv
刷新字体缓存, 安装后的字体位于/usr/share/fonts/TTF
中, - 如果想要在 LaTeX 的 ctex 宏集中使用
fontset=windows
选项的话, 还需要在 Windows 中复制 "黑体, 楷体, 微软雅黑, 隶书, 幼圆" 到/usr/share/fonts/TTF
, 并运行fc-cache -fv
刷新缓存后即可使用.