dwm - 共通事項 - メニュー - jgmenu FreeBSD


クラウディア 


1. 概要
2. インストール
3. 起動
4. jgmenurc 設定
5. 一気に設定

1. 概要

 「FreeBSD 13.1 RELEASE dwm 6.3」で、「jgmenu」を使用してみます。

2. インストール

 「root」ユーザ権限で。

pkg install -y jgmenu papirus-icon-theme
 インストール直後に、ログインユーザで、「jgmenu」のコンフィグレーションファイルを作成しておきます。  (末尾に書いているように、一気に設定する場合は、これは行いません)  ログインユーザで。

jgmenu_run init

3. 起動

 「dwm」で、バーにアイコンを表示させたり、クリックアクションを定義する方法がわからないので、デスクトップ上クリックで起動するようにします。  ログインユーザで「config.h」を編集します。

vi ~/config.h
 コマンド定義。

static const char *termcmd[]  = { "st", NULL };
 の後ろあたりに、1行追加します。

static const char *jgmenu[]  = { "jgmenu_run", NULL };
 ボタン定義。

/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
        /* click                event mask      button          function        argument */
        { ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
        { ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
        { ClkWinTitle,          0,              Button2,        zoom,           {0} },
        { ClkStatusText,        0,              Button2,        spawn,          {.v = termcmd } },
        { ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
        { ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
        { ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
        { ClkTagBar,            0,              Button1,        view,           {0} },
        { ClkTagBar,            0,              Button3,        toggleview,     {0} },
        { ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
        { ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
};
 113 と 114行の間に、下記の行を追加します。

        { ClkRootWin,           0,              Button1,        spawn,          {.v = jgmenu } },
 これで、コンパイル・リンクして、「dwm」を置き換えれば、デスクトップ上左クリックで、「jgmenu」が起動します。

4. jgmenurc 設定

 「jgmenu」をカスタマイズします。  以下、「FreeBSD 12.3 RELEASE」での設定例です。  ログインユーザで。

vi ~/.config/jgmenu/jgmenurc
 コンフィグレーションファイルは、デフォルトはすべてコメントアウトされていますので、変更後の情報のみ掲載します。  「y」座標をずらします。

 menu_margin_y = 20
 上部に表示します。

 menu_valign = top
 わたしの好みのフォントへ。

 font = MigMix 1M bold 9
 アイコンテーマ設定。

icon_theme = Papirus
 操作中の項目をわかりやすくするように背景色を変更。

color_sel_bg = #ffffff 40
 項目名が冗長なので、括弧内のコメントは、非表示へ。

 csv_name_format = %n
 終了メニューを追加します。

sh
cat << 'EOF' >> ~/.config/jgmenu/append.csv
^sep()
ログアウト,kill `pgrep -a dwm`, system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
exit
 ログアウトの部分は、「pkill dwm」でうまくログアウトできなかったので、「IceWM」での例を参考に少しだけ、工夫しました。  「再起動」「シャットダウン」は、「sodu」のインストールと、「visudo」で下記の1行を追加することが必要です。

ユーザ名 ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/poweroff

5. 一気に設定

 前項の設定を一気に行うには、下記のコマンドをコピペします。

mkdir -pv ~/.config/jgmenu

sh
cat << 'EOF' >> ~/.config/jgmenu/jgmenurc
 menu_margin_y = 20
 menu_valign = top
 font = MigMix 1M bold 9
 icon_theme = Papirus
 color_sel_bg = #ffffff 40
 csv_name_format = %n
EOF

cat << 'EOF' >> ~/.config/jgmenu/append.csv
^sep()
ログアウト,kill `pgrep -a dwm`, system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
exit

audiobook.jp
AbemaTV 無料体験
薬屋の独り言