Max (2524) の日記

2003 年 01 月 12 日
午後 01:48

Debian menu system

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

処理中...