スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


-------- -- | スポンサー広告 | トラックバック - | コメント -
[Fluxbox] 3. メニューの登録 (改)
Fluxbox の右クリックメニューへアプリケーション等を登録します。

前日の日記のやり方では update-menus が最初にしか使えませんが、今日の日記は update-menus との連携を考慮した、より上手なやり方を書きます。

とりあえず Fluxbox を起動してみる


Fluxbox をインストールしたら、いったんログアウトして、GDM 等のログインマネージャから Fluxbox を起動します。
ログインマネージャを使わずにコンソールからログインしている場合は・・・ ~/.xsessions とかの末尾に exec fluxbox とか設定して、startx 打つんだろうなぁ。私にはよくわからんです。

Fluxbox はデスクトップを右クリックすることでメニューを表示します。
が、このままでは右クリックしても何も表示されません。
メニューが何も登録されていないからです。
端末すら起動できないので、こんな時は Ctrl + Alt + Backspace でログイン画面(またはコンソール)に戻ります。
そして他のウィンドウマネージャ起動して(またはコンソールで)設定を続けます。

init ファイルを確認


さて、init ファイル(~/.fluxbox/init)を開いてみると、どこかに

session.menuFile:    ~/.fluxbox/menu


と書いてあります。
読み込む menu ファイルをこの部分で変更できます。
ここは確認したかっただけなので、とりあえずデフォルトのままで。

menu ファイル、 system.fluxbox-menu ファイルの雛形をコピー


インストール直後はまだ ~/.fluxbox/menu や system.fluxbox-menu というファイルがありません。
そこで、全ユーザー共通のメニューや設定や雛形が入っている /etc/X11/fluxbox から、menu ファイル関連の雛形をユーザーディレクトリに引っ張ってきます。

$ cd /etc/X11/fluxbox/
$ cp fluxbox-menu.user ~/.fluxbox/menu
$ cp system.fluxbox-menu ~/.fluxbox/system.fluxbox-menu



menu、system.fluxbox-menu ファイルを確認


持ってきた menu ファイルを見てみると

[begin] (fluxbox)
  [include] (/etc/X11/fluxbox/fluxbox-menu)
[end]


となっています。
[include] は、他の メニューファイルをそこに取り込んで表示する、という意味です。
(が、この時点ではまだ fluxbox-menu というファイルはありません)

また、system.fluxbox-menu を見てみると、

[begin] (Fluxbox)

include-menu-defs

  [config] (Configuration)
  [submenu] (Styles) {}
   [stylesdir] (/usr/share/fluxbox/styles)
    [stylesdir] (~/.fluxbox/styles)
  [end]
  [workspaces] (Workspaces)
  [reconfig] (Reconfigure)
  [restart] (Restart)
  [exit] (Exit)

[end]


こんな感じです。
こちらにあるのはシステム関連のメニューのみです。
ちなみに後述する、update-menus コマンドは、この include-menu-defs の部分を自動生成したメニューで置き換えてくれます。

なにはともあれ update-menus で自動登録


Debian系(KNOPPIX とか Ubuntu とか)の場合、このコマンドが初めからインストールされていると思います。
Debianのメニューシステム用らしいので、Debian系以外には付属してないっぽいです。
※ Vine にも付属してるようなことがどっかに書いてあった。

それら以外の OS には、替わりに fluxbox-generate_menu というツールが付属するらしいです。

さぁ、自動登録だ:

$ sudo update-menus


ありがたいことにこの update-menus というコマンドは、インストール済みのほとんどのアプリケーションを自動登録してくれます。

実行すると、次の2つのファイルが自動生成されます(2つとも同じ内容)。

/etc/X11/fluxbox/fluxbox-menu
~/.fluxbox/fluxbox-menu


このファイルを見てみると、たくさんのアプリが登録されています。
しかもちゃんとアイコンまで登録済み!

update-menus で自動登録されないアプリはこうしてあげる


このコマンドでも登録されないアプリがいくつかあります。
サードパーティー製のもの ( Adobe AcrobatReader、Firefox など ) や、マイナーなアプリなんかが自動登録されません。

また、GIMP なんかは、日本語表記の 'アプリケーション' というカテゴリーではなく、英語表記の 'Apps' というカテゴリーに登録されてしまいます。

こういった問題は ~/.menu 等への設定をすることで修正可能です。

修正の仕方はここ↓に載せました。
http://kobuchicken.blog22.fc2.com/blog-entry-17.html

詳しくは:

$ man update-menus


さらに詳しい使い方を知るには、 /usr/share/doc/menu/html/index.html をブラウザで開いてみます。

