maddot.ru Linux → Linux - хитрое управление окнами и мышью
dd
 
Рубрики
» Компьютеры
» Операционные системы
» Android
» Linux
» Windows
» Разное



» Все статьи (Списком)
Популярное
» Все заметки (Списком)
От Георгий 18:48 08.01
От Yuriy 23:27 28.09
От Айдар 10:48 04.02
От Роман 22:26 15.06
От Евгений 16:46 13.06
От Mike 00:01 23.04
От Сергей 18:15 11.02
От Надежда 10:51 24.05
От Надежда 10:42 24.05
От bakaut 17:33 14.02
От vlasmet 08:28 18.11
От Mike 11:51 17.05




Друзья
Хостинг Макхост
Качественный платный хостинг. Широкий спектр качественных хостинг услуг с 2004 года.
Ваш IP: 54.91.16.95
Вы на узле: 178.208.83.19
URL: maddot.ru
Время сервера: 2018-01-20T00:22:11+03:00

Linux - хитрое управление окнами и мышью

27 Авг 2014

Сегодня я расскажу о двух полезных утилитах, которые порою меня выручают в самых неожиданных ситуациях. Это утилиты для управления окнами и мышью - wmctrl и xdotool.

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

Каждая утилита имеет собственную справку - я сторонник того, чтобы пользователи никогда не принебрегали встроенными в программы справками и страницами man - но я выписал для каждой утилиты отдельные команды, которые считаю самыми полезными и востребованными в реальном применении. Но не забываем о: "man xdotool" и "man wmctrl" .

wmctrl

  • wmctrl -l
    Вывести список всех доступных сейчас окон
  • wmctrl -a <Имя_окна> 
    Активировать указанное окно. Причем название окна не обязательно писать полностью, например для окна с названием "Терминал - login@pc: ~/cat/" достаточно написать: "wmctrl -a Терм"
  • wmctrl -c <Имя_окна>
    Закрыть указанное окно. Причем название окна не обязательно писать полностью, например для окна с названием "Терминал - login@pc: ~/cat/" достаточно написать: "wmctrl -a Терм"
  • wmctrl -r <Имя_окна> -e G,X,Y,W,H
    Переместить указанное окно и изменить его размер.
    G Притяжение окна к краям экрана (0 - как настроено в системе)
    X Координаты окна по оси X (от левого края окна) [-1 -не менять]
    Y Координаты окна по оси Y (от верхнего края окна) [-1 -не менять]
    W Высота окна в пикселах [-1 -не менять]
    H Ширина окна в пикселах [-1 -не менять]
    Например: wmctrl -r Терм -e 0,1,1,600,600 переместит окно терминала в левый верний угол и размер окна станет 600x600px (окно будет квадратным).

xdotool

  • xdotool getdisplaygeometry
    Возвращает текущее разрешение монитора в пикселах
  • xdotool getmouselocation
    Возвращает текущую позицию курсора мышки
  • xdotool click --repeat COUNT KEY
    Кликнуть KEY кнопкой мышки COUNT раз
    KEY: 1 - левая кнопка, 2 - средняя, 3 - правая, 4 - колесико вверх, 5 - колесико вниз.

  • xdotool mousemove X Y
    Переместить курсор мышки на позицию по X и Y (в пикселах)
  • xdotool getactivewindow
    Получить ID активного окна
Исходя из вышеописанного, давай для практики напишем простой скрипт, который будет сворачивать активное окно в маленький прямоугольник в верхней левой части экрана, а если одно окно уже свернуто в него, то поменяет местами текущее окно (сделав его маленьким) и развернет уже свернутое окно:



#!/bin/bash

touch ./.active_w
bw=$(cat ./.active_w)
active_window=$(xdotool getactivewindow)
[[ $bw != $active_window ]] && wmctrl -r $bw -i -e 0,1,200,800,600 && wmctrl -r $active_window -i -e 0,1,1,300,100 && wmctrl -a $bw -i
[[ $bw == $active_window ]] &&  wmctrl -r $active_window -i -e 0,1,1,300,100

echo $active_window > ./.active_w
Параметр "-i" в команде wmctrl означает, что мы будем обращаться к окну не по имени, а по id.
Теперь сохраним этот скрипт и повесим его на какую-либо комбинацию горячих клавиш.
Напоследок повторю, в данной статье приведены не все возможности утилит xdotool и wmctrl, полный список смотри с ключем "--help" или на страницах "man".


ρ4421
Рубрика → Linux
Метки: linux xdotool wmctrl интерфейс скрипты



B s i

 




Счетчики 

Яндекс.Метрика