試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Hotwireの初期化ファイル(エイリアスと環境変数を設定する)

  1. エイリアス
  2. 環境変数
  3. ユーザ定義の内部コマンド

エイリアス

UNIX系の内部コマンドを使用せずに外部コマンド(coreutilsなどに含まれるコマンド)を優先的に使いたい場合を含め、Hotwireエイリアスを使用するには、[ホームディレクトリ]/.hotwire/plugins/以下に、エイリアスを定義するPythonスクリプトを作成する。ファイルの名前は特に決まっていないので、分かりやすい名前にする。
ファイルの先頭には以下の記述が必要。
[任意]ファイル名: ~/.hotwire/plugins/alias.py

from hotwire.cmdalias import AliasRegistry
aliases = AliasRegistry.getInstance();

その上で、

aliases.insert('mplayer', 'term mplayer')
aliases.insert('mplayer-help', 'sh mplayer')
aliases.insert('sudo', 'sh gksudo')
aliases.insert('make', 'sh make -j 2')
aliases.insert('emacs', 'term env -u DISPLAY emacs')
aliases.insert('mkdir', 'sh mkdir')

などのように、好きなように記述する。1つ目の引数がエイリアス名(シェル上で打ち込む名前)、2つ目が展開/実行されるコマンド/オプションとなる。
mkdirの例では、内部コマンドを外部コマンドで置き換えているため、実際に実行する際には、補完リストの中から「sh mkdir」を選択し、展開して使う点に注意(そのまま入力した場合は内部コマンドが使用される)。

これをTabキーで選択すると、入力ボックス上で「sh mkdir」に置き換わり、その後にオプションを付けて実行しても、正常に処理される。

環境変数

環境変数指定用のPythonスクリプトを作成する。先頭には以下の記述が必要。

[任意]ファイル名: ~/.hotwire/plugins/env.py

import os

その上で、

os.environ['NAME'] = 'value'

の形で追加していくことになる。実際には[ホームディレクトリ]/.xprofile*1など*2でグラフィカルログイン時に環境変数は設定できるため、Hotwire上のみで設定したいものに限られる。
具体的には、PATHの設定が挙げられる。

os.environ['PATH'] += ':' + os.environ['HOME'] + '/bin'

環境変数PATHは、Hotwire内でもコマンド名の探索パスとして使用されるため、設定する意味がある。上の例では[ホームディレクトリ]/bin/を既存の${PATH}に追加している。

ユーザ定義の内部コマンド

code.google.com/p/hotwire-shell/wiki/ExtendingHotwire
によると、ユーザ定義の内部コマンドを定義/作成することができるようで、サンプルも載っている。上のエイリアス環境変数と同様、[ホームディレクトリ]/.hotwire/plugins/以下に任意のファイル名でPythonスクリプトを作成する。しかし、正直なところ、fruitコマンドは、簡単なサンプルにしては、コードも長く、理解もしづらいという感想を持ってしまった(コードが書けるという人にはそうでもないのかもしれないが...)

使用したバージョン:

  • Hotwire 0.620

*1:GDMというディスプレイマネージャ(ログインマネージャ)からログインする場合に、デスクトップ環境によらずに読み込まれるシェルスクリプト

*2:他には[ホームディレクトリ]/.gnomerc[ホームディレクトリ]/.config/xfce4/xinitrcといったファイルがある