xdotool
xdotool getactivewindow
ソリューションを少し変更して、より効率的に実行できるようにしました (パラメーターを xprop に渡すため、必要なデータのみが返されます)。また、xpropの出力をバッファリングする必要があるかどうかわからないので、それを取り出しました。また、何らかの理由でアクティブなウィンドウが見つからない場合は、「アクティブなウィンドウが見つかりません」というエラーを修正する必要があります。
def get_active_window_title(self):
root = Popen(['xprop', '-root', '_NET_ACTIVE_WINDOW'], stdout=PIPE)
for line in root.stdout:
m = re.search('^_NET_ACTIVE_WINDOW.* ([\w]+)$', line)
if m != None:
id_ = m.group(1)
id_w = Popen(['xprop', '-id', id_, 'WM_NAME'], stdout=PIPE)
break
if id_w != None:
for line in id_w.stdout:
match = re.match("WM_NAME\(\w+\) = (?P<name>.+)$", line)
if match != None:
return match.group("name")
return "Active window not found"
xdotool
でアクティブなウィンドウのタイトルを取得できます :
$ xdotool getactivewindow getwindowname