Создать пользовательскую привязку клавиш для привязки окна

Создать пользовательскую привязку клавиш для привязки окна

Есть сочетание клавиш для привязки окна либо к половине экрана Ctrl + Super + Left, либо Ctrl + Super + Right. Мой первый вопрос: как это сочетание клавиш определяется в системе? Все сочетания клавиш по умолчанию определены в , gsettingsно этого там нет.

Теперь перейдем к главному вопросу. Вышеуказанный ярлык привязывается к половине экрана. Я хочу, чтобы ярлык привязывался к 75%. Как это сделать? А если я захочу определить новый ярлык для привязки к 75%, то как это сделать?

решение1

Мне удалось заставить это работать с помощью wmctrlи xdotool. Оба являются инструментами для манипуляции окнами.

#!/bin/bash
WIN=$(xdotool getactivewindow)
eval $(xdotool getwindowgeometry --shell $WIN)
WIDTH=$(calc "int($WIDTH*0.75)")
wmctrl -r :ACTIVE: -b remove,maximized_horz,sticky
wmctrl -r :ACTIVE: -e "0,0,24,$WIDTH,-1"

Скрипт выше привязывает окно к 75% его размера к левой стороне. Сохраните скрипт выше в файле и назначьте ярлык для файла.

Аналогично следующий скрипт привязывает окно к 25% ширине справа.

#!/bin/bash
WIN=$(xdotool getactivewindow)
eval $(xdotool getwindowgeometry --shell $WIN)
X=$(calc "int($WIDTH-$WIDTH*0.25)")
WIDTH=$(calc "int($WIDTH*0.25)")
wmctrl -i -r $WINDOW -b remove,maximized_horz
wmctrl -i -r $WINDOW -e "0,$X,-1,$WIDTH,-1"

Проверьте man-страницы wmctrlи xdotoolруководства, чтобы узнать, как они работают. Установите зависимости с помощью

sudo apt-get install apcalc wmctrl xdotool

Примечание: Изменение размера работает относительно текущего положения и размера окна. Чтобы сделать это относительно размера экрана, разверните окно и выполните скрипт.

Связанный контент