System-wide application of specific cursor theme (Simple-and-Soft)

Hi there!

My preferred cursor theme is applied almost everywhere BUT so far not with system-wide scope. My preferred theme is one of the standard themes. It is: Simple-and-Soft.

In some contexts I still get cursors of another theme:
Right after I have logged into my system there is a loading-cursor of a different theme. This loading-cursor is also applied when I open specific documents (e.g. odt-files) by clicking on them in Thunar. (The correct loading-cursor is used e.g. by pamac or LibreOffice.)
Also of another theme are the cursors that appear when one hovers over the edges of windows on the screen. (When I hover over the corners of windows everything is fine.)

What needs to be done such that my preferred cursor theme is applied with system-wide scope?

What I did so far:
(1) xfce4-mouse-settings/Theme: I chose: Default
(2) /usr/share/icons/default/index.theme: In this file I wrote 2 lines containing the following content:

[Icon Theme]
Inherits=Simple-and-Soft

(3) /etc/lightdm/lightdm-gtk-greeter.conf: In this file I changed one line to: cursor-theme-name = Simple-and-Soft

Output of the inxi command:

System:
  Kernel: 6.1.22-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1-x86_64
    root=UUID=c2ef179e-3eed-4200-ba12-98251d0c2d41 rw
    drm.edid_firmware=eDP-1:edid/edid.bin quiet apparmor=1 security=apparmor
    udev.log_priority=3
  Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm
    v: 4.18.0 vt: 7 dm: LightDM v: 1.32.0 Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: SLIMBOOK product: Executive v: Standard
    serial: <superuser required>
  Mobo: SLIMBOOK model: Executive v: Standard serial: <superuser required>
    UEFI: American Megatrends LLC. v: N.1.05GRU05 date: 10/20/2022
Battery:
  ID-1: BAT0 charge: 82.1 Wh (100.0%) condition: 82.1/82.1 Wh (100.0%)
    volts: 17.7 min: 15.5 model: standard type: Li-ion serial: <filter>
    status: full
