前言

前段时间在B站发现了一个很可爱的鼠标主题, 出处在这里, 解压之后自然发现只能在Windows下使用, 虽然已经在Windows下更换使用了一段时间, 但是觉得没能在自己的Linux主力机上使用还是有点可惜, 于是打算自己进行移植.

1. 直接转换

我在深度论坛上发现了这样一篇文章, 并照着它的步骤进行了移植, 这篇文章写得很好, 整个过程都相当正常的走完, 成功的将.ani文件移植成X11光标文件. 可当我正打算使用的时候却发现有一点不对劲.

不正常的鼠标

相比之下, 正常的KDE桌面X11光标大小都在12px-72px之间, 而这个光标主题大小居然高达160px, 大的根本没法用.

2. 使用Greenfish Icon Editor Pro进行编辑之后安装

我在尝试使用GIMP和RealWorld Cursor Editor编辑光标文件后均以失败告终, 因为GIMP在修改图像大小时会改变图像性质, 不能保存为X11光标, RealWorld Cursor Editor改变光标大小的步骤十分繁琐, 对于单个光标文件需要逐个修改7-8帧的动态光标来说这个工作量已经不太可能一个人完成.

最后我找到了一个更好的图像编辑器, 能够相对更方便的编辑光标文件, 并且可以双向转换Windows和Linux的光标主题文件

安装方式:deb下载地址, Arch可以直接在Aur找到, 包名为 gfie-bin.

2.1 修改大小

安装完成后打开一个ani文件, 右键点击页, 选择页属性

选择页属性

在其中自定义大小之后点确定保存

自定义大小

另存为X11光标文件

另存为

2.2 创建链接映射

Windows动态光标只有很少的文件数量, 但是一个X11光标主题却包含大量不同名字的光标文件, 其中大部分是链接文件. 此时需要对照一个主题对原有的文件进行逐一链接. 我对照的是默认的breeze主题, 并事先给原有的光标文件改了名字.

重命名后的原始文件

此时建立一个这样的目录

1
2
3
4
5
6
.
├── cursors/
├── index.theme(主题引导文件)
├── *make(链接脚本文件)
└── origin/
└── 原始的光标文件

按照系统中已有的主题编写链接脚本, 以下是链接脚本的一部分, 完整的链接脚本可以在项目的github主页获取

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#! /usr/bin/bash

#copy orgin files to cursors dir
cp ./origin/* ./cursors/

#make hard links
ln ./cursors/waiting ./cursors/00000000000000020006000e7e9ffc3f # progress
ln ./cursors/vertical_resize ./cursors/00008160000006810000408080010102 # size_ver
ln ./cursors/forbidden ./cursors/03b6e0fcb3499374a867c041f52298f0 # circle
ln ./cursors/waiting ./cursors/08e8e1c95fe2fc01f976f1e063a24ccd # progress
ln ./cursors/normal ./cursors/1081e37283d90000800003c07f3ef6bf # copy
ln ./cursors/link ./cursors/3085a0e285430894940527032f8b26df # alias
ln ./cursors/waiting ./cursors/3ecb610c1bf2410f44200f48c40d3599 # progress
ln ./cursors/normal ./cursors/4498f0e0c1937ffe01fd06f973665830 # dnd-move
ln ./cursors/person_select ./cursors/5c6cd98b3f3ebcb1f9c7f1c204630408 # help
ln ./cursors/normal ./cursors/6407b0e94181790501fd1e167b474872 # copy
ln ./cursors/link ./cursors/640fb0e74195791501fd1ed57b41487f # alias
ln ./cursors/normal ./cursors/9081237383d90e509aa00f00170e968f # dnd-move
ln ./cursors/link ./cursors/9d800788f1b08800ae810202380a0822 # pointer
ln ./cursors/link ./cursors/a2a266d0498c3104214a47bd64ab0fc8 # alias
ln ./cursors/link ./cursors/alias
ln ./cursors/move ./cursors/all-scroll
ln ./cursors/normal ./cursors/arrow # default
ln ./cursors/normal ./cursors/b66166c04f8c3109214a4fbd64a50fc8 # copy
ln ./cursors/diagonal_resize2 ./cursors/bottom_left_corner
ln ./cursors/diagonal_resize1 ./cursors/bottom_right_corner
ln ./cursors/vertical_resize ./cursors/bottom_side
ln ./cursors/move ./cursors/cell
ln ./cursors/point_hand ./cursors/center_ptr
ln ./cursors/forbidden ./cursors/circle # not-allowed
ln ./cursors/normal ./cursors/closedhand # dnd-move
ln ./cursors/handwriting ./cursors/color-picker
ln ./cursors/horizonal_resize ./cursors/col-resize
ln ./cursors/normal ./cursors/context-menu
ln ./cursors/normal ./cursors/copy

运行脚本就能在cursors目录中创建完整的主题文件, 此时将这个文件夹放在/usr/share/icons/下, 就能在KDE设置中看到光标主题.