写在开头

作为一名计算机专业的学生,和其他学生稍有不同的可能就是有些时候需要背着电脑去上课了。但是,每次都要背着那个3公斤重的游戏本上课下课,我们这些"体弱多病"的学生可能真的吃不消。
因此,在去年末,我氪了一台洋垃圾,Chromebook Yoga C630。不到2000块钱,却有着i7的八代低压U,4K触摸屏,16G内存以及128G的固态emmc。在配置上,对于写文档、撸代码的需求应该算是足够了。
但是,由于Chromebook预装的ChromeOS,本地化体验以及生产力方面都有些不足,本文将会介绍提升ChromeOS系统体验的一些方法,帮助你拥有一台在中国大陆体验更舒适的适合生产的Chromebook


开启开发者模式

Chromebook的开发者模式可以帮助我们获取ChromeOS的root用户访问权限,可以对ChromeOS本身进行修改。其次,开发者模式会将软件包安装程序置入,这样就可以直接安装在Google Play以外的apk了。

需要注意的是,开启开发者模式后,每次开机会出现一个长达30秒的警告画面。需要按下Ctrl+D跳过。

注意,开启开发者模式会进行一次Powerwash,请提前备份好数据,以免数据丢失。
具体开启步骤如下:

  1. 将Chromebook关机。
  2. 按下 Esc 键与 Refresh 键,按住后再按下开机键。
  3. 在亮屏后,会提示警告信息,此时可以松开 Esc 与 Refresh 键,然后按下Ctrl+D组合键。
  4. 下一步系统会提示你是否继续,按下Enter键继续。
  5. 系统会进行 Powerwash,然后重新开机。此时Chromebook就开启了开发者模式。
  6. 此时,ChromeOS会进入首次设置页面,在第一页找到"启用调试模式"按钮并单击。
  7. 系统会提示设置root密码,需要设置一个稍微复杂的密码,以免被破解。
  8. 根据流程激活Chromebook。

使用MrChromebox缩短警告页面

MrChromebox脚本可以帮助我们在受支持的Chromebook上安装完整的UEFI,使之可以安装Windows等其他操作系统,不过这部分不再本文讨论范围内。
但是,这部分需要禁用固件写保护。在部分设备上,禁用固件写保护可能需要特定的线,甚至拆机扣下电池。若觉得过于麻烦,可以跳过此部分。

缩短警告页面流程如下:

  1. 激活Chromebook后,确保连接的网络可以正常访问全球互联网,然后,按下 Ctrl+Alt+T组合键,打开Crosh。
  2. 输入shell并回车。
    现在,你的窗口应该是这样:
  3. 随后,输入如下指令,执行MrChromebox脚本:

    cd; curl -LO mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh

    脚本菜单应该和下面一样:

  4. 输入选项3 Set Boot Options,然后根据需要设置短的警告时间即可。

安装Chromebrew

Chromebrew是ChromeOS下的一款包管理程序,类似于macOS下的Homebrew。

安装步骤如下:

  1. 按下Ctrl+Alt+T组合键,打开Crosh。
  2. 输入shell并回车,进入shell。
  3. 输入如下一键命令,回车即可安装Chromebrew。

    curl -Ls git.io/vddgY | bash

    Chromebrew提供的包可能远远没有其他Linux包管理器那么多,但是也算是满足了我们日常的使用。


使用Aria2下载

在Windows上,我们可以用IDM进行下载与管理,但在ChromeOS上没有相关软件,那么我们就只能用Chrome来进行下载了吗?当然不。Aria2支持 HTTP/HTTPS, FTP, SFTP, BitTorrent 和 Metalink 等多种协议,是一款功能强大、内存占用低的下载器。
安装Aria2的步骤很简单,先使用Ctrl+Alt+T进入Crosh,然后输入shell进入shell。随后,使用crew 安装 aria2即可。

crew install aria2

