Pintasan untuk beralih tampilan

12

Saya memiliki 2 tampilan pada PC saya - sebuah IDE adalah layar penuh terbuka di satu layar dan Firefox adalah layar penuh terbuka di layar lain.

Karena saya kebanyakan menggunakan keyboard, itu menjengkelkan harus mengambil mouse untuk mengalihkan fokus ke Firefox dan kembali ke IDE setiap saat.

Apakah ada jalan pintas yang bisa saya gunakan untuk mengalihkan fokus ke "jendela terbesar" pada tampilan 2 jika fokus berada di suatu tempat di tampilan 1 dan sebaliknya?

Halus
sumber

Jawaban:

11

Hari ini saya mendapat jawaban positif untuk pertanyaan ini, jadi saya memposting solusi saya yang telah saya gunakan selama lebih dari setahun dan saya cukup senang dengannya.

Langkah 1: buat skrip bash (mis. Tuliskan ~/swap.shdan buatlah itu dapat dieksekusi) untuk mengatur fokus ke jendela yang ada di tengah-tengah tampilan lainnya:

#!/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

Langkah 2: tambahkan pintasan keyboard untuk memanggil skrip ini, saya masukkan milik saya Super-Tab

Langkah 3: gunakan pintasan untuk berganti tampilan seperti bos

Halus
sumber
Ini banyak membantu tetapi mouse tidak dipindahkan ke layar lain yang, akan lebih bagus jika itu.
samarth
2
@samarth Anda dapat mencapainya dengan menghapus mousemove restoredari eval, sehingga "eval` xdotool mousemove $ 1 $ 2 getmouselocation --shell` "
Fluffy
Saya sudah mencoba langkah 1, kemudian menjalankan sh swap.sh, saya mendapatkan pesan kesalahan: swap.sh: 17: swap.sh: 288: tidak ditemukan swap.sh: 20: swap.sh: Kesalahan sintaks: "(" tidak terduga , membuat teks file dengan = sebagai judul dan tidak ada ide? Terima kasih!
Matifou
@Matifou cobabash swap.sh
Fluffy
Ini sangat membantu; apakah ada cara untuk mendeteksi ketika layar diputar? Saya memiliki monitor kiri saya diputar (dengan xrandr --rotate) tetapi xdotool tidak menggunakan rotasi dan saya tidak tahu cara mendeteksi. Jika fokus ada di layar yang diputar, saya perlu menggunakan tombol dua kali alih-alih sekali.
GTK
0

Anda dapat menggunakan AltTabuntuk berpindah antar windows.

AltTabjuga mengingat dua jendela yang terakhir kali Anda gunakan. Jika Anda beralih ke satu jendela (navigasi dengan tombol panah), lalu beralih kembali, cukup menekan AltTabakan memungkinkan Anda untuk melompat di antara mereka, tanpa navigasi lebih lanjut.

Aaron Hill
sumber
2
Saya ingin beralih tampilan dalam pengaturan dual-monitor, bukan windows. Saya memiliki beberapa aplikasi terbuka, dan saya tidak ingin menekan alt-tab berkali-kali sampai saya mencapai yang lain pada tampilan lainnya.
Fluffy
0

repositori ini dapat membantu Anda

https://github.com/Eitol/screen_focus_changer

Anda menempatkan skrip kiri focus_changer.py di tempat tetap (/ opt misalnya) Dan kemudian tambahkan keybinding / shortcut / hotkey di pengaturan Anda

python3 /opt/focus_changer.py kiri # Fokus ke kiri

python3 /opt/focus_changer.py kanan # Fokus ke kanan

Hector Oliveros
sumber