Microsoft Mouse και Ubuntu/Linux

Υπάρχει ένα πρόβλημα εδώ και πάρα πολύ καιρό, είναι αυτό που λένε «κρατάει χρόνια αυτή η κολόνια», σχετικό με Microsoft ποντίκια και Linux διανομές. Όσα ποντίκια έχω της Microsoft κανένα δεν λειτουργεί απρόσκοπτα σε όποια διανομή Linux έχω δοκιμάσει.

Να εξηγούμαι, για να μη παρεξηγούμαι, αναφέρομαι συγκεκριμένα στις Mainstream διανομές Ubuntu (και Linux Mint), openSUSE, Fedora και Arch Linux. Σκέφτομαι ότι το πρόβλημα οφείλεται σε κάτι «βαθύτερο» από το γραφικό περιβάλλον και τα στοιχεία αυτού. Πιθανόν έχω δίκιο και κατόπιν άλλων αναφορών που βρήκα ανά το Web, μάλλον οφείλεται στον πυρήνα (Linux). Γράφω στον τίτλο «…και Ubuntu» διότι το παρακάτω workaround έχει δοκιμαστεί και λειτουργεί σωστά σε Ubuntu 16.04 LTS. Ωστόσο, μιας και το workaround δεν είναι Ubuntu Specific, περιμένω να λειτουργήσει σωστά και σε άλλες διανομές με παρόμοιο πρόβλημα.

Το πρόβλημα

Το πρόβλημα δεν εμφανίζεται πάντα και συνήθως εξαρτάται από την αναβάθμιση πυρήνα ή και άλλους παράγοντες που προσωπικά δεν έχω αναλύσει. Λίγοι όμως είναι οι πυρήνες στους οποίους δούλεψε σωστά ένα Microsoft Mouse, τουλάχιστον στη δική μου περίπτωση.
Το πρόβλημα περιγράφεται ως εξής: Μεγάλη (υπερβολικά μεγάλη) ταχύτητα scrolling. Τόσο απότομο και γρήγορο scrolling που δεν προλαβαίνεις να δεις τίποτα.

Workaround No1

Ένα Workaround που είχα βρει ψάχνοντας το Web, είναι η αποσύνδεση και σύνδεση του USB receiver.
Δεν γνωρίζω εάν το πρόβλημα προκύπτει και σε ενσύρματα ποντίκια, σε αυτή τη δημοσίευση αναφέρομαι σε ασύρματα.
Κάποια στιγμή όμως βαρέθηκα να κάνω αυτή τη διαδικασία συνεχώς. Οπότε έπρεπε να βρω κάτι άλλο πιο μόνιμο, ή μάλλον πιο αυτόματο.

Workaround No2

Θα χρησιμοποιήσουμε ένα εργαλείο CLI που ονομάζεται xinput και το οποίο έχει δημιουργηθεί γι’ αυτή τη δουλειά. Δηλαδή να ελέγχει τέτοιους είδους συσκευές, όπως τα ποντίκια.
Ας βρούμε πρώτα τη συσκευή μας με τη παρακάτω εντολή

 xinput list 

Θα πρέπει να πάρουμε αποτελέσματα παρόμοια με τα παρακάτω. Αυτό που μας ενδιαφέρει είναι ο Pointer και συγκεκριμένα ο Microsoft Pointer.

Βλέπετε δυο σχεδόν πανομοιότυπες εισαγωγές εδώ, το μόνο που αλλάζει είναι το id. Το σωστό id το βρήκα μετά δοκιμών, δηλαδή ποιο πρέπει να «πειράξω».

Η επόμενη εντολή είναι εκείνη των ιδιοτήτων του Pointer. Θέλουμε να δούμε εάν υποστηρίζει την τιμή που θέλουμε να αλλάξουμε και αυτή είναι η «Evdev Scrolling Distance»

 xinput list-props 9 | grep -i scrolling 


Στη παραπάνω εικόνα βλέπετε την τιμή ήδη αλλαγμένη σε 8, 8, 8. Αυτό βολεύει εμένα, κατόπιν δοκιμών.
Η εντολή για να αλλάξουμε την τιμή είναι η παρακάτω.

 xinput set-prop 9 'Evdev Scrolling Distance' 8 8 8 

Αυτοματισμός

Αφού βρούμε τη τιμή που μας βολεύει, το μόνο που μένει είναι να αυτοματοποιήσουμε τη διαδικασία κατά την εκκίνηση του γραφικού περιβάλλοντος (Login).
Φτιάχνουμε ένα αρχείο μέσα στο ~/.config/autostart/, το οποίο ονομάζουμε (όπως θέλουμε, πχ) msmousescroll.desktop, και το οποίο περιέχει τα παρακάτω.

 [Desktop Entry]
 Type=Application
 Exec=xinput set-prop 9 'Evdev Scrolling Distance' 8 8 8
 Hidden=false
 NoDisplay=false
 X-GNOME-Autostart-enabled=true
 X-GNOME-Autostart-Delay=10
 Name[en]=Microsoft Mouse
 Name=Microsoft Mouse
 Comment[en]=Microsoft Mouse Scroll
 Comment=Microsoft Mouse Scroll 

Αποθηκεύουμε και είμαστε έτοιμοι.
Του έχουμε αφήσει ένα περιθώριο 10 δευτερολέπτων(X-GNOME-Autostart-Delay) να «ανασάνει» πριν εκτελέσει την εντολή.

Συμβάλετε κι εσείς με ένα σχόλιο

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s