Настройка в линуксе что бы окно браузера было всегда активным

Обновлено: 04.07.2024

Положение и размер окна при старте программы

Модератор: adventurer

Положение и размер окна при старте программы

Рассмотрим на примере запуска браузера Firefox (точнее, любого браузера).
У нас имеется монитор с разрешением 1980х1020 пикселей. Мы хотим запускать браузер в окне размером 1280х720 пикселей, расположенном в центре экрана. Для этого открываем файл

/.config/openbox/lubuntu-rc.xml и в самый конец (но до закрывающего тега </applications> ) записываем следующие строчки:

Проверяем, запускается ли браузер там, где нам нужно.

1. Самое сложное - это правильно описать атрибуты окна: name , class , role , title , type , .
Например, если бы мы указали: <application > , то заданное правило действовало бы только для браузера Firefox и, вдобавок, диалоговые окна, окна параметров и т. д. тоже бы имели размер 1280х720.
Самое простое - это посмотреть атрибуты нужного окна. Для этого можно использовать утилиту obxprop, отфильтровав вывод командой:

Вводим эту команду в терминале, указываем нужное окно и смотрим вывод.

2. Положение окон можно задавать и в пикселях и в процентах, причём положительные числа задают положение окна относительно левого и верхнего края экрана, а отрицательные - от правого и нижнего края.

3. С размещением окна на определённом рабочем столе, отображением декорации, типом максимизации и прочими параметрами, надеюсь, пользователь разберётся самостоятельно.

С браузером разобрались. Теперь на очереди - стикерсы.
Добавляем xpad в автозагрузку. Оформляем стикерсы и клеим их на рабочий стол. Единственное, что мне не нравится - иконки стикерсов отображаются на панели задач. И место здесь занимают и есть же они на рабочем столе. Убрать их с панели задач!
Сказано - сделано:

Не удаётся задать размеры окна.

Проблема так и не решена.
Исходные данные: lubuntu-18.04, окно "Firefox".
Возможно, информация сохраняется в профиле "Firefox". Осталось ещё немного.

Уже много лет (независимо от оболочки) использую утилиту Devilspie2 для озвученных в названии темы целей (есть в штатных репозиториях). Доволен как слон, а волосы мои стали мягкие и шелковистые. Один раз прописал в конфигах все необходимые настройки, и с тех пор практически никогда туда не заглядываю (только при необходимости внести настройки для новой программы, но это редко). Возможности в заданном диапазоне требований практически безграничны. Помимо положения и размера окна назначаю также монитор и номер воркспейса, на котором программа должна запуститься. После этого при старте системы запускается простенький bash-скрипт (к Devilspie2 он уже отношения не имеет), который с заданными интервалами запускает нужные мне программы. И эти программы уже по команде Devilspie2 выстраиваются в нужную мне стройную систему — раскидываются по нужным рабочим столам и дисплеям в заданных позициях и с заданными размерами.

Настройки Devilspie2 (конфиги с указанием параметров запуска программ) лежат в папке

/.config/devilspie2
Удобнее всего придерживаться системы «одна программа — один файл». Собственно, достаточно просто кинуть в эту папку новый файл с нужными настройками, чтобы все заработало.

Пример одного из моих файлов:

Содержание этого файла на человеческом языке: при старте окна с именем "Mozilla Firefox" запустить его на первом воркспейсе и первом (левом) мониторе в нулевой позиции, развернутым на весь экран поверх всех окон.

Расшифровка: запускать калькулятор на активном воркспейсе в правом верхнем углу второго (правого) монитора с размерами окна 480x524 пикселей (это половина экрана по высоте и четверть по ширине на FullHD мониторе (за вычетом высоты горизонтальной панели)).

Ах да, класс окна и прочие параметры можно узнать при помощи консольной утилиты xprop
Посмотреть имена всех запущенных окон можно командой:

Продолжаем рассматривать настройки Linux Mint и давайте посмотрим что можно изменить в интерфейсе окон. Для этого выбираем модуль настроек «Окна» в Центре управления.

Здесь в первую очередь мы можем настроить вид переключения между окнами при нажатии сочетания клавиш Alt+Tab.

Настройка окон в Linux

По умолчанию появляется лента со значками программ, запущенных в отдельных окнах:

