lxqt-config
lxqt-config copied to clipboard
Input settings and profiles
Right now input configuration is limited to two static settings: acceleration and acceleration threshold (misleadingly named 'sensitivity'). Those two settings were enough in a times when mice rarely had over 300dpi resolution, but not nowdays.
There is no way to set such essential xinput properties as Device Accel Constant Deceleration, which is the real 'sensitivity', or rather speed scale of device (think of tuning down 1200dpi mouse which zips across desktop on slight touch). Or Device Accel Profile, or other xinput properties. Also applying such options only makes sense for specific devices, because of different physical properties like sensor resolution, button configuration, etc.
The proposal: There should be a config tool that handles xinput properties for devices. Some essential known options should be presented in user-friendly way on main configuration tab, i.e. as 'Linear speed', 'Acceleration', 'Third button emulation', etc. Other available xinput options should appear dynamically in 'more options' tab or something. Configuration should be done per-device, based on Device Product ID property. Changing settings creates a profile for for such ID. There should also be virtual 'Default' profile options from which are applied to all devices, unless overridden in real profiles. Saved profiles for currently disconnected devices can be grayed out, but accessible for editing or deletion.
And there should also be a user-level daemon which handles those settings and applies them dynamically to devices as they are being plugged in.
Quick interface mockup. Checkboxes represent 'enable/override' state for property against values in default profile.

~~In case of xinput properties system-wide configuration can be bumped into xorg.conf.d snippet.~~ It seems that there is no way to put arbitrary xinput prop into xorg.conf.d snippet. So just LXQT global config then...
And there sure as hell should be a way to disable this altogether. Now LXQt's underdeveloped acceleration options are messing up my static xorg.conf.d acceleration-forbidding config. I bought Logitech G400 with sensitivity-changing buttons for not to be dealing with this "feature".
@v-fox As far as I can tell, with current libinput and xinput, it would just require to set "libinput Accel Profile Enabled" 0 1 (adaptive profile off, flat profile on). The proposed model would cover that (as with all properties exposed by xinput). Of course that property would fit nice on "Main" tab as drop-down list.
Offtopic: On the xorg.conf.d side only this is needed when using libinput:
Section "InputClass"
Identifier "generic libinput mouse"
MatchDriver "libinput"
MatchIsPointer "yes"
Option "AccelProfile" "flat"
EndSection
IMHO, access to legacy X "acceleration" and "threshold" options should just be removed altogether from lxqt-config-input. They do not work anyway.
Don't know if necroing issues is considered bad manners (sorry if so), but this is still an issue and the input settings are pretty outdated (as of 2.0.0, I don't know if 2.1.0 silently updated it, my distro doesn't ship it). I think the KDE mouse settings could be a good model. I'm personally missing the lack of an acceleration profile setting and touchpad block-while-typing toggle. 
It needs definitively some love.
https://github.com/lxqt/lxqt-config/blob/19b761c539b606dc811b366ca5a6b6ba619048ce/lxqt-config-input/touchpaddevice.h#L37C1-L41C48
const char TAPPING_ENABLED[] = "tappingEnabled";
const char NATURAL_SCROLLING_ENABLED[] = "naturalScrollingEnabled";
const char TAP_TO_DRAG_ENABLED[] = "tapToDragEnabled";
const char SCROLLING_METHOD_ENABLED[] = "scrollingMethodEnabled";
const char ACCELERATION_SPEED[] = "accelSpeed";
Basically what is mostly missing: