2012/10/15

undistract-meを使いやすくしてみたとか

undistract-me は,端末で実行したコマンドが終了した際,通知バルーンに終了したことを表示させるプログラムです.憩いの場さんの「undistract-me - 憩いの場【Linux/ソフト紹介】」を読んでて便利だなぁと導入してみました.

導入方法は憩いの場さんの所で書かれているので,ここでは書きません.

じゃあ,何で書いたかというと,通知して欲しいコマンドとそうでないコマンドがあるわけですよ.例えば,man コマンドとか,less コマンドとか,エディタのコマンドとか.で,それが終わると通知が出ると,「わざわざ,man やエディタを終了したことを通知しなくてもわかってるって!」と思うわけですよ.

これを除外する blacklist 的な機能はないかなーとググってみたところ,作者さんのブログで私と同じ考えの人のコメントがありました.しかし,作者さんはその要望に対して,あまり乗り気ではない様子….

undistract-me 自体,シェルスクリプトでできているので,それならちゃちゃっと改良しちゃえということで,改良するためのパッチを公開します. → こちら

パッチのあて方と設定とかは折りたたみ.
パッチのあて方は以下のコマンドで(ホームディレクトリにパッチをダウンロードしたと仮定します).
$ cd /usr/share/undistract-me
$ sudo patch < ~/long-running.bash.patch
$ . ~/.bashrc

このパッチを当てると 14〜21 行目と 89〜115 行付近が変わります.ユーザさんにもしてもらうことは 19 行目の enable_list という変数にブラックリスト形式 ("black") で扱うか,ホワイトリスト形式 ("white") で扱うか,それとももともとの挙動を維持 ("") するかの値を入れてもらうことです.

あとは whitelist,blacklist の使う方の括弧内に,クォーテーションで囲んだコマンド名を,複数ある場合はスペースで区切って入れていきます.blacklist の方は,通知して欲しくない私がよく使っているコマンドが既に入っていますね(^^).

ついでに言っちゃうと 11 行目の "LONG_RUNNING_COMMAND_TIMEOUT=10" は,(私が追加した機能ではなく,最初からあるものなのですが)これは通知するために必要な時間.つまり,10 秒以上実行したコマンドは通知されることを意味します.これも必要に応じて,変更しちゃいましょう.

設定が終わったら,再び
$ . ~/.bashrc
を実行すれば,設定が反映されます.

もし,パッチを適用したけど,やっぱり戻したいという場合は,以下のコマンドを実行します.
$ cd /usr/share/undistract-me
$ sudo patch -R < ~/long-running.bash.patch
$ . ~/.bashrc
これで戻ります.

0 件のコメント:

コメントを投稿