129
+ − 1 #!/usr/bin/env python
+ − 2
+ − 3 """
+ − 4 get the active window title
+ − 5 """
+ − 6
+ − 7 import re
+ − 8 import subprocess
+ − 9
+ − 10 def active_window_id():
+ − 11 process = subprocess.Popen(['xprop', '-root'], stdout=subprocess.PIPE)
+ − 12 stdout, stderr = process.communicate()
+ − 13 for line in stdout.splitlines():
+ − 14 if '_NET_ACTIVE_WINDOW(WINDOW):' in line:
+ − 15 return line.rsplit(None, 1)[-1]
+ − 16
+ − 17 def window_title(window_id):
+ − 18 process = subprocess.Popen(['xprop', '-id', window_id], stdout=subprocess.PIPE)
+ − 19 stdout, stderr = process.communicate()
+ − 20 for line in stdout.splitlines():
+ − 21 match = re.match("WM_NAME\((?P<type>.+)\) = (?P<name>.+)", line)
+ − 22 if match:
+ − 23 type = match.group("type")
+ − 24 if type == "STRING" or type == "COMPOUND_TEXT":
+ − 25 return match.group("name").strip('"')
+ − 26
+ − 27 def active_window_title():
+ − 28 return window_title(active_window_id())
+ − 29
+ − 30 def main():
+ − 31 title = active_window_title()
+ − 32 print title
+ − 33
+ − 34 if __name__ == '__main__':
+ − 35 main()