Лента запущенных программ

Но мы можем изменить вид отображения, например, на «Timeline 3D» и вместо ленты появится красивая анимация запущенных окон:

Анимация окон Timeline 3D

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

Настройка строки заголовка окна в Linux Mint

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

Например, выбрав «Меню» мы добавим кнопку, вызывающую выпадающее меню с некоторыми опциями.

Меню окон в Linux Mint

Мы можем закрепить окно на переднем плане и тогда оно всегда будет находится поверх других, даже когда не будет активным. Здесь есть еще несколько опций, относящихся к рабочему месту и о том, что это такое я расскажу чуть позже.

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

Далее идет настройка списка окон. Здесь все можно оставить как есть и речь здесь идет о рабочих местах или областях, о которых я обещал рассказать и сделаю это через минуту.

Фокус окна в Linux Mint

Поэкспериментируйте и вы увидите как изменяется подсветка окна, указывающая на его активность, но само окно при этом на передний план не помещается. Если установить сейчас галочку в пункте «Автоматически переключаться на окно, получившее фокус», то при наведении указателя мыши на неактивное окно, оно будет перемещаться на передний план. Не думаю, что это удобно и что в этом подразделе настроек нужно что-то изменять, в общем-то как и в последнем подразделе, отвечающем за перемещение или изменение размера окон. Здесь указывается клавиша, при нажатии которой можно перемещать окно или изменять его размеры.

Перемещение и изменение размеров окон в Линукс Минт

Не уверен, что кто-то этим пользуется, но по факту это позволяет перетаскивать окно не только захватив его за строку заголовка, но и за любую его область. Для этого нужно нажать клавишу, указанную здесь (по умолчанию это клавиша Alt) и перемещать окно, «ухватившись» левой кнопкой мыши за любую его область, при этом правая кнопка мыши с этой же клавишей позволит изменить размеры окна.

На этом с настройками окон заканчиваю и расскажу, как и обещал, о рабочих местах или виртуальных рабочих столах.

Для всего семейства операционный систем Линукс характерно наличие так называемых виртуальных рабочих столов. Для пользователей Windows это может показаться непривычным и непонятным, но на самом деле штука очень удобная. В Linux Mint виртуальные рабочие столы называют рабочими областями (Workspaces). По умолчанию их два, хотя это количество можно увеличить.

Конечно, тоже самое можно сделать и на одном рабочем столе, просто поискать значок программы в управляющей панели или воспользоваться сочетанием Alt+Tab, но все же виртуальный рабочий стол несколько удобнее, хотя это мое субъективное мнение и вы можете составить свое, опробовав эту возможность на деле.

Переключаться между рабочими областями можно с помощью комбинации клавиш Ctrl+Alt+Стрелка вправо/влево. Также в правой части управляющей панели есть кнопка «все окна», с помощью которой можно выбрать окно программы, расположенное на любом из доступных виртуальных рабочих столов.

Все окна в Linux

По сути эта кнопка является стандартным апплетом Windows Quick List и при желании вы можете поменять ее месторасположение на управляющей панели или совсем удалить. О том как это сделать я рассказал в прошлом видео.

Также хочу обратить ваше внимание на то, что ранее нами рассмотренное сочетание клавиш Alt+Tab позволяет переключаться между приложениями в одной рабочей области. Поэтому для выбора окна, расположенного на другом рабочем столе, стоит воспользоваться либо сочетанием Ctrl+Alt+Стрелка вправо/влево, либо кнопкой «Все окна», расположенной в панели управления.

Режим экспозиции рабочих областей Linux Mint

Здесь мы можем переименовать рабочие области или создать новую, щелкнув на плюс справа. Также тут мы можем и удалять созданные области, для этого при наведении указателя мыши на область в ее верхнем правом углу появляется «крестик».

Чтобы выйти из режима экспозиции достаточно выбрать рабочую область мышью или нажать сочетание клавиш Ctrl+Alt+Стрелка вниз. Кстати это же сочетание клавиш позволяет вам увидеть все запущенные в активной рабочей области окна, что можно использовать также как и сочетание Alt+Tab.

Все окна одной рабочей области в Linux Mint

Настройки рабочих областей в Линукс Минт

