2011年11月21日 星期一

Enable/Disable touchpad

寫一個 shell script 來判斷 touchpad 狀態並切換 enable/disable
寫法可能不是很好,因為 shell script 不熟... :P
之後再研究怎麼判斷有沒有接滑鼠,實現有接滑鼠就自動 disable touchpad 的功能
#!/bin/bash

KEYWORD="PS/2 Logitech Wheel Mouse"
ID=""

FOUND=`xinput --list | grep "${KEYWORD}"`
for i in ${FOUND}; do
    MATCH=`echo ${i} | cut -d "=" -f 2 -`
    if [ ${i} != ${MATCH} ]; then
        ID=${MATCH}
    fi
done

if [ ${ID} == "" ]; then
    echo "${KEYWORD} not found!"
    exit
fi

FOUND=`xinput --list-props ${ID} | grep "Device Enabled"`
DEVICE_ENABLE=""
for i in ${FOUND}; do
    case ${i} in
    "("*)
        DEVICE_ENABLE=`echo ${i} | cut -d "(" -f 2 -`
        DEVICE_ENABLE=`echo ${DEVICE_ENABLE} | cut -d ")" -f 1 -`
        ;;
    esac
done

if [ "${DEVICE_ENABLE}" == "" ]; then
    echo "Device not found!"
    exit
fi

ENABLED=`echo ${FOUND} | cut -d ":" -f 2 -`
if [ "${ENABLED}" == "${FOUND}" ]; then
    echo "Error!"
    exit
fi

ENABLED=`expr ${ENABLED} + 0`

echo -n "Found \"${KEYWORD}\" (ID= ${ID}, DEVICE= ${DEVICE_ENABLE}) "
if [ "${ENABLED}" == "0" ]; then
    echo "disabled."
else
    echo "enabled."
fi

case $1 in
    0)
        xinput set-prop ${ID} ${DEVICE_ENABLE} 0
        echo "Touch pad disabled!"
        ;;
    1)
        xinput set-prop ${ID} ${DEVICE_ENABLE} 1
        echo "Enable touch pad..."
        ;;
    *)
        if [ "${ENABLED}" == "0" ]; then
            echo "Switch to enable..."
            xinput set-prop ${ID} ${DEVICE_ENABLE} 1
        else
            echo "Switch to disable..."
            xinput set-prop ${ID} ${DEVICE_ENABLE} 0
        fi
        ;;
esac

2011年11月9日 星期三

解決用 usb 搖桿不能玩無雙蛇魔的問題

問題:
    接上 usb 搖桿後進入遊戲會自動按下 enter 導致無法選擇其它項目

解決方法:
    1. 不要接 usb 搖桿進入遊戲
    2. 選擇儲存建立儲存檔後離開遊戲
    3. 接上 usb 搖桿進入遊戲
    4. 到設定中設定控制器, 用手動的方式進行設定, 如果要用自動的方式, 則需要檢查一下把不存在的搖桿按鈕移除

2011年11月4日 星期五

建立 patch 檔

建立 patch 檔的步驟:
1. 準備修改前後的檔案,如 file.c.org 和 file.c.new
2. 下指令產生檔案即可
diff -Naur file.c.org file.c.new > file.c.patch

參數說明:
-N  --new-file                不存在的檔案以空白檔案方式處理。
-a  --text                    所有檔案都以文字檔方式處理。
-u  -U 行數  --unified[=行數]  顯示指定<行數>(預設 3 行)unified 格式的上下文
-r  --recursive               連同所有副目錄一起比較。