movewin.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/usr/bin/python3
  2. import os
  3. import sys
  4. import time
  5. # python3 movewin.py window-title x y
  6. # python3 movewin.py COMMA 723 943
  7. def winfo(name="WinfoWinName"):
  8. search = name
  9. cmd = "xwininfo -root -children -all | grep '{}'"
  10. cmd = cmd.format(search)
  11. print(cmd)
  12. r = os.popen(cmd)
  13. lines = r.readlines()
  14. _id = "xxxx"
  15. if lines and lines[0]:
  16. _id = lines[0].split()[0]
  17. print("ID:",_id)
  18. for line in lines:
  19. line = line.strip()
  20. print("-",line)
  21. return _id
  22. def movewin(_id="0xWinId",x=None,y=None):
  23. cmd="xdotool windowmove {} {} {}".format(_id,x,y)
  24. return cmd
  25. def sizewin(_id="0xWinId",x=None,y=None):
  26. cmd="xdotool windowsize {} {} {}".format(_id,x,y)
  27. return cmd
  28. def activate(_id="0xWinId"):
  29. cmd="xdotool windowactivate {}".format(_id)
  30. return cmd
  31. def system(cmd):
  32. print(cmd)
  33. os.system(cmd)
  34. if __name__ == "__main__":
  35. print("# python3 movewin.py window-title x y")
  36. print("# python3 movewin.py COMMA 723 943")
  37. import random
  38. a=random.randint(100,400)
  39. b=random.randint(100,400)
  40. search = "ASD"
  41. try:
  42. search = sys.argv[1]
  43. search = search.replace("'","")
  44. except:pass
  45. try:
  46. a = sys.argv[2]
  47. except:pass
  48. try:
  49. b = sys.argv[3]
  50. except:pass
  51. _id = winfo(search)
  52. c1 = sizewin(_id,a,b)
  53. c2 = movewin(_id,a,b)
  54. c3 = activate(_id)
  55. system(c1)
  56. time.sleep(0.1)
  57. system(c2)
  58. time.sleep(0.1)
  59. system(c3)