1. Inicie o nautilus com uma janela maximizada
Para iniciar nautilus
com uma janela maximizada, você pode usar o script abaixo:
#!/usr/bin/env python3
import subprocess
import time
import sys
def w_list():
try:
pid = subprocess.check_output(["pgrep", "nautilus"]).decode("utf-8").strip()
w_list = subprocess.check_output(["wmctrl", "-lp"]).decode("utf-8").splitlines()
return [l.split()[0] for l in w_list if pid in l]
except subprocess.CalledProcessError:
pass
relevant1 = w_list()
subprocess.Popen(["nautilus", "--new-window"])
t = 0
while t < 30:
time.sleep(0.5)
relevant2 = w_list()
if all([relevant2 != None, relevant1 != None]):
new = [w for w in relevant2 if not w in relevant1]
if new:
subprocess.Popen(["xdotool", "windowsize", new[0], "100%", "100%"])
break
relevant1 = relevant2
t += 1
Como usar
-
O script usa
xdotool
ewmctrl
, o primeiro a listar novas janelas do aplicativo de destino, o último porque eu prefiro o caminhoxdotool
redimensiona janelas.sudo apt-get install xdotool wmctrl
-
Copie o script acima em um arquivo vazio, salve-o como
start_maximized.py
-
Teste- execute o script pelo comando:
python3 /path/to/start_maximized.py
Agora, o nautilus será iniciado com uma nova janela maximizada .
-
Adicione, se desejar, o comando como um item de lista rápida (clique com o botão direito) ao lançador
Files
(nautilus) no Iniciador Unity.
2. Versão generalizada; iniciar qualquer aplicação maximizada
Você pode inicializar qualquer aplicação GUI (+ seus argumentos) no script generalizado abaixo:
#!/usr/bin/env python3
import subprocess
import time
import sys
appcommand = sys.argv[1:]
app = appcommand[0]
startup = (" ").join(appcommand)
def w_list():
try:
pid = subprocess.check_output(["pgrep", app]).decode("utf-8").strip()
w_list = subprocess.check_output(["wmctrl", "-lp"]).decode("utf-8").splitlines()
return [l.split()[0] for l in w_list if pid in l]
except subprocess.CalledProcessError:
pass
relevant1 = w_list()
subprocess.Popen(["/bin/bash", "-c", startup])
t = 0
while t < 30:
time.sleep(0.5)
relevant2 = w_list()
if all([relevant2 != None, relevant1 != None]):
new = [w for w in relevant2 if not w in relevant1]
if new:
subprocess.Popen(["xdotool", "windowsize", new[0], "100%", "100%"])
break
relevant1 = relevant2
t += 1
Para usá-lo
-
Faça a configuração exatamente como acima (incluindo a instalação de
wmctrl
exdotool
, mas, adicionalmente, use o aplicativo de destino (+ possíveis argumentos) como um argumento para executar o script.Por exemplo:
python3 /path/to/start_maximized.py nautilus --new-window
ou:
python3 /path/to/start_maximized.py gedit
Além disso, adicione a opção a uma lista rápida
Vocêpodeadicionarfacilmenteaopçãoàlistanautilus
quick.Supondoquevocêuseasegundaversão(generalizada):
Copieoarquivoglobal
nautilus.desktop
localmente:queestáem14.04e14.10:nautilus.desktop:
cp/usr/share/applications/nautilus.desktop~/.local/share/applications
eem15.04e15.10:org.gnome.Nautilus.desktop
cp/usr/share/applications/org.gnome.Nautilus.desktop~/.local/share/applications
Abraoarquivocom(porexemplo)gedit,procurealinha:
Actions=Window;
Altere-opara:
Actions=Window;Openamaximizedwindow;
Adicioneaofinaldoarquivo:
[DesktopActionOpenamaximizedwindow]Name=OpenamaximizedwindowExec=python3'/path/to/start_maximized.py'nautilus--new-windowOnlyShowIn=Unity;
Salveefecheoarquivo.
- Façalogoutevolte.
Agoravocêtemumaopçãodelistarápida,comonaimagem.
Explicaçãoconceitual
Paramaximizarumajanelaexistentenãoémuitodifícil.Asopçõeswmctrl
exdotool
oferecemopçõesparaisso.
Oproblemaéque,sevocêquisermaximizarumajanelarecém-criada,vocêaindanãosabeoiddajanelaquandodáocomando.Portanto,oscriptpraticaoseguinteprocedimento:
- façaumalistadasjanelasatualmenteexistentesdoaplicativodedestino(sehouver)
- dêocomandoparaabriroaplicativo(ouumanovajaneladeumaplicativoemexecução)
- fiquedeolhonasnovasjanelasdoaplicativoqueserãoexibidas
- seanovajanelaaparecer,éaparentementenossocandidatoamaximizar->maximizá-lo.
Dessaforma,podemos"inteligentemente" maximizar a nova janela do aplicativo, que funcionará independentemente de o computador estar lento (ocupado com um trabalho pesado, por exemplo) ou rápido.
Por fim, o script foi criado com limite de tempo de segurança, para evitar a espera de sempre, caso o aplicativo não seja inicializado por algum motivo. Depois de aprox. 15 segundos, o script desiste e sai de um jeito.