1. 概要
「tint2」と「jgmenu」を使用します。
以下、「FreeBSD 13.0 RELEASE」「spectrwm 3.4.1」での設定です。
2. インストール
あわせて、アイコンテーマをインストールしておきます。
「root」ユーザ権限で。
pkg install -y jgmenu papirus-icon-theme tint2
3. tint2 設定
「tint2」を上へ表示したいので、デフォルトのバーを下へもっていきます。
ログインユーザで。
vi ~/.spectrwm.conf
下記の行の先頭の「#」を削除して、有効化します。
(行番号は、バージョンにより異なります)
bar_at_bottom = 1
末尾へ下記の行を追加して、「tint2」の表示設定を行います。
quirk[Tint2:tint2] = FLOAT + ANYWHERE + NOFOCUSCYCLE + NOFOCUSONMAP + OBEYAPPFOCUSREQ
ログイン時に、「tint2」を起動します。
自動起動の設定を行っているものとして。
cat << 'EOF' >> ~/.spectrwm_start.sh
run "tint2"
EOF
「tint2」のコンフィグレーションファイルを システムデフォルトからコピーして、編集します。
mkdir -pv ~/.config/tint2
cp /usr/local/etc/xdg/tint2/tint2rc ~/.config/tint2/tint2rc
vi ~/.config/tint2/tint2rc
panel_position = bottom center horizontal
panel_layer = top
パネルを上部へ表示します。
アプリケーションウィンドウが、パネルの下へ隠れることがあるので、パネルのレイヤを下へ移動します。
panel_position = top center horizontal
panel_layer = bottom
taskbar_name_active_background_id = 0
taskbar_name_font_color = #e3e3e3 100
間に下記の行を追加して、フォントを設定します。
taskbar_name_font = MigMix 1M 10
launcher_item_app = tint2conf.desktop
launcher_item_app = firefox.desktop
launcher_item_app = iceweasel.desktop
launcher_item_app = chromium-browser.desktop
launcher_item_app = google-chrome.desktop
151~155行をコメントアウトして、下記の行を加えます。
launcher_item_app = jgmenu.desktop
ログインしなおして、反映させます。
4. jgmenu 設定
ログインユーザで。
mkdir -pv ~/.config/jgmenu
cat << EOF >> ~/.config/jgmenu/jgmenurc
menu_margin_x = 5
menu_margin_y = 31
menu_valign = top
item_height = 22
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 spectrwm`,system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
上記は、以下を行っています。
・表示位置をずらす
・表示位置を下から上へ
・項目の幅を狭く
・フォント設定
・アイコンテーマ設定
・選択行の背景にメリハリをつける
・項目名が冗長なので、説明は省略
・終了メニューの追加
再起動とシャットダウンを有効化するには、「root」ユーザ権限で
visudo
して、下記の行を加えます。
ログインユーザ名 ALL=(ALL) NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
5. 問題点
「spectrwm」には、困った問題がありまして、何もウィンドウを表示していない状態で、誤って、ウィンドウを閉じるキーを押すと、「tint2」が消えてしまうのです。
これは、まだ(2022年1月7日)解決できていません。
わたしは、これを結構、よくやっちまうので、消えてもすぐ mod+t で起動できるようにしています。
すなわち、ログインユーザで。
sh
cat << 'EOF' >> ~/.spectrwm.conf
program[tint2] = tint2
bind[tint2] = MOD+t
EOF
exit
2026年6月24日、解決しました。
自動起動の設定で、「tint2」を動作させるようにしたら、解消しました。