staging.inyokaproject.org

xmodmap unter Ubuntu 22.04

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

Rhaban

Anmeldungsdatum:
25. Juni 2016

Beiträge: 450

Hallo,

ich habe gerade eben auf Ubuntu 22.04 umgestellt; das Meiste klappt auch schön, allerdings habe ich jetzt zeitweise ― aber nicht immer ― Probleme mit xmodmap, Probleme, die bei Ubuntu 20.04 nicht bestanden. Ich hatte unter 20.04 eine Datei Xmodmap_3.xmp geschrieben. Hier ein Auszug:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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  87 = KP_End KP_1
keycode  88 = KP_Down KP_2
keycode  89 = KP_Next KP_3
keycode  90 = KP_Insert KP_0
keycode  91 = KP_Delete period period period period period period period period period
keycode  92 = 

So konnte ich die von mir gewünschte Tastenbelegung erzeugen. Kurios ist jetzt unter Ubuntu 22.04, dass beispielsweise die Taste „, Entf” im Ziffernblock bisweilen funktioniert, also wunschgemäß einen Punkt statt des Komma auslöst (etwa hier in diesem Ubuntuusertexteingabefeld), an anderer Stelle, etwa bei Eingaben in der Shell, gilt die „traditionelle” Belegung. Statt des gewünschten Punktes kommt das übliche Komma (das ich aber nicht haben möchte), statt der Akzentbuchstaben (etwa „î”) kommt die „3”. Da ich meine eigene Tastenbelegung aber gewöhnt bin, würde ich gerne erreichen, dass der Aufruf von

1
xmodmap Xmodmap_3.xmp

auch wirklich meine Tastenbelegung in jeder Situation auslöst.

Für Hilfe wäre ich dankbar.

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Hallo!

Da gibt es einiges zu beachten. Zum einen ist Xmodmap seit > 25 Jahren deprecated, was bedeutet: Kann funktionieren, muss nicht. Dann arbeitet GNOME nicht exakt mit fremden Standards und überschreibt Tastatureinstellungen mit eigenen Settings. Zu guter Letzt musst du zwischen Wayland und X11 differenzieren. Bedeutet, wenn du in einer Wayland-Session bist, funktionieren alle X-Befehle nur für XWayland-Fenster, nicht aber für native Wayland-Fenster.
Interessant ist, das XModmap bei dir unter 20.04 noch funktioniert hat. Bei mir lief es nicht.

XModmap greift zudem vor allen anderen Tastaturveränderungen, also XKB, iBus, etc.

Um das Problem nun zu lösen: Stelle zunächst mal auf „Ubuntu on xorg“ um. ❗ Achtung: Das verändert deine Konfigurationsdateien einmalig aber permanent. Testen, ob es wieder läuft.

Längerfristig sind solche Umstellungen besser in einem eigenen Keyboard-Layout festgelegt. Anleitungen gibt es dazu nen Haufen im Netz, ich kann dir aber keine spezielle Seite empfehlen, da alle nur einen Teil behandeln.

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Rhaban schrieb:

…Kurios ist jetzt unter Ubuntu 22.04, dass beispielsweise die Taste „, Entf” im Ziffernblock bisweilen funktioniert, also wunschgemäß einen Punkt statt des Komma auslöst…

Das wiederum ist eine andere Baustelle und liegt an den Regionaleinstellungen (locale). Dort wird das Trennzeichen explizit festgelegt. In us-Layouts, etc. hast du da also einen Punkt, in deutschen etc. ein Komma. Anwendungen die das respektieren, mappen also diese Taste entsprechend der Regionaleinstellung.

Rhaban

(Themenstarter)

Anmeldungsdatum:
25. Juni 2016

Beiträge: 450

Hallo, ChickenLipsRfun2eat,

