Faça 'um morto em X11

3

Eu estou em um teclado sueco, um teclado que é carregado com chaves mortas , isto é, para produzir um 'ä' eu pressionaria " (o mesmo botão como ~ / ^ ) e depois a (ou pressione o botão dedicado ä ...), e para produzir um " eu pressionaria o mesmo botão seguido por um espaço. O mesmo com ' e outras chaves similares.

A coisa é que eu costumo usar ' mais e mais nos dias de hoje. E pressionar Shift , ' e então Espaço toda vez que eu precisar de um simples ' não é tão divertido quanto pareceria. E eu sou um fanboy do Emacs, geralmente gosto de combos de teclado estranhos.

De qualquer forma, eu gostaria de remapear meu botão '' ± para dar saída (preferencialmente) somente ', como acontece no meu Mac. Eu posso viver com isso enviando as outras chaves inativas, desde que emita ' sem nenhum pressionamento de tecla adicional.

Estou usando principalmente o X11 (X.org, Archlinux etc) neste computador. Eu estou usando um layout de teclado chamado Svorak A5 , se faz alguma diferença. Eu tentei modificar este arquivo de acordo com a aparência do layout do dvorak em inglês, mas não consegui fazê-lo funcionar. Eu preferiria não usar o Xmodmap, mas realmente não é um problema. Alguma idéia?

    
por monotux 14.11.2010 / 13:58

2 respostas

2

Peça para Magnus acrescentar as seguintes linhas ao seu arquivo (ou faça você mesmo: -)):

partial alphanumeric_keys xkb_symbols "svorak_nodeadkeys" {
    include "magnus_xkb_se(svorak)"
    name[Group1]="Svorak A5 - Eliminate dead keys";
    key <AD12> { [ dead_diaeresis, asciicircum, asciitilde, dead_circum ] };
    key <AE12> { [ acute,          grave,       plusminus,  none        ] };
};

Aqui eu suponho que você queira manter o diaeresis ¨ como uma chave morta, já que não conheço nenhuma linguagem de programação ou comandos do sistema que realmente precisem desse caractere. Caso contrário, o mapeamento é o mesmo.

Pessoalmente, eu teria alterado a definição para a chave AD12 em:

    key <AD12> { [ asciitilde, asciicircum, dead_diaeresis, dead_circum ] };

como o layout do teclado já tem Ö como um caractere separado, e o til ~ é usado com bastante frequência no Unix.

Ative com este comando:

setxkbmap -layout magnus_xkb_se -variant svorak_nodeadkeys

Observe que se magnus_xkb_se não for o nome do arquivo no qual o layout reside, você deverá alterá-los de acordo - no arquivo e no comando - por exemplo, se tiver sido solicitado a incluir tudo no arquivo principal se file.

    
por 18.11.2010 / 00:29
0

Saudações da Finlândia - como você deve saber, temos o mesmo conjunto de alfabetos que você. Eu tenho um arquivo de layout Svorak que funciona exatamente como o QWERTY finlandês (e eu suponho sueco também), exceto que o layout é Svorak. Não muitas chaves mortas, não mais do que as poucas que estão definidas como chaves mortas no padrão QWERTY finlandês também ...

Este arquivo é para o Xmodmap, mas funciona tão bem quanto qualquer um - e o comando para mudar para o Svorak é curto: " xmodmap ~ / .svorak (naturalmente eu o configurei para rodar automaticamente ao iniciar o servidor X - mas também tenho arquivos "script" para alternar entre QWERTY e Svorak vinculados a botões do iniciador no gkrellm (para visitantes, eu uso apenas o Svorak).

É um pouco longo, mas vou colar o conteúdo do meu arquivo .svorak aqui - é para o Xmodmap, mas ele vai resolver o seu problema - e se você ainda quiser eliminar as poucas chaves restantes, é muito simples na sintaxe: )