Так если вы создадите более двух рабочих областей и отмените опцию «Показывать экспозицию как сетку», то при переходе в режим экспозиции все рабочие области выстроятся в линию.

Режим экспозиции рабочих областей Линукс

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

Меню окна в Линукс Минт

Первый пункт «Всегда на видимом рабочем месте» заставит данное окно перемещаться на другие рабочие столы вместе с вами. То есть вы будете переключаться между рабочими областями и окно будет следовать за вами.

Ну а пункт «Переместить на другое рабочее место» позволит переместить окно на другой виртуальный рабочий стол, который нужно выбрать из списка.

Управление программами из консоли Linux

Операционные системы Linux обладают очень большими возможностями для автоматизации рутинных действий. В предыдущих публикациях мы уже показали большое количество различных и странных примеров, включая возможность управления системой с помощью календаря Google. Но мы никогда не затрагивали автоматизацию и скриптование программ с графическим интерфейсом. А ведь как правило им тоже можно управлять из консоли и скриптов.

Управление программами с помощью Wmctrl

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

Основное преимущество wmctrl — полная независимость от какого-либо оконного менеджера. Он взаимодействует с окнами посредством протокола EWMH/NetWM, который поддерживают большинство оконных менеджеров.

Не буду утомлять вас рассказами о возможностях утилиты и ее флагах, а сразу покажу пример. Все знают о существовании Konsole и Tilda, специальных эмуляторах терминала, которые можно разворачивать и сворачивать нажатием клавиши. С помощью wmctrl вы сможете наделить такими возможностями любой другой эмулятор терминала (например, Konsole из KDE).

Просто повесь его на клавиатурную комбинацию. Первое нажатие запустит терминал, а все последующие будут сворачивать/разворачивать его.

Чтобы этого добиться, сначала нужно определить размеры окон обоих приложений в каждом из двух требующихся состояний. Делается это с помощью команды wmctrl -lG (перед этим растяните/сожмите окна до нужных размеров):

0x0500001b 0 0 55 1280 726 N / A Проект OpenNet - QupZilla 0x0500001b 0 0 55 900 693 N / A Проект OpenNet - QupZilla

Опция -G добавляет четыре дополнительных столбца в середине вывода команды. В них отражены данные о смещении окон по осям X и Y, а также их ширина и высота соответственно. В моем случае я сначала использовал данные в точности, как их вывела команда. Но при подстановке в сценарий расположение окна QupZilla по оси Y по какой-то причине отличалось от расчетного, поэтому его пришлось немного подкорректировать вручную.

wmctrl - r Telegram - e '0,900,55,380,693' - b remove , below

При первом запуске этот скрипт сожмет окно браузера с правой стороны и покажет в освободившемся пространстве окно мессенджера. Второй запуск закроет мессенджер и вернет окно браузера в прежнее состояние.

Управление программами из консоли Linux

Управление программами из консоли Linux | Окна браузера и мессенджера на одном экран

Управление программами с помощью Xdotool

Telegram, который мы использовали в примере с браузером и мессенджером, сам по себе неплохо управляется сочетаниями клавиш. И все-таки одного шортката мне не хватает. Того, который восстанавливал бы окно из лотка. Wmctrl не всегда способен решить эту задачу. И пока встроенные возможности мессенджера не могут нас порадовать подобной функциональностью, поможет утилита xdotool. Она позволяет эмулировать действия мышью, а значит, и повесить их на сочетания клавиш.

Поскольку рабочее окружение у меня Plasma, я создал еще один виджет системного лотка, отключив в его настройках все пункты, кроме «Состояния приложений», а всем элементам приложений, кроме Telegram, указал пожизненную невидимость («Всегда скрывать»). Сам же Telegram должен быть всегда виден.

Управление программами из консоли Linux

Управление программами из консоли Linux | Настройки второго системного лотка

Осталось только определить координаты значка «Телеграма» при заблокированных виджетах, установив на него курсор мыши и выполнив в терминале такую команду:

Управление программами из консоли Linux

Управление программами из консоли Linux | Получение координат курсора

Из всего многообразия полученных данных берем координаты X, Y (в моем случае — 1238 и 776) и подставляем в команду, перемещающую курсор мыши в заданное положение из любой области экрана и эмулирующую одно нажатие левой кнопки.

