読者です 読者をやめる 読者になる 読者になる

自己顕示欲の開放治療所

erg, programming and something.

別名:Laughing and Grief 雑記

Latin and Greekは習ったこともない

真面目な記事の他、特定の方には不快と思われる事柄に関して言及を行うことがあります。ちょっと頑張りますが、Blog内で解決できなかった場合要望があれば別ページに技術記事は書き直します

WingoWMのPythonScriptサンプルをPython3用に直してみた

WingoはWindow Managerの1つでGolang製です。 が、socketでPythonからWingo-cmdのコマンドを実行できます。サンプルがPython2系だったのでPython3系に書き直してみた。

本当はMessageに色々やらせたいんだけどただの文字列以外だとどうにも動いてくれないので一旦保留かな。

19:30追記 'Message "%s"' % hoge の形で可能だった。はー。

# -*- coding:UTF-8 -*-

import os
import os.path
import socket

sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
f = os.path.join(os.getenv('XDG_RUNTIME_DIR'), 'wingo', os.getenv('DISPLAY') +  '.0')
sock.connect(f)


def recv(sock):
    data = ''
    while chr(0) not in data:
        data += sock.recv(4096).decode()
    return data


def gribble(cmd):
    message = ("%s%s" % (cmd, chr(0)))
    sock.send(message.encode('utf-8'))
    return recv(sock)

print(gribble('GetClientName (GetActive)'))

sock.close()