Ich versuche, die unbrauchbare Feststelltaste für etwas Nützliches am 16.04 MATE wiederzuverwenden. Ich bin gestoßen
setxkbmap -option ctrl:nocaps
um es zu deaktivieren, aber könnte es neu zugeordnet werden, um zum Beispiel VLC abzuspielen / anzuhalten? Danke für deine Antworten!
vlc --key-play-pause <key-string>
, aber ich habe keinen String gefunden, den VLC als Capslock akzeptiert ...dconf-editor
habe ein paar Dingexdotool
ausprobiert, ein paar Dingexbindkeys
ausprobiert und schließlich ein paar Dinge ausprobiert. Am Ende dieser erfolglosen Übung war meine Tastatur-Pause- / Wiedergabetaste defekt UND meine eigene Bildschirm-Wiedergabe- / Pausetaste ausgegraut, und Musik wurde nicht abgespielt. Ich habe dies in 16.04 getan, also habe ich es in 18.04 neu gestartet, um zu bestätigen, dass alles noch funktioniert und es waren die Software-Hacks, die es getan haben. Die einzige Rettung ist, dass ich nur Musik über das Android-Handy und nicht über den PC wiedergebe. Nur ein Köpfchen, damit andere aufpassen und besser als ich dokumentieren, was Sie mit Ihrer Maschine anstellen.Antworten:
evtest und dbus
Hier ist eine Version mit einem kleinen Skript, das im Hintergrund ausgeführt wird. Ein paar einfache Schritte sind nötig:
Installieren Sie das evtest Programm:
sudo apt install evtest
. Dieses Programm ist in der Lage, unformatierte Ereignisse aus der/dev/input/
Gerätehierarchie zu dekodieren und auszudrucken .Fügen Sie der Gruppe Ihr Benutzerkonto hinzu
input
. Abmelden und erneut anmelden. (Dies ist erforderlich, weil wir von einem Gerät unter lesen werden/dev/input/
, was normalerweise nur von root oder Benutzern in einer Gruppe durchgeführt werden kanninput
. Wir könnten das Skript als root ausführen, müssten dann aber einen Weg finden, um ihm zu sagen, welcher Benutzer es ist dbus-Instanz, mit der gesprochen werden muss.)Deaktivieren Sie die Feststelltaste wie zuvor oder verwenden Sie die entsprechende Mate-Einstellung. Es würde auch funktionieren, wenn Sie die Feststelltaste wie bei vielen anderen Benutzern der Strg-Taste zuordnen.
Speichern Sie das folgende Skript irgendwo ab,
$HOME/bin/capshack
und machen Sie es ausführbar:Das obige Skript hört Ihre Tastaturereignisse ab und führt einen Befehl aus, wenn die Feststelltaste gedrückt wird. Der ausgeführte Befehl verwendet dbus, um ein Wiedergabe- / Pausenereignis an eine ausgeführte VLC-Instanz zu senden. Möglicherweise müssen Sie die
KEYBOARD
Variable anpassen , um auf Ihre tatsächliche Tastatur zu verweisen, aber es ist wahrscheinlich, dass der obige Wert funktioniert.Wenn Sie möchten, dass die Funktion toggleVLC () beim Loslassen der Feststelltaste aufgerufen wird, können Sie die
EVENT
Variable im Skript so ändern, dass sie mitvalue 0
statt mit endetvalue 1
.Es ist auch möglich, dass sich der Schlüsselcode des Feststelltastens von 58 unterscheidet. Sie können dies überprüfen
evtest
, indem Sie ausführen, die Ausgabe anzeigen, wenn Sie die Feststelltaste drücken, und die Variable EVENT entsprechend anpassen. Sie müssen nicht einmal nach dem Schlüsselcode suchen und EVENT einfach auf einstellen(KEY_CAPSLOCK), value 1
.Anstatt evtest und ein höheres Skript zu verwenden, könnten Sie thd aus dem triggerhappy-Paket verwenden (so etwas
thd --dump /dev/input/*
würde eine ähnliche Ausgabe ergeben), aber ich fand, dass dies etwas weniger lehrreich ist.Jetzt erstellen wir eine systemd-Benutzereinheit, um das Skript automatisch im Hintergrund zu starten:
Erstellen Sie die Benutzer-System-Hierarchie:
mkdir -p $HOME/.config/systemd/user
Fügen Sie der Datei den folgenden Text hinzu
$HOME/.config/systemd/user/capshack.service
Aktivieren Sie die soeben erstellte Serviceeinheit:
systemctl --user enable capshack
Starten Sie den Dienst:
systemctl --user start capshack
Ab jetzt sollten Sie in der Lage sein, die Wiedergabe / Pause in VLC mit der Feststelltaste umzuschalten. Das Hintergrundskript sollte automatisch gestartet werden, wenn Sie sich anmelden.
schießwütig
Wie bereits erwähnt, können Sie dazu auch das triggerhappy-Paket verwenden. Dies ist die bevorzugte Methode für Personen, die sich weniger mit dem System beschäftigen möchten und eine solideere Lösung bevorzugen.
Fügen Sie der
input
Gruppe wie oben einen Benutzer hinzuInstallieren Sie das Paket:
sudo apt install triggerhappy
Fügen Sie eine Konfiguration für triggerhappy hinzu, um
~/.config/thd/capslock.conf
:Führen Sie das so aus:
thd --triggers ~/.config/thd/capslock.conf /dev/input/event*
Führen Sie das Programm für Ihren Benutzer auf ähnliche Weise aus, wie es bereits für capshack beschrieben wurde.
Stellen Sie sicher, dass nur eine der genannten Methoden (capshack oder thd) ausgeführt wird, um das Umschalten bei jedem Tastendruck nicht zu verdoppeln.
Ich habe das alles am 18.04. Unter der Standard Session und am 16.04. Mate getestet. Theoretisch sollte es aber auch unter Wayland oder mit anderen Desktop-Umgebungen funktionieren.
quelle
[[ test ]] && \
und die zweite Zeile vier Leerzeichen eingerückt haben<command>
, um bei positivem Test zu laufen. Ich stimme der Lesbarkeit von ganzem Herzen zu, da meine Empfehlung den meisten Programmiersprachen fremd ist.triggerhappy
sollte der richtige Weg sein, daevtest
es sich tatsächlich um ein Debugging-Programm handelt :)m
, so dass das Skript nicht funktioniert. Ich empfehle,xmodmap -pke | grep Caps_Lock
vor Verwendung dieses Skripts zu überprüfen , ob der Schlüsselcode korrekt ist.In Ubuntu 16.04 nach Stunden googeln & Hantieren mit Ausgaben
dconf-editor
undxbindkeys
fand ich eine sehr einfache Lösung:Wenn Sie Gnome-
XF86AudioPlay
Unterstützung benötigen, benötigen Siexdotool
(nicht für VLC erforderlich, da OP dies vorsieht):Hier ist der schwierige Teil. Jedes Mal, wenn Sie die Caps LocKTaste drücken, um die Musik zwischen Wiedergabe und Pause umzuschalten, werden auch Großbuchstaben ein- und ausgeschaltet.
Verwenden Sie diese Methode, um das Umschalten der Feststelltaste zu deaktivieren, während die Taste weiterhin aktiv bleibt:
Musik-Player, die an Gnome festhalten
Gehen Sie dann in Ubuntu 16.04 zu Einstellungen >> Tastatur >> Verknüpfungen >> Benutzerdefinierte Verknüpfungen :
Audio Play
xdotool key XF86AudioPlay
Nach dem Hinzufügen der neuen Option lautet die zugewiesene Tastenkombination Deaktiviert . Klicken Sie auf Deaktiviert und drücken Sie die Caps LocKTaste, wenn Sie aufgefordert werden, die Taste zuzuweisen .
Musikspieler wie VLC
Befolgen Sie die Schritte für Gnome im vorherigen Abschnitt, aber verwenden Sie stattdessen diesen Befehl :
VLC erkennt Medientasten nicht: Wie werden die Tastaturmedientasten so eingerichtet, dass sie global mit VLC funktionieren? auch wenn in die Tastatur eingebaut. Daher ist die benutzerdefinierte Tastenkombination für XF86AudioPlay mit unbrauchbar
xdotool
.Festlegen benutzerdefinierter Tastaturkürzel über die Befehlszeile
In dieser Frage und Antwort wird erläutert, wie benutzerdefinierte Tastaturkürzel über die Befehlszeile festgelegt werden: Wie werden benutzerdefinierte Tastaturkürzel über das Terminal festgelegt?
Feststelltaste dauerhaft deaktivieren
Der nächste Schritt besteht darin, dies
setxkbmap -option caps:none
über Neustarts hinweg persistent zu machen . Googeln führt zu dieser Antwort von Terdon: Speichere setxkbdmap-Einstellungen :Eine einfache Möglichkeit wäre, den Befehl zu Ihrer
$HOME/.profile
Datei hinzuzufügen (Sie können ihn erstellen, wenn er nicht vorhanden ist):Damit sollte es jedes Mal ausgeführt werden, wenn Sie sich anmelden.
Beachten Sie, dass Sie verwenden sollten ,
$HOME/.profile
anstatt$HOME/.bash_profile
,$HOME/.bashrc
oder einige andere ähnliche Datei. Dies liegt daran, dass diese Einstellung von Ihrem Anmeldemanager gelesen werden sollte.quelle
setxkbmap -option caps:none
. Das Hilfsprogramm ist installiert, Wayland wechselt jedoch immer zwischen Groß- und Kleinschreibung. Sie könnten eine separate Frage dazu stellen, wie Wayland dazu gebracht werden kann, Respekt zu zeigensetxkbmap
.Diese Antwort wurde unter Ubuntu MATE 16.04.4 LTS in einer VM getestet (aber die Tastatur war eine USB-Tastatur beim Passthrough, sodass dies keinen Unterschied machen sollte). Es erfordert auch keine zusätzliche Software und kann bei einer Vanilla-Installation ohne Installation von Paketen ausgeführt werden, und es bleibt zwischen den Startvorgängen bestehen.
Feststelltaste neu zuordnen
Bearbeiten Sie die Datei
/usr/share/X11/xkb/symbols/pc
als root. Achten Sie darauf, dass Sie hier keinen Fehler machen (z. B. das Komma vergessen), da Sie sonst möglicherweise Ihre Tastatur nicht mehr verwenden können. (Ratet mal, was ich auf die harte Tour gelernt habe?)Kommentiere die Zeile aus
durch Platzieren von zwei Schrägstrichen (
//
) am Anfang.Fügen Sie darunter die folgende Zeile hinzu:
Kommentiere die Zeile aus
auf die gleiche Weise wie oben.
Starten Sie neu.
Hinweis: (Gutschrift auf Danzel für diesen Hinweis) Updates für das Paket
xkb-data
kann diese Datei überschrieben werden soll. Eine einigermaßen sichere Methode, um dies zu verhindern, ist das Umleiten des Pfades mitdpkg-divert
. (Ich sage "ziemlich sicher", weil die Upstream-Quelle für diese Datei seit drei Jahren nicht mehr geändert wurde.)Alternative Methode
Deaktivieren Sie manuell die Feststelltaste in den Tastaturlayouteinstellungen und fügen Sie dann mithilfe der in dieser Antwort beschriebenen Methode Ihre eigenen Tastenzuordnungen hinzu.
Probleme?
Ihre Feststelltaste sperrt keine Feststelltasten mehr und wurde zu diesem Zeitpunkt auf Wiedergabe / Pause umgestellt. Sie sollten jetzt in der Lage sein, Musik in VLC abzuspielen und anzuhalten. Wenn es zu diesem Zeitpunkt funktioniert, können Sie den Rest dieser Anweisungen überspringen.
Als ich es versuchte, reagierte VLC jedoch nicht auf die Wiedergabe / Pause-Taste.
Stellen Sie sicher, dass die Tastenkombination richtig eingestellt ist
Öffnen Sie die Tastaturkürzel (System → Einstellungen → Hardware → Tastaturkürzel).
Stellen Sie sicher, dass "Play (oder Play / Pause)" auf "XF86AudioPlay" eingestellt ist
Ist dies nicht der Fall, klicken Sie auf den Bereich "Verknüpfung" und drücken Sie die neue Wiedergabe- / Pause-Taste, um die Verknüpfung festzulegen.
Wenn es immer noch nicht funktioniert, starten Sie es ein paar Mal neu. (Genau das hat es für mich behoben.)
quelle
xkb
insbesondere Optionen beeinträchtigencaps:...
. Es kann auch durch Systemaktualisierungen überschrieben werden.Installiere
xbindkeys
, xcape und playerctl . Stellen Sie sicher, dassxcape
(ZuordnungCapsLock
zu einem Ersatzschlüssel wieAlt+F12
vonxcape -e 'Caps_Lock=Alt_L|F12
) undplayerctl
beim Anmelden automatisch gestartet werden, und fügen Sie~/.xbindkeysrc
die beiden Zeilen zur Datei hinzuquelle
Machen Sie aus Ihrer Feststelltaste eine Wiedergabe- / Pause-Taste
Diese Lösung ordnet den Scancode Ihres Capslock-Schlüssels einem anderen Schlüsselcode im Kernel-Eingabetreiber zu, in diesem Fall Wiedergabe / Pause.
Vorteile
xkb
Konfiguration durcheinander zu bringenNachteile
Voraussetzungen
sudo apt-get install evtest
)Verfahren
Führen
sudo evtest
Sie in einem Terminal Ihre Tastatur aus und wählen Sie sie aus. Wenn beim Drücken einer Taste keine Ausgabe erfolgt, drücken Sie Ctrl+ Cund versuchen Sie es mit einem anderen Gerät. Merken Sie sich die von Ihnen gewählte Geräteereignisnummer, die wir anschließend benötigen. Drücken Sie die Feststelltaste. Einige Zeilen wie die folgenden werden angezeigt:Wir benötigen den Wert aus der
MSC_SCAN
Zeile vor derKEY_CAPSLOCK
Zeile. Im obigen Beispiel wäre dies 70039, aber der Scancode auf Ihrer Tastatur ist wahrscheinlich anders.Führen Sie nun den folgenden Befehl aus, ersetzen Sie jedoch das X durch die Geräteereignisnummer, die Sie für den
evtest
Befehl verwendet haben:... dies wird ausgegeben
bustype
,product
,vendor
undversion
die Tastatur.Erstellen Sie eine Datei mit dem Namen
65-keyboard-custom.hwdb
in/etc/udev/hwdb.d/
(Root-Berechtigungen erforderlich) mit dem folgenden Inhalt:...wo
evdev:...
Zeile hat kein vorangestelltes LeerzeichenKEYBOARD_KEY...
Zeile enthält genau ein vorangestelltes LeerzeichenBeispielsweise:
Kompilieren Sie abschließend die neue Konfiguration in die Hardware-Datenbank:
Wenn Sie die Änderungen sofort übernehmen möchten, informieren Sie udev:
Wenn Sie die Änderungen rückgängig machen möchten, entfernen Sie einfach die erstellte Datei und starten Sie den Computer neu.
Weitere Informationen finden Sie in meiner ursprünglichen Antwort zu diesem Thema.
quelle
Vielleicht mit
xbindkeys
oderXTE
du könntest das tun. Aber stellen Sie zunächst sicher, dass Sie die Schlüsselcodes kennen. Sie können den Code für die Feststelltaste mit dem Befehlxev
im Terminal anzeigen und drücken (Sie können den Schlüsselcode aller Keu- oder Maustasten, einschließlich Gaming-Mäuse, anzeigen). Mit dem Schlüsselcode der Feststelltasten und Wiedergabetasten in der Hand können Sie die Confi-Datei von xbindkeys bearbeiten und Ihre Änderungen dort ablegen. Verwenden Sietouch ~/.xbindkeysrc
diese Option, um die Konfigurationsdatei zu erstellen (falls das System sie nicht automatisch erstellt) undnano ~/.xbindkeysrc
zu bearbeiten. Ich habe es letzten Monat benutzt und hier ist es ein Beispiel. Schauen Sie sich diese Links an, die für Sie sehr hilfreich sein könnten.https://help.ubuntu.com/community/MultimediaKeys
https://gist.github.com/jbonney/5743509
Ordnen Sie eine Schaltfläche von meiner Gaming-Maus einer Tastaturtaste zu
https://matmunn.me/post/binding-volume-control-mouse-buttons-ubuntu/
quelle