随后,我们需要编辑一个aria2的配置文件,以便启用rpc。
首先,我们新建一个aria2的配置目录,然后创建aria2.conf文件:

mkdir -p ~/.config/aria2c
vim ~/.config/aria2c/aria2.conf

在文件中粘贴以下配置:

# 设置加密的密钥
rpc-secret=123456
# RPC 开关
enable-rpc=true
# RPC 跨域(WEB 界面需要跨域)
rpc-allow-origin-all=true
# RPC 外部访问(false 的话只监听本地端口)
rpc-listen-all=true
# RPC 端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
# 单文件并行下载数
split=5
# 断点续传
continue=true
# 同服务器最大连接数
max-connection-per-server=5
# 最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
# 下载速度限制(0代表不限制)(示例值:500K、10M)
max-overall-download-limit=0
# 单文件速度限制
max-download-limit=0
# 上传速度限制
max-overall-upload-limit=0
# 单文件速度限制
max-upload-limit=0
# 文件保存路径, 默认为当前启动位置
dir=/home/chronos/user/Downloads
# 启用磁盘缓存

这样,我们设置了一个rpc密码为123456,端口为6800,默认下载地址为"下载内容"目录的配置。接下来,我们使用如下命令来测试配置文件正常可用:

aria2c --conf-path=~/.config/aria2c/aria2.conf

至此,aria2的后端程序已经配置完毕,接下来需要使用一个Chrome插件拦截下载请求并发送至aria2后端。

在这里,我推荐使用Aria2 Explorer。这是一款界面清爽的Aria2下载管理器,可以在Chrome 扩展商店下载:下载地址

安装扩展后,右键扩展并点击"选项",在"Aria2-RPC-Server"一栏填入rpc secret,并在后面设置下载路径,这里可以填写/home/chronos/user/Downloads,默认将下载到下载目录中。
在"下载拦截"一栏中开启"自动拦截下载任务到Aria2",在"监测Aria2状态"一栏中开启"监测Aria2下载状态"以及"任务状态通知",这样即可在扩展图标中查看Aria2在线状态以及下载时会弹出通知。
配置完成类似如下:

随后,点击该扩展,将弹出Aria2 Explorer界面。点击"常规设置"——"RPC",在RPC密钥处填写RPC secret。这样,Aria2的前后端配置就都完成了。


安装Clash代理

在国内,若想使用Google全家桶带来的便利,是一定需要代理的。目前主流的操作方法是在Chromebook上安装Clash for Android或其他代理软件,开启VPN。但这种方法需要打开一个Android程序并保持后台运行,这对于 x86架构的Chromebook来讲可能会更消耗内存与CPU。因此我们在这里使用原生Clash Core,在ChromeOS中启用Clash(不是Crostini)。

首先,需要去Clash 的 Github Release 页面下载适配本机的 Clash 二进制文件。(本来我想直接用crew安装的,但竟然没有)
Clash Github Release
选择 clash-linux-[对应架构]-v1.gz 文件下载。

下载后,在 "文件"程序中解压并将clash二进制文件复制到"下载内容"目录下。

进入shell,输入如下指令:

cd;sudo cp Downloads/clash /usr/local/bin/clash;sudo chmod a+x /usr/local/bin/clash;

执行完成后,本机就拥有了clash。
接下来,需要配置 clash。首先,config.yaml文件需要自备,保存在"下载内容"目录中。
使用mkdir -p ~/.config/clash指令创建clash目录。
然后,使用cp ~/Downloads/config.yaml ~/.config/clash/将配置文件保存至clash配置目录内。
最后,输入clash启动clash。初次启动需要下载一些内容,可能较慢。
启动成功后,即可配置本机代理。

打开"设置",在"网络"——"WiFi"内选择当前连接的wifi,进入配置。点击"代理",输入clash代理,结果应该如下(端口需要输入config.yaml中的混合端口号):

