web-dev-qa-db-fra.com

Comment démarrer Nautilus maximisé en ligne de commande?

Je peux facilement démarrer Nautilus sur un répertoire particulier en ligne de commande:

nautilus /home/nico/Documents

Mais je veux que cette fenêtre de Nautilus soit maximisée.
Comment écrire la ligne de commande?

nautilus ne semble pas reconnaître --maximized ni --fullscreen. J'ai essayé à contrecœur --geometry 1500x1500 et cela ne semble avoir aucun effet.

4
Nicolas Raoul

1. Démarrer nautile avec une fenêtre maximisée

Pour démarrer nautilus avec une fenêtre agrandie, vous pouvez utiliser le script ci-dessous:

#!/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

Comment utiliser

  • Le script utilise à la fois xdotool et wmctrl, le premier à répertorier new fenêtres de l'application ciblée, la dernière parce que je préfère le chemin xdotoolsize windows.

    Sudo apt-get install xdotool wmctrl
    
  • Copiez ensuite le script ci-dessus dans un fichier vide, enregistrez-le sous le nom start_maximized.py

  • Test - lancez le script avec la commande:

    python3 /path/to/start_maximized.py
    

    Maintenant, nautilus démarrera avec une nouvelle fenêtre maximisée .

  • Ajoutez, si vous le souhaitez, la commande sous forme d'élément de liste rapide (clic droit) au lanceur Files (nautilus) dans le lanceur Unity.

2. version généralisée; démarrer toute application agrandie

Vous pouvez démarrer toute application GUI (+ leurs arguments) dans le script généralisé ci-dessous:

#!/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

Pour l'utiliser

  • Effectuez la configuration exactement comme ci-dessus (y compris l'installation de wmctrl et xdotool, mais utilisez également l'application ciblée (+ arguments possibles) comme argument pour exécuter le script.

    Par exemple:

    python3 /path/to/start_maximized.py nautilus --new-window
    

    ou:

    python3 /path/to/start_maximized.py gedit
    

De plus, ajouter l'option à une liste rapide

enter image description here

Vous pouvez facilement ajouter cette option à la liste rapide nautilus. En supposant que vous utilisiez la deuxième version (généralisée):

  • Copiez le fichier global nautilus.desktop _ localement:

    qui est sur 14.04 et 14.10 : nautilus.desktop:

    cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
    

    et sur 15.04 et 15.10 : org.gnome.Nautilus.desktop

    cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
    
  • Ouvrez le fichier avec (par exemple) gedit, recherchez la ligne:

    Actions=Window;
    

    Changez-le en:

    Actions=Window;Open a maximized window;
    

    Ajouter à la toute fin du fichier:

    [Desktop Action Open a maximized window]
    Name=Open a maximized window
    Exec=python3 '/path/to/start_maximized.py' nautilus --new-window
    OnlyShowIn=Unity;
    
  • Enregistrez et fermez le fichier.

  • Déconnexion et retour dans.

Maintenant, vous avez une option de liste rapide comme dans l'image.

Explication conceptuelle

Pour maximiser une fenêtre existante n'est pas très difficile. wmctrl et xdotool offrent tous deux des options pour le faire.

Le problème est que si vous souhaitez agrandir une fenêtre nouvellement créée, vous ne connaissez pas encore l'identifiant de la fenêtre lorsque vous donnez la commande. Par conséquent, le script pratique la procédure suivante:

  1. faire une liste des fenêtres existantes de l'application ciblée (le cas échéant)
  2. donne la commande pour ouvrir l'application (ou une nouvelle fenêtre d'une application en cours d'exécution)
  3. gardez un œil sur la nouvelle fenêtre de l'application qui apparaît
  4. si la nouvelle fenêtre apparaît, il est apparemment notre candidat pour maximiser -> maximiser.

De cette façon, nous pouvons "intelligemment" maximiser la nouvelle fenêtre de l'application, que cela fonctionne même si l'ordinateur est lent (occupé par un travail important, par exemple) ou rapide.

Enfin, le script a un délai de sécurité intégré, afin d’éviter toute attente au cas où l’application ne pourrait pas démarrer pour une raison quelconque. Après env. 15 secondes, le script abandonne et sort d'un chemin.

6
Jacob Vlijm

Nautilus se souvient de la taille de la fenêtre.
Démarrez-le normalement et agrandissez-le, puis fermez-le.

Maintenant, lorsque vous tapez nautilus dans le terminal, son ouverture s’agrandira.
Testé sur Ubuntu 14.04 LTS.

3
Parto