ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ!
Υπάρχει ένα πρόβλημα εδώ και πάρα πολύ καιρό, είναι αυτό που λένε «κρατάει χρόνια αυτή η κολόνια», σχετικό με 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) να «ανασάνει» πριν εκτελέσει την εντολή.