#!/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, } 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"], 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