teclas fixas no modo de usuário único

0

Eu tenho tentado encontrar uma maneira de ativar as teclas fixas no modo de usuário único, mas a única coisa que posso encontrar é em um ambiente de janela de área de trabalho.

Existe um módulo que eu preciso carregar ou algo assim?

Para aqueles que eventualmente pedirão, só posso usar uma mão para digitar e ter ocasiões em que preciso trabalhar no modo de usuário único.

    
por feas 05.02.2017 / 07:05

1 resposta

2

Confira este howto . Ele diz que loadkeys entende os keyyms como SShift, SCtrl, SAlt como equivalentes fixos que você pode colocar no mapa de teclas do console.

Esta página do archlinux mostra o que você deve fazer. Basicamente, crie um pequeno arquivo de keymaps substituindo as chaves para shift e assim por diante pelo equivalente persistente. A seguir, você pode fornecer o conjunto necessário de códigos de teclas:

dumpkeys |
awk 'NR==1{print}
     $4~"Shift|Control|Alt"{printf "%s %s %s S%s\n",$1,$2,$3,$4}'

Exemplo de saída:

keymaps 0-255
keycode 29 = SControl
keycode 42 = SShift
keycode 54 = SShift
keycode 56 = SAlt
keycode 97 = SControl
keycode 100 = SAlt
keycode 125 = SAlt
keycode 126 = SAlt

Coloque esses dados em um arquivo stickyKeys e carregue-os

sudo loadkeys stickyKeys

A página archlinux fornece uma unidade systemd adequada para carregar isso na inicialização. Em caso de problemas, você pode usar showkey para mostrar a você cada código de acesso enquanto digita as chaves.

Eu não tentei isso, mas quando você constrói o kernel, um mapa de teclado padrão é compilado. Você pode substituir este mapa de teclado pelo seu desejado. Se olharmos para os drivers / tty / vt / Makefile , vemos uma regra para defkeymap.o

$(obj)/defkeymap.o:  $(obj)/defkeymap.c

mas no diretório não há defkeymap.c . No entanto, existe o arquivo defkeymap.c_shipped e parece que o KBuild removerá o _shipped sufixo para a compilação. Mais tarde no Makefile, há um comentário e uma regra opcional:

# Uncomment if you're changing the keymap and have an appropriate
# loadkeys version for the map. By default, we'll use the shipped
# versions.
# GENERATE_KEYMAP := 1
ifdef GENERATE_KEYMAP
$(obj)/defkeymap.c: $(obj)/%.c: $(src)/%.map
        loadkeys --mktable $< > $@
endif

Assim, podemos ver como criar nosso próprio arquivo defkeymap.c a partir do mapa de teclado atual executando

dumpkeys | loadkeys --mktable >defkeymap.c

Remova o arquivo enviado e tente construir o kernel. Usar dumpkeys fornece uma tabela muito maior que a padrão, embora eu não saiba por quê. Você pode preferir encontrar a fonte para o seu mapa de teclado atual, como /usr/lib/kbd/keymaps/xkb/gb-intl.map.gz ou similar, descomprimido, edite isso com suas alterações fixas e forneça esse arquivo para loadkeys --mktable .

Observe que, uma vez que você inicializou, este keymap embutido provavelmente será substituído no início por qualquer mecanismo que seu sistema operacional use para definir algum mapa de teclado padrão configurado.

    
por 05.02.2017 / 16:45