Десктоп под контролем. Управляем графическим софтом из консоли и скриптов - «Новости»
Что нового показали на Google I/O 2026. Часть 1 - «Новости мира Интернет»
Что нового показали на Google I/O 2026. Часть 1 - «Новости мира Интернет»
Алиса AI научилась лучше генерировать изображения с русскими надписями - «Новости мира Интернет»
Алиса AI научилась лучше генерировать изображения с русскими надписями - «Новости мира Интернет»
YouTube будет автоматически помечать фотореалистичные AI-видео - «Новости мира Интернет»
YouTube будет автоматически помечать фотореалистичные AI-видео - «Новости мира Интернет»
Яндекс представил быструю нейросеть для бизнеса Alice AI LLM Flash - «Новости мира Интернет»
Яндекс представил быструю нейросеть для бизнеса Alice AI LLM Flash - «Новости мира Интернет»
Anthropic представила Claude Opus 4.8 – ИИ-модель стала честнее и лучше работает с кодом - «Новости мира Интернет»
Anthropic представила Claude Opus 4.8 – ИИ-модель стала честнее и лучше работает с кодом - «Новости мира Интернет»
Что нового показали на Google I/O 2026. Часть 2 - «Новости мира Интернет»
Что нового показали на Google I/O 2026. Часть 2 - «Новости мира Интернет»
Новый ИИ-агент Figma умеет создавать интерфейсы по текстовому запросу - «Новости мира Интернет»
Новый ИИ-агент Figma умеет создавать интерфейсы по текстовому запросу - «Новости мира Интернет»
Microsoft изменит работу клавиши Copilot в Windows 11 - «Новости мира Интернет»
Microsoft изменит работу клавиши Copilot в Windows 11 - «Новости мира Интернет»
Android добавит предупреждения для пользователей об удалении приложений из Google Play - «Новости мира Интернет»
Android добавит предупреждения для пользователей об удалении приложений из Google Play - «Новости мира Интернет»
Представлены AR-очки X By Xreal a01 с оптической стабилизацией и сменной оправой - «Новости мира Интернет»
Представлены AR-очки X By Xreal a01 с оптической стабилизацией и сменной оправой - «Новости мира Интернет»
Новости мира Интернет » Новости » Десктоп под контролем. Управляем графическим софтом из консоли и скриптов - «Новости»

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

  • 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

Содержание статьи 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

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

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

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



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