Shortcut to switch displays

I have 2 displays on my PC - an IDE is open fullscreen in one display and Firefox is open fullscreen in another display.

Since I mostly use the keyboard, it's annoying to have to grab the mouse to switch the focus to Firefox and back to the IDE all the time.

Is there a shortcut I could use to switch the focus to "largest window" on display 2 if focus is somewhere in display 1 and vice versa?


Today I got an upvote for this question, so I'm posting my solution I've been all the time using for more than a year and am quite happy with.

Step 1: make bash script (e.g. write it to ~/swap.sh and make it executable) to set focus to a window that is in the middle of the other display:

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

Step 2: add a keyboard shortcut to call this script, I put mine to Super-Tab

Step 3: use shortcut to switch displays like a boss


this repository may help you

https://github.com/Eitol/screen_focus_changer

You place the focus_changer.py left script in a fixed place (/ opt for example) And then add the keybinding / shortcut / hotkey in your settings

python3 /opt/focus_changer.py left # Focus to left

python3 /opt/focus_changer.py right # Focus to right