28-Feb-2024 11:00
Make cursors great again#
I switched recently my Laptop to a ThinkPad P52 with a 4k display. The display resolution is 3840x2160 pixels on a 15" display - this makes all graphical objects very tiny. I cannot use the NVidia driver at the moment (very likely a buffer being to small in the illumos kernel), I have to use the VESA driver. Also I do use the NsCDE desktop, so I don't have fancy settings available for cursor sizes.

The cursor sizes were not a big deal, since NsCDE has a nice font selector, other things became a bit more difficult like firefox (about:config, layout.css.devPixelsPerPx=1.4).

For LibreOffice I needed to set SAL_FORCEDPI=200 in the environment, for generic QT applications I had to set QT_SCALE_FACTOR=2.

For GTK applications, I changed ~/.gtkrc-2.0 and ~/.config/gtk-3.0/settings.init to include especially

[Settings]
gtk-cursor-theme-size = 20
gtk-double-click-time = 750
For the mouse cursors it was pretty complicated. NsCDE ships some custom cursors in /usr/local/share/NsCDE/icons/cursors which I have resized with ImageMagick.

The basic cursor instead got changed with some other ways. In $HOME/.fonts/ I have created a file called fonts.alias, the file contains:

cursor -xfree86-cursor-medium-r-normal--0-180-218-218-p-0-adobe-fontspecific
Query with xset q and look at the Font Path. In my case $HOME/.fonts was not in it, so I would add it with xset +fp ~/.fonts .Initially you want to rehash your font cache:
fc-cache -r && xset fp rehash
For testing you could now set your new cursor:
xsetroot -cursor_name left_ptr

However you need to persist this in ~/.NsCDE/Xset.conf, append the following two lines to it:

xset +fp ~/.fonts
xsetroot -cursor_name left_ptr
Log out and log in again and enjoy big cursors.
Posted by Olaf Bohlen  Permalink