Десктоп под контролем. Управляем графическим софтом из консоли и скриптов - «Новости»
В чём отличие чернил для СНПЧ и картриджных систем
В чём отличие чернил для СНПЧ и картриджных систем
«Эпический» сериал Netflix по Assassin’s Creed впервые за несколько лет подал признаки жизни - «Новости сети»
«Эпический» сериал Netflix по Assassin’s Creed впервые за несколько лет подал признаки жизни - «Новости сети»
«Хуже моего самого страшного кошмара»: утечка геймплея с тестирования новой The Sims ужаснула фанатов - «Новости сети»
«Хуже моего самого страшного кошмара»: утечка геймплея с тестирования новой The Sims ужаснула фанатов - «Новости сети»
Самые полные издания Borderlands 3 и Diablo III добавят в Game Pass, а лучшая игра 2024 года по версии 3DNews подписку скоро покинет - «Новости сети»
Самые полные издания Borderlands 3 и Diablo III добавят в Game Pass, а лучшая игра 2024 года по версии 3DNews подписку скоро покинет - «Новости сети»
Amazon включилась в борьбу за американский бизнес TikTok - «Новости сети»
Amazon включилась в борьбу за американский бизнес TikTok - «Новости сети»
«Яндекс» представил «Нейроэксперта» — ИИ, который соберёт базу знаний по ссылкам и файлам пользователя - «Новости сети»
«Яндекс» представил «Нейроэксперта» — ИИ, который соберёт базу знаний по ссылкам и файлам пользователя - «Новости сети»
ZA/UM отреагировала на утечку «одиночной кооперативной игры» Locust City во вселенной Disco Elysium - «Новости сети»
ZA/UM отреагировала на утечку «одиночной кооперативной игры» Locust City во вселенной Disco Elysium - «Новости сети»
GTA V вернётся в Game Pass, причём совсем скоро — впервые игра будет доступна в PC Game Pass - «Новости сети»
GTA V вернётся в Game Pass, причём совсем скоро — впервые игра будет доступна в PC Game Pass - «Новости сети»
Обзор системы резервного копирования и восстановления данных «Кибер Бэкап Малый Бизнес» - «Новости сети»
Обзор системы резервного копирования и восстановления данных «Кибер Бэкап Малый Бизнес» - «Новости сети»
Nintendo создала гибридный эмулятор Switch, но работать он будет только на Switch 2 - «Новости сети»
Nintendo создала гибридный эмулятор Switch, но работать он будет только на Switch 2 - «Новости сети»
Новости мира Интернет » Новости » Десктоп под контролем. Управляем графическим софтом из консоли и скриптов - «Новости»

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

  • 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

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

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



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