dotfiles/get-coord-matrix.py
2014-09-24 11:17:51 +04:00

49 lines
1.5 KiB
Python
Executable File

#!/usr/bin/python2
import commands, sys
def get_resolutions():
resolutions = []
xrandr_output = commands.getoutput("xrandr")
# total
total = xrandr_output.split('\n')[0]
resolutions += [[float(total.split(', ')[1].split()[1]), float(total.split(', ')[1].split()[3])]]
for line in xrandr_output.split('\n'):
if (line.find('*') == -1): continue
resolutions += [[float(line.split()[0].split('x')[0]), float(line.split()[0].split('x')[1])]]
return resolutions
def get_matrix(resolutions, second = "leftof"):
if (len(resolutions) == 2):
c0 = 1.0
c1 = 0.0
c2 = 1.0
c3 = 0.0
elif (second == "leftof"):
c0 = resolutions[1][0] / resolutions[0][0]
c1 = resolutions[2][0] / resolutions[0][0]
c2 = resolutions[1][1] / resolutions[0][1]
c3 = 0.0
elif (second == "rightof") or (second == "below"):
c0 = resolutions[1][0] / resolutions[0][0]
c1 = 0.0
c2 = resolutions[1][1] / resolutions[0][1]
c3 = 0.0
elif (second == "above"):
c0 = resolutions[1][0] / resolutions[0][0]
c1 = 0.0
c2 = resolutions[1][1] / resolutions[0][1]
c3 = resolutions[2][1] / resolutions[0][1]
return "%f 0.0 %f 0.0 %f %f 0.0 0.0 1.0" %(c0, c1, c2, c3)
if __name__ == "__main__":
state = "leftof"
if (len(sys.argv) > 1):
if sys.argv[1] in ["leftof", 'rightof', "below", "above"]:
state = sys.argv[1]
resolutions = get_resolutions()
print(get_matrix(resolutions, state))