Мне удалось сделать это (с помощью этого форума), хотя, если вы найдете какое-либо другое решение, пожалуйста, скажите мне, как оно, вероятно, будет более надежным: unix.stackexchange.com/questions/40209/…
Вот вариант ответа Yokai от сообщества, который включает примеры, предложенные Рудольфом Олахом .
Вы можете использовать инструмент, который вызывается xdotoolдля контроля размера и местоположения окна. Мало того, что любой скрипт вы пишете bash, используя xdotool, может быть настроены для работы с полностью развернутым окном , и это может быть сценарием , чтобы установить размер окна и х: у координаты манипулируя mousemoveи clickкоманду.
Насколько я знаю, это невозможно, так как Firefox не принимает команды для управления окном. Это также (в основном) ответственность оконного менеджера, поэтому я сомневаюсь, что когда-нибудь будут параметры для этого. Однако вы можете управлять окном с помощью wmctrl , но это будет немного сложно:
#!/bin/sh
firefox -new-instance -new-window "http://www.reddit.org"&# Process ID of the process we just launched
PID=$!# Window ID of the process...pray that there's # only one window! Otherwise this might break.# We also need to wait for the process to spawn# a window.while["$WID"==""];do
WID=$(wmctrl -lp | grep $PID | cut "-d "-f1)done# Set the size and location of the window# See man wmctrl for more info
wmctrl -i -r $WID -e 0,50,50,250,250
Могут быть более умные способы сделать это, и есть некоторые проблемы с совместимостью с Firefox (например, что никакой другой экземпляр не работает), но он должен помочь вам.
Просто маленькая записка. Изменение размера не будет работать, если окно развернуто. Поэтому сначала необходимо деактивировать это свойство с помощью: wmctrl -i -r $ WID -b remove, maximized_vert; wmctrl -i -r $ WID -b удалить, maximized_horz; После этого я смог изменить размер окна Firefox.
ka3ak
3
В прошлом я создавал HTML-документ, который устанавливал бы размер окна с помощью Javascript, а затем перенаправлял на нужную мне страницу. Это глупый взлом, но, эй, это работает.
Похоже, это больше не работает. Очевидно, window.resizeTo имеет эффект только в том случае, если окно является всплывающим окном, созданным с помощью window.open.
hugomg
2
Я не думаю, что это возможно только с помощью команд оболочки, потому что это не имеет никакого отношения к вашему оконному менеджеру.
Я слышал о wmctrl и devilspie, которые могут повлиять на это. Но я сомневаюсь, что есть способ добиться этого так же просто, как вы написали в своем примере.
Я делаю это все время. Однако я использую DevilsPie2, потому что он более надежный. Он использует язык сценариев LUA, что не очень сложно.
Вот мой скрипт lua для Thunderbird, который я хочу открыть на крайнем левом мониторе (экране ноутбука):
if(get_window_name()=="Mozilla Thunderbird")then
pin_window()
set_window_geometry(50,10,1220,780)
end
where 50= X coordinate (for upper-left corner of the window)10= Y coordinate (" ")1220= window width
780= window height
Чтобы настроить это, вы создаете каталог в своей домашней конфигурации (в дистрибутивах, похожих на Ubuntu) с именем devilspie2, например /home/$USERNAME/.config/devilspie2
Для Thunderbird я создал thunderbird.lua, хотя имя файла не имеет значения. У меня есть разные имена файлов для каждого приложения, хотя вы можете поместить все в один файл скрипта, если хотите. Установите devilspie2 для автоматического запуска при входе в систему, например /home/$USERNAME/.config/autostart/devilspie2.desktop
Одно замечание: скрипты не должны быть исполняемыми. Мои 664 и работают нормально. Несколько других программ, которыми я управляю, это openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload и yad. Я использую pin_window для них, чтобы они появлялись на всех рабочих столах, плюс другие команды в зависимости от приложения.
Ответы:
Вот вариант ответа Yokai от сообщества, который включает примеры, предложенные Рудольфом Олахом .
Вы можете использовать инструмент, который вызывается
xdotool
для контроля размера и местоположения окна. Мало того, что любой скрипт вы пишетеbash
, используяxdotool
, может быть настроены для работы с полностью развернутым окном , и это может быть сценарием , чтобы установить размер окна и х: у координаты манипулируяmousemove
иclick
команду.Найдите идентификатор окна:
Установите размер окна
Переместить окно
Например, если идентификатор окна для firefox равен 123, вы должны сделать это:
Расположение в левом нижнем углу должно быть определено на основе вашего разрешения экрана.
источник
xdotool
иwmctrl
т. Д. И Ubuntu, XFCE (у меня есть): если окно уже запущено в полноэкранном режиме, вы больше не можете его перемещать: bugs.launchpad.net/ubuntu/+source/unity/ + ошибка / 971147Насколько я знаю, это невозможно, так как Firefox не принимает команды для управления окном. Это также (в основном) ответственность оконного менеджера, поэтому я сомневаюсь, что когда-нибудь будут параметры для этого. Однако вы можете управлять окном с помощью wmctrl , но это будет немного сложно:
Могут быть более умные способы сделать это, и есть некоторые проблемы с совместимостью с Firefox (например, что никакой другой экземпляр не работает), но он должен помочь вам.
источник
В прошлом я создавал HTML-документ, который устанавливал бы размер окна с помощью Javascript, а затем перенаправлял на нужную мне страницу. Это глупый взлом, но, эй, это работает.
источник
Я не думаю, что это возможно только с помощью команд оболочки, потому что это не имеет никакого отношения к вашему оконному менеджеру.
Я слышал о wmctrl и devilspie, которые могут повлиять на это. Но я сомневаюсь, что есть способ добиться этого так же просто, как вы написали в своем примере.
источник
Я делаю это все время. Однако я использую DevilsPie2, потому что он более надежный. Он использует язык сценариев LUA, что не очень сложно.
Вот мой скрипт lua для Thunderbird, который я хочу открыть на крайнем левом мониторе (экране ноутбука):
Чтобы настроить это, вы создаете каталог в своей домашней конфигурации (в дистрибутивах, похожих на Ubuntu) с именем devilspie2, например /home/$USERNAME/.config/devilspie2
Для Thunderbird я создал thunderbird.lua, хотя имя файла не имеет значения. У меня есть разные имена файлов для каждого приложения, хотя вы можете поместить все в один файл скрипта, если хотите. Установите devilspie2 для автоматического запуска при входе в систему, например /home/$USERNAME/.config/autostart/devilspie2.desktop
Вот ссылка на хорошую страницу с различными вариантами, доступными для вашего скрипта lua: https://github.com/gusnan/devilspie2/blob/master/README
Одно замечание: скрипты не должны быть исполняемыми. Мои 664 и работают нормально. Несколько других программ, которыми я управляю, это openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload и yad. Я использую pin_window для них, чтобы они появлялись на всех рабочих столах, плюс другие команды в зависимости от приложения.
источник
devilspie2 --debug
)Это не решает проблему положения, но по крайней мере вы можете установить размеры:
источник