web-dev-qa-db-ja.com

モニター間でウィンドウを移動するためのシナモンショートカット

現在、新しいCinnamon環境をセットアップしていますが、すべてのショートカットが正しく機能しています。私はこのスクリプトをオンラインで見つけることができました。これにより、モニター間でウィンドウを移動できるようになりました。

#!/bin/bash

#get the window geometry
widthHeight=( $(wmctrl -l  -G | grep -v ' \-1 ' | awk 'END{print $5,$6}' ))

#toggle if $1 is set and set to left - move window to left
if [[ ! -z $1 ]]; then
        if [[ $1 == "left" ]]; then
        #this window is in another screen
            wmctrl -r ":ACTIVE:" -e 0,0,0,${widthHeight[0]},${widthHeight[1]}
    else
            wmctrl -r ":ACTIVE:" -e 0,1920,0,${widthHeight[0]},${widthHeight[1]}
        fi  
fi

ただし、ウィンドウが最大化されているか、モニターのいずれかの側にスナップされている場合は機能しません。常にウィンドウを次のモニターに移動するように、このスクリプトを変更する方法を知っている人はいますか?

5
LorenVS

Cinnamonはこれをネイティブに実行できるようになりました。これを実行するために、スクリプトは必要ありません。

デフォルトではShift + Windows +矢印です。

2
tsusanka

少し前に、私はインターネットにまったく同じ質問をし、ntowbinjのGithubリポジトリでやや良い答えを見つけました。

https://github.com/ntowbinj/switch-monitor

スクリプトは、最大化されたウィンドウとフルスクリーンモードのウィンドウでも機能します。 xdotoolswmctrl(私が持っていた)をインストールする必要があるかもしれません。後者は最大化とフルスクリーンモードを元に戻す/再適用するために必要です。

リンクのみの回答について知っているにもかかわらず、ここでコードをコピーして貼り付けないことを選択しました。理由:161行追加しても、これはより明確でより良い答えにはなりません。この時間耐性を持たせるための最終的な更新は、ここではなくGitHubでも、Pastebin(他のSEの場合)でも発生する可能性があります。私がそのような長いペーストを置くことを奨励してきたサイト)。それを補うために、スクリプトがどのように機能するかを大まかに概説しました。