keycode   8 =
keycode   9 = Escape
keycode  10 = 1 exclam onesuperior exclamdown
keycode  11 = 2 quotedbl at oneeighth
keycode  12 = 3 numbersign sterling sterling
keycode  13 = 4 currency dollar dollar
keycode  14 = 5 percent onehalf threeeighths
keycode  15 = 6 ampersand threequarters fiveeighths
keycode  16 = 7 slash braceleft seveneighths
keycode  17 = 8 parenleft bracketleft trademark
keycode  18 = 9 parenright bracketright plusminus
keycode  19 = 0 equal braceright degree
keycode  20 = plus question backslash questiondown
keycode  21 = acute grave dead_cedilla dead_ogonek
keycode  22 = BackSpace Terminate_Server
keycode  23 = Tab ISO_Left_Tab
keycode  24 = aring Aring dead_diaeresis dead_abovering
keycode  25 = adiaeresis Adiaeresis dead_circumflex dead_caron
keycode  26 = odiaeresis Odiaeresis dead_acute dead_doubleacute
keycode  27 = p P thorn THORN
keycode  28 = y Y leftarrow yen
keycode  29 = f F dstroke ordfeminine
keycode  30 = g G eng ENG
keycode  31 = c C cent copyright
keycode  32 = r R paragraph registered
keycode  33 = l L lstroke Lstroke
keycode  34 = comma semicolon horizconnector multiply
keycode  35 = dead_diaeresis asciicircum dead_tilde dead_macron
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = a A ae AE
keycode  39 = o O oslash Oslash
keycode  40 = e E EuroSign cent EuroSign cent
keycode  41 = u U downarrow uparrow
keycode  42 = i I rightarrow idotless
keycode  43 = d D eth ETH
keycode  44 = h H hstroke Hstroke
keycode  45 = t T tslash Tslash
keycode  46 = n N
keycode  47 = s S ssharp section
keycode  48 = minus underscore dead_belowdot dead_abovedot
keycode  49 = section onehalf notsign
keycode  50 = Shift_L
keycode  51 = apostrophe asterisk dead_grave dead_breve
keycode  52 = period colon periodcentered division
keycode  53 = q Q at Greek_OMEGA
keycode  54 = j J
keycode  55 = k K kra ampersand
keycode  56 = x X guillemotright greater
keycode  57 = b B rightdoublequotemark apostrophe
keycode  58 = m M mu masculine
keycode  59 = w W lstroke Lstroke
keycode  60 = v V leftdoublequotemark grave
keycode  61 = z Z guillemotleft less
keycode  62 = Shift_R
keycode  63 = KP_Multiply
keycode  64 = Alt_L Meta_L
keycode  65 = space
keycode  66 = Caps_Lock
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 XF86_Next_VMode
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 KP_Separator
keycode  92 =
keycode  93 = Mode_switch
keycode  94 = less greater bar brokenbar
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 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
keycode 109 = Control_R
keycode 110 = Pause Break
keycode 111 = Print Execute
keycode 112 = KP_Divide XF86_Ungrab
keycode 113 = Mode_switch
keycode 114 =
keycode 115 = Super_L
keycode 116 = Multi_key
keycode 117 = Menu
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 = ISO_Level3_Shift
keycode 125 = NoSymbol Alt_L
keycode 126 = KP_Equal
keycode 127 = NoSymbol Super_L
keycode 128 = NoSymbol Hyper_L
keycode 129 =
keycode 130 =
keycode 131 =
keycode 132 =
keycode 133 =
keycode 134 =
keycode 135 =
keycode 136 =
keycode 137 =
keycode 138 =
keycode 139 =
keycode 140 =
keycode 141 =
keycode 142 =
keycode 143 =
keycode 144 =
keycode 145 =
keycode 146 =
keycode 147 =
keycode 148 =
keycode 149 =
keycode 150 =
keycode 151 =
keycode 152 =
keycode 153 =
keycode 154 =
keycode 155 =
keycode 156 = NoSymbol Meta_L
keycode 157 =
keycode 158 =
keycode 159 =
keycode 160 =
keycode 161 =
keycode 162 =
keycode 163 =
keycode 164 =
keycode 165 =
keycode 166 =
keycode 167 =
keycode 168 =
keycode 169 =
keycode 170 =
keycode 171 =
keycode 172 =
keycode 173 =
keycode 174 =
keycode 175 =
keycode 176 =
keycode 177 =
keycode 178 =
keycode 179 =
keycode 180 =
keycode 181 =
keycode 182 =
keycode 183 =
keycode 184 =
keycode 185 =
keycode 186 =
keycode 187 =
keycode 188 =
keycode 189 =
keycode 190 =
keycode 191 =
keycode 192 =
keycode 193 =
keycode 194 =
keycode 195 =
keycode 196 =
keycode 197 =
keycode 198 =
keycode 199 =
keycode 200 =
keycode 201 =
keycode 202 =
keycode 203 =
keycode 204 =
keycode 205 =
keycode 206 =
keycode 207 =
keycode 208 =
keycode 209 =
keycode 210 =
keycode 211 =
keycode 212 =
keycode 213 =
keycode 214 =
keycode 215 =
keycode 216 =
keycode 217 =
keycode 218 =
keycode 219 =
keycode 220 =
keycode 221 =
keycode 222 =
keycode 223 =
keycode 224 =
keycode 225 =
keycode 226 =
keycode 227 =
keycode 228 =
keycode 229 =
keycode 230 =
keycode 231 =
keycode 232 =
keycode 233 =
keycode 234 =
keycode 235 =
keycode 236 =
keycode 237 =
keycode 238 =
keycode 239 =
keycode 240 =
keycode 241 =
keycode 242 =
keycode 243 =
keycode 244 =
keycode 245 =
keycode 246 =
keycode 247 =
keycode 248 =
keycode 249 =
keycode 250 =
keycode 251 =
keycode 252 =
keycode 253 =
keycode 254 =
keycode 255 =

Ah, e caso você também precise alternar rapidamente entre Svorak e QWERTY, bem para QWERTY eu uso setxkbmap, o comando que eu uso para isso é:

setxkbmap -layout fi -model pc105 -option

Deve ser fácil descobrir um equivalente sueco - embora eles sejam exatamente os mesmos de qualquer maneira ... Espero que isso ajude e boa sorte para você:)

    
por 19.12.2010 / 02:13