bumblebee-ctl
#!/usr/bin/env python
import os
import argparse
import json
import glob
import socket
button = {
"left-mouse": 1,
"middle-mouse": 2,
"right-mouse": 3,
"wheel-up": 4,
"wheel-down": 5,
"update": -1,
}
def main():
parser = argparse.ArgumentParser(description="send commands to bumblebee-status")
parser.add_argument(
"-b",
"--button",
choices=["left-mouse", "right-mouse", "middle-mouse", "wheel-up", "wheel-down", "update"],
help="button to emulate",
default="left-mouse",
)
parser.add_argument("-i", "--id", help="ID of widget to trigger")
parser.add_argument(
"-m", "--module", help="name of the module to trigger", required=True
)
args = parser.parse_args()
for f in glob.glob("/tmp/.bumblebee-status.*"):
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
s.connect(f)
s.sendall(
json.dumps(
{
"name": args.module,
"instance": args.id,
"button": button[args.button],
}
).encode("ascii")
)
except Exception as e:
os.remove(f)
if __name__ == "__main__":
main()
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4