Closed vansoest closed 1 year ago
Habe ein bisschen herumprobiert mit folgenden Ergebnissen:
Zuallererst wollte ich die angesprochenen Programme in "Reinstform" ausprobieren, d. h. ohne ReNeo, mit US-Layout.
Win+/
angezeigt (Taste neben RShift). Das ging auch, entspricht aber nicht dem Blog Post in dem das Feature angekündigt wurde. Habe dann in der Einstellungsdatei mit
"actions": [
{
"command": {
"action": "quakeMode"
},
"keys": "win+`"
}
],
den Shortcut auf den Backtick umgemappt. Dann ging es wie gewünscht mit Win+`
, also der Taste oben links neben der 1.
Strg+Shift+`
macht gar nichts. Win+Shift+`
öffnet den FancyZones-Editor. Win+Shift+/
öffnet die von dir vermutlich gemeinte Tastenübersicht (im Programm ist der Shortcut ausgewiesen mit Win+?
).Alt+`
gar nichts.Ein kleiner Einschub zur Nomenklatur: Unter Scancode verstehe ich die Tastencodes, die der physischen Position auf der Tastatur entsprechen, siehe hier. Programme nutzen die meistens nicht, Hotkeys werden fast immer auf Basis des Virtual-Key Codes definiert (in ReNeo mit vk abgekürzt).
Der Backtick `
auf der US-Tastatur entspricht dann VK_OEM_3
, im QWERTZ-Layout ist der gleiche VK mit dem Buchstaben ö
belegt. Der Slash /
auf der US-Tastatur enspricht VK_OEM_2
, im QWERTZ-Layout ist das die Raute #
.
Im Standalone-Modus drückt ReNeo bei Sonderzeichen unter der Haube die entsprechende Taste des nativen Layouts (vermutlich QWERTZ). Heißt konkret für ReNeo-Standalone+nativ QWERTZ: Wenn das Terminal einen Backtick will, musst du Win+ö
drücken ("ö" im Neo-Layout). Die Tastenübersicht der PowerToys bekomme ich so leider nicht auf, da das Raute-Symbol auf Ebene 3 liegt, zusammen mit Shift landet man aber auf Ebene 5.
Du kannst dir aber in der layouts.json an eine passende Stelle (persönliche Präferenz) ein Mapping für den VK_OEM_2
und VK_OEM_3
legen. Wichtig dabei ist, als keysym
auf keinen Fall dead_irgendwas
einzustellen, da die Taste dann vom ReNeo-Compose-Modul geschluckt wird. Am besten stattdessen "keysym": "VoidSymbol"
einstellen.
Hoffe das hilft mehr als es verwirrt, bei dem Zusammenspiel von Tasten, Layouts und Tastencodes kann man leicht durcheinander kommen 😃
Vielen Dank für die schnelle Antwort und Hilfe!
Ein kleiner Einschub zur Nomenklatur: Unter Scancode verstehe ich die Tastencodes, die der physischen Position auf der Tastatur entsprechen
Jo genau, deswegen hab ich die da zusätzlich hingeschrieben, weil das manchmal total verwirrend sein kann und scancodes eindeutiger die Taste beschreiben.
EasySwitch funktioniert schon mal und das composing funktioniert auf der Taste auch noch:
"29": [{"keysym": "VoidSymbol", "vk": "VK_OEM_5", "char": "^", "label": "\u02c6"}, {"keysym": "dead_caron", "char": "\u02c7"}, {"keysym": "U21BB", "char": "\u21bb"}, {"keysym": "dead_abovedot", "char": "\u02d9"}, {"keysym": "U02DE", "char": "\u02de"}, {"keysym": "dead_belowdot", "char": "."}],
Und der QuakeMode umgemappt jetzt auch:
"actions": [
{
"command": {
"action": "quakeMode"
},
"keys": "win+^"
}
],
Sehr schön! Eine Anmerkung zu der Anpassung in layouts.json
: du solltest entweder vk
oder char
definieren, aber nicht beides. Im ersten Fall sendet ReNeo direkt diesen VK, im zweiten wird im nativen Layout nachgeschaut, mit welchem VK (oder welcher Tastenkombination) das gewünschte Zeichen erzeugt werden kann und dann das gesendet. Heißt hier also einfach "char": "^"
weglassen.
Wenn die PowerToys wie gewünscht laufen, kannst du dich ja nochmal melden.
Edit: Ach ja, wenn die Tastenkombination Shift enthält, musst du außerdem aufpassen, dass du im Layout den VK auch auf der zweiten Ebene definierst.
Eine Anmerkung zu der Anpassung in
layouts.json
: du solltest entwedervk
oderchar
definieren, aber nicht beides.
Wenn vk
definiert ist, wird die Definition bei char
aber ignoriert, sehe ich das richtig? (mapping.d
Zeile 330ff.)
Und wenn man weder vk
noch char
setzt, legt man die Taste auch still … hm, kann ja so gewollt sein. Sehe ich nicht als Fehler im Ablauf.
Mit der aktuellen Implementierung funktioniert es schon, da hast du Recht. Beides zu spezifizieren macht meiner Meinung nach aber keinen Sinn; vielleicht komme ich irgendwann auch auf die blöde Idee, da einen Fehler zu schmeißen. Also lieber nur eins eintragen :)
Ich würde gerne EasySwitch und die PowerToys sowie das neuartige Windows Terminal mit ihren
backtick
: ` standardkeys jeweils normal benutzen.0x0026
: dead_circumflex Taste genutzt.`0x000D
: dead_grave.0x000D
: dead_grave.Für EasySwitch wollte ich als Workaround schon mal die dead_circumflex taste zu einer normalen umlegen, indem ich den
keysym
und denchar
jeweils verändert habe, hat leider auch nicht funktioniert. – Da durch den Alt modifier key vermutlich eine andere Taste erzeugt wird.PowerToys und Windows terminal reagieren mittels reneo nicht.
Vielleicht kann man ja irgendwo wie unter Linux X.org:
xmodmap
,xbindkeys
bestimmte Tastenkombinationen zu einer Taste, wie in diesem Fall eine Backtick-Taste, ummappen?