Anyone know how to get the Xbox 360 chatpad working on Linux?

Specifically Arch. I found a GitHub page for xbox360wirelesschatpad but the installation instructions are for Windows. I know LibUSB is available but the vjoy driver doesn’t seem to be. I feel like there’s probably some comparable package.

There might also be an alternative way to do this all together. There seem to be a few methods of doing this on Windows using third party applications.


I am mostly doing this for the novelty of it but I feel like it could be useful for navigating my PC from my couch or responding to messages through Steam.

It seems like this whole process is pretty plug and play with the Xbox One controller and it’s chatpad but that’s not what I am after.

DrDominate,
@DrDominate@lemmy.world avatar

This driver doesn’t work for the 360 controller but it does support the Xbox one chatpad according to it’s feature list. github.com/medusalix/xone

golden_zealot,
@golden_zealot@lemmy.ml avatar

Just in case you were not aware and you find it more suitable for your needs, they do sell devices such as this for very cheap:

ae01.alicdn.com/…/2-4G-Wireless-Original-Rii-i8-M…

They are recognized as a typical wireless keyboard on most systems.

CorrodedCranium,
@CorrodedCranium@leminal.space avatar

I own a few of those Rii keyboards. I feel like the chatpad feels a bit higher quality and I like navigating media apps with a controller. It would also be good for playing games.

Appreciate the suggestion though

electricprism,

X360 keeb was peak performance, so many trash messages on this bad boy, slapsaroof.jpg

pezhore,
@pezhore@lemmy.ml avatar

Man, if you figure it out, I’d be blown away. I’d love to use it instead of my janky wireless keyboard for my PC/TV setup.

DudeDudenson,

How far away are you from the computer? I use a Logitech keyboard mouse combo for mine and while it worked on and off at the start I put the dongle on a short USB extension and pointed it towards the couch and it’s been flawless

pezhore,
@pezhore@lemmy.ml avatar

I’m not that far, it’s mostly the battery life of my wireless keyboard that’s really poor. I had a Logitech k830 that was amazing, but looks like they don’t make it anymore and the replacement K400 chews through AA batteries.

f4f4f4f4f4f4f4f4,

I wonder if your K400 is defective. I have the old black & white K400r (refurbished?) and the batteries last for many months even when I forget to switch it off.

flashgnash,

I found steam controller is the pinnacle for remote controlling a PC/TV. Typing with the dual touchpads once you get used to it is amazingly fast and easy

They’re hard to get nowadays though

pezhore,
@pezhore@lemmy.ml avatar

Luckily, I have three of them 🤣

I’ll try picking it up again, I do absolutely love the touch pad + trigger to click - I just never got very far with typing.

flashgnash,

You can also click the touchpads to select the keys

Dagamant,

I remember looking around when I found my old one in a box. I didn’t get it to work but I’m sure it’s possible.

CorrodedCranium,
@CorrodedCranium@leminal.space avatar

I feel the same way. There have been a lot of projects using the Kinect on Linux so I figured some work would have been done for the chatpad.

I imagine there is some easy way I am missing like simply using some kind of controller remapping program.

Dagamant,
CorrodedCranium, (edited )
@CorrodedCranium@leminal.space avatar

Look promising but when running npm i

I get the following error message


<span style="color:#323232;">npm WARN old lockfile 
</span><span style="color:#323232;">npm WARN old lockfile The package-lock.json file was created with an old version of npm,
</span><span style="color:#323232;">npm WARN old lockfile so supplemental metadata must be fetched from the registry.
</span><span style="color:#323232;">npm WARN old lockfile 
</span><span style="color:#323232;">npm WARN old lockfile This is a one-time fix-up, please be patient...
</span><span style="color:#323232;">npm WARN old lockfile 
</span><span style="color:#323232;">npm WARN deprecated ini@1.3.5: Please update to ini >=1.3.6 to avoid a prototype pollution issue
</span><span style="color:#323232;">npm WARN deprecated har-validator@5.1.5: this library is no longer supported
</span><span style="color:#323232;">npm WARN deprecated debug@4.2.0: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
</span><span style="color:#323232;">npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
</span><span style="color:#323232;">npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
</span><span style="color:#323232;">npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
</span><span style="color:#323232;">npm ERR! code 1
</span><span style="color:#323232;">npm ERR! path /home/Luke/.custom_scripts/chatpad-linux/node_modules/@serialport/bindings
</span><span style="color:#323232;">npm ERR! command failed
</span><span style="color:#323232;">npm ERR! command sh -c prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
</span><span style="color:#323232;">npm ERR! gyp info it worked if it ends with ok
</span><span style="color:#323232;">npm ERR! gyp info using node-gyp@3.8.0
</span><span style="color:#323232;">npm ERR! gyp info using node@18.18.2 | linux | x64
</span><span style="color:#323232;">npm ERR! gyp ERR! configure error 
</span><span style="color:#323232;">npm ERR! gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
</span><span style="color:#323232;">npm ERR! gyp ERR! stack   File "<string>", line 1
</span><span style="color:#323232;">npm ERR! gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
</span><span style="color:#323232;">npm ERR! gyp ERR! stack                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
</span><span style="color:#323232;">npm ERR! gyp ERR! stack SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
</span><span style="color:#323232;">npm ERR! gyp ERR! stack 
</span><span style="color:#323232;">npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:422:12)
</span><span style="color:#323232;">npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:517:28)
</span><span style="color:#323232;">npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1098:16)
</span><span style="color:#323232;">npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:303:5)
</span><span style="color:#323232;">npm ERR! gyp ERR! System Linux 6.8.4-arch1-1
</span><span style="color:#323232;">npm ERR! gyp ERR! command "/usr/bin/node" "/home/Luke/.custom_scripts/chatpad-linux/node_modules/.bin/node-gyp" "rebuild"
</span><span style="color:#323232;">npm ERR! gyp ERR! cwd /home/Luke/.custom_scripts/chatpad-linux/node_modules/@serialport/bindings
</span><span style="color:#323232;">npm ERR! gyp ERR! node -v v18.18.2
</span><span style="color:#323232;">npm ERR! gyp ERR! node-gyp -v v3.8.0
</span><span style="color:#323232;">npm ERR! gyp ERR! not ok
</span><span style="color:#323232;">
</span><span style="color:#323232;">npm ERR! A complete log of this run can be found in: /home/Luke/.npm/_logs/2024-04-13T00_57_22_075Z-debug-0.log
</span><span style="color:#323232;">
</span>

