Forums » Suggestions
Allow Joystick Selection To Be Arbitrary
In Linux, joysticks are represented by files called device nodes. If you only have one joystick, it typically appears as /dev/input/js0. If you have more, they show up as js1, js2, etc. Problem is, if you have more than one, the designations are not permanent. If you add or remove USB devices (not even necessarily joysticks), they might get changed around.
This of course plays havoc with your controls, since you have to rebind everything.
Now, until a few months ago, this could be worked around by using udev rules to assign the joysticks to specific device nodes. You could force one of them to always be js0, and the other to always be js1. Unfortunately it seems that they have changed udev so that you cannot do that anymore.
What you can still do is have it automatically create a fixed symlink, which I have already been doing. My joystick currently appears as js0 and has a symlink named js-logitech that points at js0. If it changes to js1, the symlink is updated automatically.
The problem, and the point of this post, is that I cannot tell VO to use /dev/input/js-logitech, which would remain static. It only lets me choose /dev/input/js0 or /dev/input/js1. If I set it by hand in the config.ini, it is ignored. I'd like to be able to tell it to use the symlink so that I don't have to worry about changes messing things up.
This of course plays havoc with your controls, since you have to rebind everything.
Now, until a few months ago, this could be worked around by using udev rules to assign the joysticks to specific device nodes. You could force one of them to always be js0, and the other to always be js1. Unfortunately it seems that they have changed udev so that you cannot do that anymore.
What you can still do is have it automatically create a fixed symlink, which I have already been doing. My joystick currently appears as js0 and has a symlink named js-logitech that points at js0. If it changes to js1, the symlink is updated automatically.
The problem, and the point of this post, is that I cannot tell VO to use /dev/input/js-logitech, which would remain static. It only lets me choose /dev/input/js0 or /dev/input/js1. If I set it by hand in the config.ini, it is ignored. I'd like to be able to tell it to use the symlink so that I don't have to worry about changes messing things up.
+1
+1
VO stores this stuff in the configuration file by name. I've re-arranged mine plenty of times and had no trouble. However, mine do have different names...
Are you using two identical sticks or something?
Are you using two identical sticks or something?
I have one joystick connected, and a keyboard who's funky multimedia keys result in it being detected as a joystick as well (but I don't actually use the keyboard in vo).
It stores it by [name (node)]. So I end up with duplicate entries for them on js0 and on js1:
[Microsoft Microsoft® Digital Media Keyboard 3000 (/dev/input/js0)]
[Logitech Logitech Extreme 3D (/dev/input/js0)]
[Microsoft Microsoft® Digital Media Keyboard 3000 (/dev/input/js1)]
[Logitech Logitech Extreme 3D (/dev/input/js1)]
I can work around it I guess by just ensuring there is a copy of the entries for every number it might show up as (0-3 at the moment, if I plug my gamepads in), but that becomes a pain if I ever want to change a binding, because I'd have to duplicate it into each of the other versions.
It stores it by [name (node)]. So I end up with duplicate entries for them on js0 and on js1:
[Microsoft Microsoft® Digital Media Keyboard 3000 (/dev/input/js0)]
[Logitech Logitech Extreme 3D (/dev/input/js0)]
[Microsoft Microsoft® Digital Media Keyboard 3000 (/dev/input/js1)]
[Logitech Logitech Extreme 3D (/dev/input/js1)]
I can work around it I guess by just ensuring there is a copy of the entries for every number it might show up as (0-3 at the moment, if I plug my gamepads in), but that becomes a pain if I ever want to change a binding, because I'd have to duplicate it into each of the other versions.
It is very much a problem on 2 stick setups as the sticks are frequently reversed during reboot. Usually I have to unplug both and plug the sticks in in the correct order to fix it.