GNU/Linux下更好的使用Thinkpad的键盘灯

August 11th, 2009 no comment

让广大“黑友”的thinklight更好的发挥作用。

Thinkpad屏幕顶部的键盘灯是个很有创意的设计,这个和小红点一起构成了Thinkpad的重要特色功能。

比如收到邮件后,thinklight闪烁;pidgin收到消息后,thinklight闪烁提醒。

pidgin通过pidgin-blinklight插件即可实现。

debian/ubuntu用户需要安装:

#apt-get install pidgin-blinklight

然后在pidgin的”工具” -> “插件”内启用,这样在pidgin收到消息时thinklight能闪烁三下。

同时在收到Email的时候也可以让thinklight来进行提醒,如果是evolution的,使用thinklight-notification 就可以实现,详细见:http://ubuntuforums.org/showthread.php?t=1017263

下面详细说一下thunderbird收到邮件时的thinklight闪烁。

安装thunderbird插件yamb,http://www.globs.org/download.php?lng=en。

进入thunderbird,在“工具” -> “附加软件”,进入“Yet Another Mail Biff”的配置,在”External notifier executable”内加入如下代码的执行路径:

=============================================
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import os
import time
import sys
import signal

TL_PROC_FILE =  “/proc/acpi/ibm/light”
PID_FILE =  “/tmp/thinklightblink.pid”

def blink(second, filepath = TL_PROC_FILE):
try:
# open light
fp = open(filepath, “w”)
fp.seek(0)
fp.write(“on”)
fp.flush()

time.sleep(second)

fp.seek(0)
fp.write(“off”)
fp.close()
return
except Exception, inst:
print inst
return

def writepid(filepath = PID_FILE):
try:
pid = os.getpid()
fp = open(filepath, “w”)
fp.write(str(pid))
fp.close()
return
except Exception, inst:
print inst
return

def delpid(filepath = PID_FILE):
try:
if os.path.isfile(filepath):
os.remove(filepath)

return
except Exception, inst:
print inst
return

def getpid(filepath = PID_FILE):
try:
if os.path.isfile(filepath):
return int(open(filepath).read())
else:
return None
except Exception, inst:
print inst
return None

if __name__ == “__main__”:
try:
os.kill(getpid(), signal.SIGTERM)
except:
pass

writepid()

blink(1)
delpid()
=============================================

完成。测试一下thunderbird收到邮件时thinklight是否会闪动一下 😀

手动操作thinklight的方法:
echo ‘on’ > /proc/acpi/ibm/light
echo ‘off’ > /proc/acpi/ibm/light
echo 255 > /sys/class/leds/tpacpi::thinklight/brightness
echo 0 > /sys/class/leds/tpacpi::thinklight/brightness

参考文档:
http://www.thinkwiki.org/wiki/ThinkLight
http://blog.wahlig.eu/2008/04/thinklight-mail-notification.html