Como iniciar o nautilus maximizado a partir da linha de comando?

4

Eu posso facilmente iniciar o Nautilus em um diretório específico a partir da linha de comando:

nautilus /home/nico/Documents

Mas eu quero que a janela do Nautilus seja maximizada.
Como escrever a linha de comando?

nautilus parece não reconhecer --maximized nem --fullscreen . Eu relutantemente tentei --geometry 1500x1500 e parece ter algum efeito.

    
por Nicolas Raoul 19.01.2016 / 08:42

2 respostas

6

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 e wmctrl , o primeiro a listar novas janelas do aplicativo de destino, o último porque eu prefiro o caminho xdotool 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 e xdotool , 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àlistanautilusquick.Supondoquevocêuseasegundaversão(generalizada):

  • Copieoarquivoglobalnautilus.desktoplocalmente:

    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çõeswmctrlexdotooloferecemopçõesparaisso.

Oproblemaéque,sevocêquisermaximizarumajanelarecém-criada,vocêaindanãosabeoiddajanelaquandodáocomando.Portanto,oscriptpraticaoseguinteprocedimento:

  1. façaumalistadasjanelasatualmenteexistentesdoaplicativodedestino(sehouver)
  2. dêocomandoparaabriroaplicativo(ouumanovajaneladeumaplicativoemexecução)
  3. fiquedeolhonasnovasjanelasdoaplicativoqueserãoexibidas
  4. 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.

    
por Jacob Vlijm 19.01.2016 / 09:51
3

Nautilus lembra o tamanho das janelas.
Comece normalmente e maximize-o, depois feche-o.

Agora, quando você digita nautilus no terminal, ele se abre maximizado.
Testado no Ubuntu 14.04 LTS.

    
por Parto 19.01.2016 / 08:51