PS5 DualSense Acting as a Mouse – Resolving Touchpad Issues for Gaming on Linux

Navigating the intricacies of controller compatibility on PC, especially within the Linux environment, can be a frustrating endeavor. The PS5 DualSense controller, while lauded for its innovative features and immersive feedback, sometimes presents unexpected challenges when used for gaming on platforms like Steam, particularly concerning its touchpad functionality. We understand the issues faced by users like /u/kuxxokrocan on Fedora 42 Gnome, and we are here to provide a comprehensive guide to resolving these problems, ensuring a seamless gaming experience on your system.

Understanding the DualSense Touchpad Issue on Linux

The core problem, as described, stems from the DualSense controller’s touchpad being misidentified or functioning improperly when connected to a Linux system. Instead of registering a simple “touchpad press” as intended by game developers for actions like opening a crafting menu (as in Dying Light), the controller input switches to keyboard and mouse mode. This effectively overrides the desired controller-based input, rendering the touchpad unusable for its intended in-game functions. This issue arises due to how the Linux operating system interprets and handles the DualSense controller’s input signals. Several layers of software, from the kernel drivers to the Steam Input API, are involved in translating the controller’s actions into commands recognized by the game. A misconfiguration or incompatibility at any of these layers can lead to the reported behavior.

Diagnosing the Root Cause of the Input Conflict

Before diving into potential solutions, it’s crucial to accurately pinpoint the source of the conflict. Several factors could be at play, including:

Driver Incompatibilities and Kernel Modules

The Linux kernel relies on specific modules (drivers) to communicate with hardware devices. Outdated, missing, or conflicting drivers can lead to misinterpretation of the DualSense controller’s signals. Specifically, investigate modules related to HID (Human Interface Devices) and Bluetooth (if connecting wirelessly).

Checking Active Kernel Modules

Use the lsmod command in your terminal to list currently loaded kernel modules. Look for modules with names related to hid, bluetooth, joydev, or sony. An incorrectly configured or conflicting module may be the culprit.

Updating Kernel and Drivers

Ensure your kernel is up-to-date. Fedora 42, while a specific version, might benefit from kernel updates that include improved DualSense support. Use your system’s package manager (e.g., dnf upgrade) to update the kernel and related packages.

Steam Input Interference

Steam’s Input API allows for customized controller configurations and remapping. While generally beneficial, it can sometimes interfere with the native DualSense functionality, especially if an incorrect or conflicting profile is active.

Steam Input Configuration

Within Steam, navigate to “Steam” -> “Settings” -> “Controller” -> “General Controller Settings”. Ensure that “PlayStation Configuration Support” is enabled. Experiment with enabling or disabling other configuration support options (e.g., “Xbox Configuration Support”) to see if it resolves the issue.

Game-Specific Input Settings

Right-click on the affected game in your Steam library, select “Properties,” and then navigate to the “Controller” tab. Here, you can override the default Steam Input configuration for that specific game. Try setting the “Override for Dying Light” option to “Disable Steam Input.” This forces the game to rely on the native controller drivers, potentially bypassing the conflicting Steam Input interpretation.

Gnome Desktop Environment Settings

The Gnome desktop environment includes its own input settings, which may conflict with the desired DualSense behavior. Disabling the touchpad within Gnome settings, as mentioned in the original post, unfortunately disables the “push” function as well. This indicates a deeper level of integration where the touchpad is treated as a single, unified device.

Investigating Gnome Input Settings

Open the Gnome settings application and navigate to the “Mouse & Touchpad” section. While completely disabling the touchpad is not the goal, explore the advanced settings for any options that might affect the way the touchpad is interpreted. Look for settings related to “natural scrolling,” “tap to click,” or “edge scrolling,” and experiment with disabling them to see if it has any impact on the DualSense touchpad behavior.

Implementing Effective Solutions: A Step-by-Step Guide

Based on the diagnostic steps, here’s a comprehensive guide to resolving the DualSense touchpad issue on Fedora 42 Gnome:

1. Driver Updates and Configuration

Begin by ensuring your system has the latest drivers and that they are correctly configured.

Updating Kernel and System Packages:

Open a terminal and execute the following commands:

sudo dnf upgrade --refresh
sudo dnf update

This will update all packages, including the kernel, to the latest available versions. Reboot your system after the update.

Checking for Specific DualSense Drivers:

While there isn’t a specific “DualSense driver” package, ensure that the hid-generic and bluetooth modules are properly loaded. You can check this using lsmod | grep hid and lsmod | grep bluetooth. If these modules are not loaded, try manually loading them with sudo modprobe hid-generic and sudo modprobe bluetooth.

2. Steam Input Configuration Adjustments

