Ubuntu 24.04 桌面美化与体验优化实战

之前一直用 Windows 做主力开发,后来慢慢切到 Ubuntu。系统装上之后第一感觉就是——能用,但离”好用”差了一截。默认界面说实话有点粗糙,中文输入法也折腾了好一阵子才搞定。这篇文章记录一下我把 Ubuntu 24.04 从”能用”变成”好用”的整个过程。

先做性能优化,再折腾界面

在搞美化之前,先把系统底层理顺。不然界面再好看,用起来卡顿也是白搭。

先降低 swappiness,避免内存还没怎么吃就开始用 swap,系统会突然变卡:

1
2
sudo sysctl vm.swappiness=10
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

再看看开机启动了哪些服务,把不需要的精简掉:

1
systemctl --type=service

顺便装几个常用的监控工具,后面排查问题用得上:

1
sudo apt install htop iotop -y

有个教训分享一下:调优的时候一次只改一个变量,改完记一下做了什么。我之前一口气改了好几个参数,结果系统出问题,死活想不起来是哪个导致的,最后只能全部回滚重来。

WhiteSur Mac 风格美化

选择 WhiteSur 主要是因为它的完成度比较高,安装起来也方便。

安装基础工具

1
2
3
sudo apt update
sudo apt install gnome-tweaks gnome-shell-extensions gnome-shell-extension-manager -y
sudo apt install git sassc libglib2.0-dev-bin -y

这里 gnome-tweaks 是后面调主题和字体必备的工具,sassc 是编译主题需要的。

安装 WhiteSur GTK 主题

1
2
3
git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1
cd WhiteSur-gtk-theme
./install.sh

安装图标主题

1
2
3
4
cd ..
git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git --depth=1
cd WhiteSur-icon-theme
./install.sh -a

安装壁纸

这一步有个小坑——仓库名是 Whitesur-wallpapers(复数),但安装脚本叫 install-wallpapers.sh。我第一次找的时候找了好半天:

1
2
3
4
cd ..
git clone https://github.com/vinceliuice/WhiteSur-wallpapers.git --depth=1
cd WhiteSur-wallpapers
./install-wallpapers.sh

Tweaks 设置

装完之后打开 Tweaks(优化)→ 外观,把主题都选上:

设置项 我用的值
Applications WhiteSur-dark
Shell 需要装 User Themes 扩展后才能选
Icons WhiteSur
Cursor WhiteSur-cursors
界面字体 Noto Sans CJK
等宽字体 Fira Code

几个关键的 GNOME 扩展

通过 Extension Manager 装这几个:

  • User Themes:不装这个,Shell 主题选项是灰色的
  • Dash to Dock:把 Dock 移到底部,加上半透明和圆角
  • Blur My Shell:顶栏和概览的毛玻璃效果,装上之后观感提升很明显

把窗口按钮移到左上角

1
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'

这样就变成 Mac 那种”红黄绿”按钮布局了。

踩过的几个坑

VS Code 的窗口按钮还是在右上角。 一开始以为是主题没生效,后来发现 VS Code 默认用自定义标题栏,不走系统的。去设置里搜 window.titleBarStyle,改成 native 就好了。

Snap 应用不跟随主题。 这个比较头疼,Snap 的沙箱机制导致它读不到系统主题。我的解决办法是尽量用 .deb 或者 Flatpak 版本,能避免不少兼容问题。

Telegram 样式没法统一。 Telegram Desktop 是 Qt 应用,不走 GTK 主题体系,所以它长什么样和系统没关系。这个暂时没什么好办法,只能接受差异。

中文字体和编程字体

Ubuntu 自带的字体说实话不太好看,尤其代码编辑的时候。推荐装一下编程字体:

1
sudo apt install fonts-firacode fonts-jetbrains-mono -y

如果 apt 源里没有的话,也可以手动装:

1
2
3
mkdir -p ~/.local/share/fonts
# 把 .ttf 文件拷到上面这个目录
fc-cache -f -v

Fcitx5 输入法配置

这个应该是整个配置过程中最麻烦的一步。Ubuntu 自带的 IBus 中文体验不太好,换成 Fcitx5 会好很多。

安装

1
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qt fcitx5-frontend-gtk3 -y

环境变量配置(最关键的一步)

环境变量配不对的话,候选框位置会飘到屏幕左上角,或者干脆不显示候选框。我在这上面折腾了好久。

编辑 ~/.pam_environment

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

编辑 ~/.xprofile

1
2
3
4
5
6
7
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

if [ -x "$(command -v fcitx5)" ]; then
fcitx5 -d
fi

验证

改完之后一定要完整注销再重新登录,不然不生效。登录后用这几个命令确认一下:

1
2
3
4
echo $XDG_SESSION_TYPE    # 应该输出 wayland
echo $GTK_IM_MODULE # 应该输出 fcitx
echo $QT_IM_MODULE # 应该输出 fcitx
echo $XMODIFIERS # 应该输出 @im=fcitx

候选框位置不对的排查

如果候选框飘到左上角,可以试试这几个:

  1. 确认 fcitx5-frontend-wayland 装了
  2. 在 fcitx5-configtool 里启用”跟随光标”
  3. 临时把主题切回默认,排除是皮肤兼容性问题
  4. Wayland 下部分 Snap 应用的候选框偏移是个已知限制,目前没什么好办法

快捷键

我个人不太建议大规模改快捷键。原因有几个:一是容易和 VS Code、终端这些开发工具的快捷键冲突;二是改了之后容易忘;三是 Ctrl+C/V 这种操作在 Linux 生态里根深蒂固,改了反而不适应。

加几个最常用的就够了:

快捷键 命令 说明
Super+T gnome-terminal 快速打开终端
Super+E code 快速打开 VS Code
Super+F nautilus 快速打开文件管理器

输入法切换设成 Ctrl+Space 就行,别和系统快捷键冲突。

最后的效果

整体下来,外观已经比较接近 macOS 了,但操作逻辑还是 Linux 那一套,用着顺手。总结一下几个容易踩坑的地方:

  • Snap 应用的主题兼容性确实差,能用 .deb 就用 .deb
  • Fcitx5 的环境变量一定要配对,否则候选框位置会很痛苦
  • Qt 应用(比如 Telegram)不走 GTK 主题,接受就好
  • 调优一次只改一个变量,不然出问题很难排查