danke f[r Deinen beiden Nachrichten.

Leider komme ich nicht weiter. Du siehst es an den fehlenden Sonderzeichen in f[r. Ich habe den Aufruf meiner xmodmap/Datei vor[bergehend in gnome/session/properties ausgelagert, das hat nicht geholfen. Jetzt habe ich die Datei aus gnome ... wieder entfernt und neu gestartet, jetzt bin ich im amerikanischen Zeichensatz gelandet, z und y sind vertauscht.

Um das Problem nun zu lösen: Stelle zunächst mal auf „Ubuntu on xorg“ um.

Wie mache ich das bitte?

Längerfristig sind solche Umstellungen besser in einem eigenen Keyboard-Layout festgelegt. Anleitungen gibt es dazu nen Haufen im Netz, ich kann dir aber keine spezielle Seite empfehlen, da alle nur einen Teil behandeln.

Schreibe mir doch bitte, wie ich das machen soll.

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Rhaban schrieb:

Um das Problem nun zu lösen: Stelle zunächst mal auf „Ubuntu on xorg“ um.

Wie mache ich das bitte?

Im DisplayManager auswählen. Bei GDM (solltest du haben) auf den Namen klicken und dann unten rechts am Zahnrad einstellen.

Längerfristig sind solche Umstellungen besser in einem eigenen Keyboard-Layout festgelegt. Anleitungen gibt es dazu nen Haufen im Netz, ich kann dir aber keine spezielle Seite empfehlen, da alle nur einen Teil behandeln.

Schreibe mir doch bitte, wie ich das machen soll.

Kann ich nicht. Da müsstest du mir erst mal sagen, was genau du machen willst. Theoretisch geht das so: Du liest dir ein, zwei bestehende XKB-Layouts durch, damit du weißt, wie es in etwa funktioniert. Dann erstellst du ein eigenes, importierst da ein globales und trägst lediglich deine Änderungen ein. Damit das grafisch auswählbar wird, muss das noch in den evdev-Listen eingetragen werden. Wie hängt davon ab, ob du Varianten/Optionen anbietest oder nicht, ob du auch ein Terminallayout brauchst, etc. pp.
Im verlinkten Wiki findest du ebenfalls eine Kurzanleitung. Ob die dir reicht, kann ich schlecht abschätzen.

Rhaban

(Themenstarter)

Anmeldungsdatum:
25. Juni 2016

Beiträge: 450

Hallo, ChickenLipsRfun2eat, danke für Deine schnelle Antwort.

Da müsstest du mir erst mal sagen, was genau du machen willst.

Ich möchte gerne bestimmte Zeichen über die Tastatur erzeugen. Wahrscheinlich ist es am einfachsten, ich kopiere Dir einen Teil meiner bisherigen Datei Xmodmap_3.xmp hierher:

  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
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
keycode   8 =
keycode   9 = Escape
keycode  10 = acircumflex exclam 	plusminus U2083
keycode  11 = ecircumflex quotedbl 	U201E U201D 
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 backslash BackSpace	BackSpace	BackSpace ae ssharp BackSpace BackSpace
keycode  23 = Tab
keycode  24 = q 	Q 		at 		Greek_OMEGA
keycode  25 = w 	W 		w 	    W 	    lstroke Lstroke     w	W	w 	W
keycode  26 = e 	E 		EuroSign	U1D49
keycode  27 = r 	R 		rcaron	Rcaron 
keycode  28 = t 	T 		tslash 		Tslash
keycode  29 = z 	Z 		U03B6 	Z
keycode  30 = u 	U 		downarrow 	uparrow
keycode  31 = i 	I 		idotless  U0130 i 	I  	i	I
keycode  32 = o 	O 		oslash 		Oslash o	O	o	O
keycode  33 = p 	P 		U03C0 	U03A0 		U03C0 	U03A0 	U03C0 	U03A0 U03C0 	U03A0 
keycode  34 = udiaeresis Udiaeresis backslash backslash backslash backslash backslash backslash 
keycode  35 = plus 	asterisk U007E dead_macron	
keycode  36 = Return	Return		Return		Return		Return		Return Return 	Return  Return	Return
keycode  37 = Control_L
keycode  38 = a 	A 		U03B1	A
keycode  39 = s 	S 		U015F	U015E
keycode  40 = d 	D 		eth 		ETH	d	D	d	D
keycode  41 = f 	F 		dstroke   ordfeminine	f	F	f	F
keycode  42 = g 	G 		U011F	U0120
keycode  43 = h 	H 		hstroke 	Hstroke h	H	h	H
keycode  44 = j 	J		j	   J	   j		J	j	J	j	J
keycode  45 = k 	K 		U03BA K
keycode  46 = l 	L 		U03BB U039B 	
keycode  47 = odiaeresis Odiaeresis U0153 U0152
keycode  48 = adiaeresis Adiaeresis U04D5 U04D4
keycode  49 = dead_caron degree 	dead_circumflex U2082
keycode  50 = Shift_L ISO_Prev_Group
keycode  51 = numbersign apostrophe     U1E9E  apostrophe
keycode  52 = y 	Y 		y      Y   guillemotleft 	less    y	Y	y	Y  
keycode  53 = x 	X 		x      X   guillemotright  greater x	X	x	X
keycode  54 = c 	C 		ccedilla	Ccedilla
keycode  55 = v 	V 		leftdoublequotemark leftsinglequotemark v V v V
keycode  56 = b 	B 		U03B2 rightdoublequotemark rightsinglequotemark U03B2 B U03B2 B
keycode  57 = n 	N 		U03BD N 
keycode  58 = m 	M 		mu 		masculine  m	M	mu	M
keycode  59 = comma 	semicolon 	Greek_horizbar   Greek_horizbar Greek_horizbar Greek_horizbar Greek_horizbar semicolon
keycode  60 = period colon U00B7 ellipsis division period colon	U00B7 ellipsis
keycode  61 = minus 	underscore 	U21D2 underscore
keycode  62 = Shift_R ISO_Next_Group
keycode  63 = asterisk asterisk asterisk asterisk asterisk asterisk 
keycode  64 = Alt_L ISO_Prev_Group
keycode  65 = space nobreakspace space nobreakspace space space space space space space space
keycode  66 =
keycode  67 = F1 XF86_Switch_VT_1
keycode  68 = F2 XF86_Switch_VT_2
keycode  69 = F3 XF86_Switch_VT_3
keycode  70 = F4 XF86_Switch_VT_4
keycode  71 = F5 XF86_Switch_VT_5
keycode  72 = F6 XF86_Switch_VT_6
keycode  73 = F7 XF86_Switch_VT_7
keycode  74 = F8 XF86_Switch_VT_8
keycode  75 = F9 XF86_Switch_VT_9
keycode  76 = F10 XF86_Switch_VT_10
keycode  77 = Num_Lock Pointer_EnableKeys
keycode  78 = Scroll_Lock
keycode  79 = KP_Home KP_7
keycode  80 = KP_Up KP_8
keycode  81 = KP_Prior KP_9
keycode  82 = KP_Subtract XF86_Prev_VMode
keycode  83 = KP_Left KP_4
keycode  84 = KP_Begin KP_5
keycode  85 = KP_Right KP_6
keycode  86 = KP_Add maltesecross
keycode  87 = KP_End KP_1
keycode  88 = KP_Down KP_2
keycode  89 = KP_Next KP_3
keycode  90 = KP_Insert KP_0
keycode  91 = KP_Delete period period period period period period period period period
keycode  92 = 
keycode  93 = Mode_switch
keycode  94 = less greater bar U00B1 greater bar lessthanequal greaterthanequal bar bar 
keycode  95 = F11 XF86_Switch_VT_11
keycode  96 = F12 XF86_Switch_VT_12
keycode  97 = Home
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 101 =
keycode 102 = Right
keycode 103 = End
keycode 104 = KP_Enter
keycode 105 = Control_R
keycode 106 = KP_Divide
keycode 107 = Print
keycode 108 = Mode_switch
keycode 109 = Control_R Multi_key
keycode 110 = Home Break
keycode 111 = Up
keycode 112 = Prior
keycode 113 = Left
keycode 114 = Right
keycode 115 = End
keycode 116 = Down
keycode 117 = Next
keycode 118 = Insert
keycode 119 = Delete

keycode 124 = ISO_Level3_Shift
keycode 125 = NoSymbol Alt_L
keycode 126 = KP_Equal
keycode 127 = 
keycode 128 = NoSymbol Hyper_L

keycode 133 = U1F56E U25B7 U1F56E U25B7 U25B6 U21D2 latincross    
keycode 134 = infinity  U2248
keycode 135 = Menu

keycode 156 = NoSymbol Meta_L

keycode 167 = periodcentered 

So sahen bisher wesentliche Teile meiner xmodmap-Datei unter allen bisherigen Ubuntu-Versionen aus, bis einschließlich Ubuntu 20.04. Die keycode-Nummer kann man mit xev feststellen; der mit "U" beginnende Code ist der Hexcode des UTF8-Zeichens, vgl. https://www.utf8-zeichentabelle.de/. Die Datei Xmodmap_3.xmp konnte ich mit

1
xmodmap Xmodmap_3.xmp

aufrufen.

Eine Lösung in der Art hätte ich sehr gerne auch für Ubuntu 22.04. Wie genau soll ich vorgehen?

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Die XModmap hilft mir nur bedingt. XKB arbeitet anders und ist deswegen auch nicht kompatibel dazu. xev zeigt zudem nur die X-Keycodes, die andere Werte haben (eigentlich™ muss man nur +8, bzw. -8 rechnen, aber da spielen andere Faktoren mit rein).

Nimm dir ein bestehendes Layout (unter /usr/share/X11/xkb/{,symbols}), lies dich ein oder ändere da. Du solltest dann ein Layout ändern, das du nicht brauchst und dir eine Möglichkeit suchen das zurückzusetzen, wenn du da Mist baust (Layout-Switcher, Bildschirmtastatur, externe Tastatur,…)

Rhaban

(Themenstarter)

Anmeldungsdatum:
25. Juni 2016

Beiträge: 450

Danke. Ich habe mir gerade eben /usr/share/X11/xkb/de angesehen; manche der Einträge dort erinnern mich an die Xmodmap-Dateien.

Ich will von der Datei erst eine Sicherungskopie machen und dann mit der Originaldatei /usr/share/X11/xkb/de experimentieren. Wie rufe ich dann aber die neue Tastatureinstellung auf? Gibt es ein Pendant zu xmodmap? Oder muss ich jedes Mal einen Neustart machen? Ich hoffe nicht. 😉

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Rhaban schrieb:

…ibt es ein Pendant zu xmodmap? Oder muss ich jedes Mal einen Neustart machen? Ich hoffe nicht. 😉

Ein Pendant? Ja, diese Dateien. Da trägst du das Layout ein. Wenn du die Tastensignale anders zuordnen wollen würdest, wäre das in keycodes, dann gibt es auch noch rules und types. Aber fang erst mal mit dem bestehenden an. Das reicht.

XKB neu laden kann man theoretisch. Aber frag mich nicht, wie das in GNOME funktioniert. Versuch mal das Layout hin- und herzuwechseln in den Einstellungen. Ich arbeite hauptsächlich in sway, da muss ich nur „reset“ drücken.

Antworten |