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
pide oidda 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
wmctrlexdotoolsudo 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
.desktoplocalmente: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.desktopNavegue 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-browseronde você precisa substituir
/path/to/script.pypelo 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.desktopNavegue 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.pypelo 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 ).