Comments (9)
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.
from reneo.
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.
from reneo.
Von den hart festgelegten Modifier-Kombinationen für die sechs Ebenen loszukommen hatte ich sowieso langfristig auf dem Pla
Top 😉
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.
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.
Natürlich braucht man die Modifier dann nicht mehr zusätzlich drücken, wenn man bereits in der entsprechenden Ebene ist.
ü als Modifier + esdf (in Qwerzt) sind aber viel bequemer zu drücken als beispielsweise Ctrl+Shift+ü+e.
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.
from reneo.
Danke, funktioniert gut!
Allerdings würde ich jetzt gerne noch konfigurieren, dass bestimmte Tasten nur Modifier in bestimmten Ebenen sind :D
Ich will im Neo2 Layout üöä als Modifier verwenden, aber brauch die Tasten für Ebene 3 und 4...
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.
from reneo.
Das riecht doch wieder nach einem größeren Umbau. Wann wird die config.json
Turing-vollständig? 😄
@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.
from reneo.
Der Quellcode ist open source, aber ich kann ihn nicht empfehlen.
Ich würd es heute so implementieren:
- Es gibt physische Tasten, die durch ihre physikalische Position auf der Tastatur eindeutig beschrieben werden. Es gibt dann ein Event, das auslöst, wenn sich der Druck-Zustand einer physischen Taste ändert.
- Es gibt "Funktionen". Eine Funktion hat einen Effekt beim Drücken und einen Effekt beim Loslassen. Funktionen können sein:
- Keycode Down/Up senden
- Unicode Zeichen senden
- Modifier für Ebenen hinzufügen/entfernen
Ein Tastatur-Layout ist nun ein Mapping von Set + PhysischeTaste nach Funktion.
Am Anfang sind die Modifier leer.
Wenn eine Taste gedrückt wird, wird die Funktion (mit den aktuellen Modifiern) nachgeschlagen und der Drück-Effekt ausgeführt (was ggf. einen Modifier hinzufügt).
Wenn diese Taste losgelassen wird, wird dann der Loslass-Effekt ausgeführt.
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.
from reneo.
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).
hatte gehofft, damit so Kombinationen wie Strg+C u.ä. auf F10 usw. legen zu können.
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}}, ...]
from reneo.
Im neo community chat war ich zuletzt vor ein paar Jahren! ;)
from reneo.
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 🤷
from reneo.
Related Issues (20)
- YouTube Shortcut doesn't work HOT 2
- [FIX_UI-Behavior] It would be very desirable if the osc restored the coordinates after it is reopened
- [BUG] Mouse selected OSC popup + Alt+F4 together can close reneo core process with trayicon complete! HOT 1
- Pressing Ctrl + AltGr + Qwertz-R - Issues
- Add support for the Three Layout aka `3l` HOT 1
- Blacklist um native Layouts erweitern
- Einrastfunktion (Sticky Keys) für Neo-Modifier HOT 1
- Tastatur rastet regelmäßig in einer mysteriösen Ebene ein HOT 4
- Windows 11 - kbdneo+reneo - Powershell HOT 1
- Funktioniert nicht auf Windows 10 mit kbdneo HOT 4
- Backticks do not get printed with nomachine enterprise client 7.4.1 HOT 5
- Mod4-Lock per Option abschaltbar HOT 4
- Switch "cmd" and "option" - Magic keyboard HOT 2
- Keine Windows 10 32bit Unterstützung?
- ReNeo Mine layout not updated to latest changes HOT 1
- Textkodierungschaos in Konsolenausgabe und Logdatei HOT 3
- Unerwartet aktives CapsLock nach ReNeo-Start HOT 2
- Windows 11: ReNeo immer inaktiv nach aufwachen/entsperren/neustart HOT 2
- ERROR_ERROR_OCCURRED_WHILE_STARTING HOT 2
- Bildschirmtastatur farbig unterlegen HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reneo.