From e2343fd7ffb802db34bb487032d31bbea304c4db Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Wed, 14 Oct 2026 14:13:37 +0200 Subject: [PATCH] cursor-theme: Make the default cursor theme inherit Adwaita MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In a COSMIC session (cosmic-comp 1.9.0) the cursor icon for resizing with corners are missing, and with Firefox 157 as native Wayland client, the mouse cursor shrinks when it moves over a Firefox window. The user journal show cosmic-comp logging: Unable to load xcursor, using fallback cursor err=NoDefaultCursor Neither XCURSOR_THEME nor the GTK setting cursor-theme is set, so cosmic-comp (xcursor crate), GTK (libwayland-cursor), and X11 clients (libXcursor) all look up the cursor theme named “default”. MarIuX has no `/usr/share/icons/default`, and no bee package owns that path. So each side falls back to its own built-in arrow: cosmic-comp draws its 64×64 fallback image (visible arrow 21×31 px, `src/backend/render/cursor.rs`, lines 85–112 at epoch-1.9.0), while libwayland-cursor in Firefox draws the classic X11 core cursor (8×14 px). Install `cursor-theme/index.theme` as `$usr_prefix/share/icons/default/index.theme`, making the theme “default” inherit Adwaita, whose cursors are already installed in `/usr/share/icons/Adwaita/cursors` (adwaita-icon-theme-3.34.0-1). None of the three libraries searches `/etc`, but all of them search `/usr/share/icons`. Debian does the same, there via the alternative x-cursor-theme. As the cursor theme is site policy, put it into mxtools like `applications-defaults/defaults.list`. Tested on *machdoch* with a nested cosmic-comp (COSMIC_BACKEND=winit on Xvfb) and Firefox, with the same file found through XCURSOR_PATH=$W/icons:/usr/share/icons:/usr/share/pixmaps The fallback warning is gone. Firefox now shows the Adwaita arrow (15×21 px), and cosmic-comp the Adwaita resize cursor at the window border. Link: https://specifications.freedesktop.org/icon-theme-spec/latest/ Assisted-by: claude-opus-5.5 (Claude Code) --- cursor-theme/index.theme | 2 ++ install.sh | 1 + 2 files changed, 3 insertions(+) create mode 100644 cursor-theme/index.theme diff --git a/cursor-theme/index.theme b/cursor-theme/index.theme new file mode 100644 index 00000000..cda0b19a --- /dev/null +++ b/cursor-theme/index.theme @@ -0,0 +1,2 @@ +[Icon Theme] +Inherits=Adwaita diff --git a/install.sh b/install.sh index 1ff39652..071400ae 100755 --- a/install.sh +++ b/install.sh @@ -188,6 +188,7 @@ install_data logrotate/logrotate.conf "$DESTDIR$sysconfdir/l install_data logrotate/logrotate.service "$DESTDIR$systemdunitdir/logrotate.service" install_data logrotate/logrotate.timer "$DESTDIR$systemdunitdir/logrotate.timer" install_data applications-defaults/defaults.list "$DESTDIR$usr_prefix/share/applications/defaults.list" +install_data cursor-theme/index.theme "$DESTDIR$usr_prefix/share/icons/default/index.theme" install_data crashkernel/crashkernel.service "$DESTDIR$systemdunitdir/crashkernel.service" install_exec crashkernel/crash-recovery.sh "$DESTDIR$root_sbindir/crash-recovery.sh" install_exec checktrust/checktrust "$DESTDIR$usr_sbindir/checktrust"