Ярлыки приложений Chrome открывают маленькое окно

Я создал несколько ярлыков приложений Chrome - gmail, tweetdeck и т. Д. Все они запускаются в крошечных окнах в верхнем левом углу экрана (см. Скриншот). Изменить размер / максимизировать их достаточно просто - но я хотел бы знать, что контролирует их размещение и размер, а затем я смогу это исправить? Я попытался использовать compiz, чтобы максимизировать окно при запуске, но он не работает (compiz прекрасно работает для выбора рабочей области, в которой он будет размещен, но не изменяет размеры). Я ожидаю, что где-то должна быть обстановка, которая диктует это - есть идеи?

Small Window

1
задан 31 March 2015 в 07:37

1 ответ

Только для наблюдения, что произошло я создал некоторое веб-приложение - средства запуска. То, что Вы описываете, произошло со мной также, но непредсказуемым способом; иногда это происходит, иногда это не делает.

Открытие окна веб-приложения с пред определенный размер

Гарантировать, что недавно созданное окно определенного приложения имеет определенный размер, оказалось немного более сложным, чем я ожидал. Я думаю однако что решение ниже работ изящно.

Что это делает и как использовать

Решение ниже перенаправляет команду для выполнения веб-приложения к сценарию. Сценарии выполняют команду, ожидают соответствующего окна для появления (ожидающий 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

Последними числам в команде являются горизонтальные/вертикальные размеры окна (в %, связанном с размером экрана)

Установка

  1. Сценарий использует обоих wmctrl и xdotool:

    sudo apt-get install wmctrl
    sudo apt-get install xdotool
    
  2. Скопируйте сценарий ниже в пустой файл, сохраните его как run_maximized (никакое расширение) в ~/bin. Создайте каталог, если он не существует. Сделайте исполняемый файл сценария.

  3. Если Вы просто создали каталог ~/bin, или зарегистрируйтесь/в или выполненный

    source ~/.profile
    
  4. В веб-приложении .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 не имеет.
  • С незначительным изменением сценария это может быть сделано применимым для запуска Windows предопределенного размера (или положение) любого приложения. Могло быть полезным в quicklists, например, для создания нескольких окон в предопределенном расположении.
0
ответ дан 31 March 2015 в 07:37

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

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