wmx

wmx を入れてみる。設定を変えるには、Config.hを書き換えてコンパイルしなおせ!という男らしい仕様

Config.h 編集

使用する x端末エミュレータ

#define CONFIG_NEW_WINDOW_COMMAND "/usr/bin/mlterm" 

システムでデフォルトになるメニューの位置

#define CONFIG_SYSTEM_COMMAND_MENU	"/usr/lib/wmx/menu"

日本語のため国際化

#define I18N 1

タイトルとメニューを好きなフォントに。NASTY_FONT はフォントが見付からなかった場合?

#if I18N
#define CONFIG_NICE_FONT	  "-*-luxi sans-bold-r-*-*-*-120-*-*-*-*-*-*,-mplus-gothic-bold-r-*-*-*-120-*-*-*-*-*-*"
#define CONFIG_NICE_MENU_FONT	  "-*-luxi sans-medium-r-*-*-*-120-*-*-*-*-*-*,-mplus-gothic-medium-r-*-*-*-120-*-*-*-*-*-*"
#define CONFIG_NASTY_FONT	  "fixed,-*-*-*-*-*-*-14-*-75-75-*-*-*-*"
#else

#define CONFIG_TAB_FOREGROUND	  "black"
#define CONFIG_TAB_BACKGROUND     "gray80"
#define CONFIG_FRAME_BACKGROUND   "gray95"
#define CONFIG_BUTTON_BACKGROUND  "gray95"
#define CONFIG_BORDERS            "black"
#define CONFIG_CHANNEL_NUMBER	  "cyan"

#define CONFIG_MENU_FOREGROUND    "black"
#define CONFIG_MENU_BACKGROUND    "gray80"
#define CONFIG_MENU_BORDERS       "black"

background.xpm を用意する

タイトルとメニューの背景画像を変更

$ mv background.xpm background.xpm.org

gimp でフィルタのソリッドノイズを (x)タイル可能 にして作ってみた。background.xpm として保存したあと、エディタで開いて配列名を background_xpm から、 background に変える

static char *background[] = {

make

$  ./configure --prefix=/usr --x-includes=/usr/include/X11 --x-libraries=/usr/lib/X11 && make

警告とエラーが!

c++ -c -g -O2 -I/usr/include/X11 Buttons.C
Buttons.C:187:8: warning: extra tokens at end of #endif directive
Buttons.C:193:8: warning: extra tokens at end of #endif directive
Buttons.C:199:8: warning: extra tokens at end of #endif directive
c++ -c -g -O2 -I/usr/include/X11 Menu.C
Menu.C:625: error: default argument given for parameter 3 of `CommandMenu::CommandMenu(WindowManager*, XEvent*, char*)'
Menu.h:92: error: after previous specification in `CommandMenu::CommandMenu(WindowManager*, XEvent*, char*)'
make: *** [Menu.o] Error 1

古いパッケージだから覚悟はしてたけど…。ぐぐったら、gcc3 へ対応していないためのバグみたいな感じ。
ネットで見つけた修正をパッチにしてみた。たぶん根本的解決にはなってないんだろうけど一応コンパイル通ったので。あと、/usr/bin/wmx のグループが wheel ってなってたのを root に。

diff -c wmx-6.org/Buttons.C wmx-6.new/Buttons.C
*** wmx-6.org/Buttons.C 2001-04-04 17:58:31.000000000 +0900
--- wmx-6.new/Buttons.C 2006-11-14 15:07:27.000000000 +0900
***************
*** 184,202 ****
            }

        } else
! #endif CONFIG_QUICKRAISE_KEY
  #ifdef CONFIG_QUICKHIDE_KEY
        if (key == CONFIG_QUICKHIDE_KEY && c) {
            c->hide();

        } else
! #endif CONFIG_QUICKHIDE_KEY
  #ifdef CONFIG_QUICKCLOSE_KEY
        if (key == CONFIG_QUICKCLOSE_KEY && c) {
            c->kill();

        } else
! #endif CONFIG_QUICKCLOSE_KEY
  #ifdef CONFIG_QUICKHEIGHT_KEY
        if (key == CONFIG_QUICKHEIGHT_KEY && c) {

--- 184,202 ----
            }

        } else
! #endif // CONFIG_QUICKRAISE_KEY
  #ifdef CONFIG_QUICKHIDE_KEY
        if (key == CONFIG_QUICKHIDE_KEY && c) {
            c->hide();

        } else
! #endif //CONFIG_QUICKHIDE_KEY
  #ifdef CONFIG_QUICKCLOSE_KEY
        if (key == CONFIG_QUICKCLOSE_KEY && c) {
            c->kill();

        } else
! #endif //CONFIG_QUICKCLOSE_KEY
  #ifdef CONFIG_QUICKHEIGHT_KEY
        if (key == CONFIG_QUICKHEIGHT_KEY && c) {

diff -c wmx-6.org/Makefile.in wmx-6.new/Makefile.in
*** wmx-6.org/Makefile.in       1999-09-01 08:53:08.000000000 +0900
--- wmx-6.new/Makefile.in       2006-11-14 15:07:58.000000000 +0900
***************
*** 43,49 ****
        -mv -f @bindir@/wmx @bindir@/wmx.old
        cp wmx @bindir@/wmx
        -chmod 0755 @bindir@/wmx
!       -chown root:wheel @bindir@/wmx
        -rm -f @bindir@/wmx.old

  # DO NOT DELETE -- make depend depends on it
--- 43,49 ----
        -mv -f @bindir@/wmx @bindir@/wmx.old
        cp wmx @bindir@/wmx
        -chmod 0755 @bindir@/wmx
!       -chown root:root @bindir@/wmx
        -rm -f @bindir@/wmx.old

  # DO NOT DELETE -- make depend depends on it
diff -c wmx-6.org/Menu.C wmx-6.new/Menu.C
*** wmx-6.org/Menu.C    2000-05-25 00:50:27.000000000 +0900
--- wmx-6.new/Menu.C    2006-11-14 15:07:27.000000000 +0900
***************
*** 621,627 ****


  CommandMenu::CommandMenu(WindowManager *manager, XEvent *e,
!                        char* otherdir = NULL)
      : Menu(manager, e)
  {
      const char *home = getenv("HOME");
--- 621,627 ----


  CommandMenu::CommandMenu(WindowManager *manager, XEvent *e,
!                        char* otherdir /*= NULL*/)
      : Menu(manager, e)
  {
      const char *home = getenv("HOME");

あとは make install

.wmx/

メニューからすぐにターミナルエミュレータを呼び出すために symlink (Config.h で書いたやつ)

$ cd ~/.wmx && ln -s /usr/bin/mlterm terminal

操作説明はここを参照 http://osaka.eco.toyama-u.ac.jp/~osaka/90dowasure/wmx.html

感想

慣れてなくて使いづらいことこの上ない。慣れれば良さそう
f:id:ishn:20061114162521j:image:w200