Debianには独自のメニュー管理があったはず。実はMandrakeでそれをポート
した奴が入っているんだけど、まともにつかった事はまだなかった。
http://www.debian.org/doc/devel-manuals#menu によると
----------
With the update-menus command from this package, no package needs to
be modified for every X window manager again, and it provides a
unified interface for both text- and X-oriented programs.
----------
ということで、統一化された手順ですべてのウィンドウマネージャ上の
メニューを構成できる。当然、officialなパッケージにはこのあたりの
手順は入っていて、自動的に適切なメニュー項目に入るのだが、
knoppixではできあがったメニュー構成がかなり煩雑になっている。
で、問題は既存のメニュー構成をパッケージそのものを組み替えずに
変更する方法はないかということ。
Chapter 5 - How a user can override the menus:
http://www.debian.org/doc/packaging-manuals/menu.html/ch5.html
5.1 Configuring the menus
---------------
A user can specify his/her own menu entries in the ~/.menu
directory. The files can have an arbitrary file name as long as the
new syntax for the menu entries is used. They should start with
either
?package(installed-package):
or
?package(local.mystuff):
if it's something that isn't ``debian-officially'' installed. (Any
``package'' that starts with ``local.'' is considered installed.)
If a user wants to have his/her own menu methods, he/she should
create a ~/.menu-methods directory and put all scripts he/she wants
to be run in it. (If ~/.menu-methods exists, /etc/menu-methods will
not be searched when a user runs update-menus).
A system administrator should place system-wide menu entries in
/etc/menu (not in /usr/lib/menu/package, since these files will
probably be overwritten by a package upgrade).
---------------
ユーザ単位でメニューをオーバライドしたい場合、
$HOME/.menuというディレクトリを作成して、そこに適当な名前の
ファイルを置く。ファイルの先頭には
?package()
または、非公式パッケージの場合は
?package(local.)
を置けばいいようだ。
で、メニューを扱うメソッドを置きたい場合は、$HOME/.menu-methods
というディレクトリを作成して置けば、デフォルトのメニュー更新メソッド
/etc/menu-methods
配下のスクリプトは実行されない。/etc/menu-methodsには、各ウィンドウ
マネージャごとのスクリプトが存在しているが、これは、
/usr/sbin/install-menu
から実行される特殊なスクリプトになっている。
システム全体でのオーバライドの場合は、/etc/menuに同様な構成で
ファイルを置けばいいという事だ。/usr/lib/menu/packageにも、
パッケージが作成したデフォルトのメニュー定義が入るが、
ここに変更をくわえてもパッケージアップデートの際には変更させられて
しまう。
ユーザオーバライドもシステムオーバライドも場合も変更をくわえた後、
menu-updateコマンドでこれらは反映させる。
・・・・つまりyakでのメニューを変更するには
- ユーザ単位での変更
- システム全体の変更
というふたつの選択肢がある。ユーザ単位での変更であれば、/etc/skelに
設定のためのスクリプトを書いておき、初回ログイン時に当該ユーザで
update-menusを実行するようにしておけばいいだろうし、システム全体の
変更であればマスタイメージ作成時にupdate-menusをスーパユーザで実行
すればいい、という事になりそう。
・・・検証必要だけど予備調査はこれくらいということで。
****
試しにkcalcを追加するようにやってみたら、"Debian"というメニュー
とそのしたにアプリがたくさん追加された・・・目的のkcalcは予想した
場所には作成されず(鬱
もうちょっと調べないとなぁ。
ソースを見ろ -- ある4桁UID