No Linux, os dispositivos de entrada aparecem como dispositivos de caracteres em /dev/input
. Para fazer coisas legais com eventos de entrada, veja o subsistema de kernel evdev e libevdev
. Pesquise nos documentos do kernel se esse link da Wikipédia quebrar.
A pergunta é muito ampla para que essa resposta seja mais do que ponteiros para você começar. (Além disso, eu mesmo não sei os detalhes!)
Quanto à sua ideia de um Firefox universal, isso parece uma ideia estranha. Melhor ter um pressionamento de tecla especial para ativar a entrada de comando. A área de trabalho do Plasma do KDE faz isso: alt + espaço (a qualquer momento, independentemente de qual janela do X11 tenha o foco do teclado) traz uma caixa de texto na parte superior da tela. O texto procura arquivos no seu diretório e nomes de comandos.
Se você quiser sujar as mãos com o evdev, eu recomendo usar o monitoramento de teclas para detectar uma sequência de teclas do acionador. No que diz respeito a usar as bibliotecas, você ainda deseja obter as teclas all , só estou sugerindo que você faça algo mais sensato com elas. :)
Eu enlouqueceria se eu acidentalmente começasse programas sobre os quais eu estava falando em stackoverflow o tempo todo. Ter que pensar antes de digitar qualquer coisa para se certificar de que não era o gatilho para iniciar um programa que você não queria seria horrível .