우분투에서 창을 이동하거나 크기를 조정하는 키보드 단축키 만들기 있습니다. 우분투 (그놈)에서 어떻게 이것을 달성

창에는 다양한 키 조합을 사용하여 창을 특정 미리 정의 된 크기로 조정하거나 화면의 특정 영역 (또는 둘 다)으로 이동할 수 있는 몇 가지 AutoHotkey 스크립트 가 있습니다. 우분투 (그놈)에서 어떻게 이것을 달성 할 수 있는지 궁금합니다.

Linux 버전의 autohotkey에 대한 대부분의 검색은 간단한 키보드 단축키 (키 콤보 X가 앱 Y를 시작하는 등)를 설정하는 것의 중심에있는 것처럼 보였습니다. 스크립팅 창 크기와 최대화 / 최소화 이외의 배치에 대해서는 아무것도 보지 못했습니다.



답변

쉘 스크립트에서 wmctrl (우분투에서는 기본적으로 설치되지 않지만 패키지 관리자를 사용하여 설치할 수 있음)을 사용하여 창을 이동하고 크기를 조정할 수 있습니다.

다음 스크립트는 현재 창의 크기를 화면 너비와 높이의 90 %로 조정합니다.

#!/bin/sh

set -- $(xwininfo -root| awk -F '[ :]+' '/ (Width|Height):/ { print $3 }')
width=$1
height=$2

wmctrl -r :ACTIVE: -e 0,-1,-1,$((width*90/100)),$((height*90/100))

이것은 Xubuntu에서도 작동합니다.


답변

@Florian의 답변을 승인하기 위해 …

#!/bin/bash

$(xwininfo -root | awk -F ': +' '/ (Width|Height):/ { print $2 }')
width=$1
height=$2

wmctrl -r :ACTIVE: -e 0,-1,-1,$((width*90/100)),$((height*90/100))

왜 이것이 더 낫습니까?

[ :]+필드 구분자로 변경 : +하여 콜론을 필요 로하고 그 뒤에 하나 이상의 공백이 아닌 순서대로 공백이 필요합니다.

즉, 왼쪽 상단에 공백이있는 Absolute와 같은 항목을 사용하려고 할 때 더 이상 중단되지 않습니다. 에서 @ 플로리안의 답변에 대한 awk’ing은 Absolute upper-left X: 123초래 upper-left하지에 123.

더 나아가서 이것을 더 잘 확장하는 방법에 계속; 위의 예를 들어서 다음과 같은 것을 할 수 있습니다 …

set -- $(xwininfo -root | awk -F ': +' '/ (Absolute upper-left X|Absolute upper-left Y|Width|Height):/ { print $2 }')
posX=$1
posY=$2
width=$3
height=$4

wmctrl -r :ACTIVE: -e 0,$((posX+someNumX)),$((posY+someNumY)),$((width+someNumW)),$((height+someNumH))

로 이동 <someNumX, someNumY>하고 크기를 조정하십시오 <someNumW, someNumH>.