更大的 X11 光标适合 4k 屏幕

更大的 X11 光标适合 4k 屏幕

当显示器是 4k 屏幕时,默认的 X11 光标非常小。如何使用更大的光标?要求:

  • 必须在普通 X11 下工作(无 KDE、Gnome 或类似的膨胀)
  • 至少应该有一个更大的根窗口光标,即“箭头”
  • 应该可以在 FreeBSD 上运行

我查看了 Xcursor(3) 手册页,其中讨论了该~/.icons目录,但我不确定要放置哪些文件以及如何激活它们。我的系统上有一堆目录,例如

/usr/local/share/icons/oxygen/64x64
/usr/local/share/icons/oxygen/64x64/categories
/usr/local/share/icons/oxygen/64x64/apps
/usr/local/share/icons/oxygen/64x64/devices
/usr/local/share/icons/oxygen/64x64/emotes
/usr/local/share/icons/oxygen/64x64/mimetypes
/usr/local/share/icons/oxygen/64x64/emblems
/usr/local/share/icons/oxygen/64x64/actions
/usr/local/share/icons/oxygen/64x64/places
/usr/local/share/icons/oxygen/64x64/status
/usr/local/share/icons/oxygen/48x48
/usr/local/share/icons/oxygen/48x48/emotes
/usr/local/share/icons/oxygen/48x48/devices
/usr/local/share/icons/oxygen/48x48/apps
/usr/local/share/icons/oxygen/48x48/mimetypes
/usr/local/share/icons/oxygen/48x48/status
/usr/local/share/icons/oxygen/48x48/emblems
/usr/local/share/icons/oxygen/48x48/actions
/usr/local/share/icons/oxygen/48x48/places
/usr/local/share/icons/oxygen/48x48/categories
/usr/local/share/icons/oxygen/48x48/animations

每个文件都包含大量图标*.png

答案1

尽管 dirkt 提供的方法确实有效,但生成的缩放位图光标看起来很难看。有一种方法可以让 X 使用 Type 1 光标字体,并适当地重新缩放它。

默认的 X 光标字体既作为位图字体 (file cursor.pcf.gz) 又作为 Type 1 字体 (file cursor.pfa) 存在。下面提供的方法使位图字体对系统不可用,并将字体名称转换cursor为适当重新缩放的 Type 1 字体的别名(通过文件fonts.alias)。

  1. 卸载包含该文件的包 /usr/share/fonts/misc/cursor.pcf.gz (可以命名为cursor-miscfonts-misc或类似名称),或者直接删除该文件并禁用对此包的升级,以便 X 服务器无法使用该位图字体。运行mkfontdir /usr/share/fonts/misc以从字体目录中删除位图字体。

  2. 确保包含该文件的包/usr/share/fonts/Type1/cursor.pfa (可以命名为xfree86-type1fonts-type1或类似名称)已安装。

  3. 创建包含以下内容的文件/usr/share/fonts/Type1/fonts.alias ,将 801 调整为所需的光标大小。

    cursor -xfree86-cursor-medium-r-normal--0-801-0-0-p-0-adobe-fontspecific
    
  4. 运行fc-cache -rxset fp rehash 以使 Type 1 字体可供系统使用。

答案2

首先,您不需要删除或阻止更新旧的cursor.pcf文件。

接下来,如果您的系统已cursor.pfa正确安装在系统已使用的任何现有字体目录中(即它具有有效的fonts.dir文件并且已经在服务器字体路径中),那么您不需要安装任何新文件。

如果您确实需要安装cursor.pfa,可以在任何目录中进行安装,包括主目录的子目录(只要它与运行 Xserver 的系统位于同一系统上,并且可由 Xserver 进程访问)。

cursor因此,一旦可缩放光标字体位于字体路径中的某个位置,您就可以在系统上的任何文件中放置字体名称的别名fonts.alias,包括主目录的新子目录中的文件。

最后,您需要在别名规范中包含屏幕的实际分辨率!这并不重要,但它很有帮助,因为它意味着您选择的光标字体点大小将与您在屏幕上看到的指针的物理大小产生有意义的关系 - 即 12pt 光标字体将生成出现的光标指针屏幕上的高度为 12 点!

我目前正在全屏模式下使用 Xquartz(当然是在 macOS 上),具有 32 英寸显示屏的全显示分辨率(即我通过运行 来启动 Xquartz xrandr -s 6016x3384。该cursor.pfa文件已由 Xquartz 安装,并且已在现有fonts.dir文件中提到它安装的目录,已经可以找到了xlsfonts,当然cursor.pcf也已经安装了。

我碰巧有一个~/.fonts目录,我在其中安装了下载的其他一些字体,所以我只是fonts.alias在那里创建了文件,如下所示。您可以看到,我为像素分辨率为每英寸 218 像素的屏幕选择了 18pt 光标字体:

$ cat .fonts/fonts.alias                                                                                                 
cursor -xfree86-cursor-medium-r-normal--0-180-218-218-p-0-adobe-fontspecific

我的字体路径已经包含此目录,因此我只需重新哈希我的字体路径即可进行测试:

$ xset q | sed -n /Font/,+1p   
Font Path:
  /Users/woods/.fonts/,/opt/X11/share/fonts/TTF/,/opt/X11/share/fonts/OTF/,/opt/X11/share/fonts/Type1/,/Library/Fonts/,/opt/X11/share/fonts/100dpi/:unscaled,/opt/X11/share/fonts/misc/:unscaled
$ fc-cache -r
$ xset fp rehash

现在位图和可缩放“光标”字体都可用,但可缩放字体是第一个:

$ xlsfonts -Cl -fn cursor
DIR  MIN  MAX EXIST DFLT PROP ASC DESC NAME
-->    0  255  some    0   29  26   28 -xfree86-cursor-medium-r-normal--0-180-218-218-p-0-adobe-fontspecific
-->    0  153   all    0    9  16   17 cursor

最后,您需要在(重置字体路径后)中执行以下操作~/.xinitrc来重置根窗口光标(因为 Xserver 将以原始的微小位图光标启动):

xsetroot -cursor_name left_ptr

您可以xsetroot立即运行该命令并将光标移动到根窗口上以查看效果。如果您启动任何新程序,它也将使用新的缩放光标。您需要重新启动窗口管理器和所有正在运行的程序,以使它们采用新的缩放光标,因此最简单的方法是注销并再次登录。

有趣的是,由于 macOS 的怪异魔力,我现在在 macOS 世界中遇到了超大的光标。

答案3

一种方法是用更大的版本替换包含光标形状的 X 标准字体文件。为此,获取字体源文件cursor.bdf,使用 放大它bdfresize,然后手动配置应用程序/WM/根窗口以使用此字体,或替换旧的字体文件。

有关详细信息,请参见例如这里


在 中fvwm,您还可以使用CursorStyle设置所需的字体字形甚至图像。我还没有尝试过这个,但我认为这不适用于自行更改光标的 X 应用程序。

答案4

看一下http://gnome-look.org并找到一个具有 48x48 或 64x64 像素的光标。编辑.Xresources

Xcursor.theme: Name
Xcursor.size: Size

将光标存档解压到 ~/.icons/.

然后运行xrdb -load .Xresources,但可能需要重新启动 X 才能完成。取决于你的WM。

相关内容