It almost seems like it’s trying to make calls with older applications and that’s why it’s erroring out. I took a look at the files and I am guessing package-lock.json is the culprit. For example

npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.

seems to match


<span style="color:#323232;">    "tar": {
</span><span style="color:#323232;">      "version": "2.2.2",
</span><span style="color:#323232;">      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
</span><span style="color:#323232;">      "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
</span><span style="color:#323232;">      "requires": {
</span><span style="color:#323232;">        "block-stream": "*",
</span><span style="color:#323232;">        "fstream": "^1.0.12",
</span><span style="color:#323232;">        "inherits": "2"
</span>

Going to registry.npmjs.org/tar/ gives me a GitHub link with the latest version being 6.1.13. I don’t know if the fix as as simple as swapping the URL to be registry.npmjs.org/tar/-/tar-6.1.13.tgz (which apparently does exist) then doing the same thing for ini, har-validator, uuid, and request. Even then I don’t know how to figure out the hash value that I would need to the integrity check.

Any ideas or suggestions?

Edit: The integrity section is under dist on registry.npmjs.org/package_name_here/. I am going to try to hack something together and see if it works.

Edit 2: I fixed the deprecated dependency errors with the exception of hal-validator and the latter part of the error message still remains.

Edit 3:


<span style="color:#323232;">pm ERR! gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
</span><span style="color:#323232;">
</span>

Makes me wonder if it’s a Python issue but I really don’t know how to proceed from here.

Edit 4: There’s a section on the GitHub page’s issue section that mentioned “Failed at the @serialport/bindings@2.0.2 install script” and I’m wondering if that might be it. The solution was apparently running npm install node-sass@latest --save --force before the npm i but it errors out when run in the chatpad-linux directory starting with


<span style="color:#323232;">npm ERR! code 1
</span><span style="color:#323232;">npm ERR! path /home/Luke/.custom_scripts/chatpad-linux/node_modules/ioctl
</span>

and it continues on with more text.

Dagamant,

Sorry, I haven’t messed with node much and I don’t have a 360 controller to test anymore :(

CorrodedCranium,
@CorrodedCranium@leminal.space avatar

No worries.

I don’t think you would technically need an Xbox 360 controller to test this. This is the step before running sudo nodejs index.js <serial port> and using the controller.

K0W4LSK1, (edited )
@K0W4LSK1@lemmy.dbzer0.com avatar

Hey i just saw this on my way home but try running the logs through an ai like blackbox it has a JavaScript trained one specifically. I have been using it for other issues and shits fucking cool

Edit: blackbox.ai/…/14a4c80f-0506-4cc7-8508-9810d71acb7… here’s the response it gave me might help you more I’ll try it out when I get home as well I don’t have a pad but if it builds should work? Right? ¯_(ツ)_/¯

CorrodedCranium,
@CorrodedCranium@leminal.space avatar

Thanks for the suggestion. It seems like that would have made upgrading the packages a lot easier.

Unfortunately after applying the fixes it suggests it seems to kind of send me in a circle. It did say at one point it might be a Python issue.

K0W4LSK1,
@K0W4LSK1@lemmy.dbzer0.com avatar

So I asked the python one what I should do well i just posted your whole comment lol and it showed me how to upgrade a python script doesn’t look easy but it also told me about 2to3 which is a command to do it automatically? Here’s the link I could find on how to use it stackoverflow.com/…/how-to-use-2to3-properly-for-…

Sanctus, (edited )
@Sanctus@lemmy.world avatar

I’m no Python expert either to preface but here is a list for the status of Python versions.
https://devguide.python.org/versions/

The oldest version on there released in 2008 and its EOL. Might cause some issues if you have to get it from an old source?

Edit: that can’t be it all versions are on their website. But here’s the docs on that python import -c system

daisyKutter,
@daisyKutter@lemmy.ml avatar

I don’t have linux right now nor a xbox chatpad right now but if I find the time I can try installing this and see what I can do to help. It seems the library is a wrapper of this:

www.npmjs.com/package/chatpad

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux_gaming@lemmy.ml
  • DreamBathrooms
  • magazineikmin
  • everett
  • thenastyranch
  • khanakhh
  • Youngstown
  • slotface
  • Durango
  • ngwrru68w68
  • rosin
  • kavyap
  • PowerRangers
  • InstantRegret
  • vwfavf
  • anitta
  • mdbf
  • cubers
  • osvaldo12
  • tacticalgear
  • ethstaker
  • hgfsjryuu7
  • modclub
  • GTA5RPClips
  • cisconetworking
  • Leos
  • tester
  • normalnudes
  • provamag3
  • All magazines