Index: src/hid/platform/Linux/OFGameController.m ================================================================== --- src/hid/platform/Linux/OFGameController.m +++ src/hid/platform/Linux/OFGameController.m @@ -47,10 +47,11 @@ * Joy-Con (R) [057E:2007] * N64 Controller [057E:2019] * Sony Interactive Entertainment DualSense Wireless Controller [054C:0CE6] * 8BitDo Pro 2 Wired Controller [2DC8:3106] * Stadia2SZY-0d6c [18D1:9400] + * Wireless Controller [054C:09CC] */ static const uint16_t vendorIDMicrosoft = 0x045E; static const uint16_t vendorIDNintendo = 0x057E; static const uint16_t vendorIDSony = 0x054C; @@ -64,10 +65,11 @@ static const uint16_t productIDRightJoycon = 0x2007; static const uint16_t productIDN64Controller = 0x2019; /* Sony controllers */ static const uint16_t productIDDualSense = 0x0CE6; +static const uint16_t productIDDualShock4 = 0x09CC; /* Google controllers */ static const uint16_t productIDStadia = 0x9400; @interface OFGameController () @@ -127,11 +129,12 @@ return OFGameControllerCPadRightButton; case BTN_Z: return OFGameControllerCaptureButton; } } else if (vendorID == vendorIDSony && - productID == productIDDualSense) { + (productID == productIDDualSense || + productID == productIDDualShock4)) { switch (button) { case BTN_NORTH: return OFGameControllerNorthButton; case BTN_WEST: return OFGameControllerWestButton;