Arch Linux - 大型攻略

这篇文章的主要目的是记录我在使用 Linux 的过程中遇到的坑和相应的解决方案,次要目的是帮助读者快速构建一个舒适的 Linux 使用环境。后文的描述基于 Arch Linux 和 KDE 的方案,大部分也适用于 Kubuntu 用户。

UPDATE 2018.11

  • 关于 QQ 的安装和使用,现在有两个选择,其一是 Crossover (中国区定价也不贵,如果想省钱可以找 15 的 crack),其二是 AppImage 封装好的 wine-QQ(github)。
  • 一年来也遇到了一些影响使用的 bug,每一次更新都无法预料体验究竟变好了还是变差了。
  • 已经成为 KDE 的脑残粉了,美观、功能强大、内置应用体验一致,已经不能奢求更多了。

UPDATE 2017.10

  • 重装了系统,现在选择了基于 arch 的发行版 majaro(桌面环境还是 KDE),安装确实方便挺多,也称得上是开箱即用。
  • 这两个月 shadowsocks-qt5 的最新版本很不好用,估计是依赖的问题(github 上 issue 不断)。所以还是选择了 shadowsocks-libev 命令行版本,配合 polipo socks5 转 HTTP 代理(其实不怎么用得到)。

发行版的选择

起初我选择的是 Ubuntu,其主要原因有如下几点:

  • 用户的基数大,遇到问题能够方便得找到相应的解决方案
  • “网易云音乐”、“搜狗输入法”等应用提供的安装包是 Deb 包( Ubuntu 可以直接安装,而 Debian 家族以外的发行版无法直接使用)

在使用 Ubuntu 将近一年后,我选择了 Arch Linux,它不仅拥有对我而言 Ubuntu 所有的优势,还提供了额外的便利:

  • 官方仓库和用户软件仓库(AUR)提供了我想要的全部,包括上文中的“网易云音乐”和“搜狗输入法”。
  • 拥有官方 Wiki,对于解决实际问题和学习 Linux 很有帮助
  • 没有预装可有可无的软件包,用户拥有更大的选择余地 ## 安装 由于 Arch 的安装是在 CLI(命令行)下进行的,对于新用户可能有些困难。而在官方 Wiki 和网上教程的帮助下,完成安装应该也不成问题。

桌面环境的选择

在尝试过许多桌面环境后,我体会到了 KDE 的可贵。

  • 可定制性远强于其他桌面环境。
    • 有许多桌面控件可供选用(后文会有介绍)算法—— 博弈
    • 可以很方便得修改 panel 的样式,于是我可以很轻松地将桌面从 Win10 风格切换至 OS X 风格。
    • 可以在系统设置中修改动画效果
    • 提供了虚拟桌面(Virtual desktops)和活动(Activities)的功能
    • 可以修改主题、图标、窗口样式,而且默认主题十分美观
  • 系统设置丰富 (有些东西没法通过图形界面设置的话就只能通过命令行或者修改配置文件来达到目的,十分不便)
  • 有些集成的软件十分好用,比如文件管理器 dolphin,终端 konsole,便签 Knotes,快捷搜索 Lancelot(当然无论是什么桌面环境这些应用都可以做相应的替换,但是原生不容易出问题,体验也更为一致)。
  • 缺点
    • 集成了一些无用的软件,虽然可以在安装时进行筛选
    • 设置中播放设备的选择太过繁琐
    • 难以名状的 Bug,这个似乎很难避免,只要数量不多频率不高问题不大还是可以忍受一些的

KDE 的安装也十分便捷,参照 Wiki 即可,配合 SDDM 风味更佳。

常用软件