至此,在clash开启的情况下,应不需要开启Android的任何VPN程序,即可访问国际网络。


使用自启动脚本

当然,若想贴近原生使用体验,每次开机打开shell然后打开clash或者aria2的操作属实不够优雅。那么,如何才能让clash或其他程序开机自启呢?在这里,我们需要用到"ChromeOS Autostart"扩展程序。该扩展程序可以在开机时执行一条指令,我们可以在这里设置执行需要自启动的程序。

ChromeOS Autostart可以在 Github Release 里下载,可以下载zip版本的文件。
下载并解压后,把扩展目录放置在合适的位置(因为添加到Chrome后不能删除),然后添加到Chrome。

在使用该扩展前,我们需要编写一个自启动脚本,这样就不用每次都修改该扩展保存的指令了。

在shell中,首先执行指令cd,将目录切换到用户目录下(该目录不会因为系统升级而清理)。
随后,输入 touch autostart.sh新建一个自启动脚本文件。
使用 vim autostart.sh编写自启动脚本文件。

注:此步若提示vim command not found是因为没有安装vim编辑器,输入该指令安装:crew install vim

在autostart.sh中,自启动clash只需要输入如下内容即可:

nohup clash -d /home/chronos/user/.config/clash/ </dev/null &>/dev/null &

这样,clash即可在后台运行。
最后,访问ChromeOS Autostart的配置页面,输入如下指令:

sudo -S bash -x /home/chronos/user/auto_start.sh <<< "调试模式密码"

在引号内输入设置的调试模式密码,然后按下Enter,即可保存开启启动指令。现在,可以重启试试效果了。

由于上文我们使用了Aria2,但是经我测试发现同样的指令放在shell脚本中无法生效后台运行,因此在这里使用了一个折中的办法:使用screen后台运行。因此,上述指令需要在后面添加关于aria2启动的指令,完整指令如下:

sudo -S bash -x /home/chronos/user/auto_start.sh <<< "调试模式密码";sudo screen -dmS aria2 bash -c 'aria2c --conf-path=/home/chronos/user/.config/aria2c/aria2.conf'

常用指令的安装

安装了Chromebrew后,我们就可以在ChromeOS内部安装一些常用的软件,例如vim、git等。安装步骤非常简单,就像上面安装aria2一样。
例如,安装git:

crew install git

开启Linux

只有Android以及PWA应用的Chromebook自然不配被称为生产力工具,因为在此情况下就连编译调试代码的能力都十分有限。因此,安装Linux容器是必需步骤。ChromeOS默认安装的Linux容器是Debian 11,如有需要可以切换至Archlinux。但由于与ChromeOS搭配效果并不尽人意,在这里不做讨论。

Linux 默认处于关闭状态。您随时可从“设置”中开启它。

  1. 在 Chromebook 上,选择右下角的时间。
  2. 依次选择“设置”图标 然后 高级 然后 开发者
  3. 在“Linux 开发环境”旁边,选择开启
  4. 按照屏幕上的说明操作。整个设置过程可能需要花费 10 分钟或更长的时间。
  5. 系统会打开终端窗口。现在,您已进入 Debian 11 (Bullseye) 环境。您可以运行 Linux 命令、使用 APT 软件包管理器安装更多工具以及自定义 shell。

建议设置的容量大一点,方便安装一些IDE或者其他应用程序。

更换国内镜像源

若使用debian官方的源,会导致速度较慢。推荐更换置国内镜像源,访问、下载速度较快。

一般情况下,将 /etc/apt/sources.list 文件中 Debian 默认的源地址 http://deb.debian.org/ 替换为镜像地址即可。

Linux本地化之中文环境

给Linux安排一个中文环境可以帮助我们更加优雅地使用Linux程序。

首先,点开终端程序,执行以下指令进行中文字体的安装:

sudo apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei

接下来需要配置默认locale,输入如下指令并选择zh_CN.UTF-8

