LinuxにおけるTrackPointの設定
Arch Linuxにおける設定例
いろいろやり方があるみたいだが、今回は次のようにして設定した。
/etc/X11/xorg.conf.d/ に 20-thinkpad.conf のようなファイルを次のように作成する。Xを再起動後、設定が有効になる。(普通に再起動しておけばおk)
Section "InputClass" Identifier "Trackpoint Wheel Emulation" MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection
参考
Think Wiki -How to configure the TrackPoint-
http://www.thinkwiki.org/wiki/How_to_configure_the_TrackPoint#xorg.conf.d
WindowsでVundleを使うときにはまったこと
Vundleのインストールについてはhttps://github.com/gmarik/vundleのREADME.mdを見れば大体わかるので、そちらを参照してください。
以下、自分がWindows環境でVundleを使おうとしてはまったことをメモしておく。
curl云々のところ
以下のスクリプト?をC:\Program Files\Git\cmd\curl.cmdに作ってなかった。
説明はちゃんと読みましょう!
curl.cmd
@rem Do not use "echo off" to not affect any child calls. @setlocal @rem Get the abolute path to the parent directory, which is assumed to be the @rem Git installation root. @for /F "delims=" %%I in ("%~dp0..") do @set git_install_root=%%~fI @set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%PATH% @if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH% @if not exist "%HOME%" @set HOME=%USERPROFILE% @curl.exe %*
set shellslashをしていた
これを設定していると、「\」と「/」の関係でパスがうまくいかないのでインストールなどに失敗していた。
プラグインのインストール先が ~/.vim/bundle 以下になっていた
これでインストールできるようになったかと思えば、インストールされるプラグインの場所が、~/.vim/bundle 以下になっていた。
で、いろいろ調べていくと、.vimrc で呼んでいるVundleの関数 vundle#rc() に解決の糸口があった。この関数は以下のようになっている。
vundle.vim
func! vundle#rc(...) abort let g:bundle_dir = len(a:000) > 0 ? expand(a:1) : expand('$HOME/.vim/bundle') call vundle#config#init() endf
let g:bundle_dir〜のところでインストールするプラグインのディレクトリを定義している。
ここで何をしているかというと、(見ればわかるか…)
もし、a:000(可変長引数)の長さが0より大きいとき、a:1(可変長引数の1個目)の絶対パスを展開しそれをインストール先のディレクトリに、そうでないとき$HOME/.vim/buncle以下をインストール先にするというものである。Windowsではプラグインなどはvimfiles以下に置かなければならず*1、vundle#rc()関数を引数なしで呼ぶと$HOME/.vim/bundleがインストールディレクトリなってしまう。
解決策
.vimrcに
call vundle#rc('~/vimfiles/bundle')
と書く。
でも、これではLinuxなど他の環境と.vimrcを共有している場合だめなので、
if has('win32') || has('win64') let $DOTVIM = expand('~/vimfiles') else let $DOTVIM = expand('~/.vim') endif
としておいて
call vundle#rc('$DOTVIM/bundle')
とかにしておくといいかも。
これで自分の環境ではうまくVundleを使えるようになりました。
leo-net認証スクリプト
今住んでいる家がレオパレスさんの所で、leonetの認証が面倒くさいので認証スクリプトを書いた。
leonetの認証
leonetでは、未認証の状態で任意のURLへアクセスすると認証用のページへリダイレクトされる(たぶん、ルータによって)。そのページで認証を済ませると、leonetのウェブサイトにリダイレクトされる。認証はbasic認証だと思う。そして、一定時間通信がなかった場合、再度認証を求められる。何時間だったのかは調べてませんw。
もし万が一、このスクリプトを利用される場合
自己責任のもとで使用して下さい。
初期版
これは、どこかのサイト(忘れた)でleonetの認証にwget使ったらいいんじゃねということが書いてあったので、それを参考にして書いたもの。
#!/bin/sh # leonet認証スクリプト # filename : leonet_auth.sh # date : 21-Jan-2011 # author : furu # Input your id & password. id= pass= wget --http-user=${id} --http-password=${pass} http://www.google.co.jp/ rm index.html echo "index.htmlを削除しました.\n" echo "認証が完了しました!" read uho
改良?版
(以下、セキュリティうんぬんの所は間違ったことを書いているかもしれないので、間違っていればご指摘下さい。)
初期版のスクリプトでは、認証してようがしてまいがwgetを実行してしまうので、指定したURLにユーザIDとパスワードを送信してしまいセキュリティ的に危ないんじゃないかと思った。
そこで、インターネットにつながっているかどうかを確認し、つながっていなければwgetを使って認証をする、つながっていれば何もしないという機能を付け足すことにした。
インターネットにつながっているかどうかの確認はステータスコードで確認するものとし、ステータスコードはcurlの-IオプションでHTTPヘッダーを取得、それをファイルに書き出して、そのファイルをgrepでステータスコードがPETTERN(ここでは、^HTTP/1.1 200 OK)に一致するかどうかを調べる。grepした結果、PETTERNに一致するのものが見つかれば特殊変数$?に0が、見つからなければ1が入るので、それをif文に利用して、wgetを実行するかどうかを分岐させる。
WEB+DB PRESSのシェルスクリプトの特集(いつのかは忘れた)をすこーし参考にさせていただきました。
#!/bin/sh # leonet認証スクリプト(improved) # filename : leonet_auth_improved.sh # date : 8-April-2011 # author : furu # Input your id & password. ID= PASS= SERVER="www.google.co.jp" PETTERN="^HTTP/1.1 200 OK" # mktemp -t : /tmp/ 以下にtmp.XXXXXXXXXXを作成 # 下のじゃ動かない。tmplogfileには'mktep -t tmp.XXXXXXXXXX'が文字列で入る。 # tmplogfile='mktemp -t tmp.XXXXXXXXXX' || exit 1 touch tmp # get http header for $SERVER curl -I ${SERVER} > tmp 2> /dev/null grep "${PETTERN}" tmp > /dev/null 2>&1 if [ ${?} -eq 0 ] then echo "${SERVER} -> OK\n" echo "Authentication has been done.\n" else echo "${SERVER} -> NG\n" echo "start authentication ..." wget --http-user=${ID} --http-password=${PASS} http://www.google.co.jp/ 2> /dev/null rm index.html echo "Authentication was completed!\n" fi rm tmp # Wait. read uho
はまったところ
スクリプトを実行すると↓のメッセージが出てif文がうまく動かなかった。
[: 42: missing ]
42とかあるから42行目にあるfiが原因なのかなーとか思ってたけど、
これは
if [ $? -ep 0]
と0と]の間にスペースがないことが原因だった。
スペースを忘れずに!
参考:http://d.hatena.ne.jp/hatappo/20100219/1266569445
うまくいかなかったところ
mktempうんぬんのところ。
termtterのインストールメモ
環境
- Ubuntu 10.04 LTS
- rvm
必要なライブラリのインストール
- json
- highline
- termcolor
- rubytter
- notify
これらを
% gem install json highline termcolor rubytter notify
で入れる。
と思ったら、no such file to load -- zlib と怒られた…。
termtter本体
次にtermtter本体を入れる。
gemで入れてもいいけど、プラグインの数が少なかったり、最新の機能が使えなかったりとあんまり面白くないらしいので、githubから頂戴してくる。
適当なディレクトリで、
% git clone git://github.com/jugyo/termtter.git
次に、binにパスを通す。
.bashrcや.zshrcに以下を追記。
export PATH=/path/to/termtter/bin:$PATH
これでおk。
起動
ターミナルで、
% termtter
で起動できる…と思ったけど、
no such file to load -- openssl
調べてみると、opensslライブラリがRVM環境のパスに存在しないことが原因らしい。さっきのzlibライブラリもこれが原因っぽい。
解決方法
opensslライブラリを追加。
% rvm package install openssl
-Cオプション&各ライブラリのパスを指定して再コンパイルする。
$ rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr
これでtermtterを起動することができた。
zlibライブラリの方も上記のやり方でできる。どっちがいいんだろう…。
termtterを初回起動すると、本家twitterの連携アプリのページが開いて許可するかどうかを訊いてくるので、許可しする。すると、PINコード?が発行される。termtterの方でも、そのPINコードの入力を求められるので入力する。これで、自分のTLがだーっと流れてくる。
termtterの使い方は気が向いたら書く…かな。
参考
以下、参考にさせていただいたページ。ありがとうございました。
http://www.ustream.tv/recorded/5772266
http://d.hatena.ne.jp/TrinityT/20110122/1295685900
http://d.hatena.ne.jp/hrsth/20110103/1294044717