Resposta parcial (porque é apenas um esboço e não foi testado):
Escreva um demônio que ouça o que /dev/input
device corresponde ao seu teclado principal (existem links simbólicos, olhe para eles). Comece aquele demônio como o usuário que você especificar, usando qualquer sistema init que você tenha (systemd, sysv, o que for).
O demônio processa os principais eventos, conforme definido em eventos de entrada -codes.h (ou observe o código-fonte de evtest
). Ele tem uma máquina de estados que reconhece as sequências de teclas desejadas e gera o processo que você especificar quando essa sequência estiver completa.
Isso deve estar disponível antes do login e será sempre executado como o mesmo usuário, não importa em qual usuário você esteja logado no console virtual. Ele também será executado sob o X, novamente como o mesmo usuário.
Alternativamente, se você deseja executar algo em um shell: Use tmux
ou um programa semelhante que possa liga seqüências de chaves a ações. Eu suponho que também deve ser possível iniciar automaticamente tmux
e anexar a uma nova sessão sempre que você fizer login em um console virtual, mas eu não olhei para isso.
Isso não funcionará antes do login, mas também funcionará em emuladores de terminal gráficos com foco no teclado e executará o script como o usuário que está conectado.