Ekran değiştirme kısayolu


12

Bilgisayarımda 2 ekran var - IDE bir ekranda tam ekran açık ve Firefox başka bir ekranda tam ekran açık.

Çoğunlukla klavyeyi kullandığım için, odağı Firefox'a ve her zaman IDE'ye geri döndürmek için fareyi kapmak zorunda kalıyorum.

Odak, ekran 1'de bir yerdeyse ve tam tersi, odağı ekran 2'deki "en büyük pencere" olarak değiştirmek için kullanabileceğim bir kısayol var mı?

Yanıtlar:


11

Bugün bu soru için bir oylama aldım, bu yüzden çözümümü gönderiyorum Bir yıldan fazla bir süredir kullanıyorum ve oldukça mutluyum.

1.Adım: ~/swap.shOdağı diğer ekranın ortasındaki bir pencereye ayarlamak için bash betiğini oluşturun (örn. Yazıp çalıştırılabilir yapın):

#!/bin/bash

getwindowat() {
    # move mouse to coordinates provided, get window id beneath it, move mouse back
    eval `xdotool mousemove $1 $2 getmouselocation --shell mousemove restore`
    echo $WINDOW
}

# get active app
active=`xdotool getactivewindow`
# get coordinates of an active app
eval `xdotool getwindowgeometry --shell $active`

# if left border of an app is less than display width
# (e.g. one display is 1920px wide, app has x = 200 - means it's 200px to the right from the left border of left monitor
# if it has x = 1920 or more, it's on the right window), it's on screen 0, and we need to focus to screen 1, otherwise to screen 0
(( $X >= $WIDTH )) && focustoscreen=0 || focustoscreen=1;

# get coordinates of the middle of the screen we want to switch
searchx=$[ ($WIDTH / 2) + $focustoscreen * $WIDTH ]
searchy=$[ $HEIGHT / 2 ]

# get window in that position
window=`getwindowat $searchx $searchy`
# activate it
xdotool windowactivate $window

Adım 2: Bu komut dosyasını çağırmak için bir klavye kısayolu ekleyin, benimkini Super-Tab

3.Adım: Ekranları patron gibi değiştirmek için kısayolu kullanın


Bu çok yardımcı olur, ancak fare diğer ekrana taşınmaz, ki eğer yaparsa harika olur.
samarth

2
@samarth Bunu eval'den çıkararak başarabilirsiniz mousemove restore, böylece "eval" xdotool mousemove $ 1 $ 2 getmouselocation --shell` "
Fluffy

1. adımı denedim, sonra çalıştırıyorum sh swap.sh, hata mesajı alıyorum: swap.sh: 17: swap.sh: 288: bulunamadı swap.sh: 20: swap.sh: Sözdizimi hatası: "(" beklenmedik , metin oluşturma - başlık olarak ve hiçbir şey ile dosya Herhangi bir fikir? Teşekkürler!
Matifou

@Matifou deneyinbash swap.sh
Fluffy

Bu yardımcı olur; bir ekran döndürüldüğünde algılamanın bir yolu var mı? Sol monitörüm döndü (ile xrandr --rotate) ama xdotool rotasyonu kullanmıyor ve nasıl tespit edeceğimi bilmiyorum. Odak döndürülmüş ekranda ise, tuş vuruşunu bir kez yerine iki kez kullanmam gerekir.
GTK

0

AltTabPencereler arasında geçiş yapmak için kullanabilirsiniz .

AltTabayrıca en son hangi pencereyi değiştirdiğinizi hatırlatır. Bir pencereye geçiş yaparsanız (ok tuşlarıyla gezinin), sonra geri dönün, sadece düğmesine basmak AltTabdaha fazla gezinme olmadan aralarında atlamanıza izin verecektir.


2
Çift monitör kurulumunda ekranları değiştirmek istiyorum, pencereleri değil. Açık birden fazla uygulamam var ve diğer ekrandaki uygulamaya ulaşıncaya kadar alt-tab tuşuna çok fazla basmak istemiyorum.
Kabarık

0

bu depo size yardımcı olabilir

https://github.com/Eitol/screen_focus_changer

Focus_changer.py sol komut dosyasını sabit bir yere yerleştirirsiniz (örneğin / opt) ve sonra ayarlarınıza tuş bağlama / kısayol / kısayol tuşunu eklersiniz

python3 /opt/focus_changer.py sol # Odak sola

python3 /opt/focus_changer.py sağ # Sağa odaklan

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.