切换显示的快捷方式


12

我的PC上有2个显示器-IDE在一个显示器中全屏打开,而Firefox在另一个显示器中全屏打开。

由于我主要使用键盘,因此必须抓住鼠标才能将焦点始终切换到Firefox,然后再切换回IDE,这很烦人。

如果焦点在显示器1的某处,是否可以使用快捷方式将焦点切换到显示器2的“最大窗口”?

Answers:


11

今天,我对此问题表示赞同,所以我发布了我一直使用了一年多的解决方案,对此感到非常满意。

步骤1:制作bash脚本(例如,将其写入~/swap.sh并使其可执行)以将焦点设置到另一个显示中间的窗口:

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

第2步:添加键盘快捷方式来调用此脚本,我将 Super-Tab

步骤3:使用快捷方式像老板一样切换显示


这很有帮助,但是鼠标没有移到另一个屏幕上,如果这样做的话,那会很棒。
samarth

2
@samarth您可以通过mousemove restore从eval中删除来实现这一点,因此它是“ eval`xdotool mousemove $ 1 $ 2 getmouselocation --shell`”
Fluffy

我已经尝试过步骤1,然后运行sh swap.sh,但出现错误消息:swap.sh:17:swap.sh:288:找不到swap.sh:20:swap.sh:语法错误:“(”意外,创建了文本带有=作为标题的文件,什么都没有,谢谢!
Matifou

@Matifou试试bash swap.sh
Fluffy

这很有帮助;有什么方法可以检测显示器何时旋转?我将左监视器旋转了(带有xrandr --rotate),但xdotool不使用旋转,并且我不知道如何检测。如果焦点在旋转的显示器中,则我需要使用两次击键而不是一次。
GTK

0

您可以AltTab用来在窗口之间切换。

AltTab还会记住您最后一次在哪个窗口之间切换。如果切换到一个窗口(使用箭头键导航),然后再切换回去,只需按AltTab一下即可在它们之间跳转,而无需任何进一步的导航。


2
我想在双显示器设置而不是Windows中切换显示。我有多个打开的应用程序,并且我不想多次按alt-tab直到在另一个显示屏上都找到一个。
蓬松的

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.