Nota: Este é o sistema que desenvolvi para uso próprio e apenas pensei em partilhá-lo com o pessoal Q & Um estilo. Se alguém criar um sistema diferente, por favor poste sua resposta.
Além de todo o material do Compiz, você precisará de xdotools , é como o Autohotkey do Linux. Ele permitirá que você envie combos de teclas de atalho dos scripts de shell para iniciar os plug-ins do Compiz.
Se você estiver interessado em fazer com que o Compiz mostre as janelas minimizadas durante a escala, ver esta pergunta e resposta eu postei
A estratégia
Para plugins como o Scale, em vez de mapear os hotcorners (mapeamento de borda e botão) dentro do próprio plugin de escala, mapeie apenas os combos de teclas. Você então cria scripts de shell que enviam esses key-combos via xdotools e mapeia esses scripts de shell para a borda e a ligação de botões desejada nas seções de comandos. Em seguida, você faz um script que renomeia esses scripts para outra coisa quando não deseja vincular arestas e botões para ativar e restaurar nomes originais quando desejar que a funcionalidade volte.
Vantagens
A vantagem de usar este método sobre algo como desabilitar completamente o Compiz substituindo-o temporariamente por metacity ou xfwm durante o jogo é que ele oferece a flexibilidade de desabilitar de forma simples e instantânea a minoria das funções do Compiz que atrapalham os jogos, deixando o restante intacto. Portanto, nesse caso, você pode desabilitar hotcorners para troca de janelas, mas manter a capacidade de alternar janelas com teclas de atalho junto com todas as outras vantagens do Compiz, como cubo de desktop, área de trabalho ou expo. Você também não perderá todos os seus recursos de compiz ou precisará fazer dois ajustes para cada gerenciador de janelas. Alternar alguns scripts de renomeação é instantâneo e estável, enquanto alternar os gerenciadores de janela toda vez que você quiser iniciar um jogo e sair dele levará de 5 a 10 segundos e eu pessoalmente tenho que fazer logout e logar novamente depois de trocar os gerenciadores de janelas. pouco de estabilidade.
Aqui está um exemplo
Você deseja que os cantos superior direito e superior esquerdo ativem o "Iniciador de janela inicial" no plug-in de escala quando você passa o mouse sobre esses cantos. Você também deseja "Iniciar Seletor de Janela para Todas as Janelas" quando você clicou no topo da tela. Você definiu a tecla de atalho para o primeiro como "Alt Tab" e "Win Tab" para o último.
Etapa 1: crie seus scripts de shell. Coloque-os no seu diretório pessoal:
Initiate_Window_Picker_on.sh
xdotool keydown Alt key Tab keyup Alt
Initiate_Window_Picker_AllWindows_on.sh
xdotool keydown Super key Tab keyup Super
gamemode-toggle.sh
~/./gamemode-on.sh
gamemode-on.sh
mv -T ~/Initiate_Window_Picker_on.sh ~/Initiate_Window_Picker_off.sh
mv -T ~/Initiate_Window_Picker_AllWindows_on.sh ~/Initiate_Window_Picker_AllWindows_off.sh
echo ~/./gamemode-off > ~/gamemode-toggle.sh
chmod +x ~/gamemode-toggle.sh
gamemode-off.sh
mv -T ~/Initiate_Window_Picker_off.sh ~/Initiate_Window_Picker_on.sh
mv -T ~/Initiate_Window_Picker_AllWindows_off.sh ~/Initiate_Window_Picker_AllWindows_on.sh
echo ~/./gamemode-on > ~/gamemode-toggle.sh
chmod +x ~/gamemode-toggle.sh
No terminal, conceda permissão de execução a todos os scripts:
chmod +x ~/*.sh
Etapa 2: desmarque qualquer ligação de borda e botão no próprio plug-in de escala, deixando a tecla de atalho intacta.
Passo 3: No Gerenciador de Configurações do Compiz, vá para Comandos (lembre-se de ativar o plug-in se ainda não estiver) e vincule as arestas e os botões aos scripts de shell. Você também pode mapear as teclas de atalho para o script gamemode-toggle.sh que você pode alternar as ligações de borda e botão mesmo de dentro de um jogo.
Por exemplo.
Under Commands (o caractere ~ não funciona aqui)
Linha de comando 0:
/home/your_username/./Initiate_Window_Picker_on.sh
Linha de comando 1:
/home/your_username/./Initiate_Window_Picker_AllWindows_on.sh
Linha de comando 2:
/home/your_username/./gamemode-toggle.sh
Em vinculações de chave:
Executar comando 0:
Executar comando 1:
Executar comando 2:
<Super>F12
Em links de botão
Executar comando 0:
Executar comando 1:
<TopEdge>Button1
Executar comando 2:
Under Edge Binding
Executar comando 0:
TopLeft|TopRight
Executar comando 1:
Executar comando 2: