Linux - хитре управління вікнами та мишею - Maddot IT - FOSS

Сьогодні я розповім про два корисні утиліти, які часом мене виручають у найнесподіваніших ситуаціях. Це утиліти -wmctrlтаxdotool. Вони дозволяють керувати розміром та розташуванням вікон та поведінкою мишки через термінал, відповідно вони стануть у нагоді при написанні власних скриптів.
Наприклад, в одній із попередніх статей, я використав утилітуxdotoolдля того, щоб емулювати подвійне натискання лівої кнопки мишки (для додаткової клавіші, яка за умовчанням не підтримувалася в Linux). Застосування цим утилітам можна вигадати найрізноманітніші, але щоб використовувати їх у повсякденній роботі — для початку треба знати про їхнє існування.
Кожна утиліта має власну довідку — я прихильник того, щоб користувачі ніколи не нехтували вбудованими в програми довідками та сторінками man — але я виписав для кожної утиліти окремі команди, які вважаю найкориснішими та найзатребуванішими в реальному застосуванні. Але не забуваємо про: man xdotool і man wmctrl .
Вивести список усіх доступних зараз вікон
Активувати вказане вікно. Причому назву вікна не обов'язково писати повністю, наприклад, для вікна з назвою «Термінал — login@pc:
/cat/» достатньо написати: «wmctrl -a Терм«
Закрити вказане вікно. Причому назву вікна не обов'язково писати повністю, наприклад, для вікна з назвою «Термінал — login@pc:
/cat/» достатньо написати: «wmctrl -a Терм«
Перемістити вказане вікно та змінити його розмір.GПритягнення вікна до країв екрана (0 - як настроєно в системі)XКоординати вікна по осі X (від лівого краю вікна) [-1 -не міняти ]YКоординати вікна по осі Y (від верхнього краювікна) [-1 -не міняти]WВисота вікна в пікселах [-1 -не міняти]HШирина вікна в пікселах [-1 -не міняти ] Наприклад:wmctrl -r Терм -e 0,1,1,600,600перемістить вікно терміналу в лівий вірний кут і розмір вікна стане 600x600px (вікно буде квадратним).
Повертає поточну роздільну здатність монітора в пікселах
Повертає поточну позицію курсору мишки
Клікнути KEY кнопкою мишки COUNT разів KEY: 1 — ліва кнопка, 2 — середня, 3 — права, 4 — коліщатко вгору, 5 — коліщатко вниз.
Перемістити курсор мишки на позицію X і Y (у пікселах)
Отримати ID активного вікна
Виходячи з вищеописаного, давай для практики напишемо простий скрипт, який згортатиме активне вікно в маленький прямокутник у верхній лівій частині екрана, а якщо одне вікно вже згорнуте в нього, то поміняє місцями поточне вікно (зробивши його маленьким) і розгорне вже згорнуте вікно:
Параметр "-i" у команді wmctrl означає, що ми будемо звертатися до вікна не на ім'я, а на id. Тепер збережемо цей скрипт і повісимо його на будь-яку комбінацію гарячих клавіш. Насамкінець повторю, у цій статті наведені не всі можливості утиліт xdotool і wmctrl, повний список дивись з ключем «-help» або на сторінках «man».