Я могу легко запустить Nautilus в определенном каталоге из командной строки:
nautilus /home/nico/Documents
Но я хочу, чтобы это окно Nautilus было развернуто.
Как написать командную строку?
nautilus
, кажется, не распознает --maximized
, ни --fullscreen
. Я неохотно пытался --geometry 1500x1500
, и это, кажется, имеет какой-либо эффект.
Запускаться 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
(наутилус) средство запуска в Средстве запуска Единицы.
Можно запустить любое приложение 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
Можно легко добавить опцию к 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
опции предложения сделать так.
Проблема - то, что, если Вы хотите максимизировать недавно созданное окно, Вы не знаете идентификатор окна еще при предоставлении команды. Поэтому методы сценария следующая процедура:
Таким образом, мы можем "энергично" максимизировать новое окно приложения, которое будет работать, неважно, компьютер является медленным (занятый тяжелым заданием, например) или быстро.
Наконец, сценарий имеет созданный в ограничении по времени безопасности, для предотвращения ожидания навсегда в случае, если приложению не удается запустить по некоторым причинам. После appr. 15 секунд, сценарий сдается и выходит из пути.
Nautilus помнит размер окон.
обычно Запускают его и максимизируют его, затем закрывают его.
Теперь, когда Вы тип nautilus
в терминале, это откроется максимизируемый.
Протестированный на Ubuntu 14.04 LTS.
xserver-xorg-input-synaptics
– Decoy 28 April 2017 в 09:19