Aiur

zellux 的博客

利用 netgrowl 向 Windows / Mac OS X 发送消息

我平时用的系统是 Windows 7 和 Mac OS X,实验室项目一般都是 ssh 远登到 Ubuntu 和 Linux 上开发的。有时碰到内核和虚拟机等项目编译比较耗时,编译开始后要时不时的看一下编译任务是否完成,或者有没有中途出错,这时候如果有个通知系统就比较方便了。 Google 了一把找到了 netgrowl 这个好东东,它是一个开源的 Python 模块,实现了 Growl 协议,可以向 Mac 或 Windows 上的 Growl 服务发送通知。使用也非常方便,先用 GrowlRegistrationPacket 函数注册一个应用,接着就可以用 GrowlNotificationPacket 发送通知了: notify.py #!/usr/bin/python from netgrowl import * import sys title = "Notification from Ubuntu" desc = "" if len(sys.argv) > 2: title = sys.argv[1] desc = sys.argv[2] addr = ("10.131.251.101", GROWL_UDP_PORT) s = socket(AF_INET,SOCK_DGRAM) p = GrowlRegistrationPacket(application="Ubuntu", password="i") p.addNotification("Ubuntu Notifications", enabled=True) s. 阅读全文 →

软件修改 Caps Lock 状态

我经常使用的几台电脑中的Caps Lock 键都被我改成了 Ctrl 键,这样修改以后用起 Emacs 来就顺手多了。 最近在 Windows 上用 VMware Remote Control 远登虚拟机调试内核的时候,问题就出来了:可能是这个浏览器插件的 bug,有时键盘的 Caps Lock 会被莫名打开。然后我的这个键盘键位又比较少,不想再让 Caps Lock 键替换另一个用得更少的按键了,于是想到了软件关闭的方法。 搜了下 Stackoverflow 找到个很好用的 Python 库SendKeys,只要两行代码就能在 Windows 下模拟 Caps Lock 按键了: import SendKeys SendKeys.SendKeys("{CAPSLOCK}") 另外在 Linux 要模拟按键,可以直接访问 /dev/console: import fcntl import os KDSETLED = 0x4B32 console_fd = os.open('/dev/console', os.O_NOCTTY) # Turn on caps lock fcntl.ioctl(console_fd, KDSETLED, 0x04) # Turn off caps lock fcntl.ioctl(console_fd, KDSETLED, 0) 原问题地址 阅读全文 →