Xfce com o Kde Plasma 5: Como dar automaticamente foco às janelas recém-criadas?

3

Estou usando o Xfce com o Kde Plamsa5 como gerenciador de janelas. Não consigo mais abrir as Configurações da Janela do Xfce, mas as Configurações do Sistema do KDE. Eu não consigo encontrar uma opção para foco automático para janelas recém-criadas.

Quando abro uma nova janela, o foco permanece na janela em que estava antes, mas quero que a nova janela seja levantada e focalizada automaticamente.

    
por Peter Fleix 23.05.2015 / 09:43

2 respostas

2

É "prevenção contra furto de foco" nas configurações da janela do Kwin. Se estiver definido como "médio", as janelas recém-abertas receberão o foco automaticamente.

    
por Peter Fleix 23.05.2015 / 12:15
1

A solução limpa

Eu não uso plasma, então não posso investigar o que causa o problema. Não há necessidade de explicar que eliminar a causa seria a solução "mais limpa".

Se isso parece impossível, e você quer usar essa combinação, você pode usar a bandagem abaixo para fazer o trabalho. A solução é um script de plano de fundo extremamente "leve", mantendo um olho nas janelas recém-criadas, aumentando-as se elas aparecerem.

Como usar

  1. O script usa wmctrl

    sudo apt-get install wmctrl
    
  2. Copie o script abaixo em um arquivo vazio, salve-o como raise_window.py

  3. Teste-o de um terminal pelo comando:

    python3 /path/to/raise_window.py
    

    Abra alguns aplicativos e veja se suas janelas são geradas automaticamente.

  4. Se tudo funcionar bem, adicione-o aos seus aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicione o comando.

O script

#!/usr/bin/env python3
import subprocess
import time
import os

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()
curr_1 = get(["wmctrl", "-l"]).splitlines()

while True:
    try:
        curr_2 = get(["wmctrl", "-l"]).splitlines()
        new = [w for w in curr_2 if not w in curr_1]
        for w in new:
            w = w.split()[0]
            command = "wmctrl -ia "+w
            subprocess.Popen(["/bin/bash", "-c", command])
    except:
        pass
    curr_1 = curr_2
    time.sleep(1)
    
por Jacob Vlijm 23.05.2015 / 10:36

Tags