FVWM」タグアーカイブ

FVWMを使う理由

この時代に、なぜFVWMを使っているのだろうか。
絶滅危惧種的存在のXウィンドウマネージャであるし。使う人間も絶滅危惧種的レアな人々であろうし。でも信じたいFVWMが存続し、進化し続けることを。
なぜなら、FVWMには、世界中のレアでコアな人間の希望と情熱があるからである。

という訳でFVWMが使える理由。

  • カスタマイズができる
  • 環境に依存しない
  • 環境を好みに作れる
  • 画面をとても広く使える
  • ハイバネーションを使っての利用は、やりっ放しの続きができる感がある。
  • コツコツ積み上げる感が良い
  • 自分の知恵を組み込める
  • 成長することができる
  • 簡単に済ますことができない
  • 普通ではない、そこが魅力

あえて言うと、使えない理由。

  • Linuxのノービスユーザーには、難解であろう。
  • 情報が少ない、情報が古い
  • どこから、どうカスタマイズしたら良いか分からない
  • 初期の設定だと、とてもださい。以前のよりは改良されているのだが。

そんなとこですかね。

fvwm3のManual Pageですが。驚異的な莫大な量です。manの歴代一位の長さと言えますか。親切丁寧に書かれてるんですが。まぁすごいですよね。

https://github.com/fvwmorg/fvwm3/blob/master/doc/fvwm3/fvwm3.adoc

FVWM2のPositionPlacement

FVWM2でFirefoxを使用していると。URLの左横の鍵アイコンをクリックして、安全な接続の詳細を表示するをクリックするとページ情報が新たなウィンドウで表示されるのだが。わしは、Style * PositionPlacement UnderMouse と設定しているので、左上のマウスのそばにウィンドウが表示される訳だが、これを画面の中央に表示させたい。

この表示させたいウィンドウをIdentifyで調べると Class: は Firefoxで Resource:は Browserであった。それで Style “Browser” PositionPlacement Centerと設定したのだが、中央に表示されるはずが、表示されない。困ったものだ。

他の方法として Style “Browser” PositionPlacement 50-50w 50-50w と設定したところ。中央に表示されてうまく行ったのである。この50-50wの意味は、左はX方向、右はY方向。最初の50は50%を表し、50 50だと、ウィンドウの左上の点が画面の50%50%に来るので全体としては右下にずれて表示が見える。これを防ぐためにウィンドウ左上の点を左上に移動させないとならない。これが-50wという記述をつけるとできるのだ。意味はウィンドウサイズの50%をマイナスするという事なのである。FVWMの座標の原点0 0は左上にある。

XDG Menusの動作が変

Regenerationを行っても再起動すると、古いMenuに戻ってしまう。設定が変わった?

これを解決するのには、古い .XDGMenuファイルを削除して新しく .XDGMenuのファイルを作ると、正常に動作するようになった。

fvwmのメニューからFvwmForm-XDGMenu-Config(Module FvwmPerl -l fvwm-menu-desktop-config.fpl)(FvwmCommand Module FvwmPerl -l fvwm-menu-desktop-config.fpl) を起動 Output pathを .fvwm2rcの .XDGMenuのファイルを読み込むパスと同じパスに設定する。
ちなみにこのモジュールのパスは/usr/share/fvwm/fvwm-menu-desktop-config.fplである。解析するにはここから。

古い環境からの .XDGMenuは削除し、XDGRegenで新しく作るのが良いという事であった。

FVWM2のログを取る時

startxからFVWMを起動してるので、 .xinitrcの最後のexecの行に、-debug以下を追加する。
要らなくなったら消す。

exec dbus-launch --sh-syntax --exit-with-session fvwm2 -debug > ${HOME}/fvwm.log 2>&1


.xinitrcの先頭に dbu-launchを行うのが良いという案もあるのだが。自分の環境だと、gnome-terminalでfcitxが入力できないので、最後の行のfvwm2の起動時に行った方が良い。下記は良くなかった例。

eval "$(dbus-launch --sh-syntax --exit-with-session)"
#
# その他記述
#
exec fvwm2 -debug > ${HOME}/fvwm.log 2>&1

dbusについては以下を参考に https://www.silex.jp/blog/wireless/2017/01/d-bus.html

fcitxとgnome-terminalの挙動を考慮すると以下の.xinitrcになった。

export DefaultIMModule=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export XDG_CONFIG_HOME=$HOME/.config
xscreensaver &
exec dbus-launch --sh-syntax --exit-with-session fvwm2 -debug > ${HOME}/fvwm.log 2>&1

fvwm3 をインストールしたのでログがアペンディングモードで取れる。こっちを利用するので変える。

Enables debug logging. Writes in append mode to fvwm log file, which is ~/.fvwm/fvwm3-output.log by default.

#exec dbus-launch --sh-syntax --exit-with-session fvwm2 -debug > ${HOME}/fvwm.log 2>&1
exec dbus-launch --sh-syntax --exit-with-session  fvwm3 -v

こちらのログの方が、詳しく取れてるし、-debugは要らないって事だな。

fcitxの起動は、FVWMのStartFunctionに記入しfvwmが立ち上がってから起動する順番にした。

+ I exec fcitx-autostart &

stalonetrayをインストールしFvwmButtonsの中にSwallowとしてシステムトレイアイコンを表示させた。fcitxの状態ウィンドウ(左にペンギンのアイコンがあるやつ)をSwallowしようとしたが、できなかった。移動できるのでFvwmButtonsのあたりに移動しておく。位置は保存できているので、fvwmを再起動しても、そこにあるので良しとする。

*FvwmButtons(Swallow(NoClose,UseOld)  "stalonetray" 'Exec exec stalonetray' )

fvwmに、fvwm-menu-desktop を使用し XDG Menusをメニュー追加

fvwmのメニューはカスタマイズが簡単にできるが、自動的に生成されるメニューはDebianメニューを使っていたが、
もっと便利なXDG Menusがあったのでこれを使えるように設定した。
StartFunctionsに以下を追加 

+ I Test (!f $[FVWM_USERDIR]/.XDGMenu) XDGRegen
+ I Read $[FVWM_USERDIR]/.XDGMenu

.XDGMenuファイルがないと、XDGRegenを実行し、そのファイルを読み込む。
XDGRegenは、以下で設定する。

DestroyFunc XDGRegen
AddToFunc XDGRegen
+ I PipeRead 'fvwm-menu-desktop --regen-cmd XDGRegen > \
    $[FVWM_USERDIR]/.XDGMenu; echo "Nop"'
+ I Read $[FVWM_USERDIR]/.XDGMenu

https://www.mankier.com/1/fvwm-menu-desktop