1. 项目概述:打造你的专属Linux光标主题
如果你和我一样,是个在Linux桌面上折腾了多年的老用户,那你一定对系统默认的那几套光标主题感到审美疲劳了。无论是经典的“Adwaita”还是KDE的“Breeze”,用久了总觉得少了点个性。今天要聊的这个项目——breeze-hacked-cursor-theme,就是来解决这个痛点的。它不是一个全新的、从零开始的设计,而是基于广受好评的KDE Breeze光标主题,进行了一次深度“魔改”(Hacked),赋予了它全新的视觉风格和极高的自定义能力。
简单来说,这是一个为追求个性化和视觉一致性的Linux用户准备的光标主题包。它的核心价值在于两点:第一,它继承了Breeze主题优秀的辨识度和流畅的动画,基础体验有保障;第二,也是它最吸引我的地方,它提供了一套完整的工具链,让你可以轻松地修改光标的每一个颜色细节,从主色调到边框,甚至内部的小Logo,都能按照你的桌面配色方案进行定制,实现真正意义上的“主题融合”。这对于那些精心搭配了GTK主题、图标包和壁纸的用户来说,无疑是画龙点睛的一笔。
这个项目最初是为“Jam OS”定制的官方光标主题,但它基于X11的标准光标格式,因此兼容性极佳。无论你用的是GNOME、KDE Plasma、XFCE,还是更极致的i3wm、Sway这类平铺式窗口管理器,只要你的桌面环境支持更换光标主题,它就能完美工作。接下来,我会结合自己从下载、编译、自定义到最终应用的全过程,拆解这个项目的每一个环节,并分享其中遇到的坑和解决技巧。
2. 核心设计思路与工作原理解析
2.1 为何选择“魔改”Breeze?
在开源世界里,从头设计一套包含几十种状态、且具备平滑动画的光标主题,是一项工程量巨大且需要极高美术功底的任务。breeze-hacked-cursor-theme聪明地选择了站在巨人的肩膀上。Breeze是KDE社区现代化的视觉设计语言的一部分,其光标设计有几个突出优点:形状识别度高(指针、手型、等待圈等状态一目了然)、动画流畅平滑(特别是等待动画和拖拽动画)、尺寸齐全(通常包含24x24, 32x32, 48x48, 64x64等标准尺寸)。直接复用这些经过千锤百炼的矢量源文件,保证了成品的基础质量。
所谓“魔改”,其技术本质是对SVG矢量图形文件的批量色彩替换。光标主题的源文件通常是一系列SVG格式的矢量图,每个文件对应一种光标状态(如arrow.svg,wait.svg)。Breeze主题的SVG文件内部,使用了特定的颜色标识(比如用特定的色值代表“主色”、“底色”)。breeze-hacked项目通过脚本,将这些预设的标识色批量替换成用户指定的新颜色,然后再将这些SVG文件编译成XCursor格式(Linux系统实际使用的光标格式)。这种方法在保证图形形状和动画关键帧不变的前提下,高效地实现了视觉风格的彻底转变。
2.2 项目结构剖析:从源码到可安装主题
拿到项目源码后,理解其目录结构是第一步。通常的结构会是这样:
breeze-hacked-cursor-theme/ ├── src/ # 源代码目录 │ ├── svg/ # 原始的SVG矢量图文件,按尺寸分类 │ │ ├── 32x32/ │ │ │ ├── arrow.svg │ │ │ ├── busy.svg │ │ │ └── ... │ │ └── 64x64/ │ │ └── ... │ └── cursors/ # 光标映射配置文件(如index.theme) ├── tools/ # 工具脚本目录 │ └── recolor-cursor.sh # 核心的重着色脚本 ├── Makefile # 自动化构建和安装脚本 ├── assets/ # 预览图等资源 └── README.md # 项目说明文档这个结构清晰地展示了工作流:tools/recolor-cursor.sh脚本读取src/svg/下的文件,进行颜色替换,生成临时的新SVG文件,然后调用xcursorgen等工具,根据src/cursors/下的配置文件,将SVG编译成XCursor格式的位图光标文件,最终打包成一个标准的光标主题文件夹,可以通过Makefile一键安装到系统或用户目录。
注意:不同版本的项目结构可能略有差异,但“源SVG -> 处理脚本 -> 编译工具 -> 成品主题”这个核心流水线是不变的。动手前先花几分钟浏览一遍目录,能避免很多后续的路径错误。
2.3 理解光标主题的核心:index.theme 文件
光有光标图片还不够,系统需要知道如何调用它们。这就是index.theme文件的作用,它通常位于主题包的根目录或cursors/子目录下。这是一个遵循 freedesktop.org 标准的INI格式文件。对于breeze-hacked,这个文件可能包含如下关键信息:
[Icon Theme] Name=Breeze Hacked Comment=A hacked version of Breeze cursor theme Inherits=core [Icon Theme:Default] Size=32 Scale=1Name和Comment:决定了你在系统设置-外观-光标主题下拉菜单里看到的名字和描述。Inherits=core:这是一个安全网。它声明如果本主题缺少某种光标状态(比如一个非常冷门的类型),系统会回退到最基本的“core”主题去查找,避免出现光标缺失(显示为叉号或空白)的情况。[Icon Theme:Default]部分定义了默认的光标尺寸。一个成熟的主题会为不同尺寸定义多个节,比如[Icon Theme:32],[Icon Theme:48],以适配不同的屏幕DPI。
在自定义时,如果你想让你制作的主题在系统列表中有一个独特的名字,修改这个文件里的Name和Comment字段是必要的。我通常会把Name改成类似 “Breeze Hacked - Midnight Blue” 这样的名字,方便自己识别。
3. 环境准备与依赖安装详解
在开始编译和自定义之前,我们需要搭建好所需的环境。这个过程就像木匠开工前要磨好刨子和凿子一样,工具顺手了,后面效率才高。
3.1 核心依赖工具说明
项目明确指出了两个核心依赖:Inkscape和xcursorgen。它们各自扮演着不可替代的角色。
Inkscape:这是一个开源的矢量图形编辑器,功能类似于Adobe Illustrator。在这里,
recolor-cursor.sh脚本内部会调用Inkscape的命令行接口,来执行SVG文件颜色的批量查询和替换。它并非用于手动绘图,而是作为“图形处理引擎”被脚本驱动。- 安装命令(基于Debian/Ubuntu系):
sudo apt update sudo apt install inkscape - 安装命令(基于Fedora/RHEL系):
sudo dnf install inkscape - 验证安装:在终端输入
inkscape --version,能输出版本信息即表示成功。
- 安装命令(基于Debian/Ubuntu系):
xcursorgen:这是X Window System光标工具集的一部分,它的作用是将文本格式的光标配置(
.cursor文件,定义了动画帧序列和热点位置)和对应的图片文件(通常是PNG)编译成二进制的XCursor文件(.cur或无扩展名)。这是生成最终可用主题的关键一步。- 安装命令(Debian/Ubuntu):
sudo apt install x11-apps - 安装命令(Fedora):
sudo dnf install xorg-x11-xcursorgen - 注意:在某些极简的发行版或服务器版中,这个包可能默认不安装。如果后续
make步骤报错找不到xcursorgen命令,请用上述命令安装。
- 安装命令(Debian/Ubuntu):
3.2 获取项目源代码
既然要“魔改”,我们当然需要源代码。通常我们直接从GitHub克隆最新的版本。
git clone https://github.com/jamrizzi/breeze-hacked-cursor-theme.git cd breeze-hacked-cursor-theme如果你遇到网络问题无法克隆,也可以去项目的GitHub页面手动下载ZIP压缩包并解压。不过我更推荐使用git clone,因为这样方便后续更新。进入项目目录后,先别急着运行命令,用ls -la看看文件是否完整,特别是确认Makefile、recolor-cursor.sh和src/目录是否存在。
3.3 依赖检查与问题预排查
在实际操作中,依赖问题是最常见的拦路虎。这里分享几个排查技巧:
- “命令未找到”错误:如果运行
make或./recolor-cursor.sh时提示command not found,首先用which命令检查依赖是否在PATH里,例如which inkscape。如果已安装但找不到,可能需要注销再登录,或者检查安装过程中是否有错误。 - Inkscape命令行模式问题:较新版本的Inkscape在命令行行为上可能有细微变化。如果脚本报错与Inkscape相关,可以尝试单独运行一个简单的Inkscape命令测试:
inkscape --export-type=png --export-filename=test.png src/svg/32x32/arrow.svg。这个命令尝试导出一张PNG图片,如果成功,说明Inkscape命令行功能正常。 - 权限问题:
make install通常需要将主题文件复制到系统级的/usr/share/icons/目录,这需要sudo权限。如果你只想为当前用户安装,可以后续通过修改Makefile中的安装路径,或手动将编译好的主题文件夹复制到~/.icons/(如果不存在则创建)或~/.local/share/icons/目录。后者不需要sudo。
4. 深度自定义:使用 recolor-cursor.sh 脚本
这是整个项目最有趣、最能体现个性化的环节。recolor-cursor.sh脚本是这个项目的“魔法棒”。
4.1 脚本参数详解与配色方案设计
运行./recolor-cursor.sh --help可以看到完整的参数说明。核心是四个颜色参数:
--accent-color:强调色。这是光标中最醒目、最活跃部分的颜色。例如,指针的箭头尖端、手型光标的手指部分、文本输入光标的竖线。通常建议选择你的GTK主题中的主要高亮色或对比色。--base-color:基底色。这是光标图形中面积较大的主体颜色。它决定了光标的整体色调。应该与你的桌面整体色调或窗口装饰色相协调。--border-color:边框色。用于勾勒光标形状的轮廓线。通常设置为与基底色有较高对比度的颜色(比如深色基底配浅色边框,或浅色基底配深色边框),以确保光标在任何背景下都有清晰的边缘。--logo-color:Logo色。这个比较特殊,在Breeze的某些光标状态(比如移动、链接选择)中,内部会有一个微小的“Breeze”风格Logo。这个参数就是修改它的颜色。你可以让它与强调色一致,或者选择一个中性色。
如何选择颜色?我的经验是:先确定基底色和边框色这一对组合,保证基础辨识度;再用强调色画龙点睛。例如,对于一个深色主题:
- 方案A(经典深色):
(基底:深灰蓝,边框:浅灰,强调:冰蓝,Logo:北极蓝)--base-color "#2e3440" --border-color "#d8dee9" --accent-color "#88c0d0" --logo-color "#81a1c1" - 方案B(暗黑炫彩):
(基底:深黑紫,边框:淡紫,强调:亮紫,Logo:亮蓝)--base-color "#1a1b26" --border-color "#c0caf5" --accent-color "#bb9af7" --logo-color "#7aa2f7"
你可以使用在线配色工具生成和谐的色板,然后从中选取。记住,颜色值必须是标准的6位十六进制RGB码,带#号。
4.2 执行重着色与编译流程
设计好配色后,就可以运行脚本了。命令格式如下:
./recolor-cursor.sh --accent-color "#88c0d0" --base-color "#2e3440" --border-color "#d8dee9" --logo-color "#81a1c1"运行这个命令后,脚本会开始一系列自动化操作:
- 解析参数:读取你输入的颜色值。
- 扫描SVG:遍历
src/svg/目录下所有尺寸子目录里的.svg文件。 - 颜色替换:使用Inkscape的命令行功能,查找SVG文件中预定义的特定颜色(这些颜色值在脚本内部硬编码或通过变量定义,对应原始Breeze主题的配色),并将其替换为你指定的新颜色。这个过程会生成一批修改后的SVG文件,通常放在一个临时目录或
build/目录下。 - 调用编译链:脚本随后会触发
Makefile中定义的编译流程,利用xcursorgen等工具,将处理后的SVG文件转换为对应尺寸和状态的XCursor文件。 - 打包主题:所有生成的XCursor文件,连同必要的配置文件(如
index.theme),会被组织成一个标准的光标主题文件夹,名称通常是breeze-hacked或包含颜色信息的变体。
整个过程会在终端输出大量信息,显示正在处理哪个文件、执行什么命令。只要没有报错(Error),只有警告(Warning)通常是安全的,可以忽略。处理时间取决于你的CPU速度和SVG文件的数量,一般在一两分钟内完成。
实操心得:强烈建议在运行重着色脚本前,先进行一次默认编译。即在项目根目录直接运行一次
make(不安装)。这可以验证你的编译环境(Inkscape, xcursorgen)是否完全正确,避免因为环境问题导致重着色脚本运行失败,却难以定位根源。
4.3 自定义进阶:手动修改与微调
脚本提供了基础的换色,但如果你有更精细的需求呢?比如,我想让“等待”旋转动画的每一帧颜色渐变,或者修改某个特定光标(如“不可用”的圆圈斜杠)的形状?这就需要手动干预了。
- 定位源文件:首先,你需要找到你想修改的光标对应的SVG文件。例如,
busy.svg通常代表等待动画(旋转圈),unavail.svg代表不可用状态。它们在src/svg/下的各个尺寸目录里都有。 - 使用Inkscape图形界面编辑:用Inkscape打开这个SVG文件。例如:
在Inkscape中,你可以查看图形的图层结构(通常“对象”面板)。Breeze的动画光标,其动画效果是通过在单个SVG文件中包含多个图层(每一帧一个图层)来实现的。你可以选中某一帧的图形,直接修改其填充色、描边色,甚至调整形状。inkscape src/svg/32x32/busy.svg - 理解动画原理:XCursor的动画,是由一系列静态光标文件按顺序快速播放实现的。在
src/cursors/目录下,你会找到很多.cursor文件。打开一个看看,比如wait.cursor:
它定义了播放# 第一列是图片文件名,第二列是延迟(毫秒),第三列是热点坐标(x y) 32/busy-01 50 15 15 32/busy-02 50 15 15 ...busy-01,busy-02... 这些图片,每帧延迟50毫秒。如果你想调整动画速度,可以修改这里的延迟数值。如果你想增加或减少帧数,就需要相应地修改SVG(增加或删除图层)并更新这个.cursor文件列表。 - 重新编译:手动修改SVG或
.cursor文件后,需要重新编译。由于你绕过了recolor-cursor.sh脚本,你需要直接调用底层的编译命令。通常项目Makefile里会有对应的目标,比如make build或make all。运行它即可。
警告:手动修改是对项目更深层的“Hack”,需要你对SVG格式和光标主题结构有一定了解。修改前最好备份原文件。每次修改后,务必在多个尺寸(32x32, 64x64)下测试效果,因为小尺寸下的细节可能会模糊或消失。
5. 安装、应用与系统集成
编译成功后,你会得到一个完整的主题文件夹(例如build/breeze-hacked或直接在根目录生成的breeze-hacked)。接下来就是把它安装到系统,并让桌面环境识别它。
5.1 系统级安装与用户级安装
系统级安装(推荐,所有用户可用): 项目提供的
make install命令默认就是进行系统级安装。它通常会将主题文件夹复制到/usr/share/icons/目录下。这需要管理员权限。sudo make install执行成功后,你的自定义主题(例如
Breeze Hacked)就应该出现在所有用户的主题选择列表里了。用户级安装(仅当前用户): 如果你没有
sudo权限,或者只想给自己用,可以手动安装。- 将生成的主题文件夹(如
breeze-hacked)复制到用户专属的图标目录:
(如果cp -r breeze-hacked ~/.icons/ # 或者 cp -r breeze-hacked ~/.local/share/icons/~/.icons目录不存在,就创建它:mkdir -p ~/.icons) - 然后,你需要更新图标缓存,让桌面环境知道新主题的存在:
如果提示gtk-update-icon-cache ~/.icons/breeze-hackedgtk-update-icon-cache命令未找到,你可能需要安装libgtk-3-bin或类似包。
- 将生成的主题文件夹(如
5.2 在不同桌面环境中应用主题
安装完成后,如何切换光标主题,取决于你的桌面环境。
GNOME / Ubuntu (使用GNOME Shell):
- 打开“设置”(Settings)。
- 进入“外观”(Appearance) 或 “辅助功能”(Accessibility) 设置(不同版本位置可能不同)。
- 找到“光标”(Cursor) 或 “指针大小和速度”(Pointer size and speed) 选项。
- 在下拉菜单中,你应该能看到
Breeze Hacked或你自定义的名称。选择它即可。
KDE Plasma:
- 打开“系统设置”(System Settings)。
- 进入“外观”(Appearance) -> “光标”(Cursor)。
- 在光标主题列表中点击你的主题。KDE通常能即时预览。
XFCE:
- 打开“设置管理器”(Settings Manager)。
- 打开“鼠标和触摸板”(Mouse and Touchpad)。
- 切换到“主题”(Theme) 标签页,在下拉列表中选择。
窗口管理器 (如 i3wm, Sway, AwesomeWM): 在这些没有传统桌面环境设置界面的情况下,需要通过配置文件或命令行工具设置。
- 命令行工具:可以使用
gsettings(适用于GTK应用) 和qt5ct/qt6ct(适用于Qt应用) 来分别设置。- 设置GTK应用光标:
gsettings set org.gnome.desktop.interface cursor-theme 'Breeze Hacked' - 设置Qt应用光标:需要安装并运行
qt5ct或qt6ct图形化工具,在“字体”或“界面”设置中指定光标主题。或者通过环境变量(不推荐,可能不完整)。
- 设置GTK应用光标:
- 在窗口管理器配置中设置:有些窗口管理器支持直接配置。例如,在Sway的配置
~/.config/sway/config中,可以添加:
其中seat * xcursor_theme Breeze\ Hacked 3232是光标尺寸。
- 命令行工具:可以使用
重要提示:更改光标主题后,可能需要重启正在运行的应用程序,甚至注销再重新登录,新的光标主题才会在所有程序中生效。特别是那些在你更改设置时已经打开的程序(如终端、浏览器),它们可能仍然使用旧的光标缓存。
5.3 验证与故障排查
应用主题后,如何确认是否成功?
- 快速验证:在桌面上移动鼠标,观察指针是否变成了新主题的样式。打开一个窗口,将鼠标移到窗口边框、标题栏按钮、文本输入框内,观察光标形状变化(应变为调整大小、手型、I型光标等)。
- 检查主题目录:确认主题文件确实在正确的位置,并且结构完整。
你应该能看到ls -la /usr/share/icons/breeze-hacked/ # 系统级 ls -la ~/.icons/breeze-hacked/ # 用户级cursors/目录(里面是各种.cur或.png文件)、index.theme文件等。 - 检查图标缓存:如果主题不显示,可能是缓存问题。尝试删除旧的缓存文件并重建:
# 系统级 sudo rm /usr/share/icons/breeze-hacked/icon-theme.cache sudo gtk-update-icon-cache /usr/share/icons/breeze-hacked/ # 用户级 rm ~/.icons/breeze-hacked/icon-theme.cache gtk-update-icon-cache ~/.icons/breeze-hacked
6. 常见问题与实战排坑记录
即便流程清晰,在实际操作中还是会遇到各种“坑”。下面是我在多次使用和定制breeze-hacked-cursor-theme过程中遇到的一些典型问题及解决方法。
6.1 编译与安装阶段问题
问题1:运行make或./recolor-cursor.sh时报错,提示找不到inkscape或xcursorgen命令。
- 排查:这是最经典的依赖未安装问题。首先用
which inkscape和which xcursorgen确认命令是否存在。 - 解决:根据前文“环境准备”部分的指引,安装对应的软件包。对于
xcursorgen,不同发行版的包名可能略有差异,如果x11-apps找不到,可以尝试搜索xcursorgen。
问题2:make install时提示“权限被拒绝”。
- 排查:默认安装路径
/usr/share/icons/需要sudo权限。 - 解决:在命令前加上
sudo:sudo make install。如果不想用sudo,请参考上文“用户级安装”部分,手动复制到~/.icons/。
问题3:重着色脚本运行成功,但生成的光标颜色和预期不符,或者部分颜色没变。
- 排查:脚本替换的是SVG文件中特定颜色值的填充和描边。如果原始SVG中某个元素的颜色不是用这些预设的色值,而是用了渐变、图案或者通过CSS类定义,脚本可能无法替换它。
- 解决:
- 打开一个未修改的原始SVG文件(如
src/svg/32x32/arrow.svg),用Inkscape的“编辑XML编辑器”查看其代码,搜索颜色值(如fill:#xxxxxx),看看脚本要替换的颜色值具体是什么。然后对比脚本的源代码,看它是否正确地匹配了这些值。 - 这可能需要你手动修改
recolor-cursor.sh脚本,添加或修正颜色替换规则。这属于高级定制,需要一定的脚本和SVG知识。
- 打开一个未修改的原始SVG文件(如
6.2 应用与显示阶段问题
问题4:在系统设置里看到了新主题,但应用后光标没变化,或者只有部分程序变了。
- 排查:这是典型的缓存和混合环境问题。Linux桌面可能同时存在GTK2、GTK3、GTK4、Qt5、Qt6等多种应用框架,它们管理光标的方式和缓存位置可能不同。
- 解决:
- 清除所有可能的缓存:
# 清除GTK缓存 rm -rf ~/.cache/icon-cache.kcache # 尝试查找并删除其他可能的缓存文件 find ~/.cache -name "*cursor*" -o -name "*icon*" | xargs rm -f # 更新图标缓存(非常重要!) gtk-update-icon-cache ~/.icons/breeze-hacked # 用户级 sudo gtk-update-icon-cache /usr/share/icons/breeze-hacked # 系统级 - 设置环境变量(临时测试):在终端中运行以下命令,然后从这个终端启动一个程序(如
gedit),看看光标是否变化。
如果这样有效,说明主题本身没问题,是全局设置未生效。你需要确保你的桌面环境或窗口管理器正确设置了这些环境变量。export XCURSOR_THEME=Breeze_Hacked export XCURSOR_SIZE=32 gedit & - 注销并重新登录:这是让所有桌面组件重新加载主题的最可靠方法。
- 清除所有可能的缓存:
问题5:光标在HiDPI(高分辨率)屏幕上显得太小或模糊。
- 排查:
breeze-hacked主题可能默认只提供了标准尺寸(如32px)。在高分屏上,系统需要更大尺寸(如64px, 96px)的光标来保持清晰。 - 解决:
- 检查生成的主题目录下是否有
cursors/子目录,以及里面是否有不同命名的文件(可能通过后缀区分尺寸)。标准的XCursor主题会为同一光标状态提供多个尺寸的文件。 - 在项目源码的
src/svg/目录下,查看是否有64x64、96x96这样的子目录。如果有,那么编译脚本应该已经生成了多尺寸光标。你需要确保编译时启用了这些尺寸。 - 在系统设置中,检查是否有“光标大小”的滑块,将其调大。这会让系统在可用尺寸中选择更大的版本进行缩放。
- 如果主题本身不包含大尺寸,你可能需要手动编辑
Makefile或编译脚本,确保它处理了所有SVG尺寸目录。
- 检查生成的主题目录下是否有
问题6:某些特定应用程序(如虚拟机、游戏、Wine程序)中光标主题不生效。
- 排查:这些程序可能使用了自己的光标绘制逻辑,或者运行在独立的图形上下文(如XWayland)中,没有遵循系统的光标设置。
- 解决:
- 虚拟机:通常需要在虚拟机客户机操作系统内部单独设置光标主题。
- Wine程序:Wine有自己的光标管理。可以尝试在Wine配置(运行
winecfg)中设置光标主题,或者将你的光标文件复制到Wine的驱动目录下(操作复杂,效果不稳定)。 - Steam游戏/原生游戏:许多游戏使用硬编码的光标或自己的素材,不受系统主题影响。对此通常无能为力。
6.3 自定义进阶问题
问题7:修改了SVG文件并重新编译后,光标没有更新。
- 排查:可能是编译输出目录没有清理,新旧文件混在一起;或者图标缓存没有更新。
- 解决:
- 在项目根目录运行
make clean(如果Makefile提供了这个目标),或者手动删除build/目录(如果存在)。 - 重新运行
make或你的编译命令。 - 重新安装主题(
sudo make install或复制到用户目录)。 - 务必更新图标缓存:
gtk-update-icon-cache /path/to/your/theme。 - 注销重登录。
- 在项目根目录运行
问题8:想分享自己定制的主题给朋友,应该分享哪些文件?
- 解答:不需要分享整个项目源码。只需要分享最终生成的那个主题文件夹(例如
breeze-hacked-midnight-blue)。这个文件夹里包含了编译好的所有XCursor文件、index.theme以及可能的cursor.theme文件。对方只需要将这个文件夹放到他的~/.icons/或/usr/share/icons/目录,然后更新图标缓存即可使用。
折腾Linux桌面美化,光标主题是最后一块拼图,也是最能体现细节和个性的地方。breeze-hacked-cursor-theme这个项目提供了一个绝佳的起点,它平衡了易用性和可定制性。从简单的脚本换色到深度的SVG编辑,你可以根据自己的技能和热情,决定投入多少。整个过程最让我享受的,不仅仅是最终那个独一无二的光标,更是这种“理解系统运行机制,并亲手改造它”的掌控感。如果你在跟随本文操作时遇到了上面没提到的问题,或者有更酷的自定义方案,最好的去处就是该项目的GitHub仓库的Issues页面,那里的社区或许能给你启发。