Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GlobalShortcut_unix: evdev mode should not fall back to XInput2 when no keyboard device nodes area available #3269

Open
mkrautz opened this issue Nov 26, 2017 · 4 comments
Assignees
Labels
client feature-request This issue or PR deals with a new feature GlobalShortcuts

Comments

@mkrautz
Copy link
Contributor

mkrautz commented Nov 26, 2017

Via #3243 (comment)

Evdev mode should not fall back to XInput2 when no keyboard device nodes are available:

However, there is a bit of a misbehavior right now, where Mumble will fall back to XInput2 when no keyboards can be opened via evdev. This behavior is from back when evdev was our default.
Now, it makes more sense for Mumble to keep using evdev if it is enabled, and warn the user if no keyboard device nodes are available.

Instead, we should just warn the user, and keep on chugging along, allowing users to use evdev mode to allow global shortcuts for mice, for example.

@mkrautz
Copy link
Contributor Author

mkrautz commented Nov 26, 2017

Perhaps we should warn for each of

  • Keyboard
  • Mouse
  • Joystick

...?

@the-sane
Copy link

the-sane commented Dec 6, 2020

Yes, since the user has to specifically enable evdev, mumble should assume they know what they're doing and not prevent them from doing it.

In my case, this prevents me from assigning PTT to a joystick button because mumble falls back to XInput.
I assume there's no way for me to force evdev until this is resolved?

@Krzmbrzl
Copy link
Member

Krzmbrzl commented Dec 6, 2020

I assume there's no way for me to force evdev until this is resolved?

I don't think so 🤔
@davidebeatrici might know more though

@davidebeatrici
Copy link
Member

I confirm that unfortunately there is no way to force evdev:

#ifdef Q_OS_LINUX
if (g.s.bEnableEvdev) {
QString dir = QLatin1String("/dev/input");
QFileSystemWatcher *fsw = new QFileSystemWatcher(QStringList(dir), this);
connect(fsw, SIGNAL(directoryChanged(const QString &)), this, SLOT(directoryChanged(const QString &)));
directoryChanged(dir);
if (qsKeyboards.isEmpty()) {
foreach (QFile *f, qmInputDevices)
delete f;
qmInputDevices.clear();
delete fsw;
qWarning(
"GlobalShortcutX: Unable to open any keyboard input devices under /dev/input, falling back to XInput");
} else {
return;
}
}
#endif

I will take care of it.

@Kissaki Kissaki added feature-request This issue or PR deals with a new feature and removed enhancement labels Apr 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client feature-request This issue or PR deals with a new feature GlobalShortcuts
Projects
None yet
Development

No branches or pull requests

5 participants