Como iniciar um aplicativo (qualquer) maximizado
Iniciando uma aplicação através do script abaixo, você pode forçar qualquer aplicação *
na inicialização maximizada. Se você substituir o comando main em (uma cópia de-) seu arquivo .desktop
pelo comando para executar o script (veja abaixo como fazer isso) ou adicione-o como um atalho de lista rápida, você pode conseguir exatamente o que você quer.
( *
Algumas aplicações têm um windowsize fixo e imutável, algumas janelas abrem uma nova aba em uma janela possivelmente aberta )
Sobre o script
O script é executado com o comando:
python3 /path/to/script <application>
O script:
- primeiro executa o comando para abrir o aplicativo
- para evitar problemas de tempo, ele aguarda a exibição da janela (nova) do aplicativo (encontrando uma correspondência entre seu
pid
e oid
da janela correspondente) na saída dowmctrl -lp
-command (por apenas 15 segundos, para evitar um loop infinito) -
Quando a janela aparecer, ela maximiza a janela com o comando:
xdotool windowsize <window_id> 100% 100%
O código
#!/usr/bin/env python3
import subprocess
import getpass
import time
import sys
app = sys.argv[1]
user = getpass.getuser()
get = lambda x: subprocess.check_output(x).decode("utf-8")
ws1 = get(["wmctrl", "-lp"]); t = 0
subprocess.Popen(app)
while t < 30:
ws2 = [(w.split()[2], w.split()[0]) for w in get(["wmctrl", "-lp"]).splitlines() if not w in ws1]
procs = sum([[(w[1], p) for p in get(["ps", "-u", user]).splitlines() \
if app[:15].lower() in p.lower() and w[0] in p] for w in ws2], [])
if len(procs) > 0:
subprocess.call(["xdotool", "windowsize", "-sync", procs[0][0] , "100%", "100%"])
break
time.sleep(0.5)
t = t+1
Como usar
-
O script precisa dos dois
wmctrl
exdotool
sudo apt-get install wmctrl xdotool
-
Copie o script acima em um arquivo vazio, salve-o como
run_maximized.py
-
Agora edite seu arquivo
.desktop
:-
Copie o arquivo global
.desktop
localmente:cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications
-
Versão do XFCE:
-
abra o arquivo com o gedit:
gedit ~/.local/share/applications/chromium-browser.desktop
Navegue até a linha:
Exec=chromium-browser %U
(que é a primeira linha, começando com
Exec=
Altere-o para:
Exec=python3 /path/to/script.py chromium-browser
onde você precisa substituir
/path/to/script.py
pelo caminho real. -
Faça logout e volte. A partir de agora, o inicializador do Chromium abrirá o Chromium maximizado.
Versão do Unity:
-
abra o arquivo com o gedit:
gedit ~/.local/share/applications/chromium-browser.desktop
Navegue até a linha:
Actions=NewWindow;Incognito;TempProfile;
Altere-o para:
Actions=NewWindow;Incognito;TempProfile;divider1;Open maximized;
Adicione à parte inferior do arquivo a seção abaixo:
[Desktop Action Open maximized] Name=Open maximized Exec=python3 /path/to/script.py chromium-browser OnlyShowIn=Unity; [Desktop Action divider1] Name=..................................... OnlyShowIn=Unity;
onde você precisa substituir
/path/to/script.py
pelo caminho real. -
Faça logout e volte. A partir de agora, seu inicializador do Chromium será exibido:
Nota importante
Em um arquivo .desktop
, você deve usar caminhos absolutos; ~
não funciona por exemplo. Isso conta para .desktop
arquivos em /usr/share/applications
, ~/.local/share/applications
, bem como comandos em aplicativos de inicialização (que são realmente chamados por .desktop
arquivos em ~/.config/autostart
).