- 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」伍長を参考にさせていただきました。
|