Ich nochmal. Ich wusste gar nicht mehr, dass ich doch damals schon ein
paar erwähnenswerte Abweichungen vom "Standard" habe einfließen lassen
bzgl. Modifier Tasten und Ebene 4. Ich wollte eigentlich irgendwann
später darüber schreiben, aber was soll's. Grundsätzlich kann man die
teilweise abweichende Beschriftung natürlich gerne einfach ignorieren.
Mit den Bezeichnungen Mod2/3/4 war ich nie wirklich glücklich. Ich
erkläre immer mal wieder "Mod3 ist sowas wie eine weitere
Umschalt-Taste". Aber warum ist es dann Mod3 und nicht Mod2? Und wenn
man mit Tastatur Firmware zu tun hat, fängt die Nummerierung der Ebenen
mit 0 an, und es passt wieder nicht. Vor allem aber sind drei Modifier
Tasten nicht so viele, dass man anfangen muss sie durchzunummerieren.
Richtige Namen sind möglich und viel ansprechender. Man würde seine
Kinder auch nicht (ernsthaft) Kind1, Kind2, Kind3 nennen. Bei mir heißen
die Tasten daher Interpunktionstaste und Navigation-Nummern-Taste. Über
die Label "umsh", "ipun", "nanu" auf den Tastenkappen kann man sich
sicher streiten.
Mir war aufgefallen, dass hoch und runter Navigieren den Mittelfinger
sehr strapaziert (auf den Hardware-Tasten aber insbesondere auch auf
Ebene 4, die wir beeinflussen können). Also habe ich die Pfeiltasten in
eine Reihe gelegt, sodass man navigieren kann ohne die Finger von der
Grundreihe zu nehmen. Das hat passende Änderungen für Bild hoch/runter,
Pos1/Ende und die Lösch-Tasten nach sich gezogen.
Auf der andere Seite (wörtlich) hatte ich Neo mal "gepatcht" damit im
Nummernblock 123 oben ist und nicht 789. Dass das besser ist, würde ich
immer noch verteidigen, aber auch hier wollte ich dann "Ergonomie" über
intuitives/gewohntes Layout stellen und habe vier statt nur drei Ziffern
in die Grundreihe gelegt. Also 1234\5678\9,.0 und drum herum
entsprechend angepasst.
Falls jemand das Thema vertiefen möchte, neuer Thread?
Schöne Grüße,
Chris
P.S.: Ich hänge das Python Script an, das ich (glaube ich) verwendet
hatte um Neo unter Linux entsprechend zu patchen. Vielleicht besser
nicht blind ausführen.
Am 14.02.26 um 18:20 schrieb Chris K via Diskussion:
Hallo zusammen,
ich habe Neo Tastenkappen zu verschenken (kostenlos bis auf etwaige
Versandgebühren). Für Cherry MX kompatible Switches.
Sind in gutem Zustand, habe sie nur übrig weil ich ja letzten Sommer
zu Noted gewechselt bin.
Für eine ortholineare 15x5 Tastatur, aber selbst für jemanden, der
nicht genau all diese Tasten gebrauchen kann, ist es vielleicht
interessant. Sind von FKCustom.
SLK Profil, Ebenen 2-6:
https://e.pcloud.link/publink/show?code=XZnTR3Z7oegpFpCzdzW5uN0NKrjLjQCaKLy
LPF Profil, Ebenen 2-4 plus Qwertz (durchscheinend für RGB
Beleuchtung):
https://e.pcloud.link/publink/show?code=XZEMR3ZAqo9G2RkFzfpoOkBE9sWFkMHRC1k
Bei Interesse, gerne bei mir melden: chris-k [at] mailbox.org
Viele Grüße,
Chris
_______________________________________________
Diskussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]
'''Patch the navigation-numbers layer of the neo layout such that
the four arrow keys are directly under the left hand, and the home, pgup, pgdn, end keys are directly above them.
The delete-left and delete-right keys are moved to the remaining free positions.
The same is done for the right hand for the digits 5, 6, 7, 8 and 1, 2, 3, 4.
Comma and dot are moved to where they are in layer 1; digits 9 and 0 next to them.
Like in layer 3, the semicolon is moved below the colon, to the space key.
Run like this:
sudo python3 chrisk_nanu.py
! If you use Wayland instead of X11, you may have to copy the new file to ~/.config/xkb/symbols !
'''
import shutil
filepath = '/usr/share/X11/xkb/symbols/de'
# backup in the present working directory
shutil.copy2(filepath, './' + filepath[1:].replace('/', '-') + '_pre_chrisk_nanu')
# dictionary of translations (includes the pseudo layer)
dic = {
# top row left
'Prior, Prior, ': 'Home, Home, ',
'BackSpace, BackSpace, ': 'Prior, Prior, ',
'Up, Up, ': 'Next, Next, ',
'Delete, Delete, ': 'End, End, ',
'Next, Next, ': 'BackSpace, BackSpace, ',
# middle row left (Down and Right stay)
'Home, Home, ': 'Left, Left, ',
'Left, Left, ': 'Up, Up, ',
'End, End, ': 'Delete, Delete, ',
# top row right
'KP_7, KP_7, ': 'KP_1, KP_1, ',
'KP_8, KP_8, ': 'KP_2, KP_2, ',
'KP_9, KP_9, ': 'KP_3, KP_3, ',
'KP_Add, KP_Add, ': 'KP_4, KP_4, ',
# middle row right
'KP_4, KP_4, ': 'KP_5, KP_5, ',
'KP_5, KP_5, ': 'KP_6, KP_6, ',
'KP_6, KP_6, ': 'KP_7, KP_7, ',
'KP_Separator, comma, ': 'KP_8, KP_8, ',
'period, KP_Decimal, ': 'KP_Add, KP_Add, ',
# bottom row right
'KP_1, KP_1, ': 'KP_9, KP_9, ',
'KP_2, KP_2, ': 'KP_Separator, comma, ',
'KP_3, KP_3, ': 'period, KP_Decimal, ',
'semicolon, NoSymbol, ': 'KP_0, KP_0, ',
'KP_0, KP_0, ': 'semicolon, NoSymbol, ',
}
# load the config file as one string
config = None
with open(filepath) as file:
config = file.read()
assert config is not None
# get the relevant section (roughly) to avoid global substitution (messing with the other de layouts)
beg = config.find('xkb_symbols "neo_base" {'); assert beg != -1
end = config.find('xkb_symbols "neo" {', beg); assert end != -1
sub = config[beg:end]
# two-pass with temporaries to avoid overriding own changes
for k, v in dic.items():
sub = sub.replace(' ' + k, 'TMP_' + v, 1) # last arg is max num replacements
for k, v in dic.items():
sub = sub.replace('TMP_' + v, ' ' + v, 1)
# overwrite the old file
with open(filepath, 'w') as file:
file.write(config[:beg])
file.write(sub)
file.write(config[end:])
_______________________________________________
Diskussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]