※ Fluxbox 以外のWMがインストールされていない環境では、GDMから(?)セーフモードの端末を起動してそこで update-menus してくださいみたいなことがどっかに書かれていました。

※ なんと、たぶん、Fluxbox 以外のWMにも update-menus は効くようです。少なくとも Icewm、fvwm、Sawfish のメニューは update-menus でたくさんのアプリが自動登録されていました。

メニューの編集のやり方


自分用に メニューをカスタマイズしていきます。

メニューの編集方法は3つ位あるかな。

  1. メモ帳ソフトでメニューファイルを直接編集する
  2. fluxmenu で編集する
  3. DenuFluxbox menu editor 等で編集

です。

1. テキストファイルを直接編集します。基本的な構文さえ知っていれば、それほど難しくはないです。
ただ、アプリのアイコンを探すのに一手間かかります。

2. Fluxbox が初めての人は、メニュー設定用の fluxmenu というツールを使う方法がわかりやすいかもしれません。これは fluxconf に同梱されています。

$ fluxmenu


で起動します。使い方は簡単なので割愛。

3. Denu や Fluxbox menu editor というソフトを使ってメニューを編集できるっぽい。
まだ試してないです。誰か試したら教えてくださいまし。

ここではコピペが楽な、そしてもしかすると fluxmenu より速く設定できる「1.」のやり方で編集していきます。

Fluxbox メニューの基本的な構文


menu ファイルはこれで前後を閉じる決まりになってます:

[begin] (Fluxbox)
   # ここにメニューいろいろ挟む
[end]



他のメニューファイルを挿入します:

[include] (メニューファイル名)



アプリなんかの登録に。一番よく使う:

[exec] (表示名) {実行するコマンド} <アイコンファイルのパス>


update-menus でアイコンパスも自動設定されているので楽チン。
それでもアイコンが登録されて無い場合は、
  /usr/share/icons/
  /usr/share/pixmaps/
を探すか、アイコンテーマをダウンロードしたりして、自前で用意。

これはセパレーター:

[separator]



サブメニューです:

[submenu] (サブメニュー名)
  [exec] (hoge) {hoge}
[end]



ディレクトリ内のスタイルファイルを列挙:

[stylesdir] (~/.fluxbox/styles)


クリックするだけでスタイル変更できる。

ディレクトリ内の壁紙を列挙。ありがたい:

[wallpapermenu] (壁紙のあるフォルダ) {壁紙を表示するコマンド}



↑のは実際にはこんな風にして使います:

[wallpapermenu] (~/.fluxbox/backgrounds) {fbsetbg -f}



Fluxbox 開始と同時に起動したいアプリも登録できる:

[startup]
  [exec] (hoge) {hoge}
[end}


[startup] と [end] の間に、idesk かなんかを登録。でもうちの環境では動作しなかった。

[config] [reconfig] [restart] [exit] などの Fluxbox のシステムに関わるメニューの設定の仕方は、/etc/X11/fluxbox/system.fluxbox-menu を参考にコピペすればいいでしょう。

menu ファイルの編集作業


menu ファイルの編集の一例をあげます。
update-menus との連携を取るため、[include] (~/.fluxbox/fluxbox-menu) を挟むのがポイント。

[begin] (fluxbox)
  [exec] (Tunar) {thunar} <>
  [exec] (Firefox) {firefox}
  [exec] (Sylpheed) {sylpheed}
  [exec] (XTerm) {xterm}

  [exec] (Run Command) {fbrun}
  [submenu] (My Favorite Apps)
    [exec] (Gimp) {gimp}

    [exec] (gFTP) {gftp}
    [exec] (Inkscape) {inkscape}
    [exec] (Scribus) {scribus}
    [exec] (おちゅ~しゃ) {ochusha} <>
    [exec] (xcalc) {xcalc}
    [exec] (VMware Player) {vmplayer}
  [end]
  [separator]
  [include] (~/.fluxbox/fluxbox-menu)
[end]



次いで、system.fluxbox-menu ファイルの編集


↑で取り込んでいる fluxbox-menu の雛形になるのが system.fluxbox-menu ファイルです。これを編集しておきます。
また、『include-menu-defs』 の部分に、update-menus コマンドで自動生成されたアプリケーションメニューが挿入されますので、どこかに必ず入れておきます。。

編集の仕方は、例えばこんな感じ。

