上一次对主力操作系统的改动是从 Ubuntu 16.04 直接升级到 18.04,多年运行的系统至今已经累积了许多冗余文件,所以最近 Ubuntu 20.04 发布,我决定在新的硬盘分区从零开始安装配置。
之前意识到系统性能瓶颈也许不在内存而在硬盘读写,已经对残留的 Windows 所在硬盘进行了清理,腾出一定的空间就用来装新的 Ubuntu,了结我将系统硬盘从缓慢的 HDD 换到 SSD 的心愿。
这是一次系统迁移的实践。得益于 Ubuntu/Debian 的丰富生态,整个过程相当顺利,基本还原我之前的工作环境。
本文分享在常规安装并进入 Ubuntu Desktop 20.04 之后对工作环境的配置,包括但不限于安装常用软件、同步原有/建议配置等,力求美观与高效,前者令我这样审美偏执的人心情愉悦,后者可以加速我的日常工作。本文是系统初始配置的小抄 (cheat sheet),相当的篇幅是软件分享,没有技术含量。
开始
首次进入系统的向导窗口将引导我配置 Livepatch,Livepatch 用于减少因安全更新的系统重启,跟随进行即可,期间需要登录 Ubuntu 账号。
打开蓝牙设置,连接无线键盘。
系统预装的软件包从发布至今可能已经有包括安全修补在内的更新,执行:
1 | sudo apt update |
注意刚开机时 Software Updater 可能会占用 /var/lib/apt/lists/
,更新无法进行,稍等即可。
安装必要 CLI 软件以便之后的操作:
1 | sudo apt install vim curl htop |
网络配置
网络配置是包括 Android 在内的几乎所有操作系统初次启动时的必需步骤,特别是在网路审查普遍的地区。这里不是指网络接口驱动之类的事情,这部分 Ubuntu 已经做到开箱即用;而是指因当地网络策略限制,为了连接国际互联网而不得不进行的网络连接配置。本文以 Shadowsocks 为例,对此仅作简述。
Shadowsocks
Shadowsocks 是著名的 SOCKS5 代理,这里使用 shadowsocks-libev。安装:
1 | sudo apt install shadowsocks-libev |
停止默认的 ss-server
服务并禁用开机自启:
1 | sudo systemctl stop --now shadowsocks-libev.service |
从网络服务提供者获取配置,写入 /etc/shadowsocks-libev/client.json
,运行 ss-local
服务并启用开机自启:
1 | sudo systemctl start --now shadowsocks-libev-local@client.service |
Privoxy
有些应用程序仅支持 HTTP 代理,这里利用 Privoxy 将 SOCKS5 转为 HTTP。安装:
1 | sudo apt install privoxy |
编辑配置 /etc/privoxy/config
,在第 5.2 节加入下行:
1 | forward-socks5 / 127.0.0.1:1082 . |
其中「1082」是我的 Shadowsocks 本地端口。重启服务:
1 | sudo systemctl restart privoxy.service |
至此 HTTP 代理运行在本地 8118 端口,详见配置第 4.1 节。
ProxyChains-NG
我没有配置系统全局代理,这里使用 ProxyChains-NG 在命令行程序运行时将网络连接重定向以通过 SOCKS5 代理。安装:
1 | sudo apt install proxychains4 |
编辑配置 /etc/proxychains4.conf
,加入下行:
1 | socks5 127.0.0.1 1082 |
其中「1082」是我的 Shadowsocks 本地端口。
为方便使用,设置命令别名:
1 | echo "alias pc='proxychains -q'" >> ~/.bash_aliases |
或者手动在其他配置文件如 ~/.bashrc
中编辑。
以后若要通过代理执行命令,直接在前面加上 pc
即可,如查看自己 代理 IP:
1 | pc curl ip.sb |
软件源
打开 Software & Updates,修改软件源服务器到国内镜像或者代理服务器所在地。如果和我一样选择后者,接下来为 APT 设置代理,执行:
1 | printf 'acquire {\n http::proxy "http://127.0.0.1:8118";\n https::proxy "http://127.0.0.1:8118";\n}\n' | sudo tee /etc/apt/apt.conf.d/proxy |
语言环境
由于我在安装系统时将时区设定为台湾,执行 locale
可以看到系统的一些语言配置被自动设定为 lzh_TW
。最明显的表现是系统各处的日期和时间显示均为中文,为了修改为英文,执行:
1 | sudo update-locale LC_TIME="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" |
登出后重新登入生效。
输入法
之前一直用 Fcitx,原来 Ubuntu 预置的是 IBus,现在开始体验。这里安装支持 IBus 的中州韻輸入法引擎。
1 | sudo apt install ibus-rime |
启用 RIME 引擎:
1 | ibus engine rime |
在使用一段时间之后,发现有时有切换引擎失败的问题。执行:
1 | ibus-daemon & |
自动挂载分区
我有一个常用的外置硬盘,所以这一步必不可少。
查看分区 UUID:
1 | sudo blkid |
编辑 /etc/fstab
。注意选项 (<options>
) 部分写 defaults,uid=1000,gid=1000
。
外观
主题和图标选择 Vimix,一款 Material Design 风格的主题。安装:
1 | git clone https://github.com/vinceliuice/vimix-gtk-themes |
需要通过 Tweaks 来选择主题。
1 | sudo apt install gnome-tweaks |
下列字体下载后解压到 ~/.local/share/fonts
,执行 fc-cache -f -v
。
常用 GUI 应用
Sublime Text 3:
我认为 Sublime Text 3 是最好用的文本编辑器。根据官网说明进行安装:
1 | wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - |
从首选项 (Preferences) 菜单进入【Settings】,编辑配置。
与其他文本编辑器类似,Sublime Text 3 也拥有丰富的包 (package),作为插件或扩展。
首先安装包管理器 Package Control。根据官网说明,按下【Ctrl + Shift + P】唤出命令面板 (Command Palette),输入 Install Package Control
并按下【Enter】以确认;或者从工具 (Tools) 菜单中选择【Install Package Control…】。由于当地网络政策,上述步骤可能并不顺利,可以重复尝试,或者通过环境变量设置代理。
然后为 Package Control 设置代理(可选)。根据官网说明,从首选项 (Preferences) 菜单进入【Package Settings】→【Package Control】→【Settings – User】,编辑用户配置文件,添加下列行:
1 | "http_proxy": "host:port", |
其中 host
、port
根据实际情况调整(如 127.0.0.1:8118
),注意 JSON 格式。
我选择 Material Design 风格的主题 Material Theme。根据文档,按下【Ctrl + Shift + P】唤出命令面板 (Command Palette),输入 Package Control: Install Package
并按下【Enter】以确认,这是安装包的一般步骤。然后搜索 Material Theme
,选择开发者 ID 为 equinusocio
的那个,按下【Enter】来安装。安装过程会提示是否安装作为依赖的另一个包 A File Icon
,点击【Install】即可。
激活主题。唤出命令面板并输入 Material Theme: Activate theme
。
自定义配置。从首选项 (Preferences) 菜单进入【Settings】,编辑用户配置文件,添加下列行:
1 | "font_options": ["gray_antialias"], |
其他包:
PackageResourceViewer
:查看和编辑包资源文件。CoolFormat
:代码格式化工具。Carbon
:Carbon 用于分享代码段的图片。
Typora:
我认为 Typora 是最好用的 Markdown 编辑器。根据官网说明进行安装:
1 | wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add - |
CopyQ:
剪贴板历史管理是【Ctrl + C/V】的绝配。
1 | sudo apt install copyq |
到首选项 (Preference) 中设定开机自启 (Autostart),设定显示主窗口的快捷键,比如【Shift + F3】。
Synapse:
按下【Ctrl + Space】来唤出启动器,快速搜索或启动应用,以及其他插件。
1 | sudo apt install synapse |
到首选项 (Preference) 中设定开机自启 (Startup on login),设定主题为「Virgilio」。
Plank:
1 | sudo apt install plank |
到首选项 (Preference) 中设定主题为「GTK+」,适当设定【Icon Zoom】。
到 Startup Applications 中添加新项以设定开机自启,名字 (Name) 任意,命令 (Command) 为 plank
。
Conky:
桌面展示:
1 | sudo apt install conky |
到 Startup Applications 中添加新项以设定开机自启,名字 (Name) 任意,命令 (Command) 为 conky -d
。
顶栏 (panel) 展示:
1 | sudo apt install indicator-multiload |
到首选项 (Preference) 中设定【Indicator items…】,添加新项 🔥 $(size(mem.user)) ⬇️ $(speed(net.down)) ⬆️ $(speed(net.up))
,然后到顶栏曲线图处使用鼠标滚轮切换到该项显示。
Flameshot:
1 | sudo apt install flameshot |
到配置选项 (Configuration) 中设定开机自启 (Launch at startup)。
到系统键盘设定中,添加新的自定义快捷键,比如【Ctrl + Shift + Alt + P】,名字 (Name) 任意,命令 (Command) 为 flameshot gui
。
Kazam:
1 | sudo apt install kazam |
GNOME sushi:
文件快捷预览工具。
1 | sudo apt install gnome-sushi |
在文件管理器 (Nautilus) 中,按下空格即可对选中文件进行快速预览。
Nautilus Image Converter:
在文件浏览器中快捷调整图片尺寸的工具。
1 | sudo apt install nautilus-image-converter |
对图片的右键菜单中可以快速调整图片大小 (resize images)。
Dconf Editor:
DConf 是用于存储桌面环境设定的底层键值对数据库,这里安装一个 GUI 编辑器。
1 | sudo apt install dconf-editor |
Compiz Config Settings Manager:
Compiz 是窗口管理器,这里安装一个 GUI 设定管理。
1 | sudo apt install compizconfig-settings-manager |
Telegram:
我认为 Telegram 是世界上最好用的即时通讯工具。
1 | sudo apt install telegram-desktop |
Meld:
Meld 是著名的图形对比 (diff) 与合并 (merge) 工具,支持对比文件和文件夹。
1 | sudo apt install meld |
qBittorrent:
我认为 qBittorrent 是最好用的 BitTorrent 图形客户端。
1 | sudo apt install qbittorrent -y |
按照 Wiki 描述迁移程序设定和种子等数据,将 ~/.config/qBittorrent/
和 ~/.local/share/data/qBittorrent/
两个文件夹复制到相应位置。
Thunderbird:
Thunderbird 是 Mozilla 名下开源的电子邮件、新闻、RSS 和聊天客户端。在适应一段时间之后,我认为 Thunderbird 非常可靠。
Ubuntu 系统预置 Thunderbird。按照文档 “Profiles” 或 “Moving Thunderbird Data to a New Computer” 迁移个人数据 (~/.thunderbird/xxxxxxxx.default/
) 或全部应用数据 (~/.thunderbird/
)。
KeePassXC:
KeePassXC 是密码管理器的不二之选。
1 | sudo add-apt-repository ppa:phoerious/keepassxc |
到设定 (Settings) 中启用【Show a system tray icon】。
云存储:
1 | Dropbox |
网易云音乐:
1 | wget http://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb |
QQ:
1 | git clone https://github.com/wszqkzqk/deepin-wine-ubuntu |
常用 CLI 应用
oathtool:
基于时间的一次性密码 (TOTP) 的命令行工具。
1 | sudo apt install oathtool |
在妥善、谨慎地保存密钥 (key) 文件的前提下,获取一次性密码:
1 | cat KEY_FILE | xargs oathtool --totp -b -d 6 -w 1 |
Neofetch:
显示系统基本信息。
1 | sudo apt install neofetch |
trash-cli:
trash-cli
是命令行的回收站工具,与图形环境兼容 (FreeDesktop.org),支持记录文件名、原路径、删除日期和权限。
1 | sudo apt install trash-cli |
Google Chrome:
从官网下载对应版本 (deb) 的包,然后安装:
1 | sudo dpkg -i google-chrome-stable_*.deb |
安装过程 Google Chrome 会自动配置软件源,以后使用 APT 更新即可。但在第一次执行 apt update
时,如果遇到无法验证签名的错误:
1 | W: GPG error: http://dl.google.com/linux/chrome/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 78BD65473CB3BD13 |
根据 Google Linux Software Repositories 说明,执行:
1 | wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - |
Chromium:
大概是从 Ubuntu 19.10 开始,chromium-browser
成为一个过渡包,直接执行 apt install chromium-browser
会自动从 Snap 安装 Chromium 浏览器。Snap 版本的 Chromium 在读写其他分区的文件时存在不便。总之 Snap 并不讨喜。好在上游 Debian 10 的软件源仍在编译 Chromium,利用这一点,我们可以仍然从 APT 安装 Chromium。
如果已经从 Snap 安装 Chromium,那么先卸载:
1 | snap remove chromium |
如果同时安装了 chromium-chromedriver
、chromium-browser-l10n
、chromium-codecs-ffmpeg-extra
等包,相应执行:
1 | sudo apt remove chromium-chromedriver chromium-browser-l10n chromium-codecs-ffmpeg-extra |
添加 Debian Stable 源。新建并编辑 /etc/apt/sources.list.d/debian-stable.list
:
1 | # Debian stable |
获取并添加 Debian 公钥:
1 | sudo apt install debian-archive-keyring |
根据 APT 文档,设定软件源优先级策略。新建并编辑 /etc/apt/preferences.d/debian-chromium
:
1 | Explanation: Prevent installing from debian repo. |
检查策略:
1 | sudo apt update |
安装 Chromium:
1 | sudo apt install chromium chromium-l10n |
打开 chrome://flags
,查看 Chrome/Chromium 中值得注意的试验性选项:
#tab-groups
:标签分组。#enable-parallel-downloading
:多线程下载。#tab-hover-cards
:标签预览卡片(禁用)。#global-media-controls
:全局媒体控制。
以上。又水了一篇。🐟
📖 [Ref]