Я создал несколько ярлыков приложений Chrome - gmail, tweetdeck и т. Д. Все они запускаются в крошечных окнах в верхнем левом углу экрана (см. Скриншот). Изменить размер / максимизировать их достаточно просто - но я хотел бы знать, что контролирует их размещение и размер, а затем я смогу это исправить? Я попытался использовать compiz, чтобы максимизировать окно при запуске, но он не работает (compiz прекрасно работает для выбора рабочей области, в которой он будет размещен, но не изменяет размеры). Я ожидаю, что где-то должна быть обстановка, которая диктует это - есть идеи?
Только для наблюдения, что произошло я создал некоторое веб-приложение - средства запуска. То, что Вы описываете, произошло со мной также, но непредсказуемым способом; иногда это происходит, иногда это не делает.
Гарантировать, что недавно созданное окно определенного приложения имеет определенный размер, оказалось немного более сложным, чем я ожидал. Я думаю однако что решение ниже работ изящно.
Решение ниже перенаправляет команду для выполнения веб-приложения к сценарию. Сценарии выполняют команду, ожидают соответствующего окна для появления (ожидающий pid
из chrome
произвести новое окно), и изменяет размер его к размеру, который Вы определяете.
На практике:
Взгляд в веб-приложении .desktop
файл, Вы видите в Exec=
строка (поскольку Вы упомянули), команда, будучи похож:
Exec=/opt/google/chrome/google-chrome --app=feedly.com/i/my
После создания установки ниже, все, что необходимо сделать, должен заменить команду в этом (или любые другие веб-приложения-) файл к:
Exec=run_maximized "/opt/google/chrome/google-chrome --app=feedly.com/i/my" 100 100
Последними числам в команде являются горизонтальные/вертикальные размеры окна (в %, связанном с размером экрана)
Сценарий использует обоих wmctrl
и xdotool
:
sudo apt-get install wmctrl
sudo apt-get install xdotool
Скопируйте сценарий ниже в пустой файл, сохраните его как run_maximized
(никакое расширение) в ~/bin
. Создайте каталог, если он не существует. Сделайте исполняемый файл сценария.
Если Вы просто создали каталог ~/bin
, или зарегистрируйтесь/в или выполненный
source ~/.profile
В веб-приложении .desktop
файл, замените команду в Exec=
строка:
Exec=/opt/google/chrome/google-chrome --app=feedly.com/i/my
кому:
Exec=run_maximized "/opt/google/chrome/google-chrome --app=feedly.com/i/my" 100 100
Следите за кавычками и не забывайте горизонтальный/вертикальный размер окна
#!/usr/bin/env python3
import subprocess
import getpass
import time
import sys
user = getpass.getuser()
get = lambda x: subprocess.check_output(["/bin/bash", "-c", x]).decode("utf-8")
ws1 = get("wmctrl -lp"); t = 0
subprocess.Popen(["/bin/bash", "-c", sys.argv[1]])
while t < 30:
ws2 = [w.split()[0:3] for w in get("wmctrl -lp").splitlines() if not w in ws1]
procs = [[(p, w[0]) for p in get("ps -u "+user).splitlines() \
if "chrome" in p and w[2] in p] for w in ws2]
if len(procs) > 0:
command = "xdotool windowsize "+procs[0][0][1]+" "+sys.argv[2]+"% "+sys.argv[3]+"%"
subprocess.call(["/bin/bash", "-c", command])
break
time.sleep(0.5)
t = t+1
xdotool
изменить размер окна. Это могло также быть, покончили wmctrl
, но maximize
команда wmctrl
имеет некоторые побочные эффекты это xdotool
не имеет.