sudo dpkg-reconfigure locales

重启Linux后,即可看到程序默认使用中文显示。

GTK下的中文显示

在我们使用一些gtk的程序时,可能会感觉中文字体非常奇怪,看起来非常不舒服。此时我们需要调整gtk默认字体,使程序显示更加优雅。
首先,我们需要gnome-tweaks这个程序,可以控制gtk的显示效果。
安装gnome-tweaks

sudo apt install gnome-tweaks

安装后,输入gnome-tweaks启动该程序。在"字体"选项中,设置"界面文本"与"文档文本"分别为"Noto Sans CJK SC Regular" 和 "Noto Sans Regular"。其他选项无需修改(修改后可能会导致莫名其妙的后果)。
效果类似如下:

自此,大多数GTK程序的中文显示都不会非常奇怪。设置完毕后,也可以将其卸载,以便留出更多空间。

中文输入法

ChromeOS自带的Linux环境是Debian 11,默认使用的是Wayland协议。在这里我们可以使用fcitx5来作为输入法引擎。
使用如下指令安装fcitx5:

sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 fcitx5-frontend-qt5

然后编辑/etc/profile,将下述内容写入配置文件:

export XMODIFIERS=@im=fcitx  
export GTK_IM_MODULE=fcitx  
export QT_IM_MODULE=fcitx

接下来输入 fcitx5-configtool,进入fcitx5的配置页面。
将 拼音 移到已左侧,激活拼音输入。

点击中间的扳手图标,进入拼音的设置。开启云拼音。

重启Linux后,可以使用 Ctrl+Space 来切换输入法(在Linux应用中)。

Appimage Launcher使用

在ChromeOS中,为了避免Linux容器软件包环境太复杂,可以尽量使用Appimage来进行软件的安装。Appimage的优点是将所有依赖库打包至一个软件包内,且不用安装,直接运行即可。
Appimage Launcher是一款可以方便地管理Appimage的应用,它可以将Appimage同一保存至某一目录下,然后创建桌面图标(该图标可以被ChromeOS识别并显示在菜单中)。

Appimage Launcher的安装非常简单,仅需在Github Release页面下载.deb格式的安装包并安装即可。

下载地址

在这个页面选择bionic格式的安装包,然后再"文件"应用中双击即可安装。

SpaceFM 文件管理器

ChromeOS自带的"文件"管理器属实鸡肋,大多功能都没有,并且在效率上也是捉襟见肘。因此,SpaceFM文件管理器出场了。

发现 Linux SpaceFM 文件管理器的威力 - Linux.cn

SpaceFM 是一款轻量、高效的文件管理器,比较适合在Chromebook这种性能不高的机器上使用。

安装仅需一条指令:

sudo apt install spacefm

当然,此时SpaceFM管理器仅能管理Linux容器内的文件。因此,需要将一些目录映射到Linux中。
打开"文件"应用,将"下载内容"目录映射到Linux中:
右键"下载内容"目录,点击"与Linux共享"。

然后,为了方便使用,我们需要创建一个软链接,将下载内容目录映射到Linux用户目录下:
在Linux终端执行:

ln -s /mnt/chromeos/MyFiles/Downloads ~/Downloads

这样,即可在用户目录下直接操作"下载内容"目录。
如需其他目录,同上操作即可。

Stalonetray

在使用ChromeOS自带的Linux时我们会发现,一些会有后台托盘图标的应用程序,关闭后明明在运行,但我们就是找不到托盘在哪。这种情况下,我们需要一个可以当作后台托盘的程序,帮我们显示后台在运行的程序。Stalonetray就是这么一款托盘程序。

安装仅需一条指令:sudo apt install stalonetray
默认配置下,输入stalonetray即可显示后台托盘,但是在一些高分屏设备下托盘就会显得非常小。
在这个情况下,我们只需要在用户目录下新建一个配置文件,并编辑图标大小即可:

