Arra.orgのカーネルをさらに快適に タッチパッドスイッチスクリプトに通知をつける
更新完了 2008/09/10 01:38
何か間違いがある、スクリプトが動かない等ありましたらコメントで連絡ください。
変更 2008/09/10 09:34
eeepc-cam-notify.py:通知時の文章を変更
前回の問題が解決したのでご報告します。
/proc〜以下に作成するのは諦めて、/usr/local/bin/scripts/とディレクトリを作成して、そこにスイッチの状態フラグ用ファイルを作成。
ですが、それでも動かずに途方にくれていたのですが、それも原因がわかりまして、
空のファイルを作成したときに、(タッチパッドが有効なら)その中に1を書いて保存しておかないといけなかったようです。
何も入ってないので有効なのか無効なのか判断がつかなかったということです。どおりで何度も動かしてもピクリとも動きがないわけです・・・
もうまとめ!
さて、これが解決したので、スクリプトの利用方法を載せておきます。
なお、ここでのタッチパッドのモジュールは、Array.orgのカーネルに入ってる標準のモジュールドライバです。
eeeUbuntuに添付されている701ライクなカーネルには対応していません。検証もしていません。2chの技術情報スレッドに901と701に対応したスクリプトが公開されているので、そちらを使ってみてください。(探してみてください)
インストール
- Array.orgのカーネル+Ubuntu-Support-Script for EeePC 901/1000/1000Hをインストール
- /usr/local/bin/scripts/touchpad_type を作成、(タッチパッドが有効なら)テキストエディタで 1 の一文字を書いて保存
- /etc/acpi/eeepc-tp-toggle.shを作成
#!/bin/bash # # TouchPad toggle script -- EeePC 901/1000 # v1.2.1 # by sippue # Based on the script from Merkmal (forum.eeeuser.com) tp_control=/usr/local/bin/scripts/touchpad_type TPSTATE=$(cat $tp_control) tp_on(){ modprobe psmouse sleep 1 echo 1 > $tp_control } tp_off(){ modprobe -r psmouse sleep 1 echo 0 > $tp_control } case $TPSTATE in 0) /etc/acpi/eeepc-tp-notify.py on tp_on ;; 1) /etc/acpi/eeepc-tp-notify.py off tp_off ;; esac
- /etc/acpi/eeepc-tp-notify.pyを作成
アイコンを変更したい場合は、uriのパスを替えください。たとえば以下のように。
uri = "/home/user_name/hotkey_icons/icon.svg"
-
- なお、こちらでは.svgしか確認していません。
技術情報スレにアイコンを提供してくれた方がいましたので、そのアイコンを使うのもよいでしょう。
#!/usr/bin/env python # -*- coding: utf-8 -*- # # TouchPad toggle notification -- EeePC 901/1000 # v1.2.1 # by sippue # Modified version from NiceeePC(https://launchpad.net/niceeepc) import pygtk pygtk.require('2.0') import pynotify import sys import gtk import os if __name__ == '__main__': if not pynotify.init("TouchPad Status"): print "Unable to initialize Python Notify" sys.exit(1) if len(sys.argv) != 2: print "USAGE: " + sys.argv[0] + " (on|off)" sys.exit(1) #アイコンを持っているならアイコンのパスに変える、以下は適当なアイコン uri = "file:///usr/share/icons/hicolor/scalable/apps/evince.svg" if sys.argv[1] == "off": n = pynotify.Notification("TouchPad", "Your touchpad has been <b><span color='red'>disabled</span></b>. ", uri) elif sys.argv[1] == "on": n = pynotify.Notification("TouchPad", "Your touchpad has been <b><span color='green'>enabled</span></b>. ", uri) else: print "USAGE: " + sys.argv[0] + " (on|off)" sys.exit(1) n.set_timeout(3000) if not n.show(): print "Failed to send notification" sys.exit(1)
- /etc/acpi/eeepc-actions.shの以下の行を変更
#!/bin/sh # # ACPI actions -- EeePC 901/1000 # v1.2 # by elmurato # Based on the script from www.array.org #...中略... # Fourth hotkey # User defined 0000001d) #su $user -c $command2 & #/etc/acpi/eeepc-cam-toggle.sh #/etc/acpi/eeepc-fan-toggle.sh /etc/acpi/eeepc-tp-toggle.sh #...後略...
- sudo /etc/init.d/acpid restart を実行
なお、eeepc-tp-toggle.shは単独で動作するものですので、インスタントキーではなくても、ショートカットキーに割り当てても動くと思います。(コマンドを実行しても動きましたので)
ここでは/etc/acpi/保存しておきましたが、適当なディレクトリでも問題無いと思います。その際には、eeepc-tp-toggle.sh内のeeepc-tp-notify.pyのパスを配置したディレクトリ先に変えてください。
通知のアイコンがおかしいですが、タッチパッドのアイコンが無かったのでそれっぽいものを選んでおきました。
アイコンがある人は適当なアイコンに変えてみてください。