Memory:
  RAM: total: 15.37 GiB used: 2.54 GiB (16.5%)
  RAM Report: permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: 12th Gen Intel Core i7-12700H bits: 64 type: MST AMCP
    arch: Alder Lake gen: core 12 level: v3 note: check built: 2021+
    process: Intel 7 (10nm ESF) family: 6 model-id: 0x9A (154) stepping: 3
    microcode: 0x429
  Topology: cpus: 1x cores: 14 mt: 6 tpc: 2 st: 8 threads: 20 smt: enabled
    cache: L1: 1.2 MiB desc: d-8x32 KiB, 6x48 KiB; i-6x32 KiB, 8x64 KiB
    L2: 11.5 MiB desc: 6x1.2 MiB, 2x2 MiB L3: 24 MiB desc: 1x24 MiB
  Speed (MHz): avg: 2596 high: 2700 min/max: 400/4600:4700:3500 scaling:
    driver: intel_pstate governor: powersave cores: 1: 2700 2: 2700 3: 2700
    4: 2700 5: 627 6: 2700 7: 2700 8: 2700 9: 2700 10: 2700 11: 2700 12: 2700
    13: 2700 14: 2700 15: 2700 16: 2700 17: 2700 18: 2700 19: 2700 20: 2700
    bogomips: 107560
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat
    arch_capabilities arch_lbr arch_perfmon art avx avx2 avx_vnni bmi1 bmi2
    bts cat_l2 cdp_l2 clflush clflushopt clwb cmov constant_tsc cpuid
    cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est
    f16c flexpriority flush_l1d fma fpu fsgsbase fsrm fxsr gfni hfi ht hwp
    hwp_act_window hwp_epp hwp_notify hwp_pkg_req ibpb ibrs ibrs_enhanced ibt
    ida intel_pt invpcid invpcid_single lahf_lm lm mca mce md_clear mmx
    monitor movbe movdir64b movdiri msr mtrr nonstop_tsc nopl nx ospke pae pat
    pbe pcid pclmulqdq pdcm pdpe1gb pebs pge pku pln pni popcnt pse pse36 pts
    rdpid rdrand rdseed rdt_a rdtscp rep_good sdbg sep serialize sha_ni smap
    smep smx split_lock_detect ss ssbd sse sse2 sse4_1 sse4_2 ssse3 stibp
    syscall tm tm2 tpr_shadow tsc tsc_adjust tsc_deadline_timer tsc_known_freq
    umip vaes vme vmx vnmi vpclmulqdq vpid waitpkg x2apic xgetbv1 xsave xsavec
    xsaveopt xsaves xtopology xtpr
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced IBRS, IBPB: conditional, RSB
    filling, PBRSB-eIBRS: SW sequence
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Alder Lake-P Integrated Graphics vendor: Tongfang Hongkong
    driver: i915 v: kernel arch: Gen-12.2 process: Intel 10nm built: 2021-22+
    ports: active: eDP-1 empty: DP-1, DP-2, DP-3, DP-4, HDMI-A-1
    bus-ID: 00:02.0 chip-ID: 8086:46a6 class-ID: 0300
  Device-2: NVIDIA GA107M [GeForce RTX 3050 Ti Mobile]
    vendor: Tongfang Hongkong driver: N/A alternate: nouveau non-free: 530.xx+
    status: current (as of 2023-03) arch: Ampere code: GAxxx
    process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 4
    link-max: lanes: 16 bus-ID: 01:00.0 chip-ID: 10de:25a0 class-ID: 0302
  Device-3: Chicony FHD Webcam type: USB driver: uvcvideo bus-ID: 3-6:3
    chip-ID: 04f2:b75c class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 21.1.8 compositor: xfwm v: 4.18.0 driver: X:
    loaded: modesetting alternate: fbdev,vesa dri: iris gpu: i915
    display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 2560x1600 s-dpi: 96 s-size: 677x423mm (26.65x16.65")
    s-diag: 798mm (31.43")
  Monitor-1: eDP-1 model: BOE Display 0x0aca built: 2021 res: 2560x1600
    hz: 90 dpi: 85 gamma: 1.2 size: 768x480mm (30.24x18.9") diag: 400mm (15.7")
    ratio: 16:10, 15:9 modes: 2560x1600
  API: OpenGL Message: Unable to show GL data. Required tool glxinfo missing.
Audio:
  Device-1: Intel Alder Lake PCH-P High Definition Audio
    vendor: Tongfang Hongkong driver: snd_hda_intel v: kernel
    alternate: snd_sof_pci_intel_tgl bus-ID: 00:1f.3 chip-ID: 8086:51c8
    class-ID: 0403
  API: ALSA v: k6.1.22-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 0.3.67 status: off tools: pw-cli
  Server-3: PulseAudio v: 16.1 status: active tools: pacat,pactl,pavucontrol
Network:
  Device-1: Intel Alder Lake-P PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:51f0 class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: Intel AX201 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 3-10:4
    chip-ID: 8087:0026 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 3.66 TiB used: 2.28 TiB (62.4%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: TeamGroup model: TM8FP6001T
    size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: U0708A3 temp: 33.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 type: USB vendor: Hitachi
    model: HDS5C3030BLE630 size: 2.73 TiB block-size: physical: 4096 B
    logical: 4096 B type: HDD rpm: 5940 serial: <filter> scheme: MBR
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 953.57 GiB size: 937.53 GiB (98.32%) used: 72.06 GiB (7.7%)
    fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2 label: N/A
    uuid: c2ef179e-3eed-4200-ba12-98251d0c2d41
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 312 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
    label: NO_LABEL uuid: F1BA-3B3B
  ID-3: /run/media/susurration/TOSHIBA EXT raw-size: 2.73 TiB
    size: 2.73 TiB (100.00%) used: 2.21 TiB (81.1%) fs: ntfs dev: /dev/sda1
    maj-min: 8:1 label: TOSHIBA EXT uuid: BA70934070930275
Swap:
  Alert: No swap data was found.
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 1 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 2-0:1 info: Super-speed hub ports: 1 rev: 3.1 speed: 20 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Hub-3: 3-0:1 info: Hi-speed hub with single TT ports: 12 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-4: 3-3:2 info: Genesys Logic Hub ports: 2 rev: 2.1 speed: 480 Mb/s
    chip-ID: 05e3:0610 class-ID: 0900
  Device-1: 3-6:3 info: Chicony FHD Webcam type: Video driver: uvcvideo
    interfaces: 4 rev: 2.0 speed: 480 Mb/s power: 500mA chip-ID: 04f2:b75c
    class-ID: 0e02 serial: <filter>
  Device-2: 3-10:4 info: Intel AX201 Bluetooth type: Bluetooth driver: btusb
    interfaces: 2 rev: 2.0 speed: 12 Mb/s power: 100mA chip-ID: 8087:0026
    class-ID: e001
  Hub-5: 4-0:1 info: Super-speed hub ports: 4 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Device-1: 4-2:2 info: Toshiba America External Disk 3TB type: Mass Storage
    driver: usb-storage interfaces: 1 rev: 3.0 speed: 5 Gb/s power: 144mA
    chip-ID: 0480:d010 class-ID: 0806 serial: <filter>
  Hub-6: 4-4:3 info: Genesys Logic GL3523 Hub ports: 2 rev: 3.2 speed: 5 Gb/s
    chip-ID: 05e3:0620 class-ID: 0900
  Device-1: 4-4.1:4 info: Realtek Card Reader type: Mass Storage
    driver: usb-storage interfaces: 1 rev: 3.0 speed: 5 Gb/s power: 800mA
    chip-ID: 0bda:0316 class-ID: 0806 serial: <filter>
Sensors:
  System Temperatures: cpu: 53.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 354 Uptime: 58m wakeups: 3945 Init: systemd v: 252
  default: graphical tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7
  Packages: pm: pacman pkgs: 1284 libs: 379 tools: pamac pm: flatpak pkgs: 0
  Shell: Bash v: 5.1.16 running-in: xfce4-terminal inxi: 3.3.26

Content of /usr/share/icons/Simple-and-Soft/index.theme:

[Icon Theme]
Name=Simple-and-Soft
Comment=A simple and soft X cursor theme
Example=left_ptr_watch

Content of /usr/share/icons/Simple-and-Soft/cursors/:

00008160000006810000408080010102
028006030e0e7ebffc7f7070c0600140
03b6e0fcb3499374a867c041f52298f0
14fef782d02440884392942c11205230
2870a09082c103050810ffdffffe0204
3ecb610c1bf2410f44200f48c40d3599
4498f0e0c1937ffe01fd06f973665830
6407b0e94181790501fd1e167b474872
640fb0e74195791501fd1ed57b41487f
arrow_up
based_arrow_up
c7088f0f3e6c8088236ef8e1e3e70000
copy
crossed_circle
d9ce0ab605698f320427677b458ad60b
e29285e634086352946a0e7090d73106
fcf1c3c7cd4491d801f1e1c78f100000
fleur
hand
hand1
hand2
left_ptr
left_ptr_watch
link
move
pirate
question_arrow
sb_h_double_arrow
top_left_corner
top_right_corner
watch
xterm

Thanks for your help!

Cheers
Rana

Hi @Rana ,

I wonder whether you installed the theme. Did you choose the /usr/share/theme folder or the /usr/share/icons/ directory?

You can also always create a directory .themes in your home folder and choose the theme from Settings β†’ Apearence β†’ Theme.

Hope it help, regards

You can try setting it manually with the following file and content:
~/.config/gtk-3.0/settings.ini

[Settings] gtk-cursor-theme-name=Simple-and-Soft

And Since its XFCE you can also try this command to set it:

xfconf-query --channel xsettings --property /Gtk/CursorThemeName --set Simple-and-Soft

We can also try and get it to load extra early (before the window manager) by adding the following line to ~/.Xresources

Xcursor.theme: Simple-Soft

And lastly you can also try setting the environment variable XCURSOR_THEME like

XCURSOR_THEME=Simple-and-Soft

I dont necesarilly suggest using all of the above. Try and use as few as possible to get your desired result. Your future self would thank you to avoid a later β€œI’ve unset it in 3 places. Why cant I change my cursor theme?!”

Thanks for your suggestions, @j8a and @cscs!

@j8a:
The cursor theme was installed in the course of my Manjaro installation. If I understood it correctly the files of this cursor theme are located only in /usr/share/icons/ and no file of this cursor theme should be located in another directory. I also reinstalled the cursor theme from the AUR but that did not change anything.

@cscs:
Unfortunately none of these configurations did the trick.

I do not have any idea how to proceed to solve the problem. What information could I provide such that somebody could figure out what to do?

I could finally solve the problem!

So what I did to apply my preferred cursor theme (Simple-and-Soft) with system-wide scope was:

(1) xfce4-mouse-settings/Theme: I chose: Default
(2) /usr/share/icons/default/index.theme: In this file I wrote 2 lines containing the following content:

[Icon Theme]
Inherits=Simple-and-Soft

(3) /etc/lightdm/lightdm-gtk-greeter.conf: In this file I changed one line to: cursor-theme-name = Simple-and-Soft
(4) /usr/share/icons/Simple-and-Soft/cursors/: First, I made a backup of that directory. Second, I looked up which cursors are used by a more comprehensive cursor theme (e.g. Breeze) than the one I prefer to use (Simple-and-Soft). Third, for each cursor that is provided by the more comprehensive cursor theme (Breeze) but not my preferred cursor theme (Simple-and-Soft) I created a link (in /usr/share/icons/Simple-and-Soft/cursors/) that points to an appropriate cursor of my preferred theme. For example: Breeze provides a cursor with the name β€œwait” but Simple-and-Soft does not. But Simple-and-Soft provides a cursor with the name β€œwatch” that I find appropriate also as a wait cursor. So I created a link using the following command:

# command structure: ln -s [TARGET] [LINK_NAME]
ln -s watch wait

(5) System restart.

See also: Cursor themes - ArchWiki

I used a bash file with the following content to create the links (you might want to create different links):

#!/bin/bash
ln -s left_ptr_watch 08e8e1c95fe2fc01f976f1e063a24ccd
ln -s hand 9d800788f1b08800ae810202380a0822
ln -s question_arrow 1081e37283d90000800003c07f3ef6bf
ln -s question_arrow 3085a0e285430894940527032f8b26df
ln -s left_ptr_watch 00000000000000020006000e7e9ffc3f
ln -s hand 9081237383d90e509aa00f00170e968f
ln -s question_arrow a2a266d0498c3104214a47bd64ab0fc8
ln -s question_arrow alias
ln -s fleur all-scroll
ln -s left_ptr arrow
ln -s top_right_corner bottom_left_corner
ln -s top_left_corner bottom_right_corner
ln -s arrow_up bottom_side
ln -s fleur cell
ln -s left_ptr center_ptr
ln -s crossed_circle circle
ln -s hand closedhand
ln -s hand color-picker
ln -s sb_h_double_arrow col-resize
ln -s question_arrow context-menu
ln -s fleur cross
ln -s fleur crosshair
ln -s left_ptr default
ln -s question_arrow dnd_copy
ln -s hand dnd_move
ln -s crossed_circle dnd-no-drop
ln -s hand dnd-none
ln -s arrow_up down-arrow
ln -s question_arrow draft
ln -s sb_h_double_arrow e-resize
ln -s sb_h_double_arrow ew-resize
ln -s hand fcf21c00b30f7e3f83fe0dfd12e71cff
ln -s crossed_circle forbidden
ln -s hand grab
ln -s hand grabbing
ln -s left_ptr_watch half-busy
ln -s sb_h_double_arrow h_double_arrow
ln -s question_arrow help
ln -s xterm ibeam
ln -s sb_h_double_arrow left-arrow
ln -s question_arrow left_ptr_help
ln -s sb_h_double_arrow left_side
ln -s top_right_corner ne-resize
ln -s top_right_corner nesw-resize
ln -s crossed_circle no-drop
ln -s crossed_circle not-allowed
ln -s arrow_up n-resize
ln -s arrow_up ns-resize
ln -s top_left_corner nw-resize
ln -s top_left_corner nwse-resize
ln -s hand openhand
ln -s hand pencil
ln -s fleur plus
ln -s hand pointer
ln -s hand pointing_hand
ln -s left_ptr_watch progress
ln -s sb_h_double_arrow right-arrow
ln -s left_ptr right_ptr
ln -s sb_h_double_arrow right_side
ln -s arrow_up row-resize
ln -s arrow_up sb_v_double_arrow
ln -s top_left_corner se-resize
ln -s fleur size_all
ln -s left_ptr size-bdiag
ln -s top_right_corner size_bdiag
ln -s left_ptr size-fdiag
ln -s top_left_corner size_fdiag
ln -s left_ptr size-hor
ln -s sb_h_double_arrow size_hor
ln -s left_ptr size-ver
ln -s arrow_up size_ver
ln -s sb_h_double_arrow split_h
ln -s arrow_up split_v
ln -s arrow_up s-resize
ln -s top_right_corner sw-resize
ln -s fleur tcross
ln -s xterm text
ln -s left_ptr top_left_arrow
ln -s arrow_up top_side
ln -s arrow_up up-arrow
ln -s arrow_up v_double_arrow
ln -s xterm vertical-text
ln -s watch wait
ln -s question_arrow whats_this
ln -s sb_h_double_arrow w-resize
ln -s move zoom-in
ln -s move zoom-out

Now /usr/share/icons/Simple-and-Soft/cursors/ contains much more:

00000000000000020006000e7e9ffc3f
00008160000006810000408080010102
028006030e0e7ebffc7f7070c0600140
03b6e0fcb3499374a867c041f52298f0
08e8e1c95fe2fc01f976f1e063a24ccd
1081e37283d90000800003c07f3ef6bf
14fef782d02440884392942c11205230
2870a09082c103050810ffdffffe0204
3085a0e285430894940527032f8b26df
3ecb610c1bf2410f44200f48c40d3599
4498f0e0c1937ffe01fd06f973665830
5c6cd98b3f3ebcb1f9c7f1c204630408
6407b0e94181790501fd1e167b474872
640fb0e74195791501fd1ed57b41487f
9081237383d90e509aa00f00170e968f
9d800788f1b08800ae810202380a0822
a2a266d0498c3104214a47bd64ab0fc8
alias
all-scroll
arrow
arrow_up
b66166c04f8c3109214a4fbd64a50fc8
based_arrow_up
bottom_left_corner
bottom_right_corner
bottom_side
c7088f0f3e6c8088236ef8e1e3e70000
cell
center_ptr
circle
closedhand
color-picker
col-resize
context-menu
copy
cross
crossed_circle
crosshair
d9ce0ab605698f320427677b458ad60b
default
dnd-copy
dnd_move
dnd-no-drop
dnd-none
down-arrow
draft
e29285e634086352946a0e7090d73106
e-resize
ew-resize
fcf1c3c7cd4491d801f1e1c78f100000
fcf21c00b30f7e3f83fe0dfd12e71cff
fleur
forbidden
grab
grabbing
half-busy
hand
hand1
hand2
h_double_arrow
help
ibeam
left-arrow
left_ptr
left_ptr_help
left_ptr_watch
left_side
link
move
ne-resize
nesw-resize
no-drop
not-allowed
n-resize
ns-resize
nw-resize
nwse-resize
openhand
pencil
pirate
plus
pointer
pointing_hand
progress
question_arrow
right-arrow
right_ptr
right_side
row-resize
sb_h_double_arrow
sb_v_double_arrow
se-resize
size_all
size-bdiag
size_bdiag
size-fdiag
size_fdiag
size-hor
size_hor
size-ver
size_ver
split_h
split_v
s-resize
sw-resize
tcross
text
top_left_arrow
top_left_corner
top_right_corner
top_side
up-arrow
v_double_arrow
vertical-text
wait
watch
whats_this
w-resize
xterm
zoom-in
zoom-out