Phím tắt để chuyển đổi màn hình


12

Tôi có 2 màn hình trên PC của mình - một IDE đang mở toàn màn hình trong một màn hình và Firefox là toàn màn hình ở một màn hình khác.

Vì tôi chủ yếu sử dụng bàn phím, thật khó chịu khi phải lấy chuột để chuyển trọng tâm sang Firefox và quay lại IDE mọi lúc.

Có một phím tắt nào tôi có thể sử dụng để chuyển tiêu điểm sang "cửa sổ lớn nhất" trên màn hình 2 nếu tiêu điểm nằm ở đâu đó trong màn hình 1 và ngược lại không?

Câu trả lời:


11

Hôm nay tôi có một upvote cho câu hỏi này, vì vậy tôi đang đăng giải pháp của mình Tôi đã luôn sử dụng hơn một năm và tôi khá hài lòng.

Bước 1: tạo tập lệnh bash (ví dụ viết nó vào ~/swap.shvà làm cho nó có thể thực thi được) để đặt tiêu điểm vào một cửa sổ ở giữa màn hình khác:

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

Bước 2: thêm một phím tắt để gọi tập lệnh này, tôi đặt tôi vào Super-Tab

Bước 3: sử dụng phím tắt để chuyển đổi hiển thị như một ông chủ


Điều này giúp ích rất nhiều tuy nhiên chuột không được chuyển sang màn hình khác, điều đó sẽ rất tuyệt nếu như vậy.
samarth

2
@samarth Bạn có thể đạt được điều đó bằng cách xóa mousemove restoretừ eval, để nó là "eval` xdotool mousemove $ 1 $ 2 getmouselocation --shell`"
Fluffy

Tôi đã thử bước 1, sau đó chạy sh swap.sh, tôi nhận được thông báo lỗi: exchange.sh: 17: exchange.sh: 288: không tìm thấy hoán đổi.sh: 20: exchange.sh: Lỗi cú pháp: "(" không mong muốn , tạo văn bản tập tin với = như tiêu đề và không có ý kiến ​​gì? Cảm ơn!
Matifou

@Matifou thửbash swap.sh
Fluffy

Điều này rất hữu ích; Có cách nào để phát hiện khi màn hình được xoay không? Tôi có màn hình bên trái của mình được xoay (với xrandr --rotate) nhưng xdotool không sử dụng xoay và tôi không biết cách phát hiện. Nếu tiêu điểm nằm trong màn hình xoay, tôi cần sử dụng tổ hợp phím hai lần thay vì một lần.
GTK

0

Bạn có thể sử dụng AltTabđể chuyển đổi giữa các cửa sổ.

AltTabcũng ghi nhớ hai cửa sổ cuối cùng bạn chuyển đổi giữa. Nếu bạn chuyển sang một cửa sổ (điều hướng bằng các phím mũi tên), sau đó chuyển trở lại, chỉ cần nhấn AltTabsẽ cho phép bạn nhảy giữa chúng, mà không cần điều hướng thêm.


2
Tôi muốn chuyển đổi màn hình trong thiết lập màn hình kép, không phải cửa sổ. Tôi có nhiều ứng dụng đang mở và tôi không muốn nhấn alt-tab nhiều lần cho đến khi tôi đạt được ứng dụng trên màn hình khác.
Fluffy

0

kho lưu trữ này có thể giúp bạn

https://github.com/Eitol/screen_f Focus_changer

Bạn đặt tập lệnh bên trái tập trung vào một vị trí cố định (ví dụ: / opt) và sau đó thêm phím bấm / phím tắt / phím nóng trong cài đặt của bạn

python3 /opt/f Focus_changer.py trái # Tập trung sang trái

python3 /opt/f Focus_changer.py phải # Tập trung sang phải

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.