Rhaban
Anmeldungsdatum: 25. Juni 2016
Beiträge: 465
Wohnort: München
|
Hallo, ich habe vor einigen Wochen von Ubuntu 18 auf Ubuntu 20.04 umgestellt. Die meisten Probleme sind gelöst, neu ist aber ein ― aus meiner Sicht merkwürdiges ― Problem: Die Xmodmap-Datei (die ich selbst überarbeitet hatte) greift während meiner Arbeit plötzlich (ohne erkennbaren Anlass) statt auf die 1. Tastaturebene auf die 3. Tastaturebene zu; es ist dann im Prinzip so, als würde ich ständig die <AltGr>-Taste drücken: €ş işt iµ prinziÞ şo― alş würd€ iç ştändiğ di€ |AltĠr-Taşt€ drüçk€n· Da Marwell schon vor Jahren ein ähnliches Problem hatte, stelle ich meine Frage in diese Rubrik ein; ich hoffe, es ist o. k. so. Hier ein Ausschnitt aus meiner Xmodmap-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | keycode 10 = acircumflex exclam plusminus U2083
keycode 11 = ecircumflex U0022 U201E U201D
! rightdoublequotemark rightdoublequotemark rightdoublequotemark rightdoublequotemark ecaron Ecaron U2039 U203A U2039 U203A
! 1 2 3 4 5 6 7 8 9 10 11 12
! ― ― normal <SHIFT> ― ― ― ― 9: <AltGr> 10: <SHIFT><AltGr> ― ―
keycode 12 = icircumflex section onehalf U2084
keycode 13 = ocircumflex dollar U2153 U00B2
keycode 14 = ucircumflex percent onequarter U00B3
keycode 15 = guillemotleft ampersand U00BE U2074
keycode 16 = ediaeresis slash braceleft fivesuperior
keycode 17 = idiaeresis parenleft bracketleft sixsuperior
keycode 18 = guillemotright parenright bracketright sevensuperior
keycode 19 = identical equal braceright eightsuperior
keycode 20 = ssharp question backslash ninesuperior
keycode 21 = dead_acute dead_grave U2081 U2080
keycode 22 = BackSpace BackSpace BackSpace BackSpace
keycode 23 = Tab ISO_Left_Tab Tab Tab
! 1 2 3 4
keycode 24 = q Q at Greek_OMEGA
keycode 25 = w W lstroke Lstroke
keycode 26 = e E EuroSign U1D49
keycode 27 = r R rcaron Rcaron
keycode 28 = t T tslash Tslash
keycode 29 = z Z leftarrow yen
keycode 30 = u U downarrow uparrow
keycode 31 = i I rightarrow idotless
keycode 32 = o O oslash Oslash
keycode 33 = p P thorn THORN
keycode 34 = udiaeresis Udiaeresis dead_diaeresis dead_abovering
keycode 35 = plus asterisk dead_tilde dead_macron
keycode 36 = Return Return Return Return Return Return Return Return Return Return
keycode 37 = Control_L
keycode 38 = a A atilde Atilde
keycode 39 = s S U015F U015E
keycode 40 = d D eth ETH
keycode 41 = f F dstroke ordfeminine
keycode 42 = g G U011F U0120
keycode 43 = h H hstroke Hstroke
keycode 44 = j J j J
keycode 45 = k K kra ampersand
keycode 46 = l L lstroke Lstroke
keycode 47 = odiaeresis Odiaeresis dead_doubleacute dead_doubleacute
keycode 48 = adiaeresis Adiaeresis dead_circumflex dead_caron
|
Die zwei „j” und zwei „J” habe ich ganz bewusst so gelassen, damit ich im Notfall mit
das Behelfs-Shell-Script aufrufen kann, das mir wenigstens eine Not-xmodmap-Datei lädt:
| #!/bin/bash
dialog --colors --shadow --infobox "\Z1\Zb\ZrAusfall der \Z4xmodmap\Z1-Tastatursteuerung\Zn\n\n\
Es wird auf die alte \Z4xmodmap\Zn-Tastatursteuerung umgestellt, die die ersten beiden Spalten der \Z4Xmodmap\Zn-Datei ignoriert.\n\n\
Bitte haben Sie einen Augenblick Geduld ..." 12 130
xmodmap Xmodmap_3_Ubu_18.xmp
dialog --colors --shadow --inputbox "Z1\Zb\ZrAusfall der \Z4xmodmap\Z1-Tastatursteuerung\Zn\n\n\
Bitte geben Sie nun verschiedene Zeichen ein, um sicherzustellen, dass die Tastatur (behelfsmäßig) funktioniert.\n \n" 12 130
|
Für jede Hilfe bin ich dankbar. Rhaban
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Was gibt denn nur xmodmap aus?
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 465
Wohnort: München
|
Hallo,
gibt aus:
| xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock BadKey (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), BadKey (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 U0001F56E (0x85), infinity (0x86), BadKey (0xce), BadKey (0xcf)
mod5 BadKey (0x5c), BadKey (0xcb)
|
Rhaban
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Da siehst du das Problem. Lauter BadKey-Einträge. Da fängst du am besten noch mal bei einem funktionierenden Layout an. Mit Sondercharakteren und den XF86-Keys musst du auch aufpassen, manche wirken „immer“, wenn sie einmal aktiviert wurden. Du kannst auch nicht jede Taste zu einem Level-Modifier machen, o.ä. Wenn du viele Änderungen brauchst, wäre es ggf. besser gleich ein ganzes custom layout zu erstellen. Die funktionieren auch in den *buntus gut.
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 465
Wohnort: München
|
Hallo, ChickenLipsRfun2eat, danke für Deine schnelle Antwort. Ich muss Dir aber gestehen, dass ich sie nicht verstehe. Was kann ich konkret machen? Welche Fehler habe ich in meiner xmodmap-Datei gemacht? Im Internet habe ich immer nur Hinweise gefunden, dass man in xmodmap beliebig die Zeichen eintragen will, die man braucht und verwenden will. Was verstehst Du unter „funktionierendes Layout”, was sind „XF86-Keys”, was ist ein „Level-Modifier”, was ein "custom layout"? Bitte entschuldige meine Ignoranz. Rhaban
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Ich zitiere mal aus einer mir gut bekannten Quelle: ChickenLipsRfun2eat schrieb: Steev schrieb: Was meinst du mit den 8 Ebenen?
Also, je nachdem welche Abkürzungen man verwendet, wird es kompliziert. Grundlegend ist es so, dass Tasten gewisse Signale senden . Der Tastencode davon wird gemappt, so dass du dein Tastaturlayout wechseln kannst. Damit ist möglich den us-Benutzern ein ; und den deutschen ein ö auf der selben Taste zu präsentieren. Die Ebenen-Tasten wie Shift, AltGr, usw. spielen dabei eine besondere Rolle. Diese sind anders verdrahtet. Ohne jetzt zu sehr ins Detail zu gehen, eine Tastatur besteht aus Blöcken (Spalten und Reihen) von Tasten und meist kann nur ein Signal des Blocks gelesen werden, so dass bspw.
W +
E keine Tastenkombination ergibt, weil es entweder
W oder
E gibt. Daher kann man auch nicht
W als
⇧ nehmen — und wenn, dann funktioniert es nur bedingt. Daneben gibt es noch die ganzen Sondertasten des XF86-Gedöns, die solche Dinge aufrufen wie Taschenrechner, Email, usw. Aber zurück zu den Ebenen: Es gibt 8 mögliche Ebenen pro Taste. Ich nehme mal als Beispiel ganz überraschend die Taste
W . Wenn du nur w drückst, kommt ein kleines w, das ist Level 1, mit Shift (Level 2) ein großes W, mit AltGr Level 3, usw. Wir definieren uns in unserem Layout nun folgende Zeile:
key <AD02> { [ w, W, degree, paragraph, period, comma, colon, semicolon ] };
AD02 bedeutet: Vierte Reihe von unten (also die mit TAB, q, w,…) und davon der zweite Buchstabe: w. AA01 wäre die linke Control (Strg). Insgesamt 8 verschiedene Zeichen. Weiterhin angenommen wir haben
⇧ ,
Alt Gr ,
⇩ Rollen als Level-Tasten festgelegt, so komme ich wie folgt an alle 8 Zeichen auf der einen Taste: | Level | Tastenkombination | Ausgabe |
| Level1 | ·w· | w |
| Level2 | ·Shift· + ·w· | W |
| Level3 | ·AltGr· + ·w· | ° |
| Level4 | ·AltGr + ·Shift + w· | ¶ |
| Level5 | ·Scroll· + ·w· | . |
| Level6 | ·Scroll· + ·⇧Shift· + ·w· | , |
| Level7 | ·Scroll· + ·AltGr· + ·w· | : |
| Level8 | ·Scroll· + ·AltGr· + ·⇧Shift· + ·w· | ; |
Passte grad gut hier rein und sollte dir die meisten Fragen beantworten. Ebene = Level, falls das nicht klar wird. Was genau du falsch machst, kann ich dir nicht sagen, es sei denn du hast exakt das selbe Tastaturmodell das ich benutze. Selbst dann müsste ich noch deine ganzen Sonderzeichen und Hexcodes raussuchen. Das darfst du schön selbst machen 😉 Was du konkret machen kannst, kommt auch ein wenig auf die Anzahl der Änderungen an. Ich bleibe in der Theorie mal bei xmodmap:
Du lädst ein funktionierendes Tastaturlayout, bspw. setxkbmap us altgr-intel exportiere dessen xmodmap mit xmodmap -pke > neuer_ansatz bearbeite die Datei schrittweise lade die Datei prüfe auf Fehler nächster Schritt …usw.
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 465
Wohnort: München
|
Danke, ChickenLipsRfun2eat, für Deine schnelle Antwort. Ich habe inzwischen Folgendes herausbekommen: Für das Update auf Ubuntu 20.04 habe ich eine neue xmodmap-Datei geschrieben, Xmodmap_3.xmp. Diese Datei, die nur aus 4 Ebenen (Levels) besteht, wird beim Start automatisch geladen. Drücke ich dann die Taste „a”, erscheint „a mit Tilde”. So sieht eine Zeile in dieser Xmodmap_3.xmp-Datei aus:
| keycode 38 = a A atilde Atilde
|
Das heißt: Es wird gleich auf Level 3 zugegriffen, Levels 1 und 2 werden gar nicht angesprochen; sie sind auch gar nicht erreichbar. Ich habe dann mit
meine „xmodmap-Notdatei” Xmodmap_3.Ubu_18.xmp über das Shellscript J aufgerufen. Die „a-Zeile” lautet hier nun:
| ! 1 2 3 4 5 6 7 8 9 10
keycode 38 = a A a A atilde AE atilde A a A
|
Tatsächlich wird jetzt für die „normalen”, kleinen Buchstaben auf Level 3 und für die Großbuchstaben auf Level 4 zugegriffen. Für den Buchstaben q sieht es in der Datei so aus:
| ! 1 2 3 4 5 6 7 8 9 10
keycode 24 = q Q q Q notsign notsign ae ae at Greek_OMEGA
|
Jetzt greift xmodmap auf die Levels 3 (q), 4(Q), 9 (@, dargestellt als "at") und 10 (Ω, dargestellt als "Greek_OMEGA) zu. Warum er das tut und die anderen Levels ignoriert, weiß ich nicht. Schon unter Ubuntu 18 hatte ich hin und wieder das Problem, dass sich während der Arbeit der Zeichensatz verändert hatte. Ich möchte jetzt Folgendes versuchen: Ich sichere die Datei Xmodmap_3.xmp irgendwo, dass sie mir nicht verloren geht und kopiere Xmodmap_3_Ubu_18.xmp auf Xmodmap_3.xmp, damit sie beim Hochfahren automatisch geladen wird. Ich hoffe, dass es während meiner Arbeit keine Überraschungen gibt. Wenn doch, würde ich es mit Deinem Rat (setxkbmap ...) versuchen. Rhaban
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Du musst zunächst mal den Fehler mit deinen Mod-tasten loswerden. Für die Mod-Tasten gibt es auch verschiedene Möglichkeiten (shift, latch und lock). Da darf kein BadKey drinstehen. Falls irgendwas nicht belegt ist, bleibt das einfach leer. Beispiel: user@desktop[~]› xmodmap
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2
mod3 Num_Lock (0x4d), ISO_Level5_Shift (0x4e)
mod4 Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
user@desktop[~]›
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 465
Wohnort: München
|
Hallo, danke für Deine Nachricht. Allein: Wie mache ich das? Ich vermute, dass ich
und dann bestimmte Befehle eingeben muss. Welche Befehle sind das? Übrigens funktioniert heute meine Tastatur einwandfrei. Rhaban
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Wenn du nach xmodmap vorgehst, stehen die mit in der Datei. Beispiel keycode 108 = ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 465
Wohnort: München
|
Hallo, in meiner xmodmap-Datei steht bei Zeichen 108 nur:
| keycode 108 = Mode_switch
|
Soll ich das verändern?
| keycode 124 = ISO_Level3_Shift
|
steht nur einmal in der Datei, bei keycode 124, und auch da nur einmal. Was sollte ich jetzt machen? Rhaban
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Das gilt auch nur für meine und gleiche Tastaturen. Die Signale können sich ja unterscheiden. Rhaban schrieb: Was sollte ich jetzt machen?
Dich noch mal einlesen. Für das was du vorhast gibt es keine copy&paste-Vorlage ohne nachdenken und verstehen. Daher auch mein Vorschlag oben, noch mal mit einem funktionierenden Standard-Layout anzufangen und nach und nach die Änderungen einzupflegen.
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 465
Wohnort: München
|
Hallo, ich denke, dass meine jetzige Xmodmap-Datei meinen Vorstellungen entspricht. Es ist zwar etwas ungewöhnlich, dass meine vier Level den Levels 3, 4, 9 und 10 entsprechen ... aber solange es funktioniert, bin ich zufrieden. Sollte das System doch wieder kollabieren, würde ich mich noch einmal melden. Rhaban
|