我计划制作自己的 Xcursor 主题。我正在查看现有主题并发现一些奇怪的名称,例如08e8e1c95fe2fc01f976f1e063a24ccd
.我找到了一段包含这个名字的代码。
https://vimsky.com/examples/detail/cpp-ex---QHash-reserve-method.html
根据评论,它似乎是硬编码的 MD5 哈希值。但我未能产生这个哈希值。哪些程序需要这些名称?我的系统上安装的所有主题都是这些名称的符号链接,但我找不到任何相关文档。
还有两个光标,分别命名size_bdiag
为右上角/左下角窗口大小调整和size_fdiag
左上角/右下角窗口大小调整。但我无法理解这些名字的含义。也许“diag”的意思是“对角线”,但我仍然无法猜测“b”和“f”的意思。我用谷歌搜索了好几次,但找不到任何文档。那些没有意义吗?原作者是在玩我吗?
答案1
这手册页解释如何使用哈希:
无效 XcursorImageHash ( X图像*图像, 无符号字符哈希[XCURSOR_BITMAP_HASH_SIZE]) 计算图像的哈希值,以在环境发生变化时显示 设置变量 XCURSOR_DISCOVER。
和
光标 XcursorTryShapeBitmapCursor ( 显示*dpy, 像素图源, 像素图蒙版, XColor *前景, X颜色*背景, 无符号整型 x, 无符号整型 y) 如果显示器支持 ARGB 或主题,请尝试加载 使用源参数作为光标进入 Xcursor 的缓存 像素图 ID。源可能不再位于缓存中。光标 使用哈希值来识别所需的图像。
这源代码解释说它不使用md5等,
/* * 计算哈希值。是的,使用起来可能会很好 * 更强的哈希函数,但是MD5和SHA1都是 *为此在时间和空间上有点昂贵, * 并且游标通常足够小,弱 * hash足以区分它们。 */
关于晦涩难懂的助记符,X 鼠标光标的乐趣,特别是 left_ptr_watch有一些插图:
“fdiag”是一个带有箭头的类似反斜杠的符号
“bdiag”是带有箭头的类似正斜杠的符号
然而,这只是一组图像。 X 光标名称(定义在头文件) 在 Xcursor API 中用于各种图像集;有些与原始 X 光标图片完全无关。例如,bdiag/fdiag 似乎是 Qt 名称,它们又可能映射到 X 名称(ymmv- 阅读 Qt 源代码会有所帮助):
Qt::SizeBDiagCursor
到BOTTOM_LEFT_CORNER
Qt::SizeFDiagCursor
到BOTTOM_RIGHT_CORNER
右侧的这些名称对应于 X 源代码中的定义:
#定义XC_bottom_left_corner 12 #定义XC_bottom_right_corner 14
决定在哪里bdiag/fdiag 名称的来源需要一些研究。 Qt 开发人员可能还记得,但话又说回来,也许不记得了。这QCursor 类参考指的是这样的名称ibeam
(在 X 源中不存在,但可能来自 XView,相当于xterm
)。 xterm手册页有一个 X 光标名称列表,没有提及“ibeam”。