
Estou tendo um problema muito específico, porém qualquer ajuda ajudará a entender a relação do X com o teclado.
Eu gostaria de poder lançar o programa ElectricSheep além da música reproduzida no XBMC. Já configurei o script de inicialização e posso iniciar o ElectricSheep sem problemas.
O problema ocorre quando tento fechá-lo. Se eu iniciar o ElectricSheep sem o XBMC em execução, pressionar escape o fecha. Se o XBMC estiver em execução (ou mesmo se eu incluir uma linha no script para matar o xbmc antes de iniciar), ele captura todas as entradas do teclado, fazendo minha única rota fora do ElectricSheep para matá-lo de uma sessão ssh ou matar o próprio X.
Se eu executar o xev enquanto o XBMC estiver em execução, ele não receberá nenhuma entrada.
Existe alguma maneira de iniciar um aplicativo e fornecer explicitamente o teclado X? Obrigado por qualquer ajuda!
Responder1
Depende de qual aplicativo tem o 'foco'. Eu prefiro 'o foco segue o mouse', então qualquer que seja a janela em que meu mouse estiver, é onde meus pressionamentos de teclado serão registrados. Outros modos são 'clique para focar' e algumas variações de 'foco sob o mouse'. O Microsoft Windows é "Click to Focus" (por exemplo), embora se você brincar com algumas das ferramentas tweakui, poderá obter 'foco segue o mouse', se desejar.
Não tenho certeza de qual modo sua área de trabalho do X-windows está inicialmente, ACHO que geralmente é 'clique para focar' por padrão, você teria que verificar o seu, minha configuração para o foco do mouse está em 'comportamento da janela' nas configurações do sistema , KDE 4.7.4)
Admito que não tenho muita experiência com Electric Sheep (protetor de tela dos sonhos, certo?) E XMBC (media center, IIRC). Ambos parecem querer ser aplicativos de tela inteira, o que pode apresentar problemas devido à perda de foco. Quase parece um problema com o ES, já que se estiver em primeiro plano (tendo assumido o papel de protetor de tela...), DEVE capturar todas as teclas digitadas e usá-las como um sinal de aborto para sair, retornando sua tela para qualquer outra coisa em execução.
Você pode tentar ALT-TAB para alternar entre os vários aplicativos em execução, o que deve alternar o foco entre eles. Isso depende de como o XMBC e o ES estão sendo usados, seja em janela ou em tela inteira.
Você PODE controlar o foco na linha de comando usando vários programas, é claro, fiquei em branco ... olhando meus diretórios /bin e minhas anotações para encontrá-los. Escrevi meus próprios programas de controle há alguns meses para um projeto, vendo o que poderia fazer programaticamente para controlar janelas e focar...
ah, aqui está um:
wmctrl, a página de manual diz que você pode abrir uma janela usando a opção '-R' ...
Há outro que achei mais útil, embora não consiga nomeá-lo hoje, talvez alguém saiba o que estou sugerindo e poste. Vou continuar procurando, evidentemente minha loira está forte hoje.
Responder2
Como um hack, talvez seja possível executar o aplicativo "ganancioso" emXéfiroouXvncou algo assim e dissocie-o do seu servidor X real. Use-o remotamente.
A resposta mais correta seria reconfigurar ou corrigir o código para que o aplicativo "ganancioso" não o seja.
Ou, se o aplicativo realmente pretende assumir o controle da tela, encontre uma maneira de executar o ES como algum tipo de plug-in.