Как запустить наутилус развернутым из командной строки?

Я могу легко запустить Nautilus в определенном каталоге из командной строки:

nautilus /home/nico/Documents

Но я хочу, чтобы это окно Nautilus было развернуто.
Как написать командную строку?

nautilus, кажется, не распознает --maximized, ни --fullscreen. Я неохотно пытался --geometry 1500x1500, и это, кажется, имеет какой-либо эффект.

4
задан 19 January 2016 в 12:58

2 ответа

1. Наутилус запуска с максимизируемым окном

Запускаться nautilus с максимизируемым окном можно использовать сценарий ниже:

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

Как использовать

  • Сценарий использует обоих xdotool и wmctrl, первый, который перечислит новые окна целевого приложения, последнее, потому что я предпочитаю путь xdotoolизменяет размер окон.

    sudo apt-get install xdotool wmctrl
    
  • Затем скопируйте сценарий выше в пустой файл, сохраните его как start_maximized.py

  • Тестовый прогон сценарий командой:

    python3 /path/to/start_maximized.py
    

    Теперь наутилус запустит с новым максимизируемым окном.

  • Добавьте, если Вам нравится, команда как quicklist (щелчок правой кнопкой) объект к Files (наутилус) средство запуска в Средстве запуска Единицы.

2. Обобщенная версия; запустите любое максимизируемое приложение

Можно запустить любое приложение GUI (+ их аргументы) в обобщенном сценарии ниже:

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

Использовать его

  • Сделайте установку точно как выше (включая установку wmctrl и xdotool, но дополнительно используйте целевое приложение (+ возможные аргументы) как аргумент для запущения скрипта.

    Например:

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

    или:

    python3 /path/to/start_maximized.py gedit
    

Additionaly, добавляет опция к quicklist

enter image description here

Можно легко добавить опцию к nautilus quicklist. Принятие Вас использует вторую (обобщенную) версию:

  • Скопируйте глобальное nautilus.desktop зарегистрируйте локально:

    который находится на 14,04 и 14.10: nautilus.desktop:

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

    и на 15,04 и 15.10: org.gnome. Nautilus.desktop

    cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
    
  • Откройте файл с (например). gedit, ищите строку:

    Actions=Window;
    

    Измените его в:

    Actions=Window;Open a maximized window;
    

    Добавьте к самому концу файла:

    [Desktop Action Open a maximized window]
    Name=Open a maximized window
    Exec=python3 '/path/to/start_maximized.py' nautilus --new-window
    OnlyShowIn=Unity;
    
  • Сохраните и закройте файл.

  • Выйдите из системы и въезжайте задним ходом.

Теперь у Вас есть quicklist опция как в изображении.

Концептуальное объяснение

Максимизировать существующее окно не является очень трудным. Оба wmctrl и xdotool опции предложения сделать так.

Проблема - то, что, если Вы хотите максимизировать недавно созданное окно, Вы не знаете идентификатор окна еще при предоставлении команды. Поэтому методы сценария следующая процедура:

  1. составьте список в настоящее время существующих окон целевого приложения (если таковые имеются)
  2. дайте команду для открытия приложения (или новое окно запущенного приложения)
  3. следите за новыми окнами приложения для появления
  4. если новое окно появляется, это - по-видимому, наш кандидат для максимизации->, максимизируют его.

Таким образом, мы можем "энергично" максимизировать новое окно приложения, которое будет работать, неважно, компьютер является медленным (занятый тяжелым заданием, например) или быстро.

Наконец, сценарий имеет созданный в ограничении по времени безопасности, для предотвращения ожидания навсегда в случае, если приложению не удается запустить по некоторым причинам. После appr. 15 секунд, сценарий сдается и выходит из пути.

6
ответ дан 19 January 2016 в 22:58
  • 1
    Это работало на меня на Samsung N900X3B, я должен был перезагрузить для изменения для вступления в силу - отмечают, что существует " s" в конце xserver-xorg-input-synaptics – Decoy 28 April 2017 в 09:19

Nautilus помнит размер окон.
обычно Запускают его и максимизируют его, затем закрывают его.

Теперь, когда Вы тип nautilus в терминале, это откроется максимизируемый.
Протестированный на Ubuntu 14.04 LTS.

3
ответ дан 19 January 2016 в 22:58
  • 1
    @Decoy Хорошая выгода, I' ll делают редактирование – amiller27 28 April 2017 в 10:43

Другие вопросы по тегам:

Похожие вопросы: