Detectar status da chave em zsh no console do Linux

1

O zsh pode detectar um status de chave sem uma ferramenta que depende de uma sessão gráfica?

Substitui o serviço getty @ tty1 para autologin e zlogin executa a oscilação. Gostaria de evitar a execução de uma interface gráfica quando a tecla Shift é pressionada desabilitando rcs . Existe algo semelhante ao keystatus do grub?

    
por Bart 17.11.2018 / 16:48

1 resposta

1

Os terminais não transmitem essa informação. Você precisa chamar um utilitário externo (ou gravar um módulo zsh carregável) que seja específico para o console do Linux. Ele precisaria chamar um dos ioctl do console Linux , especificamente TIOCLINUX para obter o estado de mudança. Os utilitários relacionados ao teclado estão no kbd package , mas não acho que haja um que relate estados modificadores.

Você pode encontrar o código para tal utilitário em uma pergunta semelhante no Stack Overflow .

Se você não quiser confiar em um utilitário adicional, o pacote kbd inclui kbdinfo que pode relatar o estado do LED.

# Start X if Caps Lock is on
if kbdinfo gkbled capslock; then
  setleds -D -caps
  exec startx
fi
    
por 18.11.2018 / 00:06