-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dynamische Anzahl Von Ebenen #51
Comments
Von den hart festgelegten Modifier-Kombinationen für die sechs Ebenen loszukommen hatte ich sowieso langfristig auf dem Plan (falls es mal tatsächlich jemand braucht 😉). Ebene 2 bleibt zwar weiterhin ein Sonderfall wegen der Interaktion mit dem nativen Layout, alles höhere sollte aber gehen. Für mein Verständnis deines konkreten Anwendungsfalls: mit einem einzigen weiteren Modifier wäre doch auf einer Ebene 7 genug Platz für F13-24, natürlich kombinierbar mit Shift/Ctrl/Alt. Wozu würdest du dann Ebenen 8 und 9 verwenden? Oder habe ich den Vorschlag falsch verstanden? Nur falls du es so meintest: auf eine „Neo-Taste“ eine Kombination wie Strg+Shift+F15 zu mappen funktioniert auch mit den aktuellen 6 Ebenen nicht. Bisher wird ein Tastendruck immer in genau ein Zeichen oder einen VK übersetzt. |
Top 😉
Genau so meinte ich es. Die meisten Shortcuts in VS Code sind schon belegt, F13-F24 allerdings nicht. Nur mit Shift/Alt/Ctrl hat man so 12 * 2^3 = 96 weitere garantiert freie Shortcuts. Wenn man 3 weitere Ebenen mit je über 30 Tasten belegen will, braucht man die Modifier. Technisch sollte dieses Teilfeature kein Hindernis sein: Wenn auf ein Zeichen+Modifier gemappt wird, muss vor dem Senden des Zeichens halt noch Modifier Down und danach Modifier Up gesendet werden. |
Umgesetzt in v1.5.0. Als neue Modifier stehen Mod5-Mod9 zur Verfügung, mit denen Ebenen in beliebigen Kombinationen konfiguriert werden können. Das sollte erstmal eine Weile reichen 😃 Auch Tastenkombinationen kann man jetzt im Mapping festlegen. Bei Fragen dazu gerne melden (z. B. im Neo-Chat oder hier), die Konfiguration gerade der Ebenen ist möglicherweise nicht ganz selbstverständlich. |
Danke, funktioniert gut! Allerdings würde ich jetzt gerne noch konfigurieren, dass bestimmte Tasten nur Modifier in bestimmten Ebenen sind :D Ich hab vor vielen Jahren mal sowas ähnliches wie ReNeo in C# geschrieben. Da hab ich das so gelöst, dass die Modifier-Tasten nicht explizit definiert werden müssen, sondern pro Ebene als Funktion einer Taste definiert werden können. |
Das riecht doch wieder nach einem größeren Umbau. Wann wird die @hediet Das Vorgehen klingt recht praktisch. Magst du vielleicht den (zugehörigen) Quellcode hochladen? Und ggf. die Konfigurationsdatei, falls es nicht alles hartkodiert war. So als Inspiration, wie man das bei Reneo vielleicht verbessern kann. |
Der Quellcode ist open source, aber ich kann ihn nicht empfehlen. Ich würd es heute so implementieren:
Ein Tastatur-Layout ist nun ein Mapping von Set + PhysischeTaste nach Funktion. Am Anfang sind die Modifier leer. Wenn währenddessen eine andere Taste gedrückt wird, wird wieder mit den aktuellen Modifiern die Funktion nachgeschlagen und ausgeführt. Ein Tastatur-Layout lässt sich zum Beispiel so beschrieben: {
"layers": [
{
"name": "level1",
"modifierSets": [[]],
"mapping": {
// Shift. Setzt den Modifier und sendet den Shift-Keycode an Programme
"1B": [{ "fn": "modifier", "modifier": "shift_left" }, { "fn": "keycode", "code": 100 }],
// "f"
"2D": { "fn": "unicode", "text": "φ" }
...
}
},
{
"name": "level2",
"modifierSets": [["shift_left"], ["shift_right"]],
"mapping": {
// Shift. Sendet den Shift-Keycode an Programme
"1B": { "fn": "keycode", "code": 100 },
// "f"
"2D": { "fn": "unicode", "text": "Φ" }
...
}
},
]
} So eine Datei könnte auch von einem anderen Programm/Website generiert werden. |
Hallo @hediet, habe gerade deine Frage im Neo-Chat gelesen (bin mal naiv davon ausgegangen, dass es in der kleinen Community nicht so viele Menschen mit dem Namen gibt).
Das ist doch genau das Feature, was du angefragt hattest. Das geht, indem du diesen Shortcut im Mapping für F10 einträgst. In dem Fall also "44": [{"keysym": "VoidSymbol", "vk": "VK_KEY_C", "mods": {"Ctrl": true}}, ...] |
Im neo community chat war ich zuletzt vor ein paar Jahren! ;) |
Oha, Zufälle gibt's! Das Thema war ja auch sehr ähnlich. Naja, mit extrem viel Glück stolpert dein Namensvetter vielleicht hier noch über die Lösung 🤷 |
Vorweg: Danke fürs Maintainen von diesem Projekt! Ich hatte öfters Probleme mit NeoVars und bin sehr optimitisch was diese native Implementierung betrifft 😉
Es wäre ziemlich cool, wenn man noch eine 7te/8te/9te Ebene definieren könnte.
Gerade beim Programmieren nutze ich
ü
,ö
, undä
gar nicht.Ich würde daraus gerne Modifier für weitere Ebenen machen (und mit irgendeinem Shortcut zwischen Layouts wechseln, sodass ich für E-Mails doch wieder die Umlaute habe).
In den Ebenen 7/8/9 würde ich dann F13-F24 mappen, jeweils modifiziert über Alt, Ctrl und Shift.
Damit gibt es dann 12*2^3 = 96 Aktionen, die Shortcuts in Programmen auslösen können (z.B. in VS Code). Diese Aktionen können dann auf die Ebenen 7/8/9 verteilt werden.
Damit kann man beim Programmieren (z.B. in VS Code) eine ganze Reihe von zusätzlichen Befehlen an sehr zentrale Tasten binden.
The text was updated successfully, but these errors were encountered: