#!/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