1. 概要
「antiX」には、「jgmenu」のパッケージが、リポジトリに存在しません。
「MX Linux」でなくなってしまったものを「github」から取得してインストールした経験を生かして、インストールできないものかやってみます。
本ページは、下記のサイトを参考にさせていただきました。
「Github」の本家をのぞくと、インストール時に必要なヘッダファイルを探すのに調べさせていただいたサイトです。
「GitHub - johanmalm/jgmenu: An X11 menu」(本家・・・開発が停止しませんように)
「Linux Mint/Linux Mint で stdio.h がないエラーの対処方法 - Linuxと過ごす」
「antiX 23」では、「jgmenu」も「tint2」もリポジトリに加えられました。
楽になりそうです。
2. 準備
「antiX 22」以前の作業です。
「git」をはじめ、「jgmenu」のインストールに必要なヘッダファイルや、合わせて使う、「tint2」「papirus-icon-theme」をまとめてインストールしておきます。
「root」ユーザ権限で。
apt install -y git libc6-dev libxml2-dev libx11-dev libxrandr-dev libcairo2-dev libpango1.0-dev librsvg2-dev libmenu-cache-dev tint2 papirus-icon-theme
3. インストール
いよいよ、本体のインストールです。
「root」ユーザ権限で。
「antiX 22」まで。
必要なディレクトリを作成。
mkdir -pv $HOME/bin
mkdir -pv /tmp/jgmenu
「github」からソースの取得と「make」。
cd /tmp/jgmenu
git clone https://github.com/johanmalm/jgmenu.git
cd jgmenu
./configure --prefix=$HOME --with-lx --with-pmenu
make
make install
できあがったものをコピー。
cp jgmenu /usr/local/bin/.
cp jgmenu-apps /usr/local/bin/.
cp jgmenu-config /usr/local/bin/.
cp jgmenu-greeneye /usr/local/bin/.
cp jgmenu-i18n /usr/local/bin/.
cp jgmenu-ob /usr/local/bin/.
cp jgmenu-obtheme /usr/local/bin/.
cp jgmenu-socket /usr/local/bin/.
cp $HOME/bin/jgmenu_run /usr/local/bin/.
cp /tmp/jgmenu/jgmenu/data/jgmenu.desktop /usr/share/applications/.
cp /tmp/jgmenu/jgmenu/data/jgmenu.svg /usr/share/icons/.
「jgmenu」のコンフィグレーションファイルを作成します。
cd ~/bin
./jgmenu_run init
cp ~/.config/jgmenu/jgmenurc /tmp/.
ログインユーザで、上記のコンフィグレーションファイルをコピーします。
mkdir -pv ~/.config/jgmenu
cp /tmp/jgmenurc ~/.config/jgmenu/.
「antiX 23」からは、「apt」でインストールできます。
「root」ユーザ権限で。
apt install -y jgmenu tint2
4. 自動起動
ログインユーザで。
vi ~/.config/herbstluftwm/autostart
間違えて、「dzen2」を起動しないように(行番号は、ずれているかもしれません)
# find the panel
panel=~/.config/herbstluftwm/panel.sh
[ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh
for monitor in $(hc list_monitors | cut -d: -f1) ; do
# start it on each monitor
"$panel" "$monitor" &
done
の個所をコメントアウトします。
二重起動防止の関数をなければ定義。
#!/usr/bin/env bash
# this is a simple config for herbstluftwm
1、3 行の間に下記を記述します。
run()
{
if ! pgrep $1 ;
then
$@&
fi
}
末尾に下記の1行を加えます。
run "tint2"
5. tint2 設定
ログインユーザで。
mkdir -pv ~/.config/tint2
cp /etc/xdg/tint2/tint2rc ~/.config/tint2/.
vi ~/.config/tint2/tint2rc
panel_position = bottom center horizontal
panel_layer = top
72行目は、「bottom」を「top」へ変更して、デスクトップ上側へ表示します。
73行目は、「top」を「bottom」へ変更して、アプリケーションのウィンドウがパネルの上に表示されるようにします。
taskbar_name_active_background_id = 0
taskbar_name_font_color = #e3e3e3 100
102行と103行の間あたりに、下記の行を追加して、フォントを設定します。
taskbar_name_font = MigMix 1M bold 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
すべてコメントアウトし、下記の行を加えます。
launcher_item_app = jgmenu.desktop
6. jgmenu 設定
末尾のように一気に設定する場合は、次項へ。
ログインユーザで。
vi ~/.config/jgmenu/jgmenurc
「jgmenu」のコンフィグレーションファイルは、デフォルトはすべてコメントアウトされていますので、編集後の状態で掲載します。
表示位置をずらします。
menu_margin_x = 10
menu_margin_y = 30
表示位置を下から上へ。
menu_valign = top
項目の幅を狭く。
item_height = 22
フォントを設定。
font = MigMix 1M bold 10
アイコンテーマは、設定しなくても、「Papirus」が設定されているように見えます。
メニューの選択時の背景にメリハリをつけます。
color_sel_bg = #ffffff 40
項目名が冗長なので、説明は省略。
csv_name_format = %n
終了メニューを追加します。
「root」ユーザ権限で。
visudo
以下の1行を加えます。
ユーザ名 ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/poweroff
ログインユーザで。
sh
cat << 'EOF' >> ~/.config/jgmenu/append.csv
^sep()
ログアウト,kill `pgrep -a herbstluftwm`,system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
exit
7. 一気に設定
前項の前項の「visudo」以外設定を一気に行う場合は。
ログインユーザで。
mkdir -pv ~/.config/jgmenu
sh
cat << 'EOF' >> ~/.config/jgmenu/jgmenurc
menu_margin_x = 10
menu_margin_y = 30
menu_valign = top
item_height = 22
font = MigMix 1M bold 10
color_sel_bg = #ffffff 40
csv_name_format = %n
EOF
cat << 'EOF' >> ~/.config/jgmenu/append.csv
^sep()
ログアウト,kill `pgrep -a herbstluftwm`,system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
exit