Xubuntu 11.10をデュアルモニターセットアップで実行しています。キーストロークを作成しようとしています(たぶん CTRL + ALT + SPACE これにより、選択したウィンドウを次のモニターに送信できます。
GNOMEには、他のモニターにウィンドウを送信できるswapmonitor
というパッケージがあります。キーストロークでこのプログラムを呼び出すと、同じ効果が得られます。
これはXFCE/Xubuntuでどのように行われますか?
これはしばらく前に投稿されたものであり、あなたはすでにあなたの答えを得ているはずですが、そうでない人のためです。
これらのコマンドを実行する
Sudo apt-get install xdotool
Sudo apt-get install wmctrl
次に、bashスクリプトを次のリンクからダウンロードします(jc00keのクレジット) https://github.com/jc00ke/move-to-next-monitor
個人的には、自分のルートに、すべての個人用スクリプトを格納するディレクトリがあります。しかし、どこでダウンロードするかはあなた次第です。実行できるように権限を変更します。たとえば、スクリプトをmove-to-next-monitor.shとして保存し、次を実行します。
chmod 755 move-to-next-monitor.sh
これで、ウィンドウを1つの画面から別の画面に切り替えるキーボードショートカットができました。 3つ以上の画面でどのように機能するかわかりません。
最初にjc00keが作成した上記のスクリプトにいくつか変更を加えました。
-鉱山は3台のモニター用に設定されています。
-ウィンドウが最大化されたかどうかを維持します。
-script-name -l
とscript-name -r
の使用法でそれぞれウィンドウを左または右に移動するために使用されます。
-最小化するとChromiumアプリが非常に小さくなり、新しいモニターで再び最大化しないという修正を追加しました。
jc00keに対応しました。これはXfceでうまく機能しますが、彼はUnityのスクリプトに問題があると述べました。もちろん、Unityなどの他のデスクトップ環境では、このようなオプションはウィンドウマネージャーに組み込まれているため、このスクリプトは必要ありません。
スクリプトを使用するには、スクリプトを実行可能ファイルchmod +x script-name
にして、次の2つのプログラムSudo apt-get install xdotool wmctrl
をインストールします。
#!/bin/bash
#
# Move the current window to the next monitor.
#
# Also works only on one X screen (which is the most common case).
#
# Props to
# http://icyrock.com/blog/2012/05/xubuntu-moving-windows-between-monitors/
#
# Unfortunately, both "xdotool getwindowgeometry --Shell $window_id" and
# checking "-geometry" of "xwininfo -id $window_id" are not sufficient, as
# the first command does not respect panel/decoration offsets and the second
# will sometimes give a "-0-0" geometry. This is why we resort to "xwininfo".
screen_width=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $7 }')
screen_height=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $8 }')
window_id=$(xdotool getactivewindow)
case $1 in
-l )
display_width=$((screen_width / 3 * 2)) ;;
-r )
display_width=$((screen_width / 3)) ;;
esac
# Remember if it was maximized.
window_state=$(xprop -id $window_id _NET_WM_STATE | awk '{ print $3 }')
# Un-maximize current window so that we can move it
wmctrl -ir $window_id -b remove,maximized_vert,maximized_horz
# Read window position
x=$(xwininfo -id $window_id | awk '/Absolute upper-left X:/ { print $4 }')
y=$(xwininfo -id $window_id | awk '/Absolute upper-left Y:/ { print $4 }')
# Subtract any offsets caused by window decorations and panels
x_offset=$(xwininfo -id $window_id | awk '/Relative upper-left X:/ { print $4 }')
y_offset=$(xwininfo -id $window_id | awk '/Relative upper-left Y:/ { print $4 }')
x=$((x - x_offset))
y=$((y - y_offset))
# Fix Chromium app view issue of small un-maximized size
width=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $4 }')
if [ "$width" -lt "150" ]; then
display_width=$((display_width + 150))
fi
# Compute new X position
new_x=$((x + display_width))
# Compute new Y position
new_y=$((y + screen_height))
# If we would move off the right-most monitor, we set it to the left one.
# We also respect the window's width here: moving a window off more than half its width won't happen.
if [ $((new_x + width / 2)) -gt $screen_width ]; then
new_x=$((new_x - screen_width))
fi
height=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $5 }')
if [ $((new_y + height / 2)) -gt $screen_height ]; then
new_y=$((new_y - screen_height))
fi
# Don't move off the left side.
if [ $new_x -lt 0 ]; then
new_x=0
fi
# Don't move off the bottom
if [ $new_y -lt 0 ]; then
new_y=0
fi
# Move the window
xdotool windowmove $window_id $new_x $new_y
# Maintain if window was maximized or not
if [ "${window_state}" = "_NET_WM_STATE_MAXIMIZED_HORZ," ]; then
wmctrl -ir $window_id -b add,maximized_vert,maximized_horz
fi
また、独自のpythonスクリプトを作成して、ウィンドウをモニター間で移動しました。
https://github.com/calandoa/movescreen
使用法:
movescreen.py <up|down|left|right>
興味深い機能:
「バイナリ」依存関係に依存しない他の代替(xdotoolやwmctrlなど): https://github.com/AlexisBRENON/ewmh_m2m
pip
を使用してインストールできます(手動でコピーしたり、実行可能にしたりする必要はありません)。種類。