A cursor theme in Linux is a set of files in the Xcursor format that replaces the default arrows, loading indicators, and link pointers. Installation takes a few minutes, but there are nuances: different desktop environments apply themes differently, and a theme that works in GNOME may not be picked up in GTK applications under KDE.
Where to Get Cursor Themes
From the repository — the simplest option. Cursor packages in Debian/Ubuntu have the prefix xcursor- or suffix -cursor-theme:
apt search xcursor
apt search cursor-theme
Popular packages: xcursor-themes (base set), dmz-cursor-theme (minimalist white/black), comixcursors.
From gnome-look.org — the largest resource for Linux themes. The "Cursors" section has hundreds of themes in .tar.gz format. Popular ones: Bibata, Phinger, Capitaine, Breeze, Vimix.
Installing from the Repository
sudo apt install xcursor-themes
After installation the theme appears in /usr/share/icons/ and is immediately available in environment settings.
Manual Installation
Download the theme archive from gnome-look.org or another source and extract it to the appropriate directory.
For the Current User Only
tar xvf cursor-theme.tar.gz -C ~/.local/share/icons/
Or to the legacy directory (also works):
tar xvf cursor-theme.tar.gz -C ~/.icons/
If the folder does not exist — create it:
mkdir -p ~/.local/share/icons/
For All System Users
sudo tar xvf cursor-theme.tar.gz -C /usr/share/icons/
Verify the Structure After Extraction
The theme must be laid out like this:
~/.local/share/icons/ThemeName/cursors/
If extraction produced a nested folder ThemeName/ThemeName/cursors/ — move the contents up one level:
mv ~/.local/share/icons/ThemeName/ThemeName ~/.local/share/icons/ThemeNameFixed
Confirm that the cursors directory with files is present:
ls ~/.local/share/icons/ThemeName/cursors/ | head -5
Applying the Theme in GNOME
Method 1 — via GNOME Tweaks:
sudo apt install gnome-tweaks
Open Tweaks → Appearance → Cursor → select the theme from the list.
Method 2 — via gsettings (terminal):
gsettings set org.gnome.desktop.interface cursor-theme "ThemeName"
Check the current theme:
gsettings get org.gnome.desktop.interface cursor-theme
Change cursor size:
gsettings set org.gnome.desktop.interface cursor-size 32
Standard sizes: 24, 32, 48, 64.
Wayland note: after changing the theme in GNOME under Wayland, logging out and back in may be required — the change does not always apply immediately.
Applying the Theme in KDE Plasma
Via the graphical interface:
System Settings → Workspace → Cursors → select theme → Apply.
If the theme was installed manually to ~/.local/share/icons/, it will appear in the list automatically.
Via terminal:
kwriteconfig5 --file kcminputrc --group Mouse --key cursorTheme "ThemeName"
Apply without restarting:
qdbus org.kde.KWin /KWin reconfigureAll
KDE + GTK applications problem: KDE applies the cursor theme to its own applications, but GTK apps (Firefox, GIMP) may use a different theme. Fix — set an environment variable:
Add to ~/.profile or ~/.bashrc:
export XCURSOR_THEME=ThemeName
export XCURSOR_SIZE=32
Applying the Theme in Xfce
Settings Manager → Mouse and Touchpad → Theme tab → select cursor.
Or via terminal:
xfconf-query -c xsettings -p /Gtk/CursorThemeName -s "ThemeName"
Applying the Theme System-Wide (All Environments)
A universal method — create or edit /usr/share/icons/default/index.theme:
sudo mkdir -p /usr/share/icons/default
sudo nano /usr/share/icons/default/index.theme
File contents:
[Icon Theme]
Inherits=ThemeName
This tells Xcursor to use this theme by default for all applications and environments.
For a specific user — the same in the home directory:
mkdir -p ~/.icons/default
nano ~/.icons/default/index.theme
[Icon Theme]
Inherits=ThemeName
Applying via ~/.Xresources (X11)
For X11-based environments, the theme and size can be set via ~/.Xresources:
nano ~/.Xresources
Add these lines:
Xcursor.theme: ThemeName
Xcursor.size: 32
Apply without restarting:
xrdb -merge ~/.Xresources
Common Problems
Theme does not appear in GNOME Tweaks list Check the directory structure — a cursors/ directory must exist inside the theme folder. If it is missing — the theme was not installed correctly.
Cursor changes only in some applications GTK and Qt applications may use different settings sources. The most reliable approach to apply the theme everywhere is a combination of index.theme and XCURSOR_THEME environment variable.
Theme resets after reboot in KDE A classic bug. Fix — set the theme via update-alternatives:
sudo update-alternatives --config x-cursor-theme
Select the desired theme from the list.
Cursor is too small on HiDPI display Increase the size: in GNOME via gsettings set org.gnome.desktop.interface cursor-size 48, in ~/.Xresources via Xcursor.size: 48.
Quick Reference
| Task | Command / Action |
|---|---|
| Install from repository | sudo apt install xcursor-themes |
| Install manually for user | tar xvf theme.tar.gz -C ~/.local/share/icons/ |
| Install for all users | sudo tar xvf theme.tar.gz -C /usr/share/icons/ |
| Apply in GNOME | gsettings set org.gnome.desktop.interface cursor-theme "Name" |
| Apply in KDE | System Settings → Cursors |
| Apply in Xfce | xfconf-query -c xsettings -p /Gtk/CursorThemeName -s "Name" |
| Apply system-wide | /usr/share/icons/default/index.theme with Inherits=Name |
| Set cursor size | gsettings set org.gnome.desktop.interface cursor-size 32 |