Technikfreak

Logitech Performance Mouse MX Daumen und Zoom Button in KDE Plasma 5

Ich hab schon länger eine Logitech Performance Mouse MX und hab weder den Daumen-Button noch die Zoom Funktion genutzt. Um ehrlich zu sein, hab ich sogar vergessen, dass es einen Button für den Daumen gibt… Ich mag diese Logitech Reihe vor allem wegen Ihrer Größe und das freilaufende Scrollrad ist einfach die beste Innovation, die Mäuse in den letzten Jahren erfahren haben.

Wie dem auch sei, irgendwo haben ich kürzlich von dem Daumen-Button gelesen und dachte mir „Oh so ein Button auf der Daumenablage ist doch eigentlich recht Praktisch…“

Ich hab schnell festgestellt, dass dank xf86-input-libinput, sowohl Daumen als auch Zoom button schon funktionieren, aber leider keine Funktion zugeordnet haben. Leider bietet Plasma 5 immer noch keine Möglichkeit, Short Cuts mit Maus-Buttons anzulegen. Einzig in den Desktop Settings können wir „Mouse Actions“ anlegen. Da ich aber so gut wie nie auf den Desktop klicke, halte ich das für mich nicht besonders Sinnvoll.

Zoom- und Daumentaste mit xbindkeys & xautomation

Da wir für die Gesichte KDE Plasma 5 Effekte benutzen wollen, müssen wir diese auch unter Settings -> Desktop Behaivor -> Desktop Effects aktivieren.

In Windows zeigt der Daumen-Button alle offenen Fenster – dieser Effekt heißt in Plasma5 Present Windows

Der Zoom Effekt heißt (wer hätte das gedacht) – Zoom (in den Settings muss hier der Zoom Faktor größer als 1.00 sein)

 

Nun installieren wir uns die beiden Programme

pacman -Syu xbindkeys xautomation

jetzt könnten wir uns eine .xbindkeysrc anlegen, mehr dazu HIER

Leider ist .xbindkeysrc aber nicht intelligent genug, um 2 Maus-Buttons gleichzeitig zu verarbeiten und ich möchte ja den Zoom-Button halten und mit dem Scrollrad Rein- und Rauszoomen

Dafür legen wir uns eine .xbindkeysrc.scm mit folgendem Inhalt an. (Das folgende Script ist eine angepasste version aus diesem Beitrag)

;;   This configuration is guile based.
;;   http://www.gnu.org/software/guile/guile.html
;;   This config script is supposed to live in the homedirectory and be named .xbindkeysrc.scm
;;   Based on the script by Zero Angel posted at
;;   http://www.linuxquestions.org/questions/linux-desktop-74/%5Bxbindkeys%5D-advanced-mouse-binds-4175428297/
;;   And adapted by Camilo Rada
;;
;;   It is intended to work with the Logitech Performance MX Mouse
;;   It allows to zoom with the wheel while the zoom button is pressed
;;   It also allows to assing an action to a single press-and-release of the zoom button
;;   The action assigned to that action is Super+z but is can be modified


(define actionperformed 0)

(define (first-binding)
"First binding"
;; Logitech Zoom Button
(xbindkey-function '("b:13") b13-second-binding)
;; Logitech Thumb Button
(xbindkey '("b:10") "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut 'Expose'")
)


(define (reset-first-binding)
"reset first binding"
(ungrab-all-keys)
(remove-all-keys)
;; Set Action Performed state back to 0
(set! actionperformed 0)
;; Forcefully release all modifier keys!
(run-command "/usr/bin/xte 'keyup Control_L' 'keyup Alt_L' 'keyup Shift_L' 'keyup Super_L' &")

(first-binding)
(grab-all-keys))


(define (b13-second-binding)
"Zoom Button Extra Functions"
(ungrab-all-keys)
(remove-all-keys)

;; Scroll Up
(xbindkey-function '("b:4")
                (lambda ()
;; Emulate Ctrl+plus (Zoom in)
                (run-command "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut view_zoom_in &")
        (set! actionperformed 1)
))

;; Scroll Down
(xbindkey-function '("b:5")
                (lambda ()
;; Emulate Ctrl+Alt+minus (Workspace Down)
                (run-command "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut view_zoom_out &")
        (set! actionperformed 1)
))

(xbindkey-function '(release "b:13") (lambda ()
;; Perform Action if Button 8 is pressed and released by itself
(if (= actionperformed 0) (run-command "/usr/bin/xte 'keydown Super_L' 'key z' 'keyup Super_L' &"))
(reset-first-binding)))
(grab-all-keys))

;; (debug)
(first-binding)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; End of xbindkeys configuration ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Jetzt speichern wir uns einfach das Script und können es direkt mit folgenden Befehl testen

xbindkeys -n -v

xbindkeys automatisch mit Systemd starten

Um xbindkeys als Systemd service zu starten müssen wir uns zuerst eine service-file erstellen

dazu erstellt die Datei .config/systemd/user/xbindkeys.service (sollte es die Ordner noch nicht geben, dann erstellt einfach)

[Unit]
Description=xbindkeys
After=xorg.service

[Service]
ExecStart=/usr/bin/xbindkeys -n
StandardOutput=null

[Install]
WantedBy=wm.target

Dannach können wir die Service auch direkt aktivieren und starten

systemctl --user enable xbindkeys 
systemctl --user start xbindkeys

Damit sorgen wir dafür, dass alle Mausfunktionen funktionieren, sobald der user sich einloggt.

Andere Mäuse und andere Funktionen

Auch wenn die configuration speziell für die Logitech Performance Mouse MX ist, sollte sie sich doch recht einfach für andere Mäuse adaptieren lassen.

Post a comment