Десктоп под контролем. Управляем графическим софтом из консоли и скриптов - «Новости»
Дизайнер создал флешку в стиле фирменной папки из macOS - «Новости мира Интернет»
Дизайнер создал флешку в стиле фирменной папки из macOS - «Новости мира Интернет»
Джек Дорси запустил офлайн-мессенджер Bitchat - «Новости мира Интернет»
Джек Дорси запустил офлайн-мессенджер Bitchat - «Новости мира Интернет»
В Gmail появился удобный способ отписки от рассылок - «Новости мира Интернет»
В Gmail появился удобный способ отписки от рассылок - «Новости мира Интернет»
Зона расширяется: GSC Game World наконец подтвердила релиз S.T.A.L.K.E.R. 2: Heart of Chornobyl на PS5 - «Новости сети»
Зона расширяется: GSC Game World наконец подтвердила релиз S.T.A.L.K.E.R. 2: Heart of Chornobyl на PS5 - «Новости сети»
Найт-Сити встречает новых гостей: Sony без предупреждения добавила Cyberpunk 2077 в каталог PS Plus - «Новости сети»
Найт-Сити встречает новых гостей: Sony без предупреждения добавила Cyberpunk 2077 в каталог PS Plus - «Новости сети»
Браузеры почти 1 млн пользователей превратились в скрытых ботов для скрапинга - «Новости сети»
Браузеры почти 1 млн пользователей превратились в скрытых ботов для скрапинга - «Новости сети»
Илон Маск представил мощнейшую ИИ-модель Grok 4 и подписку SuperGrok Heavy за $300 в месяц - «Новости сети»
Илон Маск представил мощнейшую ИИ-модель Grok 4 и подписку SuperGrok Heavy за $300 в месяц - «Новости сети»
В большинстве AMD Ryzen и EPYC обнаружена уязвимость TSA, позволяющая красть пароли и другие секретные данные - «Новости сети»
В большинстве AMD Ryzen и EPYC обнаружена уязвимость TSA, позволяющая красть пароли и другие секретные данные - «Новости сети»
Слухи: в разработке находится сразу несколько Fallout, включая ту, «что вы все ждёте» - «Новости сети»
Слухи: в разработке находится сразу несколько Fallout, включая ту, «что вы все ждёте» - «Новости сети»
Исследователи обнаружили опасный метод взлома Android через невидимый интерфейс - «Новости сети»
Исследователи обнаружили опасный метод взлома Android через невидимый интерфейс - «Новости сети»
Новости мира Интернет » Новости » Десктоп под контролем. Управляем графическим софтом из консоли и скриптов - «Новости»

Содержание статьи

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

Wmctrl


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


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


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


#! /bin/bash

if [ `wmctrl -xl | grep -c Konsole` != 0 ]; then
if [ -f /tmp/.Konsole.add ]; then
wmctrl -r Konsole -b add,below
rm /tmp/.Konsole.add
else
wmctrl -r Konsole -b add,above
touch /tmp/.Konsole.add
fi
else
konsole
fi

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


Эмулятор терминала не единственное применение wmctrl в рамках представленного выше скрипта. На самом деле вместо Konsole можно?подставить любую программу. А можно пойти дальше и задействовать в сценарии два окна, например браузер и мессенджер, таким образом, чтобы в определенный момент работы в интернете нажатием клавиш можно было заставить браузер подвинуться и освободить место под мессенджер и?кинуть взгляд на сообщения в чате.


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


$ wmctrl -lG
0x0500001b  0 0
55
1280 726  N/A Проект OpenNet - QupZilla
0x03000005  0 900  55
380  693  N/A Telegram (6)

$ wmctrl -lG
0x0500001b  0 0
55
900  693  N/A Проект OpenNet - QupZilla
0x03000005  0 900  55
380  693  N/A Telegram (6)

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


#!/bin/sh

if [ -f /tmp/.telega.half ]; then
wmctrl -r Telegram -e '0,900,55,380,693' -b add,below
wmctrl -r QupZilla -e '0,0,26,1280,726'
rm /tmp/.telega.half
else
wmctrl -r QupZilla -e '0,0,26,900,693'
wmctrl -r Telegram -e '0,900,55,380,693' -b remove,below
touch /tmp/.telega.half
fi

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



Окна браузера и мессенджера?на одном экране
Источник новостиgoogle.com
Цитирование статьи, картинки - фото скриншот - Rambler News Service.
Иллюстрация к статье - Яндекс. Картинки.
Есть вопросы. Напишите нам.
Общие правила  поведения на сайте.

Содержание статьи Xdotool Xprop Выводы Linux-системы обладают очень широкими?возможностями для автоматизации рутинных действий. В других статьях мы уже показали массу самых разнообразных и странных примеров, включая возможность управления машиной с помощью календаря Google. Однако мы почти никогда не говорили об автоматизации и скриптовании графического софта. А ведь во многих случаях им тоже можно управлять из консоли и скриптов. Wmctrl Скрестить мощь скриптов и красоту графики поможет wmctrl. С его помощью можно изменять размер и расположение окон на экране, автоматизировать смену рабочих столов или использовать информацию об открытых окнах в других скриптах. Основное преимущество wmctrl — полная?независимость от какого-либо оконного менеджера. Он взаимодействует с окнами посредством протокола EWMH/NetWM, который поддерживают большинство оконных менеджеров. Не буду утомлять тебя рассказами о возможностях утилиты и ее флагах, а сразу покажу пример. Все знают о существовании Konsole и Tilda, специальных эмуляторах терминала, которые можно разворачивать и сворачивать нажатием клавиши. С помощью wmctrl ты можешь наделить такими?возможностями любой другой эмулятор терминала (например, Konsole из KDE). Просто повесь его на клавиатурную комбинацию. Первое нажатие запустит терминал, а все последующие будут сворачивать/разворачивать его. Эмулятор терминала не единственное применение wmctrl в рамках представленного выше скрипта. На самом деле вместо Konsole можно?подставить любую программу. А можно пойти дальше и задействовать в сценарии два окна, например браузер и мессенджер, таким образом, чтобы в определенный момент работы в интернете нажатием клавиш можно было заставить браузер подвинуться и освободить место под мессенджер и?кинуть взгляд на сообщения в чате. Чтобы этого добиться, сначала нужно определить размеры окон обоих приложений в каждом из двух требующихся состояний. Делается это с помощью команды wmctrl -lG (перед этим растяни/сожми окна до нужных размеров): Опция -G добавляет четыре?дополнительных столбца в середине вывода команды. В них отражены данные о смещении окон по осям X и Y, а также их ширина и высота соответственно. В моем случае я сначала использовал данные в?точности, как их вывела команда. Но при подстановке в сценарий расположение окна QupZilla по оси Y по какой-то причине отличалось от расчетного, поэтому его пришлось немного подкорректировать вручную. При первом запуске этот скрипт сожмет окно браузера с правой стороны и?покажет в освободившемся пространстве окно мессенджера. Второй запуск закроет мессенджер и вернет окно браузера в прежнее состояние. Окна браузера и мессенджера?на одном экране Источник новости - google.com

Смотрите также

А что там на главной? )))



Комментарии )))