Skip to content

Commit 581b03f

Browse files
Force software cursors on nouveau to fix invisible mouse pointer
The nouveau DRM driver does not display the hardware cursor plane on many older NVIDIA GPUs (e.g. Apple's GeForce 320M / MCP89 in the 2010 Mac mini), leaving the mouse pointer invisible on the physical display under Hyprland. Add a hardware fix that detects nouveau as the active DRM driver and forces software cursors via `cursor { no_hardware_cursors = true }` in the user's Hyprland input.conf. Keying on the active driver rather than a GPU-model regex covers every affected system, and the change is idempotent.
1 parent 9cf1852 commit 581b03f

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

install/config/all.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ run_logged $OMARCHY_INSTALL/config/hardware/printer.sh
4040
run_logged $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
4141
run_logged $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
4242
run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh
43+
run_logged $OMARCHY_INSTALL/config/hardware/fix-nouveau-cursor.sh
4344
run_logged $OMARCHY_INSTALL/config/hardware/vulkan.sh
4445

4546
run_logged $OMARCHY_INSTALL/config/hardware/intel/video-acceleration.sh
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Disable hardware cursors when the nouveau driver is in use.
2+
# The nouveau DRM driver does not display the hardware cursor plane on many
3+
# older NVIDIA GPUs (e.g. Apple's GeForce 320M / MCP89 in the 2010 Mac mini),
4+
# leaving the mouse pointer invisible on the physical display under Hyprland.
5+
# Forcing software cursors makes the pointer render correctly.
6+
#
7+
# nouveau only ever binds NVIDIA GPUs, so matching the driver line directly is
8+
# enough to mean "a GPU on this machine is driven by nouveau".
9+
if lspci -k | grep -qi 'Kernel driver in use: nouveau'; then
10+
HYPR_INPUT="$HOME/.config/hypr/input.conf"
11+
12+
if [[ -f $HYPR_INPUT ]] && ! grep -q 'no_hardware_cursors' "$HYPR_INPUT"; then
13+
echo "Detected nouveau driver. Forcing software cursors so the mouse pointer stays visible."
14+
15+
cat >>"$HYPR_INPUT" <<'EOF'
16+
17+
# nouveau does not display the hardware cursor plane on many older NVIDIA GPUs,
18+
# leaving the pointer invisible on the physical display. Render it in software.
19+
cursor {
20+
no_hardware_cursors = true
21+
}
22+
EOF
23+
fi
24+
fi

0 commit comments

Comments
 (0)