☆これはお勧め gmrun

gmrunは http://directory.fsf.org/project/gmrun/ の冒頭で

'Gmrun' is a run-program utility that provides bash-like TAB completion and history, the ability to run commands in a terminal using CTRL-Enter. CTRL-R/CTRL-S may be used for history searches, similar to 'bash'.
'Gmrun'はプログラムを実行するユーティリティで、bashのようなTAB補完と履歴を提供し、CTRL-Enterを使ってターミナルでコマンドを実行できます。CTRL-R/CTRL-Sは'bash'と同じで履歴の検索に使えます。

と紹介されています。(日本語訳が間違っていたらごめんなさい)

上記には記述されてませんが、矢印キーのUp/Downで履歴を行き来することも出ます。
'http:'や'mailto:'で始まる文字列を処理するアプリケーションを指定することも可能です。
(詳しくはgmrunrcの設定で記述します。)
拡張子による処理アプリケーションの指定も可能です。

gnome,xfce,LXDEいずれもAlt+F2でコマンドラインのラウンチャーが起動しますが、
補完と履歴の両方を備えているのはgnomeのものだけ。

補完と履歴のを備えたコマンドラインベースのラウンチャーを探している方にお勧めです。
gnomeのコマンドラインのラウンチャーのような補完動作もできるのでgnomeユーザも
試してみてはいかがでしょうか。

以下、ubuntu 9.10 karmic koala を前提にして導入方法、使い方を紹介します。
(ちなみに依存するライブラリは少なく、Version: 0.9.1-2.4のバイナリをコピーしただけでmoblin2.1でも動作しました。しかし、別の投稿で記述する0.9.1-4はmoblin2.1で動作しませんでした。)

●導入

リポジトリに入っているので(Section: universe/x11)、apt-getで導入できます。
これを書いている時点では Version: 0.9.1-2.4 です。

sudo apt-get install gmrun

●設定

gmrunの設定ファイルは $HOME/.gmrunrcと /etc/gmrunrc です。$HOMEの方が優先されます。

これはちょっと長くなるので先に xfceとLXDEでデフォルトのラウンチャーと置き換える方法を先に記述します。

■xfceでデフォルトのラウンチャを置き換える場合

$HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
の内容を書き換えます。(設定用のGUIもあります。)
ここではF2はそのままにして、Windows+Rにgmrunを割り当てます。
書き換え前

<property name="<Alt>F2" type="string" value="xfrun4"/>

書き換え後(上記の下に一行追加)
<property name="<Alt>F2" type="string" value="xfrun4"/>
<property name="<Super>r" type="string" value="gmrun"/>

■LXDEでデフォルトのラウンチャを置き換える場合

$HOME/.config/openbox/lxde-rc.xml
   の内容を書き換えます。(設定用のGUIは見つけられませんでした。)

書き換え前

<keybind key="W-r">
      <action name="Execute">
        <command>lxpanelctl run</command>
        <command>gmrun</command>
      </action>
  </keybind>

書き換え後
<keybind key="W-r">
      <action name="Execute">
        <command>gmrun</command>
      </action>
  </keybind>

■$HOME/.gmrunrcと /etc/gmrunrcの設定

なぜかVersion: 0.9.1-2.4のパッケージにはgmrunrcのサンプルが入っていません。
manpageは内容が古いようです。READMEは設定ファイルについての記述がほとんどありません。
(ほかにも0.9.1-2.4はapt-get source、debuildでコンパイルエラーがでるなど不備が多そうです。)
仕方がないので Version: 0.9.1-4の/etc/gmrunrcを参考にします。


# Set terminal
Terminal = gnome-terminal --start-factory-server --use-factory
TermExec = ${Terminal} -e
AlwaysInTerm = ssh telnet ftp lynx mc vi vim pine centericq perldoc man

Terminalはgmrunに何も入力されていない状態でCTRL-Enterを押した場合に起動する
ターミナルのコマンドラインを指定します。
TermExecはコマンドを入力してCTRL-Enterした場合に入力した場合の指定です。
(これはあまりいじる必要ななさそうです。)
AlwaysInTermは説明が見当たらなかったのですが、名前から推測するとENTERだけを
押下しても CTRL-Enterを押したように動作するコマンドの指定をしているようです。


# Set window geometry (except height)
Width = 400
Top = 100
Left = 200

ウィンドウの表示位置を設定します。画面のピクセル単位です。


# History size
History = 256

コマンド履歴のサイズ


# Shows last history line selected when invoked
ShowLast = 1

起動されたときに最後のヒストリを表示するかどうかを設定するようですが、
うまく動作しないようです。


# Show files starting with '.'
# Default is 0 (off), set it to 1 if you want "hidden" files to show up
# in the completion window
ShowDotFiles = 0

先頭がドットで始まるファイルを補完ウィンドウに表示する/しないを設定します。
これは1にしておいたほうがいいと思います。
(ドットで始まるコマンドはありませんが、引数に与えるファイル名としてはあるので)


# Timeout (in milliseconds) after which gmrun will simulate a TAB press
# Set this to NULL if don't like this feature.
TabTimeout = 0

何かキー入力した後に TabTimeout ミリ秒たつとタブが押下されたように補完を行います。
"0"にしておくとタブを押さない限り補完が葉たらなくなります。
"10"くらいにしておくとgnomeのラウンチャのように入力された文字列に前方一致するコマンドが
補完されて表示されます。


# URL handlers
# If the entered text is "http://www.google.com" then:
#   - %u gets replaced with the whole URL ("http://www.google.com")
#   - %s gets replaced with "//www.google.com".  This is useful for URL-s
#     like "man:printf" --> %s will get replaced with "printf"
URL_http = mozilla -remote "openURL(%u, new-window)"
URL_mailto = mozilla -remote "mailto(%s)"
URL_man = ${TermExec} 'man %s'
URL_info = ${TermExec} 'info %s'
URL_pd = ${TermExec} 'perldoc %s'
URL_file = nautilus %s
URL_readme = ${TermExec} 'less /usr/doc/%s/README'
URL_info = ${TermExec} 'info %s'
URL_sh = sh -c '%s'

URLハンドラの指定です。入力テキストが"http://www.google.com"のばあい
%uは "http://www.google.com" に置き換えられます。
%sは "//www.google.com"に置き換えられます。

私の環境では
URL_http =/usr/bin/firefox %u
URL_mailto = /usr/bin/sylpheed --compose %s
のようにしています。


# extension handlers
EXT:doc,rtf = AbiWord %s
EXT:txt,cc,cpp,h,java,html,htm,epl,tex,latex,js,css,xml,xsl,am = emacs %s
EXT:ps = gv %s
EXT:pdf = xpdf %s

拡張子による処理アプリケーションの指定です。

0 件のコメント:

コメントを投稿