Ubuntuのウィンドウスナップの使用方法 [複製]


14

重複の可能性:
Windows 7のwinkey + arrowショートカットキーを最大化する方法

私はUbuntuを試していますが、ホットキーのウィンドウキー+矢印を使用すると、Windows 7のようにウィンドウを左右にスナップさせたいと思います。これどうやってするの?


UbuntuはCompizを使用してウィンドウ効果を提供します。見たことがありますが、Compizの公式プラグインが表示されないため、Win 7の効果を得ることができます。私は何かを見つけたら答えを探して投稿し続けます。

回答:


18

これは、CompizConfig Settings Managerから簡単に有効にできます。(まだインストールしていない場合はインストールしてください)。

次に、[ウィンドウ管理]で、グリッドを有効にします。CTRL + ALT + NumPadのデフォルトのバインディングを保持しましたが、必要に応じてSuper + Arrowを簡単に変更できます。


私がそこから逃しているのは、アクションを組み合わせるだけです。つまり、ウィンドウを右および下に移動すると、ウィンドウは画面の右下4分の1になります(ウィンドウの動作に似ています)。
kleinfreund

@kleinfreund Gridチェックボックスの隣にあるボタンをクリックすると、多くの設定を変更できます。このCorners / Edgesタブでは、コーナーのドッキングを設定できます。
swref

このポップOS 18.10、ショートカットキーの作業にはない、彼らは何もしない
ザックBloomquist

4

行くここでマイクのUbuntuのからの人間が読める形式で完全な手順については、(あなたのマイクに感謝)と、ここではオリジナルのUbuntuのフォーラムの投稿(感謝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    

次に、他の2つのスクリプトについても同じことを行います。(マウス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設定マネージャー]を実行します。コマンドセクションに移動します。以下を設定します。
[コマンド0]フィールド:

sh ~/.scripts/compizsnap-left.sh

コマンド1フィールド:

sh ~/.scripts/compizsnap-right.sh

コマンド2フィールド:

sh ~/.scripts/compizsnap-max.sh

最後に、エッジバインディングタブに移動し、コマンド0を左に、コマンド1を右に、コマンド2を上に設定します。

NB Compizは、使用したいエッジバインディングに設定された関数が既にあると不平を言うかもしれません-それらをあなたのものに置き換えてください。


これはうまく機能しますが、TwinView構成の2つのモニターで動作させるためのヒントはありますか?
ネイサンシュヴェルマン

2

ほとんどのUnixウィンドウマネージャとWindowsの違いの1つは、ほとんどのUnixウィンドウマネージャが画面の端でウィンドウの動きに抵抗することです。したがって、ウィンドウを画面の左端または右端に移動するための特別なコマンドは必要ありません。1つを端に向かってドラッグすると、そこに到達すると停止します。ウィンドウを移動するGnome(現在の標準的なUbuntuウィンドウマネージャー)キーボードショートカットは知りません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.