cd;
touch .stalonetrayrc
vim .stalonetrayrc

在配置文件中写入如下配置:

background "#F2F2F2"
decorations all
geometry 4x1+0+0
icon_size 64

这样,最终的显示效果就较为客观了。若觉得图标太大,可以按需调整icon_size的值。

QQ

ChromeOS虽然有原生Android的支持,若安装一个QQ HD或者移动版QQ,对于笔记本来说使用体验仍然非常割裂。因此,我们可以使用最新的linuxqq解决该问题。
linuxqq仅需在官网下载最新版的deb安装包并安装即可。使用体验已经非常完美了。

QQ官网

微信 - Wine

张小龙你不做人!!
上文提到,ChromeOS的Linux容器默认使用Wayland协议,因此我试了几个不同的deepin-wine-wechat,皆出现一个大黑遮罩,盖住了微信本体。这个体验就像依托答辩。 这就根本没有使用体验。
最后,我通过虚拟桌面的方式,勉强解决了该问题。
效果如下:

目前大部分功能完善,但是也有一些影响使用的问题:

  • 无法发送图片、文件
  • 无法打开公众号文章等内容
  • 音视频通话无法使用

这也是无奈之举,如果linux下有完善功能的微信,也不会穷途末路去使用Wine来安装Windows 微信。
张小龙你不做人!!!

安装Wine,我们首先要启用32位库的支持。
在linux终端中,输入如下指令。

sudo dpkg --add-architecture i386

然后,刷新软件包列表并安装wine。

sudo apt install -y wine64

安装好后,我们就可以在微信官网下载windows版的微信,然后使用wine进行安装了。

但在此之前,我们需要配置wine的虚拟桌面。在终端输入winecfg并回车,进入wine的设置界面。单击"显示"选项卡,启用虚拟桌面。虚拟桌面的大小按需填写。可以填完保存重新执行winecfg进行测试。

调整到合适大小后,使用wine安装微信。
wine微信的文件注定无法非常顺畅地打开,但我们知道它保存的路径:

~/Documents/'WeChat Files'/wxid_[id号]/FileStorage/File

因此,我们可以创建一个软链接,让我们方便地访问微信的文件。

ln -s ~/Documents/'WeChat Files'/wxid_[id号]/FileStorage/File ~/WXFile

Visual Studio Code

既然是计算机专业了,那么我们的VS Code肯定是必不可少的工具。
VS Code的安装十分简单,仅需在官网下载.deb格式的安装包,双击安装即可。

Visual Studio Code官网

PyCharm/IDEA

Jetbrains家的两款IDE,分别对应Python与Java的程序开发。
两款IDE的安装方式如出一辙,在这里仅介绍一款,另一款以相同的步骤安装即可。

  1. 打开官网,下载所需IDE的.tar.gz包
  2. 将安装包移动至Linux容器内
  3. 解压.tar.gz包至自定义的Application目录内
  4. 运行解压的IDE的bin目录内的xxxxx.sh文件(例pycharm.sh文件)
  5. IDE将会打开,然后点击左下角的齿轮图标,点击"创建桌面条目",即可在启动其中创建图标。

WPS Office

对MS Office兼容性最好的Office套件,并且可以在Linux下使用的,也就属WPS一家了。

Onedriver

Onedriver是一款可以将自己的OneDrive挂载到本地目录的程序。


推荐的Chrome扩展

既然是叫ChromeOS了,不加点扩展还怎么好好地玩Chrome呢?
这里推荐一些可以提升使用体验的扩展程序。

Dark Reader

Dark Reader可以将当前页面适配为夜间模式,在夜晚的时候不会让默认亮色的页面很刺眼,好用的地方是,它现在还可以根据系统设置的亮暗模式来进行自动调整,这样就让整个系统一体性更强了。

Chrome 应用商店:Dark Reader

Tampermonkey

