우분투에 창 스냅을 사용하는 방법? [복제]


14

가능한 중복 :
Winkey + Arrow Windows 7의 최대화 단축키를 에뮬레이트하는 방법은 무엇입니까?

우분투를 사용하려고하는데 단축키 키를 사용할 때 Windows 7과 같이 왼쪽과 오른쪽으로 창을 스냅하고 싶습니다. 어떻게해야합니까?


우분투는 Compiz를 사용하여 창 효과를 제공합니다. 나는 보았지만 Compiz 용 공식 플러그인을 볼 수는 없습니다. 윈도우 7 효과는 멋진 창 기능이므로 유감입니다. 나는 무언가를 찾으면 계속해서 답을 찾고 게시 할 것입니다.

답변:


18

CompizConfig 설정 관리자에서 쉽게 사용할 수 있습니다. (아직 설치하지 않았다면 설치하십시오).

그런 다음 창 관리에서 그리드를 활성화하십시오. CTRL + ALT + 숫자 패드의 기본 바인딩을 유지했지만 원하는대로 Super + Arrow로 쉽게 변경할 수 있습니다.


내가 누락 된 것은 행동을 결합하는 것입니다. 즉, 창을 오른쪽과 아래쪽으로 이동하면 창이 화면의 오른쪽 하단에 있습니다 (창 동작과 유사).
kleinfreund

@kleinfreund Grid체크 박스 옆 에있는 버튼 을 클릭하면 많은 설정을 변경할 수 있습니다. Corners / Edges탭 코너 도킹을 설정할 수 있습니다.
swref

이것은 핵심 단축키 인 Pop OS 18.10에서는 작동하지 않습니다.
Zach Bloomquist

4

이동 여기에 마이크의 우분투에서 사람이 읽을 수있는 형태로 전체 지침, (당신에게 마이크를 감사) 및 여기에 원래 우분투 포럼 게시물 (감사 gotsanity)입니다. 내 시스템에서 이것을 확인 했으므로 작동합니다. 또한 조금 이해하기 쉽도록 약간 추가하고 편집했습니다.

내가 지시 한 사항에 대한 유일한 변경 사항은 먼저 compiz가 설치되어 있는지 확인하는 것입니다. 가장 쉬운 방법은 소프트웨어 관리자를 사용하여 검색 창에 "compiz"를 넣는 것입니다.

그런 다음 터미널에 다음을 입력하십시오.

sudo apt-get install compizconfig-settings-manager wmctrl

그렇지 않으면 시스템에 compiz 설정 관리자가 나타나지 않습니다.

터미널을 열고 다음을 입력하십시오.

xinput list

리스트가 표시됩니다. 마우스의 ID 번호를 찾으십시오. 다음 단계에서이 번호가 필요합니다. 광산은 10 살이었다.
다음 명령은 홈 폴더에 새로운 숨겨진 폴더를 생성하여 필요한 스크립트를 보관하고 사용자에게 폴더를 이동시킵니다.

mkdir .scripts

cd .scripts

그런 다음

gedit compizsnap-left.sh    

텍스트 편집기가 나타납니다. 이것을 붙여 넣은 다음 마우스 ID 를 11에서 "xinput list"명령의 출력 번호 로 변경하십시오 . 이 작업을 완료하면 파일을 저장하십시오.

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2-10))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -le 10 ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-10

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

그런 다음 다른 두 스크립트에 대해서도 동일하게 수행하십시오. (마우스 ID 변경을 잊지 마십시오)

compizsnap-right.sh

암호:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -ge $TEMPWIDTH ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

compizsnap-max.sh

암호:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done
    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[1\]=." | sed s/"valuator\[1\]="//)" -le 10 ]
    then

        wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

(마우스 ID 변경을 기억 했습니까)

이제 마우스가 화면의 오른쪽, 위, 왼쪽으로 움직일 때 어떻게 행동해야하는지 compiz에 알려야합니다.

시스템> 환경 설정> CompizConfig 설정 관리자를 실행하십시오. 명령 섹션으로 이동하십시오. 다음을 설정하십시오.
Command 0 필드에서 :

sh ~/.scripts/compizsnap-left.sh

명령 1 필드에서 :

sh ~/.scripts/compizsnap-right.sh

명령 2 필드에서 :

sh ~/.scripts/compizsnap-max.sh

마지막으로 모서리 바인딩 탭으로 이동하여 명령 0을 왼쪽으로 설정하고 명령 1을 오른쪽으로 설정하고 명령 2를 상단으로 설정하십시오.

NB Compiz는 사용하려는 엣지 바인딩으로 이미 설정된 기능이 있다고 불평 할 수 있습니다.


TwinView 구성에서 두 대의 모니터와 작동하는 방법에 대한 팁이 있습니까?
Nathan Schwermann

2

대부분의 Unix 창 관리자와 Windows의 차이점 중 하나는 대부분의 Unix 창 관리자가 화면 가장자리에서 창 이동에 대한 저항을 제공한다는 것입니다. 따라서 창을 화면의 왼쪽 또는 오른쪽 가장자리로 이동하는 데 특별한 명령이 필요하지 않습니다. 가장자리를 향해 하나만 드래그하면 도착하면 멈 춥니 다. 창을 움직이는 Gnome (현재 표준 Ubuntu 창 관리자) 키보드 단축키를 모른다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.