xmonad - 共通事項 - メニュー - xmobar jgmenu FreeBSD


 クラウディア


1. 概要
2. インストール
3. xmobar 設定
4. jgmenu 設定
5. 参考サイト

1. 概要

 今まで(2026年4月8日)、「tint2」と「jgmenu」を使用してきましたが。  「tint2」は表示するまでに時間がかかるし、アクティブウィンドウを閉じるときに誤って閉じてしまったりする。  「xmobar」に「jgmenu」を追加する方法がわかりましたので、記述します。  以下、「FreeBSD 14.4 RELEASE」「xmonad 0.18.1」での設定です。

2. インストール

 アイコンテーマやフォントも同時にインストールしておきます。  「root」ユーザ権限で。

pkg install -y font-awesome hs-xmobar jgmenu papirus-icon-theme

3. xmobar 設定

 自動起動のスクリプトを作成しているものとして、ログインユーザで。

sh
cat << 'EOF' >> ~/.xmonad/scripts/autostart.sh
run "xmobar"
EOF
exit
 「xmobar」のコンフィグレーションファイルを作成します。

vi ~/.xmobarrc
 下記を記述します。

Config { font = "xft:MigMix 1M:size=10:bold:antialias=true"
	, additionalFonts = ["xft:Font Awesome 6 Free:style=Solid:size=12"]
	, iconRoot = "  "
	, borderColor = "black"
	, border = TopB
	, bgColor = "black"
	, fgColor = "grey"
	, alpha = 255
	, position = Static { xpos = 0 , ypos = 0 , width = 1366 , height = 30 }
	, textOffset = 1
	, iconOffset = 1
	, lowerOnStart = True
	, pickBroadest = False
	, persistent = False
	, hideOnStart = False
	, allDesktops = True
	, overrideRedirect = True
	, commands = [
		  Run Com "echo" ["menu"] "jgmenu_trigger" 0
		, Run Com "/home/hogehoge/.xmonad/scripts/fcitx-mode.sh" [] "fcitx" 5
		, Run Weather "RJFF"
			[
				"-t",
				"<station> 天候 <skyCondition>  気温 <tempC>°C 湿度 <rh>% 気圧 <pressure>hPa",
				"-L","10","-H","25",
				"--normal","green",
				"--high","red",
				"--low","lightblue"
			] 36000
			, Run Date "%F %T" "date" 10
		]
	, sepChar = "%"
	, alignSep = "}{"
	, template = "<action='jgmenu_run' button=1><fn=1>  </fn></action> }{ <fc=#ee9a00>%date%</fc> | %fcitx% | %RJFF% "
	}
 9行目は、バーの位置と大きさで、X座標、Y座標、幅、高さの順に記述しています。  10、11行目は、テキストとアイコンのバーからのオフセット位置の定義です。  18~32行でコマンドの定義をしています。  19行目は、「jgmenu」起動用のダミーコマンドで、何もしていませんが、識別子として必要になっています。  20行目は、キー入力モードで、これは本項の末尾に詳細を記述します。  21~29行は、天候の表示設定です。  以前は、イギリスのグラスゴー空港の天候を表示していたのだった(笑)。  「EGPF」の意味がわからなかったのだ。  これは、空港の「ICAO」というコードだそうで、「ICAO空港コードの一覧/R - Wikipedia」を読めば、最寄りの空港のコードを調べることができます。  25行目、「"-L","10","-H","25"」で、最低気温、最高気温の定義をしておいて、その上下、範囲内で、色を変えているのが、25~27行です。  30行目は、日時の表示です。  34行目のテンプレートに沿って、「xmobar」が表示を行います。  20行面の、キー入力モードの表示について。  「fcitx5-mozc」で、日本語入力を有効にしていますが、入力状態がアルファベットなのか日本語なのかをわかるようにしました。  下記の要領でスクリプトを作成して。

sh
cat << 'EOF' >> ~/.xmonad/scripts/fcitx-mode.sh
#!/bin/sh

if [ `fcitx5-remote` = 1 ]; then
        echo 'A'
else
        echo 'あ'
fi
EOF
exit

chmod +x ~/.xmonad/scripts/fcitx-mode.sh
 それを起動するようにしています。  「.xmobarrc」は、「$HOME」や「~/」といったホームのシンボルを使うことができないので、フルパスで記述します。  以前、「fcitx-remote」と書いていたものは、「fcitx5」を使用するようになったので、「fcitx5-remote」と記述しているので、注意。

4. jgmenu 設定

 ログインユーザで。

mkdir -pv ~/.config/jgmenu

sh
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 xmonad`,system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
exit
 「jgmenu」に対して、下記の設定を行っています。 ・表示位置をずらして、下から上へ ・項目の幅を狭くします。 ・フォントの定義 ・アイコンテーマを定義 ・選択行の背景にメリハリをつける ・項目名が冗長なので、説明は省略  末尾で終了メニューを追加しています。  再起動とシャットダウンを有効化するには、「root」ユーザ権限で・

visudo
 して、下記の行を加えます。

ログインユーザ名  ALL=(ALL) NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff

5. 参考サイト

 本ページは、「Gemini」伍長を参考にさせていただきました。

audiobook.jp
AbemaTV 無料体験