Tampermonkey是一款脚本加载器,可以加载各种脚本,来对页面进行一定程度的修改。

Chrome 应用商店:Tampermonkey

简悦

简悦为当前页面提供了阅读模式,以及多种导出、保存当前文章的功能。

Chrome 应用商店:简悦 - Simpread

Feedbro

Feedbro是一款可以嗅探当前页面的RSS源的扩展程序。不仅如此,它还是一款RSS阅读器,可以订阅并管理RSS源。

Chrome 应用商店:Feedbro

附:将Feedbro Reader界面修改为中文的方法:

  1. 右键这里复制汉化json文件链接
  2. 点击扩展并点击 Open Feedbro Reader
  3. 点击右上角的齿轮图标
  4. 点击Settings中的 Import locate
  5. 输入第一步复制的链接,并点击OK。这样就设置好中文显示了。

Minimal Twitter

它可以简化Twitter的一些不必要的栏目,让整个Twitter看起来更加清爽。

Chrome 应用商店:Minimal Theme for Twitter

Wikiwand

Wikiwand可以让那个丑陋的维基百科变成现代化的页面样式。

Chrome 应用商店:Wikiwand: Wikipedia Modernized

Awesome Screenshot

这个扩展程序可以截图整个页面,也可以区域截图,在分享时比较方便。


值得一用的PWA程序

说起ChromeOS主打的应用程序,还是基于浏览器的PWA渐进式应用程序。这种程序说白了就是一个网页,不过它对于浏览器进行了一些适配,并且可以保存一些程序资源在本地,有些时候可以造成是一款独立APP的假象。若以下应用在浏览其中没有弹出安装按钮,直接在菜单里选择“创建快捷方式”即可,反正都一样。

StackEdit

StackEdit是一款Markdown编辑器,它可以将md保存到多种不同的服务中。

StackEdit官网:StackEdit
StackEdit中文版:StackEdit CN

Twitter

虽然Twitter争议比较大,但是作为PWA应用使用体验还是不错的。

Spotify

Spotify是一款线上的音乐平台。

Spotify官网:Spotify

Gifcap

GIFCap是一款可以录制屏幕并将录制内容保存为gif的程序。

gifcap官网:gifcap

Capture QR Code

Capture QR Code可以使用摄像头扫描二维码并解析。
官网地址:Capture QR Code

Clipchamp

Clipchamp是微软旗下的一款视频编辑软件。使用PWA视频编辑软件的优点是视频的渲染导出均在云端完成,并不消耗本机算力。

Clipchamp官网:Clipchamp

OneDrive

虽然前文介绍了Onedriver,但是在一些场景下,可能仍然需要响应更快的onedrive,因此在这里可以再备一个PWA版本的OneDrive。

OneDrive官网:OneDrive

FyDrop

FyDrop其实就是SnapDrop。这是一款无需安装即可在本地局域网传输文件的程序,仅需双端同时打开该页面即可。

FyDrop:FyDrop

Draw.io

Draw.io是一款流程图绘制软件,它可以绘制多种图。

官网:Draw.io

Photopea

Photopea是一款在线的图片编辑器,类似Photoshop,如果是轻量编辑图片,可以使用Photopea进行编辑操作。

YesPlayMusic

YesPlayMusic是一款高颜值的第三方网易云播放器。
该播放器支持PWA/macOS/Linux/Windows。因此,ChromeOS用户可以使用Linux版AppImage,但是出于性能考虑,有基础的用户可以根据项目作者的提示将项目部署至服务器或Vercel。

Github 项目:YesPlayMusic


后记

在使用了一段时间的Chromebook后,一些内容可能有了与之前不同的见解,这篇文章也因为很多原因一直没有发表。在之后的文章中,我也会分享更多更优雅地使用Chromebook的姿势,请大家敬请期待。

最后修改:2023 年 10 月 09 日
赞助一杯冰阔落