以下均为包名,可以直接安装(有些属于 AUR)

  • base-devel
  • chromium / firefox / google-chrome 浏览器三选一
  • shadowsocks-qt5 科学上网
  • wps-office & ttf-wps-fonts WPS
  • netease-cloud-music 网易云音乐 (字变成方块,间歇性白屏,沙盒无法启动,各种问题的解决方法在 AUR 讨论区里有。链接
  • youdao-dict 有道词典
  • fcitx-sogoupinyin 搜狗拼音
  • calibre 电子书管理
  • atom 文本编辑器
  • redshift 屏幕色温调节
  • uget 多线程下载工具,支持磁链、种子(如果选用 aria2 作为后端,还需安装 aria2)
  • vlc 视频播放器
  • p7zip-natspec & unzip-natspec 使压缩包管理软件 Ark 解压(不是查看)zip、7z时避免出现中文文件名编码错误的问题
  • ntfs-3g 挂载 ntfs 分区(访问 Windows 分区或 ntfs 的移动硬盘)
  • downgrade (一定要是 AUR 版本) 降级软件包,救命神器。

以下软件给出安装方法

QQ的安装

解决方案:crossover 16 或 deepin-QQ with crossover 15 参考链接
crossover 16 有对多个版本的 QQ 的官方支持,建议购买正版,有试用期。
备选方案:crossover 15 的 crack 对 16 同样有效,需要的人自己找。
另:如果发现许多字变为方块,那么安装 crossover 中的 QQ 2012,期间安装的一些依赖可以解决这个问题。

Atom相关

项目的开发我还是建议使用 IDE,要让编辑器能拥有 IDE 的功能可能需要花大量的精力来改造。

apm

Atom 的包管理器 apm 其实就是 npm,于是我们可以通过类似的方法为其设置镜像来加快下载速度。

1
2
npm set registry https://registry.npm.taobao.org
apm config set registry https://registry.npm.taobao.org

插件

  • linter
  • linter-gcc
  • file-icons
  • platformio-ide-terminal 这个好像也不怎么好用,推荐一发下拉式终端 yakuake

桌面控件

额外

  • Wallpaper Switcher 不同虚拟桌面可以设置不同壁纸的特性作为 bug 在某一个版本后消失了,但许多用户认为这是一个好功能。于是一个 KDE 的开发人员兑现承诺开发了这个工具提供了这个功能。
  • Active Window Control窗口在最大化后还会保留系统标题栏,而屏幕顶部还有一个 panel(如果和我一样把状态栏放到顶部),这样就会有两层,既不美观又浪费了空间。通过安装这个控件并且设置全屏隐藏标题栏后,可以达到和 OS X 同样的全屏后合并标题栏和系统状态栏的效果。

易用性

按键映射

创建文件~/.Xmodmap,fcitx 会自动读取并应用 xmodmap 的设置 以下是我使用的配置文件,将Caps_Lock修改为Ctrl,并交换`~Esc

1
2
3
4
5
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L
keysym Escape = grave asciitilde grave asciitilde
keysym grave = Escape

鼠标侧键

对于拥有鼠标侧键的用户而言,将这些侧键映射为常用快捷键(如浏览器标签页的切换、虚拟桌面的切换)可以带来极大的便捷。
我使用的软件是 xbindkeys & xautomation,在~/.xbindkeysrc中修改配置,以下是我使用的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
# 侧键切换虚拟桌面
"xte 'keydown Super_L' 'keydown Tab' 'usleep 100000' 'keyup Tab' 'keyup Super_L'"
b:8

"xte 'keydown Super_L' 'keydown Tab' 'usleep 100000' 'keyup Tab' 'keyup Super_L'"
b:9

# 水平滚轮切换浏览器标签页,延迟是为了防止切换过快
"xte 'keydown Control_L' 'usleep 200000' 'key Tab' 'keyup Control_L'"
b:7

"xte 'keydown Control_L' 'keydown Shift_L' 'usleep 200000' 'key Tab' 'keyup Shift_L' 'keyup Control_L'"
b:6

文件同步

建议使用坚果云,免费便利。Linux 下有客户端的网盘真的少。Dropbox 必须翻墙,不支持多文件夹同步。

终端提示符颜色

~/.bashrc中添加

1
2
3
4
COLOR="\[$(tput setaf 105)\]"
RESET="\[$(tput sgr0)\]"

export PS1="${COLOR}\u@\h \W >${RESET} "

应用配置 source ~/.bashrc

参考文章

https://blog.hanschen.org/2009/10/13/mouse-shortcuts-with-xbindkeys/ https://wiki.archlinux.org/index.php/Mouse_buttons#xvkbd_and_xbindkeys ### 触控板手势 对于长期使用触控板的用户来说,多指手势可以用来替代许多快捷键。
我使用的软件是 Touchegg以及对应的 GUI 配置工具 touchegg-gce-git

Tips

  • dolphin 中Alt + .切换是否显示隐藏文件
  • 更新 kernel 之后不要忘记重启
  • yaourt -Syu频率太低会更新失败,太高会占用大量硬盘空间(/var/cache/pacman/pkg/
  • arch 是为数不多的关闭 user namespace 的发行版之一,所以 unprivileged container 无法使用
  • 如果 PGP 签名挂了 那么
1
2
3
4
sudo rm -rf /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --refresh-keys
  • 与其手动下载安装包,不如去 AUR 找一找,这样更新会省力不少。