xdotool mousemove 1238 776 click 1 mousemove 640 400

Далее скрипт можно привязать к комбинации клавиш (или, как у меня, к одной — Menu), чтобы при их нажатии появлялось окно программы. Повторное нажатие того же сочетания клавиш вновь свернет окно Telegram в трей. Для удобства навигации в скрипт добавлен возврат курсора мыши в центр экрана.

Управление программами с помощью Xwininfo

Утилита xwininfo показывает на экране большое количество характеристик выбранного окна: ID, название, размеры, отступы от краев экрана, толщину границ, цветовую палитру и многое другое. Утилита wmctrl, содержащая в строке параметров опцию :SELECT:, позволяет применить указанные параметры к окну, наведя на него курсор и щелкнув мышью:

Управление программами с помощью Xprop

Часто используемая в различных сценариях утилита xprop предназначена для отображения свойств окон и шрифтов. В некоторых моментах функциональность xprop пересекается с функциональностью других утилит. Например, чтобы определить активное окно, можно выполнить одну из следующих команд:

$ xwininfo - int - id $ ( xdotool getactivewindow ) | awk - F \ " '/xwininfo:/ < print $2; exit >' $ xwininfo - id $ ( xprop - root | awk '/NET_ACTIVE_WINDOW/ < print $5; exit >' ) | awk - F \ " '/xwininfo:/ < print $2; exit >'

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


Наверняка, у вас уже есть Linux Screen в вашей системе. В большинстве дистрибутивов Red Hat и CentOS вы можете найти Screen Linux в /usr/bin/ screen . Чтобы увидеть, находится ли там Screen , вы можете использовать следующую команду:

Если у вас нет Screen, то можете установить его из RPM или файла пакета для вашей системы. Например, на CentOS можно установить Screen с yum:

Поскольку вы, скорее всего, уже имеете Screen или можете использовать RPM, я не буду описывать установку Screen из ресурса. А расскажу, как использовать screen.

Запуск Screen Linux

Screen запускается с командной строки точно так же, как любая другая команда :

Теперь вы в окне в Screen. Оно функционирует точно так же, как нормальная оболочка за исключением нескольких специальных символов.

Команда управления

Создание окон

Такая комбинация, с настройками по умолчанию создаст новое окно. Ваше старое окно будет все еще активно.
Например, я могу выполнить top и затем открыть новое окно, чтобы заняться чем-то другим. Top остается рабочей! Чтобы попробовать, запустите screen, а затем выполните top. (Примечание: некоторые скрины у меня урезаны, чтобы оставить свободное место.)

top - 09 : 10 : 33 up 35 days , 17 : 26 , 1 user , load averag Tasks : 131 total , 1 running , 130 sleeping , 0 stoppe Cpu ( s ) : 0.4 % us , 0.2 % sy , 0.0 % ni , 99.4 % id , 0.0 % wa , 0 Mem : 12302040k total , 6363652k used , 5938388k free ,

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

Переключение между окнами

Отсоединение от Screen

Экран позволяет отсоединяться от окна и вернуться к нему позже. Если сетевая связь прервется, то Screen автоматически отсоединит сеанс!

Все окна Screen все еще там, и вы можете повторно присоединиться к ним. Это удобно при использовании rsync для миграции сервера.

Повторное присоединение к Screen

Если Ваше соединение оборвалось или Вы отсоединились от Screen’а, Вы можете повторно подключиться, просто запуская:

Произойдёт повторное подключение к Вашему Screen. Однако, если у Вас есть несколько Screen’ов,то может получится это:

Если так, просто определите Screen, который хотите.

] $ screen - r 31844.pts - 0.office

Получение уведомлений

Screen может контролировать окно, его активность или бездействие. Данная функция необходима, если загружаете большие файлы, делаете компиляцию или ожидаете вывода.

Блокировка сеанса Screen

Screen used by root <jeffh>.
Password:

Остановка Screen

Когда вы закончили работу, я бы порекомендовал закончить сеанс вместо того, чтобы оставить его на потом. Чтобы остановить Screen, можете, как обычно, просто ввести «Exit» из своей оболочки. Это закроет Screen. Чтобы завершить сеанс вы должны закрыть все окна.

[screen is terminating]

Читайте также: