XFCE - Tuşa basıldığında diğer monitöre pencere gönder


27

Çift monitör kurulumu ile Xubuntu 11.10 kullanıyorum. Bir tuşa basmak için sabırsızlanıyorum (belki CTRL+ ALT+ SPACEseçili bir pencereyi bir sonraki ekrana göndermeme izin verecek).

GNOME'da swapmonitorpencereyi diğer monitöre gönderebilecek bir paket vardır . Bu programı bir tuşa basarak çağırmak da aynı etkiyi sağlar.

Bu XFCE / Xubuntu'da nasıl yapılır?


swapmonitorXubuntu altında erişiminiz yok mu? Yoksa bunun için bir klavye kısayolunun nasıl ayarlanacağını mı soruyorsunuz?
ire_and_curses 17:12

XFCE üzerinde çalışmak görünmüyor. Her ne kadar dışarıda hangi seçeneklerin olduğunu bilmek istiyorum.
boffin

Birden çok monitörü nasıl kurdunuz? Büyük bir sanal ekran olarak veya ayrı X görüntüler? Nvidia Twinview kullanıyor musunuz?
Keith

TwinView. 2 Dell 19 "
ekranlı

Yanıtlar:


27

Bu bir süre önce gönderildi ve henüz cevabınızı aldığınızdan emin değilim, ama almayanlar için.

Bu komutları çalıştır

sudo apt-get install xdotool
sudo apt-get install wmctrl

Ardından bash betiğini aşağıdaki bağlantıdan indirin (kredi için jc00ke) https://github.com/jc00ke/move-to-next-monitor

Şahsen, benim kökümde tüm kişisel scriptlerimi saklayacağım bir rehber var. Ancak, indirdiğiniz yer gerçekten size kalmış. Yürütmek için izinlere sahip olarak değiştirin. Örneğin, komut dosyalarını move-to-next-monitor.sh olarak kaydedin ve sonra aşağıdakileri yürütün

chmod 755 move-to-next-monitor.sh
  1. ayarlar yöneticisi -> klavye -> uygulama kısayolları
  2. Ekle'ye tıklayın
  3. Aç'ı tıklayın ve komut dosyasına yönlendirin
  4. Bir klavye kısayolu atayın ve voilà!

Artık bir pencereyi 1 ekrandan diğerine geçirmek için bir klavye kısayolunuz var. 2'den fazla ekranla nasıl çalıştığından emin değilim.


Bağlantılı betiğin benim için bu sorunu vardı: github.com/jc00ke/bin/issues/1
thejoshwolfe 17:16

1
Mint 17.3 ve xfce 4.12, ati yonga seti ekran kartı ve üç monitör ile bugüne kadar benim için iyi çalışıyor. Josh Wolfe'un sistemimdeki sorunu maksimize ettiğini görmemek. İpuçları için teşekkürler!
ether_joe

1
@ thejoshwolfe Benim için büyütme sorununu çözen komut dosyasının sürümünü ekledim.
jbrock

1
@ether_joe Üç monitörünüz olduğu için size yarar sağlayabilecek senaryo versiyonunu ekledim.
jbrock

Ben xfce içindeyim ve bu şey kötü. Pencereyi yalnızca sol monitörden sağa hareket ettirir ve masaüstümü bir kez gerçekten garip bir duruma getirir.
Sava B.

10

Yukarıda belirtilen komut dosyasında, aslında jc00ke tarafından yazılmış bazı değişiklikler yaptım.
- Benimki üç monitör için ayarlanmış.
- Pencerenin büyütülüp büyütülmeyeceğini korur.
- Pencereyi kullanım script-name -lsırasında script-name -rsırasıyla sola veya sağa hareket ettirmek için kullanılır .
- Küçültüldüğünde Chromium uygulamalarının çok küçük olduğu ve yeni monitörde tekrar maksimize edemediği bir düzeltme ekledim.
Ben jc00ke ile karşılık geldi. Bu, Xfce'de harika çalışırken, Unity'deki senaryosuyla ilgili sorunları olduğunu söyledi. Tabii ki Unity gibi diğer masaüstü ortamlarında bu betiğe ihtiyaç duymayacaktı çünkü bu seçenekler pencere yöneticisine yerleştirilmiş.
Komut dosyasını kullanmak için yürütülebilir duruma getirin chmod +x script-nameve aşağıdaki iki programı yükleyin 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

7

Ayrıca pencereleri monitörler arasında taşımak için kendi python betiğimi yarattım.

https://github.com/calandoa/movescreen

Kullanımı:

movescreen.py <up|down|left|right>

İlginç özellikler:

  • 4 yönü ele al
  • birkaç monitörde üst üste binen pencereler gibi bazı özel durumlarla başa çıkmak
  • bağımsız olarak tam ekran geri yükleme , yatay ve dikey durumları en üst düzeye çıkarma
  • python ile hata ayıklama veya yeni özellikler eklemek kolay.

1

Herhangi bir "ikili" bağımlılığa dayanmayan başka bir alternatif (xdotool veya wmctrl gibi): https://github.com/AlexisBRENON/ewmh_m2m

  • İle kurabilirsiniz pip(el ile kopyalamanıza, çalıştırılabilir duruma getirmenize vb. Gerek yoktur)
  • Farklı mizanpajlara sahip (yatay, dikey, karışık) birden çok ekranı yönetir
  • Farklı boyutlardaki ekranlar arasında hareket ederken pencere / ekran oranını koru
  • Büyütülmüş durumları geri yükle (yatay, dikey)

Tür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.