search
LoginSignup
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

NetBSD Advent Calendar 2020 Day 24

posted at

updated at

NetBSD-9.1でctwmウインドウマネージャを便利に使うための設定Tips

NetBSD Advent Calendar 2020 24日目の記事です。
今日はウインドウマネージャのctwmについて、設定周りの話をしようと思います。

NetBSDとctwm

1日目の記事でも紹介していますが、NetBSDでは長いあいだデフォルトのウインドウマネージャとしてtwmが採用されていましたが、NetBSD-9.1からctwmに切り替えられました。

個人的にはctwmは軽量で機能的にも使いやすいという印象であり、VNC等を経由してGUIを使用するような場合に有用です。

ただ、デフォルトの設定だとちょっと煩わしい挙動や表示であるため、使いやすくするための設定項目をいくつか紹介できればと思います。

ctwmの設定

個人用の.ctwmrcを用意する

ctwmのデフォルト設定は /etc/X11/ctwm/system.ctwmrc に記載されています。必要な設定のみ個人向けにカスタムしたいため、 ~/.ctwmrc にファイルをコピーして編集します。

$ cp /etc/X11/ctwm/system.ctwmrc ~/.ctwmrc

右クリックでメニューを出さないようにする

1日目の記事でも紹介しましたが、デフォルトではマウスの左クリックでメニューが表示されます(右クリックでも同じメニューが出ます...)。VNC等でGUIを表示している際に、VNCのウインドウにアクティブにするつもりでクリックしたらメニューが表示され、運悪く"Restart CTWM"をクリックしてしまうという事故が発生しかねないため、以下のように Button1 に紐づく動作をコメントアウトすることで左クリックによるメニュー表示を無効化します。

#Button1 =     : root          : f.menu "NetBSD"

フォーカスしているウインドウを強調表示する

nbsd1224.PNG

ctwmでは、マウスカーソルの下にあるウインドウに対して自動的にフォーカスが当たるという挙動になっています。これは便利な挙動ですが、マウスカーソルに注目しないとフォーカスが当たっているウインドウが識別しずらいことがあります。

このような場合には、 NoTitleHightlight をコメントアウトすることで、フォーカスが当たっているウインドウを強調表示することができます。表示的にはtwmのような強調表示になります。

Windowsみたいなボタン配置にする

nbsd1224_1.PNG

ウインドウの左上にはリサイズと閉じるボタンが表示されるのですが、twmのようなワイヤーフレームをマウスでドラッグしながらリサイズするという挙動になっています。Webブラウザやペイントツール等をよく使用する場合は、単に現在のウインドウサイズと最大化したウインドウを交互に切り替えるほうが便利だったりします。

このような場合には、ウインドウの左側に配置するボタンを定義することで対応できます。以下のように、 RightTitleButton に設定した項目がウインドウの左側に(設定した順で)表示されます。この例では最大化ボタンと閉じるボタンが表示されます。

RightTitleButton          ":xpm:resize"   = f.fullzoom
RightTitleButton          ":xpm:cross"    = f.delete

アイコンマネージャの表示をトグルする

nbsd1224_2.PNG

ウインドウを最小化すると、画面右上にある「アイコンマネージャ」にアイコン化された状態でウインドウが格納されます。画面全体を使用したい場合にアイコンマネージャも隠したいことがあり、その場合は f.hideiconmgrf.showiconmgr を呼び出すことで表示をトグルできます。

以下の例では右クリックメニューにアイコンマネージャの表示・非表示を追加しています。

menu "NetBSD"
{
    "NetBSD"                    f.title
    ...
    " Hide Iconmgr"             f.hideiconmgr
    " Show Iconmgr"             f.showiconmgr
    ...
}

ワークスペースの表示をトグルする

nbsd1224_3.PNG

ctwmには仮想デスクトップ機能があり、ワークスペースマネージャでそれぞれの仮想デスクトップを切り替えることができます。慣れてくるとショートカットキーで仮想デスクトップを切り替えるようになり、必要な時だけワークスペースマネージャを表示したくなってきます。

このような場合には、 f.toggleworkspacemgr を呼び出すことで表示・非表示を切り替えることができます。
(なぜかワークスペースマネージャーの場合は「(表示を)トグルする」という機能ひとつで示現されており、アイコンマネージャの場合と異なる感じですね...)

menu "NetBSD"
{
    "NetBSD"                    f.title
    ...
    " Toggle Workspacemgr"      f.toggleworkspacemgr
    ...
}

デフォルト設定とのdiff

ここまで紹介してきた設定について、デフォルト設定との差分を示します。

$ diff -u /etc/X11/ctwm/system.ctwmrc ~/.ctwmrc
--- /etc/X11/ctwm/system.ctwmrc 2020-11-07 02:42:05.075695725 +0900
+++ /home/nbsd/.ctwmrc  2020-12-15 01:07:19.704196666 +0900
@@ -93,7 +93,7 @@
 WindowRing
 WarpRingOnScreen

-NoTitleHighlight
+#NoTitleHighlight

 TitleButtonShadowDepth    1
 TitleShadowDepth          1
@@ -104,7 +104,8 @@
 FramePadding             0

 LeftTitleButton           ":xpm:dot"      = f.menu "titleops"
-RightTitleButton          ":xpm:resize"   = f.resize
+RightTitleButton          ":xpm:iconify"   = f.iconify
+RightTitleButton          ":xpm:resize"   = f.fullzoom
 RightTitleButton          ":xpm:cross"    = f.delete

 BorderWidth               4
@@ -196,6 +197,10 @@
     " Clock"                   !"xclock -digital &"
     " XEyes"                   !"xeyes &"
     ""                         f.separator
+    " Hide Iconmgr"                    f.hideiconmgr
+    " Show Iconmgr"                    f.showiconmgr
+    " Toggle Workspacemgr"                     f.toggleworkspacemgr
+    ""                         f.separator
     " Applications"            f.menu "appmenu"
     ""                         f.separator
     " Restart CTWM"            f.twmrc

まとめ

ctwmをちょっと便利に使うための設定について紹介しました。ここでは紹介しきれませんでしたが、ショートカットキー等の設定やカラー設定等についても調べてみると面白そうです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1
Help us understand the problem. What are the problem?