Verwenden von CapsLock als linke Maustaste; funktioniert meistens aber scheitert mit ein paar Dingen

7
Linux System Info:
OS:        GNU/Linux x86_64
Kernel:    3.13.0-24-generic
Distro:    Linux Mint 17 Qiana, Cinnamon 64-bit 2.2.16
           [Based On: Ubuntu 14.04.5 LTS, Trusty Tahr]

Aufgrund einer Behinderung (Wirbelsäulenverletzung), zu der auch eine Beeinträchtigung der Finger gehört, habe ich einige Änderungen vorgenommen, damit ich die Feststelltaste meiner Tastatur als linke Maustaste verwenden kann. NumLock wird neu zugeordnet, um als CapsLock zu fungieren.

Fast alles funktioniert einwandfrei, wenn Sie CapsLock als Links- und Doppelklick verwenden, aber einige der unten aufgeführten Dinge tun dies nicht ...

EDIT 2019-01-10

Der Rest eines langen Beitrags wurde gelöscht. In meiner Antwort unten erfahren Sie, wie Sie die CapsLock-Taste so einrichten, dass sie als linke Maustaste fungiert und NumLock neu zugeordnet wird, um als CapsLock zu fungieren.

mattst
quelle
1
Die Mousekeys von XKB könnten helfen, aber ich bin mir nicht sicher, ob sie das tun können, was Sie brauchen. Ich weiß nicht genau, wie das funktioniert /usr/share/X11/xkb/compat/mousekeys. Sie würden binden <CAPS>zu LockPointerButton(button=default). Ich weiß nicht, ob Sie die Release-Aktion auf diese Weise binden können.
Gilles 'SO - hör auf böse zu sein'
Vielen Dank. Ich habe die Verwendung von MouseKeys untersucht, glaube aber nicht, dass CapsLock als Ersatz für die linke Maustaste verwendet werden kann, wenn CapsLock mit der linken Maustaste gedrückt und CapsLock mit der linken Maustaste gedrückt wird.
Mattst
Was sagt xevIhnen, wenn Sie Ihr modifiziertes CapsLock drücken? Ich frage mich auch, ob -option caps:nonedas richtig ist. Ich würde verwenden capslock:none(es gibt keine capsDatei in /usr/share/X11/xkb/symbolsnur capslock).
L. Levrel
1
@ L.Levrel Ich habe das Problem vor Ewigkeiten behoben. Um anderen zu helfen, habe ich jetzt meine eigene Frage zur Einrichtung beantwortet.
Mattst

Antworten:

2

Beantwortung meiner eigenen Frage ...

Das Einrichten von CapsLock als linke Maustaste erwies sich als viel einfacher als erwartet. [Hinweis: Die linke Maustaste der physischen Maus verhält sich weiterhin wie gewohnt.]

1) Ordnen Sie CapsLock der linken Maustaste zu (66 ist der CapsLock-Tastencode):

$ xmodmap -e "keycode 66 = Pointer_Button1"

2) Ordnen Sie NumLock CapsLock zu (77 ist der NumLock-Schlüsselcode):

$ xmodmap -e "keycode 77 = Caps_Lock"

Hinweis: Dies bedeutet, dass NumLock als CapsLock-Ersatzschlüssel fungiert und die Funktionalität von NumLock verloren geht (ich verwende es sowieso nie, verwende aber einen anderen Schlüssel, wenn Sie NumLock verwenden, z. B. Pause, ScollLock usw.).

3) Aktivieren Sie die Maustasten:

$ xkbset mousekeys

Hinweis: xkbset ist in einigen Distributionen nicht standardmäßig installiert. Dies entspricht nicht der Aktivierung von Maustasten im Abschnitt Eingabehilfen Ihrer Systemeinstellungen.

Das war's - alles erledigt.


Benutzer möchten jedoch wahrscheinlich, dass diese Aufgaben beim Start automatisch ausgeführt werden. Folgendes habe ich getan:

Erstellen Sie die reguläre Datei /home/user/.Xmodmapund fügen Sie die folgenden Zeilen ein.

! 77 is the NumLock key code, 66 is the CapsLock key code.
! Map CapsLock to the left mouse button and map NumLock to
! CapsLock, i.e. NumLock acts as the CapsLock key used to.

keycode 77 = Caps_Lock
keycode 66 = Pointer_Button1

Hinweis: Kommentare in .XmodmapDateien beginnen mit einem !.

Das Ausführen von xmodmap zum Laden der ~/.XmodmapDatei beim Start muss schwieriger sein als erwartet. Das Problem besteht darin, dass dies sehr spät in der Startsequenz erfolgen muss, da XKB sonst nicht initiiert wurde und XKB die xmodmap-Änderungen beim Laden überschreibt.

Linien setzen ...

/usr/bin/xmodmap /home/user/.Xmodmap
/usr/bin/xkbset mousekeys

... in ~/.profile,, ~/.xinitrcund ~/.xsessionrcalles ist fehlgeschlagen.

Erstellen der Datei /etc/X11/Xsession.d/80_xmodmap_user_addedzum Ausführen der obigen Befehle, wie unter Wie dauerhaft werden die Schlüssel in Ubuntu 16.04 neu zugeordnet? hat bei mir nicht funktioniert.

Widerwillig habe ich das grafische Start-Tool verwendet. Unter Linux Mint ist dies wie folgt (Ihre Distribution kann variieren):

Mint Menu --> Preferences --> Startup Applications

Ich habe 2 Einträge erstellt, einen, um jeden der folgenden Befehle aufzurufen:

/usr/bin/xmodmap /home/user/.Xmodmap
/usr/bin/xkbset mousekeys

Für die Aufzeichnung benötige ich keine Verzögerung beim automatischen Start in meinen Einträgen für Startanwendungen. Versuchen Sie jedoch, eine Verzögerung hinzuzufügen, wenn dies bei Ihnen nicht funktioniert. XKB muss initiiert worden sein, bevor die Befehle ausgeführt werden, sonst werden Ihre Änderungen dadurch überschrieben.

Das alles funktioniert perfekt für mich; Beim Start fungiert CapsLock als Maustaste mit der linken Maustaste (sowohl Einzel- als auch Doppelklick).

mattst
quelle
@JigglyNaga Danke für den Zeiger, du bist richtig !funktioniert für Kommentarzeilen. Ich habe meinen Beitrag entsprechend aktualisiert.
Mattst