You are not logged in.
Hi there,
I have set
KEYMAP=us-altgr-intl
in /etc/vconsole.conf as I'd like to be able to type German umlauts on my US layout. This works so far, but unfortunately seems to break the Ctrl modifier on all TTYs, e.g., pressing Ctrl+C or Ctrl+L no longer has any effect on a shell.
Any ideas how to get my desired keyboard layout while not breaking the Ctrl modifier?
Thanks,
Specialist
Last edited by Specialist (2022-01-04 22:36:31)
Offline
That doesn't look like a valid console layout?
find /usr/share/kbd/keymaps -name 'us*'
If it actually exists, where did you get it?
Offline
It does exist:
$ find /usr/share/kbd/keymaps -name 'us*'
/usr/share/kbd/keymaps/i386/qwerty/us-altgr-intl.map.gz
/usr/share/kbd/keymaps/i386/qwerty/us-acentos.map.gz
/usr/share/kbd/keymaps/i386/qwerty/us.map.gz
/usr/share/kbd/keymaps/i386/qwerty/us1.map.gz
But you may be right. Could be that I installed it years ago when I set up my last laptop... Difficult to tell today, where I got it. I'll see what's wrong about the actual layout.
Offline
It's not in the repos for sure.
I found https://bugzilla.redhat.com/show_bug.cgi?id=1843379 (which is just "installer crashes if I set this invalid layout because it's invalid) but it does or did exist in CentOS, https://centos.pkgs.org/8-stream/centos … h.rpm.html
So it is/was sprobably a fedora thing.
If you need help w/ that map, you'll have to upload it, since we otherwise can't know what it actually is.
Offline
It's the layout referenced here: https://www.reddit.com/r/archlinux/comm … t/d3jigz1/
The link is dead, so I am including it inline in this post:
# us-altgr-intl-nodeadkeys.map
# Max Klinger keymap@max-klinger.org
# include the unusual 3 because we need to explicitely set shift+alt-gr
keymaps 0-6,8-9,12
alt_is_meta
include "qwerty-layout"
include "linux-with-alt-and-altgr"
include "compose.latin1"
strings as usual
# nothing shift altgr shift+altgr ctrl Ctrl+shift
keycode 1 = Caps_Lock
keycode 2 = one exclam onesuperior exclamdown
# dead_doubleacute doesn't seem to work for me
keycode 3 = two at twosuperior dead_doubleacute
keycode 4 = three numbersign Meta_three nul Escape
keycode 5 = four dollar currency sterling Control_backslash
keycode 6 = five percent euro dead_cedilla Control_bracketright
keycode 7 = six circumflex dead_circumflex onequarter Control_asciicircum
# dead_horn doesn't exist, don't know if this is similar
keycode 8 = seven ampersand thorn onehalf Control_underscore
# dead_ogonek doesn't work right
keycode 9 = eight asterisk dead_ogonek threequarters Delete
# opening quotation mark missing, dead_breve -> dead_tilde
keycode 10 = nine parenleft apostrophe dead_breve
keycode 11 = zero parenright braceright
keycode 12 = minus underscore backslash Control_underscore Control_underscore
keycode 13 = equal plus
keycode 14 = Delete Delete
control keycode 14 = BackSpace
keycode 15 = Tab Tab
alt keycode 15 = Meta_Tab
shift keycode 15 = Meta_Tab
keycode 16 = q Q adiaeresis Adiaeresis
keycode 17 = w W aring Aring
keycode 18 = e E eacute Eacute
keycode 19 = r R ediaeresis Ediaeresis
keycode 20 = t T thorn THORN
keycode 21 = y Y udiaeresis Udiaeresis
keycode 22 = u U uacute Uacute
keycode 23 = i I iacute Iacute
keycode 24 = o O oacute Oacute
keycode 25 = p P odiaeresis Odiaeresis
# leftdoublequotemark doesn't seem to exist
keycode 26 = bracketleft braceleft guillemotleft
control keycode 26 = Escape
alt keycode 26 = Meta_bracketleft
shift alt keycode 26 = Meta_braceleft
# neither does rightdoublequotemark
keycode 27 = bracketright braceright guillemotright
alt keycode 27 = Meta_bracketright
shift alt keycode 27 = Meta_braceright
keycode 28 = Return
alt keycode 28 = Meta_Control_m
keycode 29 = Control
keycode 30 = a A aacute Aacute
keycode 31 = s S ssharp section
keycode 32 = d D eth ETH
keycode 33 = f F f F
keycode 34 = g G g G
keycode 35 = h H h H
keycode 36 = j J idiaeresis Idiaeresis
keycode 37 = k K oe OE
keycode 38 = l L oslash Ooblique
keycode 39 = semicolon colon paragraph degree
alt keycode 39 = Meta_semicolon
keycode 40 = dead_acute dead_diaeresis apostrophe quotedbl
control keycode 40 = Control_g
alt keycode 40 = Meta_apostrophe
keycode 41 = dead_grave dead_tilde
control keycode 41 = nul
alt keycode 41 = Meta_grave
keycode 42 = Shift
keycode 43 = backslash bar notsign brokenbar
control keycode 43 = Control_backslash
alt keycode 43 = Meta_backslash
shift alt keycode 43 = Meta_bar
keycode 44 = z Z ae AE
keycode 45 = x X oe OE
keycode 46 = c C copyright cent
keycode 47 = v V registered registered
keycode 48 = b B b B
keycode 49 = n N ntilde Ntilde
keycode 50 = m M mu mu
keycode 51 = comma less ccedilla Ccedilla
alt keycode 51 = Meta_comma
shift alt keycode 51 = Meta_less
# dead_abovedot doesn't exist -> period
keycode 52 = period greater period dead_caron
control keycode 52 = Compose
alt keycode 52 = Meta_period
shift alt keycode 52 = Meta_greater
#dead_hook doesn't exist
keycode 53 = slash question questiondown
control keycode 53 = Delete
alt keycode 53 = Meta_slash
keycode 54 = Shift
keycode 55 = KP_Multiply
keycode 56 = Alt
keycode 57 = space space
control keycode 57 = nul
alt keycode 57 = Meta_space
keycode 58 = Caps_Lock
keycode 59 = F1 F11 Console_13 F1
alt keycode 59 = Console_1
control alt keycode 59 = Console_1
keycode 60 = F2 F12 Console_14 F2
alt keycode 60 = Console_2
control alt keycode 60 = Console_2
keycode 61 = F3 F13 Console_15 F3
alt keycode 61 = Console_3
control alt keycode 61 = Console_3
keycode 62 = F4 F14 Console_16 F4
alt keycode 62 = Console_4
control alt keycode 62 = Console_4
keycode 63 = F5 F15 Console_17 F5
alt keycode 63 = Console_5
control alt keycode 63 = Console_5
keycode 64 = F6 F16 Console_18 F6
alt keycode 64 = Console_6
control alt keycode 64 = Console_6
keycode 65 = F7 F17 Console_19 F7
alt keycode 65 = Console_7
control alt keycode 65 = Console_7
keycode 66 = F8 F18 Console_20 F8
alt keycode 66 = Console_8
control alt keycode 66 = Console_8
keycode 67 = F9 F19 Console_21 F9
alt keycode 67 = Console_9
control alt keycode 67 = Console_9
keycode 68 = F10 F20 Console_22 F10
alt keycode 68 = Console_10
control alt keycode 68 = Console_10
keycode 69 = Num_Lock
keycode 70 = Scroll_Lock Show_Memory Show_Registers Show_State
alt keycode 70 = Scroll_Lock
keycode 71 = KP_7
alt keycode 71 = Ascii_7
keycode 72 = KP_8
alt keycode 72 = Ascii_8
keycode 73 = KP_9
alt keycode 73 = Ascii_9
keycode 74 = KP_Subtract
keycode 75 = KP_4
alt keycode 75 = Ascii_4
keycode 76 = KP_5
alt keycode 76 = Ascii_5
keycode 77 = KP_6
alt keycode 77 = Ascii_6
keycode 78 = KP_Add
keycode 79 = KP_1
alt keycode 79 = Ascii_1
keycode 80 = KP_2
alt keycode 80 = Ascii_2
keycode 81 = KP_3
alt keycode 81 = Ascii_3
keycode 82 = KP_0
alt keycode 82 = Ascii_0
keycode 83 = KP_Period
altgr control keycode 83 = Boot
control alt keycode 83 = Boot
keycode 84 = Last_Console
keycode 85 =
keycode 86 = less greater bar
alt keycode 86 = Meta_less
keycode 87 = F11 F11 Console_23 F11
alt keycode 87 = Console_11
control alt keycode 87 = Console_11
keycode 88 = F12 F12 Console_24 F12
alt keycode 88 = Console_12
control alt keycode 88 = Console_12
keycode 89 =
keycode 90 =
keycode 91 =
keycode 92 =
keycode 93 =
keycode 94 =
keycode 95 =
keycode 96 = KP_Enter
keycode 97 = Control
keycode 98 = KP_Divide
keycode 99 = VoidSymbol
control keycode 99 = Control_backslash
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
shift keycode 104 = Scroll_Backward
keycode 105 = Left
alt keycode 105 = Decr_Console
keycode 106 = Right
alt keycode 106 = Incr_Console
keycode 107 = Select
keycode 108 = Down
keycode 109 = Next
shift keycode 109 = Scroll_Forward
keycode 110 = Insert
keycode 111 = Remove
altgr control keycode 111 = Boot
control alt keycode 111 = Boot
keycode 112 = Macro
altgr control keycode 112 = VoidSymbol
shift alt keycode 112 = VoidSymbol
keycode 113 = F13
altgr control keycode 113 = VoidSymbol
shift alt keycode 113 = VoidSymbol
keycode 114 = F14
altgr control keycode 114 = VoidSymbol
shift alt keycode 114 = VoidSymbol
keycode 115 = Help
altgr control keycode 115 = VoidSymbol
shift alt keycode 115 = VoidSymbol
keycode 116 = Do
altgr control keycode 116 = VoidSymbol
shift alt keycode 116 = VoidSymbol
keycode 117 = F17
altgr control keycode 117 = VoidSymbol
shift alt keycode 117 = VoidSymbol
keycode 118 = KP_MinPlus
altgr control keycode 118 = VoidSymbol
shift alt keycode 118 = VoidSymbol
keycode 119 = Pause
altgr control keycode 119 = VoidSymbol
shift alt keycode 119 = VoidSymbol
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
keycode 126 =
keycode 127 =
Offline
Is this verbatim or a flawed copy out of the pager?
There're some stray linebreaks…
Offline
It's a zcat right to the clipboard. I just uploaded the original file: http://ix.io/3HqG
Last edited by Specialist (2021-12-08 21:50:05)
Offline
Note that if what you want is a us international layout without dead keys, there is also a "altgr-intl" variant of the packaged xkb "us" layout, which does not suffer from this issue:
%zsh> xkbcli list|grep altgr-intl -B 1 -A 4
- layout: us
variant: altgr-intl
brief: ''
description: English (intl., with AltGr dead keys)
iso639: [eng, fra, deu]
iso3166: []
The altgr key (right alt) is used to access non-ascii characters, see the link for a layout map:
https://www.twam.info/wp-content/upload … tional.png
However, the umlaut characters can also be accessed via AltGr + " followed by a, u, etc.
Accented cahracters: AltGr + ' (apostrophe) followed by e, a, etc.
And so forth, essentially the dead keys from "alt-intl" are still there as an option, but they are only activated when AltGr is pressed. This makes it less annoying to type the normal apostrophe, quotes, etc.
Not a direct solution, but it's what I've just started to use after digging around for it.
Last edited by adigitoleo (2022-01-01 06:35:41)
Offline
He wants that for the console.
@Specialist, sorry - this one fell off the wagon.
The reason is that the layout defines a non-simple setup for keycode 46 ("c"), so you must add the behavior for the control sequence explicitly:
…
keycode 46 = c C copyright cent
control keycode 46 = Control_c # <================== this line
keycode 47 = v V registered registered
It's the last paragrap in https://man.archlinux.org/man/keymaps.5 … EFINITIONS
You'll ave to do that for all complex definitions (ie. likley at least also ctrl+d)
Offline
The reason is that the layout defines a non-simple setup for keycode 46 ("c"), so you must add the behavior for the control sequence explicitly: [...]
You'll ave to do that for all complex definitions (ie. likley at least also ctrl+d)
Excellent, works like a charm. Thanks for your help! When I find some time I'll try to publish this as an AUR...
Offline