[begin] (Fluxbox)

  include-menu-defs

  [workspaces] (Workspaces)
  [submenu] (Styles) {}
    [stylesdir] (/usr/share/fluxbox/styles)
    [separator]
    [stylesdir] (~/.fluxbox/styles)
  [end]
  [submenu] (Wallpapers)
    [wallpapermenu] (~/.fluxbox/backgrounds) {fbsetbg -f}
    [separator]
    [wallpapermenu] (~/documents/wallpaper/) {fbsetbg -f}
  [end]
  [config]
  [submenu] (Tools)
    [exec] (fluxconf) {/usr/bin/fluxconf} <>
    [exec] (fluxkeys) {/usr/bin/fluxkeys} <>
    [exec] (fluxmenu) {/usr/bin/fluxmenu} <>
    [exec] (update-menus) {update-menus}
  [end]
  [separator]
  [reconfig] (Reconfigure Fluxbox)
  [restart] (Restart Fluxbox)
  [exit] (Exit Fluxbox)
  [separator]
  [exec] (Reboot) {gksu -- shutdown -r now}
  [exec] (Shutdown) {gksu -- shutdown -h now}

[end]




※ または、menu ファイル内に [config] 等のシステムメニューも登録してしまえば、menu ファイルで一元管理できます。その辺はお好みで。

これで右クリックメニューが完成^-^v

Fluxbox を起動して、デスクトップを右クリックしてみましょう^-^

見てみるとわかりますが、 この例の場合は、 menu ファイルの後ろに fluxbox-menu ファイルを連結したような形になります。

メニューの更新


以降、アプリケーションの追加や削除があった場合、update-menus を再度実行することで、メニューの基本的な部分を上書きされることなく、アプリケーションメニュー部分(?)だけを更新することができるようになります!
楽ちん!

さらに、system.fluxbox-menu ファイルのどこかにこんな風に書いておくともっと幸せ:

[exec] (update-menus !) {update-menus}


ワンクリックで update-menus できます。

英語メニューにしたいなぁ


こうすると、自動生成メニューが英語になるので、ちょっとかっこいい。読みにくいけど:

$ env LC_ALL=en_EN update-menus



これだと日本語になる:

$ env LC_ALL=jp_JP.UTF-8 update-menus


※ LOCALE が日本になってる場合は、単に update-menus すれば日本語になる。

追加情報


どこかに入れとくと menu ファイル、 init ファイルの編集がワンクリックで楽に始められる:

[exec] (Edit 'menu' file) {mousepad ~/.fluxbox/menu}
[exec] (Edit 'init' file) {mousepad ~/.fluxbox/init}



一番下の方に入れとくと再起動&シャットダウンが便利:

[exec] (Reboot) {gksu -- shutdown -r now}
[exec] (Shutdown) {gksu -- shutdown -h now}


※ これだとパスワード入力が必要。もっといいやり方あったら教えてください。

Fluxbox の設定アプリ。どっかに追加しとくと便利:

[exec] (fluxconf) {fluxconf}
[exec] (fluxkey) {fluxkey}
[exec] (fluxmenu) {fluxmenu}


※ update-menus で登録されてますが。

または代わりに、 fluxbare を入れておいてもいい:

[exec] (fluxbare) {fluxbare}


これは上の3つの設定アプリのためだけのランチャー。

シナプティックもルートに入れとくと便利:

[exec] (Synaptic Package Manager) {gksu /usr/sbin/synaptic}


※ これも既に自動登録済みですが

root 権限でファイルマネージャ (この例では thunar ) を起動します:

[exec] (File Manager on Root) {gksu thunar}



スクリーンショットを撮る?:

    [exec] (ウィンドウ名) {xprop WM_CLASS|cut -d \" -f 2|xmessage -file - -center}
    [exec] (スクリーンショット - JPG) {import screenshot.jpg && display screenshot.jpg}
    [exec] (スクリーンショット - PNG) {import screenshot.png && display screenshot.png}



メモ


update-menus は、ユーザーディレクトリ ~/.fluxbox 以下に system.fluxbox-menu があればそれを使用し、無ければ全ユーザー共通の /etc/X11/fluxbox/system.fluxbox-menu を使用するようです。
スポンサーサイト
2007-12-16 Sun | Fluxbox | トラックバック:0 | コメント:1
□ コメント
参考になりました。
2008-11-26 水 09:50:43 | URL | とむ #- [ 編集]
□ コメントの投稿
管理者にだけ表示を許可する

Thank you for visiting me !
プロフィール

kobuchicken

  • 管理人: kobuchicken
  • Linux 初心者です。XP 無しで過ごした長い長い 98 の日々。Ubuntu & 派生ディストリの有難さを感じる今日この頃です。フリーの OS がもっと身近になりますように。
  • RSS
カレンダー
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
11月 « 2016/12 » 01月
ブログ内を検索
Search this site.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。