Skip to content

Instantly share code, notes, and snippets.

@joaoescribano
Created December 31, 2018 16:26
Show Gist options
  • Save joaoescribano/118607eb7b0afdc05e7f0f491f20f4ef to your computer and use it in GitHub Desktop.
Save joaoescribano/118607eb7b0afdc05e7f0f491f20f4ef to your computer and use it in GitHub Desktop.
Python X11 window management wrapper, using xdotool to control
#! python3
import os, time
def getWindow(program):
os.system('(xdotool search --pid $(pidof '+program+')) > .tmp')
window = open('.tmp', 'r').read()
return window.strip()
def getActualDesktop():
os.system('(xdotool get_desktop) > .tmp')
desktop = open('.tmp', 'r').read()
return desktop.strip()
def goToDesktop(desktop):
os.system('(xdotool set_desktop ' + desktop + ') > .tmp')
return True
def getWindowDesktop(window):
os.system('(xdotool get_desktop_for_window ' + window + ') > .tmp')
windowDesktop = open('.tmp', 'r').read()
return windowDesktop.strip()
def setFocus(window):
os.system('(xdotool windowfocus ' + window + ') > .tmp')
window = open('.tmp', 'r').read()
return True
def maximizeWindow(window):
os.system('(xdotool windowmove ' + window + ' 0 0) > .tmp')
os.system('(xdotool windowsize ' + window + ' $(xdotool getdisplaygeometry)) > .tmp')
os.system('(xdotool windowactivate ' + window + ') > .tmp')
return True
def minimizeWindow(window):
os.system('(xdotool windowminimize ' + window + ') > .tmp')
return True
def setWindowPos(window, x, y):
os.system('(xdotool windowmove ' + window + ' ' + str(x) + ' ' + str(y) +') > .tmp')
return True
return True
def resizeWindow(window, x, y):
os.system('(xdotool windowsize ' + window + ' ' + str(x) + ' ' + str(y) + ') > .tmp')
return True
def getWindowTitle(window):
os.system('(xdotool getwindowname ' + window + ') > .tmp')
windowTitle = open('.tmp', 'r').read()
return windowTitle.strip()
window = getWindow('Tibia/client')
title = getWindowTitle(window)
actualDesktop = getActualDesktop()
windowDesktop = getWindowDesktop(window)
print("window:", window)
print("title:", title)
print("actualDesktop:", actualDesktop)
print("windowDesktop:", windowDesktop)
if (actualDesktop != windowDesktop):
goToDesktop(windowDesktop)
setFocus(window)
time.sleep(3)
resizeWindow(window, 800, 600)
time.sleep(3)
setWindowPos(window, 800, 600)
time.sleep(3)
minimizeWindow(window)
time.sleep(3)
maximizeWindow(window)
time.sleep(3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment