Fvwm3になってFvwmPagerのラベル名が *FvwmPager: Label 0 ラベル名 の様に設定できなくなった。DesktopName 0 デスクトップ名(旧ラベル名)で設定するようになった。StartFunctionのあたりに記述した。
要するにラベル名が指定できなくなって、デスクトップ名が表示される。デスクトップ名はDesktopName コマンドで設定する。
Fvwm3になってFvwmPagerのラベル名が *FvwmPager: Label 0 ラベル名 の様に設定できなくなった。DesktopName 0 デスクトップ名(旧ラベル名)で設定するようになった。StartFunctionのあたりに記述した。
要するにラベル名が指定できなくなって、デスクトップ名が表示される。デスクトップ名はDesktopName コマンドで設定する。
/usr/share/xsessions に fvwm3.desktop名で以下のファイルを作る
[Desktop Entry]
Name=Fvwm3
Comment=fvwm3
Exec=/usr/local/bin/fvwm3 -v
#Exec=/usr/local/bin/fvwm3 -v -debug >> ${HOME}/fvwm.log 2>&1
TryExec=/usr/local/bin/fvwm3
Type=Application
/usr/share/xsessions/fvwm3.desktop
この方法だと、-debug >> ${HOME}/fvwm.log 2>&1 のオプションが使えない。どうやったらできるだろう。
-v オプションについて
このオプションで/.fvwm/fvwm3-output.log by default.にログを付け加える。
-v | –verbose
Enables debug logging. Writes in append mode to fvwm log file, which is ~/.fvwm/fvwm3-output.log by default. See ENVIRONMENT section on how to override this location on fvwm3 startup using $FVWM_USERDIR or $FVWM3_LOGFILE .
Logging can also be dynamically toggled on and off using signals:
インストール後、swapファイルは2047M使用してファイルでのswapを行うようになっている。メモリー5536Mあり、ハイバネートするにはメモリー半分以下なので、余裕を持たせてswapファイルを拡大する。
sudo swapoff /swapfile
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo swapon /swapfile
sudo swapon -s
swapファイルができたら、/etc/default/grubの編集を行う。GRUB_CMDLINE_LINUX_DEFAULTにresume=UUID= resume_offset= の値を付けて追記する。UUIDの方はblkidでswapファイルのあるパーティションのUUIDを、resume_offsetは
sudo filefrag -v /swapfile
を行って表示される0:の行のphysical_offsetの開始の数値である。..が付いてる方で、..は開始を意味するもので、offsetの数値ではない。
sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'|sed -e 's/\..//'
上記のコマンドで表示される数値である。
sudo update-grub
で、再起動を行う。
sudo systemctl hibernate
これでハイバネートできる。
https://codepre.com/how-to-enable-hibernation-on-ubuntu-when-using-swap-file.html
WindowManagerに必要な要件を考える。Linuxのディスクトップ環境を作る為にどうあるのか、何が必要なのかを確認する。Fvwmでは高い自由度でカスタマイズできるからである。
まずはランチャーの役目は欠かせない。マウスで起動させるか、キーボードでターミナルか、ショートカットで起動させるか。また、常用するアプリか、インストールされたアプリか。コマンドからだと、分からないものは、GUIでアイコンで起動させるか。
次にウィンドウの操作がある。どこに配置するか、大きさは、重なり方は。アイコンに収納できるか。自動の部分と、手動の部分があり、マウスで行うか、キーボードで行うか。
次に、情報を表示する部分。アイコン、メモリー、時間、ロードなど。タスクバーの部分とFVWMならボタンの部分、ページャーの部分がある。
つづく
font-family:”Noto Sans CJK JP”
font-size:16px;
font-style: normal;
font-weight: 400;
本サイトの表示を、このようにした。
ターミナルのソフトを最大表示させると、下部のフレームがズレて隙間ができてしまう。これを解決するのが、ResizeHintOverrideである。文字のリサイズステップサイズを無視するようにするのだ。
ResizeHintOverride instructs fvwm to ignore the program supplied minimum and maximum size as well as the resize step size (the character size in many applications). This can be handy for broken applications that refuse to be resized. Do not use it if you do not need it. The default (opposite) style is NoResizeOverride.
しかし、最大サイズのリサイズはうまくいくが、フレームの端を動かすリサイズはうまく動かない。Style * ResizeOpaqueをデフォルトで使っているのだが。これか?と思いResizeOutlineを使用するとうまく動いた。
Style * ResizeOpaque
Style "Gnome-terminal" ResizeOutline
Style "xfce4-terminal" ResizeOutline
Style "Gnome-terminal" ResizeHintOverride
Style "xfce4-terminal" ResizeHintOverride
メニューにXDGMenuを表示させるには、Readコマンドで.XDGMenuを読み込ませる。
+ I Read $[FVWM_USERDIR]/.XDGMenu
この.XDGMenuには、第一段階目のXDGMenuという名前のメニューが設定されている。それを変更するために。追加になるんだが。
AddToMenu XDGMenu "XDGMenu_kai" Title + "OOOOOOOO" Nop
XDGMenuにタイトルとテストのメニュー名を追加するとする。これをFvwmの設定ファイルにReadコマンドの後に記載すると。これが動作しないのである。困ったものである。どうしたものかと考えて、Readで読ませた設定にはReadで対抗できるのではないかと、推定した。
.XDGMenu_Addというファイルを作り
#DestroyMenu "XDGMenu" AddToMenu XDGMenu "XDGMenu_kai" Title + "OOOOOOOO" Nop
の内容で書き込み。
+ I Read $[FVWM_USERDIR]/.XDGMenu + I Read $[FVWM_USERDIR]/.XDGMenu_Add
としたら、思ったように動作して、.XDGMenu_Addの内容がメニューに表示された。DestroyMenu “XDGMenu”を記載すると、.XDGMenuの内容は、消され.XDGMenu_Addの内容のみが表示された。このダブルReadテクニックによって、いろいろできそう。
例えば
#DestroyMenu "XDGMenu" AddToMenu XDGMenu "XDGMenu_kai" Title + "OOOOOOOO" Nop DestroyMenuStyle menu_xdg MenuStyle menu_xdg MenuColorset 14 MenuStyle menu_xdg Font "xft:NotoSerifCJK-Light:size=12" ChangeMenuStyle menu_xdg XDGMenu
XDGMenuのMenuStyleを変えられる。でもこれXDGMenuの一段目だけなんだよね。二段目以降はメニュー名が日本語だし、たくさんあるし、どうするの?
DestroyMenuStyle * MenuStyle * Mwm MenuStyle * MenuColorset 1 MenuStyle * Font "xft:NotoSerifCJK-Light:size=18"
.XDGMenu_Addにアスタリスクのメニュスタイルを設定すると、XDGMenuでない他のメニューのスタイルも変わってしまう。そりゃそうだけど。アスタリスクに関しては、全部影響するという訳だった。じゃどうする?宿題だな。
PopupとMenuの違いは何だろう?同じように動作するのだが。
key F11 A M Popup XDGMenu key F12 A M Menu XDGMenu
Types of Menus In fvwm there are four slightly different types of menus: Popup menus can appear everywhere on the screen on their own or attached to a part of a window.The Popup command opens popup menus. If the popup menu was invoked with a mouse button held down, it is closed when the button is released. The item under the pointer is then activated and the associated action is executed. Menu is a very similar command, but the menus it opens are slightly less transient. When invoked by clicking a mouse button, it stays open and can be navigated with no button held. But if it is invoked by a button press followed by mouse motion, it behaves exactly like a popup menu.
XDGMenuの場合は違いが分からなかった。AddToMenuで作られたMenuをマウスクリックで呼ぶ場合は、Popupの時は、右側にMenuが開く。Menuの時は、クリックなりリターンなりでアクションがあったらMenuが単独で開く、そんなところでした。
では、なんでXDGMenuだと違ったの? これ宿題
それでは、マウスでメニューを開くとする。以下をAddToMenuに記載し、メニューを開くとPopupの方は、右横にXDGMenuの中身が開いて表示される。Menuの方はクリックすると開く。その違いであった。
+ "XDG Menus" Popup XDGMenu + "XDG Menus" Menu XDGMenu
が、しかし一番上に記載した、キーで呼ぶ場合には、同じ挙動なんですな。これは不思議。つまりキーでメニューを呼びだす時は、PopupもMenuも同じ動作をする。これは1段目のメニューだからそうなるのであろう。2段目は違うぞ? これ宿題
.bashrc に追加する。メモリーを解放するよ。
alias memfree='VAR=`mem`&&sudo sh -c "echo 3 >/proc/sys/vm/drop_caches"&&VAR2=`mem`&&echo freememory $VAR to $VAR2'
日本語に対応したフォント一覧
fc-list :lang=ja file
どんなアプリがインストールされているか知ることができるランチャーである。検索、ブックマーク、履歴、アクセサリー、インターネット、オフィス、グラフィック、ゲーム、システム、マルチメディア、設定のカテゴリーが左枠に出現させられる。XDGMenuより多機能で見やすい。FVWMにはこれだね、メニューとショートカットに入れるべき。ポップアップでコマンドも表示されるので、気に入ったコマンドは、FVWMのメニューに追加できるので、xfce4-appfinderをイチオシ。
sudo apt install xfce4-appfinder
「FVWM version 3 — the successor to fvwm2」が公開されているが、現在UbuntuにはFvwm3のパッケージは存在しない。https://packages.ubuntu.com/
待っていても、パッケージでは提供されないのだろうか。と言う訳でコンパイルしインストールを行う。
https://github.com/fvwmorg/fvwm3/blob/master/dev-docs/INSTALL.md ここを参考に、Core dependenciesとOptional dependenciesをインストールしておく。
librsvg-devがなくてlibrsvg2-devがあったので、これをインストールしてみた。大丈夫?
#!/bin/bash while read line do echo -e "\e[32;1m$line\e[m" sudo apt install $line -y done << EOF libevent-dev libx11-dev libxrandr-dev libxrender-dev libxt-dev asciidoctor libfontconfig-dev libfreetype6-dev libfribidi-dev libncurses5-dev libpng-dev libreadline-dev librsvg2-dev libsm-dev libxcursor-dev libxext-dev libxft-dev libxi-dev libxpm-dev sharutils EOF
準備ができたらgitからダウロード
git clone https://github.com/fvwmorg/fvwm3.git
あとはInstalling From Gitの手順で
./autogen.sh ./configure --enable-mandoc make
configureでWith Golang support? noになったが、まぁいいか。
じゃないわ! FvwmPrompt
— a new module written in golang
: ./configure --enable-golang
needed at compile time だとさ。
で、以下のconfigureでyesになった。
./configure --enable-mandoc --enable-golang
つまりこういう事である。
/autogen.sh && ./configure --enable-mandoc --enable-golang && make -j4
さらに改良。Makefileに、CPPFLAGS = -march=amdfam10 追加。k10なのよ。
でmake clean && make -j4
sudo make install
インストールできたら、 .xinitrcのfvwm2の部分をfvwm3に書き換えて。startxする。
何が変わったのかはここを読むといい。https://github.com/fvwmorg/fvwm3/releases
fvwm3では、Strokeコマンドがなくなった。libstroke
support has been removed.だと。
あまり使わないので、まぁ影響はないけど。キーとマウスクリックで対応できるでしょうから。Strokeは設定ファイルからコメントアウト。あとEdgeResistance 30 30でエラー、引数は1つのみが正解。何か2つ目の引数って効果あるの?ってずっと思ってた。EdgeResistance 30が正しいと、-vオプションのエラーログで分かった。
logを取るには.xinitrcで起動時に fvwm3 -v と -vのオプションを付けると、$HOME/.fvwm/fvwm3-output.log が作られる。起動中では pkill -USR2 fvwm3 ができる。
Fvwm3のモジュールは以下のとおり
FvwmAnimate FvwmAuto FvwmBacker FvwmButtons FvwmCommandS FvwmConsole FvwmConsoleC FvwmEvent FvwmForm FvwmIconMan FvwmIdent FvwmMFL FvwmPager FvwmPerl FvwmRearrange FvwmScript FvwmTalk
fvwm2.6.8のモジュールは以下の通り。○は存続、×は消滅したもの。
FvwmAnimate ○ FvwmAuto ○ FvwmBacker ○ FvwmBanner × FvwmButtons ○ FvwmCascade × FvwmCommandS ○ FvwmConsole ○ FvwmConsoleC ○ FvwmConsoleC.pl × FvwmCpp × FvwmEvent(FvwmAudio) ○ FvwmForm ○ FvwmIconMan ○ FvwmIdent ○ FvwmM4 × FvwmPager ○ FvwmPerl ○ FvwmProxy × FvwmRearrange ○ FvwmScript ○ FvwmTalk ○ FvwmTile ×
fvwm2.6.8はfvwm2.6の最終安定版ですね。
こちらでも絶版があるわけですが。FvwmTaskBarが無くなったのが大きかったかな。
- Some fvwm modules have been removed: - FvwmDragWell (no replacement) - FvwmGTK (no replacement) - FvwmSave (no replacement) - FvwmSaveDesk (no replacement) - FvwmScroll (no replacement) - FvwmTabs (no replacement, never worked anyway) - FvwmTaskBar (use FvwmButtons) - FvwmTheme (in core of fvwm as colorsets) - FvwmWharf (use FvwmButtons) - FvwmWinList (use WindowList command) - FvwmWindowMenu (use WindowList command) - FvwmIconBox (use the IconBox style instead)