Steam Input is often a significant factor in these types of issues. Carefully configure Steam Input to ensure proper DualSense support without introducing conflicts.

Enabling PlayStation Configuration Support:

  1. Open Steam.
  2. Go to “Steam” -> “Settings” -> “Controller” -> “General Controller Settings.”
  3. Check the box next to “PlayStation Configuration Support.”
  4. (Optional) Experiment with disabling “Xbox Configuration Support” if it’s enabled.

Game-Specific Steam Input Overrides:

  1. Right-click on the game (e.g., Dying Light) in your Steam library.
  2. Select “Properties.”
  3. Go to the “Controller” tab.
  4. Set the “Override for [Game Name]” option to “Disable Steam Input.”
  5. Alternatively, try setting it to “Enable Steam Input” and then customizing the controller layout within Steam Input to specifically map the touchpad press to the desired action. This can be more complex but offers greater control.

3. Addressing Gnome Input Settings

While completely disabling the touchpad in Gnome settings is not the desired outcome, explore potential settings that might be interfering.

Investigating Gnome Mouse & Touchpad Settings:

  1. Open the Gnome settings application.
  2. Navigate to “Mouse & Touchpad.”
  3. Carefully examine the settings related to “Natural Scrolling,” “Tap to Click,” and “Edge Scrolling.”
  4. Try disabling these options one by one to see if any of them affect the DualSense touchpad behavior.
  5. Consider installing gnome-tweaks (sudo dnf install gnome-tweaks) and exploring its input settings for more granular control.

4. Advanced Configuration: Using udev Rules

For more advanced control over device handling, you can create udev rules. udev is the device manager in Linux, and it allows you to define custom rules for how devices are handled when they are connected.

Creating a Custom udev Rule:

  1. Identify the DualSense controller’s vendor and product IDs. You can find these by running lsusb in the terminal after connecting the controller. Look for a line that describes the “Sony Interactive Entertainment” device. The vendor and product IDs will be in the format VendorID:ProductID.

  2. Create a new udev rule file. Open a terminal and run:

    sudo nano /etc/udev/rules.d/99-dualsense.rules
    
  3. Add a rule to the file that matches the DualSense controller and sets specific properties. Replace VendorID and ProductID with the actual values you found in step 1.

    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="VendorID", ATTRS{idProduct}=="ProductID", ENV{LIBINPUT_IGNORE_DEVICE}="1"
    

    This rule tells udev to ignore the DualSense controller as a standard input device for the libinput library, which is used by Gnome. This might prevent the touchpad from being incorrectly interpreted as a mouse.

  4. Save the file and exit the editor.

  5. Reload the udev rules:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
    
  6. Disconnect and reconnect the DualSense controller.

5. Utilizing ds4drv (If Necessary)

ds4drv is a user-space driver for the DualShock 4 controller, but it can sometimes be helpful for DualSense controllers as well. It provides more granular control over the controller’s behavior.

Installing ds4drv:

Unfortunately, ds4drv might not be readily available in Fedora’s default repositories. You might need to enable a community repository like RPM Fusion to install it. After enabling the repository, you can install ds4drv:

sudo dnf install ds4drv

Configuring ds4drv:

  1. Run ds4drv in the terminal. It will attempt to connect to the DualSense controller.

    sudo ds4drv
    
  2. ds4drv will create a virtual gamepad device. You can then configure this device using jstest or other gamepad configuration tools.

  3. Within ds4drv, you can map the touchpad press to a specific key or action. This allows you to bypass the default touchpad behavior and assign it to the desired in-game function.

Important Note: Using ds4drv might require disabling Steam Input for the game to avoid conflicts.

Troubleshooting and Further Steps

If the above solutions do not fully resolve the issue, consider the following:

  • Check for firmware updates: Although less common on Linux, check if there are any firmware updates available for the DualSense controller itself. These updates might address compatibility issues.
  • Consult online forums and communities: The Linux gaming community is vast and helpful. Search online forums and communities specific to Fedora, Gnome, and Steam for discussions about DualSense compatibility. Other users may have encountered similar issues and found solutions.
  • Report the issue to relevant developers: If you suspect a bug in the kernel driver, Steam Input API, or Gnome desktop environment, consider reporting the issue to the respective developers. Providing detailed information about your system configuration and the steps you’ve taken to troubleshoot the problem can help them identify and fix the bug.

We understand that troubleshooting these types of issues can be complex and time-consuming. However, by systematically following the steps outlined in this guide, you can significantly increase your chances of resolving the DualSense touchpad problem and enjoying a seamless gaming experience on your Fedora 42 Gnome system. We at revWhiteShadow, and kts personal blog site, are committed to providing you with the resources and support you need to overcome these challenges.