私はGmrunが大好きです。
Mihai Bazonさん、すばらしいソフトウェアを作ってくれてありがとうございます。
さて、前回の「☆gmrun で Ctrl+PをUp、Ctrl+NをDownキーと同じように動作させる」に引き続き、
2つだけBashのキーバインドを付け加えてみました。
Ctrl+K、Ctrl+Uです。文字列を選択した状態はBashではありえない状態なので、
どういう仕様にするか迷ったのですがコーディングが楽な使用にしました。
パッチはこれです。
適用の手順は下記の通りです。
/usr/bin/gmrunだけ圧縮したアーカイブも用意しました。gmrun_0.9.1-4_i386.msll-patched.20100505.tar.gz
開発環境を入れたくない方はapt-getでgmrunを導入した後、/usr/bin/gmrunだけ入れ替えればOKです。
(ビルドしたパッケージをdpkgで導入すると更新がなくてもupdate-managerで
更新対象としてリストされるので、自分でビルドした場合でも一旦apt-getでgmrunを導入してから、
/usr/bin/gmrunだけ入れ替える方が良いかもしれません。
ちゃんとパッケージした方法で作れば良いのでしょうが、方法がわからず...)
ソース、パッチの取得とビルド
$ mkdir gmrun $ apt-get source gmrun $ sudo apt-get build-dep gmrun $ wget http://sites.google.com/site/midspeclowload/files/gmrun-0.9.1-4.msll-20100505.patch?attredirects=0&d=1 $ patch -p1 < gmrun-0.9.1-4.msll-20100505.patch $ cd gmrun-0.9.1/ $ debuild -r
gmrun-0.9.1-4.msll-20100505.patch
--- a/gmrun-0.9.1/src/gtkcompletionline.cc 2003-06-22 08:14:34.000000000 +0900 +++ b/gmrun-0.9.1/src/gtkcompletionline.cc 2010-05-05 22:14:05.296882925 +0900 @@ -975,6 +975,34 @@ STOP_PRESS; return TRUE; + case GDK_K: + case GDK_k: + if (event->state & GDK_CONTROL_MASK) { + int pos = gtk_editable_get_position(GTK_EDITABLE(cl)); + int len = gtk_entry_get_text_length(GTK_ENTRY(cl)); + gtk_editable_delete_text(GTK_EDITABLE(cl), pos, len); + gtk_editable_select_region(GTK_EDITABLE(cl), pos, pos); + if (MODE_SRC) + search_off(cl); + return TRUE; + } else goto ordinary; + + case GDK_U: + case GDK_u: + if (event->state & GDK_CONTROL_MASK) { + int pos = gtk_editable_get_position(GTK_EDITABLE(cl)); + gtk_editable_delete_text(GTK_EDITABLE(cl), 0, pos); + gtk_editable_select_region(GTK_EDITABLE(cl), 0, 0); + if (MODE_SRC) + search_off(cl); + return TRUE; + } else goto ordinary; + + case GDK_P: + case GDK_p: + if (event->state & GDK_CONTROL_MASK) { + ;/* fall to 'case GDK_Up:'*/ + } else goto ordinary; case GDK_Up: if (cl->win_compl != NULL) { int &item = cl->list_compl_items_where; @@ -1010,6 +1038,11 @@ } return FALSE; + case GDK_N: + case GDK_n: + if (event->state & GDK_CONTROL_MASK) { + ;/* fall to 'case GDK_Down:'*/ + } else goto ordinary; case GDK_Down: if (cl->win_compl != NULL) { int &item = cl->list_compl_items_where;
0 件のコメント:
コメントを投稿