Okay, so I managed to come up with a workaround(ish) thing for this
particular problem; you need to reload the hid-multitouch kernel module,
and then re-enable the device using xinput.

Example script


#!/bin/bash
# Touchpad / Touchscreen Fix Script
# 2016.05.24
# Mark C. Roduner, Jr.

# If Run as root; fix all users, otherwise fix the current user

SCRIPT=$0

#Space separated list of kernel modules to reload
MODS_RELOAD="hid-multitouch"

get_users() {
        #echo ":1 mroduner"
        w -sh | sed -r "s/([^ ]+)[^:]+(:[0-9.]+).*/\2 \1/" | sort | uniq
}

execute_fix() {
        export DISPLAY="$1"
        sudo -iu "$2" $SCRIPT
}

get_core_regex() {
        xinput --list  --long | grep "Virtual core" | sed -r 
's/.*id\=([0-9]+).*/\\b\1\\b/' | sort | uniq | tr '\n' '|'
}

get_all_pointers() {
        xinput --list  --long | grep XIButtonClass | sed -r "s/.*: 
([0-9]+).*/\1/" | sort | uniq | tr '\n' ' '
}

get_real_pointers() {
        EXPR="`get_core_regex` +"
        get_all_pointers | sed -r "s/$EXPR/ /g"
}


if [ `id -u` -ne 0 ]; then
        echo "Enabling devices for ${USERNAME}${DISPLAY}... "
        for PTR in `get_real_pointers`; do
                xinput set-prop $PTR "Device Enabled" 1 
        done
        exit 0
fi

echo -n Reloading Modules: 
for MOD in $MODS_RELOAD; do
        echo -n " $MOD"
        rmmod "$MOD" && modprobe "$MOD"
done

echo -e "\nFixing Input Devices..."
CDISP="$DISPLAY"
get_users \
| while read USER; do
         execute_fix $USER;
done
export DISPLAY="$CDISP"
echo -e "\nDone."

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1437759

Title:
  [Lenovo Miix] Synaptic/ITE Tech touchpad (06cb:a001) cannot be
  configured by hid-rmi

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1437759/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to