sway - 共通事項 - バー・メニュー - FreeBSD


 クラウディア


1. 概要
2. インストール
3. バー設定
4. メニュー設定

1. 概要

 デフォルトでついているバーは、いささか加工しにくい。  当初、いっそのこと「tint2」「jgmenu」でいこうかと考えていたのですが、「tint2」の幅と位置までは設定できたのですが、どうにも幅が、不格好に広いのをなおせない。  設定方法がわからないので、あきらめました。  「Garuda Linux」の設定がぱくれそうなので、やってみました。  2023年1月10日、「FreeBSD 12.4 RELEASE」では、「jgmenu」がこけるので、「xfce4-appfinder」を使用します。  「xfce4-appfinder」の設定に関しては、末尾をご参照ください。

2. インストール

 バーとして、デフォルトのものでなく「Garuda Linux」が使用している「waybar」を使用します。  メニューは、「jgmenu」、アイコンは「papirus」を使用します。  「root」ユーザ権限で。

pkg install -y waybar jgmenu papirus-icon-theme
 インストール直後に、ログインユーザで、「jgmenu」のコンフィグレーションファイルを作成します(最近はこの処理も割愛、2023年1月10日)。

jgmenu_run init

3. バー設定

 以下、ログインユーザで。  「waybar」のデフォルトの設定をコピー。

mkdir -pv ~/.config/waybar
cp /usr/local/etc/xdg/waybar/* ~/.config/waybar/.
 起動時に、デフォルトのバーでなく「waybar」を表示します。

vi ~/.config/sway/config

# Read `man 5 sway-bar` for more information about this section.
bar {
    position top

    # When the status_command prints a new line to stdout, swaybar updates.
    # The default just shows the current date and time.
    status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done

    colors {
        statusline #ffffff
        background #323232
        inactive_workspace #32323200 #32323200 #5c5c5c
    }
}
 を下記へ書き換えます。  (バージョンにより、行番号は、異なります)

# Read `man 5 sway-bar` for more information about this section.
bar {
    swaybar_command waybar
}
 「waybar」の設定を変更します。  まずは、フォントとサイズ。

vi ~/.config/waybar/style.css

* {
    /* `otf-font-awesome` is required to be installed for icons */
    font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
    font-size: 13px;
}
 を下記へ変更します(3、4行)。

* {
    /* `otf-font-awesome` is required to be installed for icons */
    font-family: "MigMix 1M", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
    font-size: 12px;
}
 「waybar」の設定を変更します。  (「sway 1.9」は、ファイル名や行番号が異なりますので、もっと下へ書いております)

vi ~/.config/waybar/config

{
    // "layer": "top", // Waybar at top layer
    // "position": "bottom", // Waybar position (top|bottom|left|right)
    "height": 30, // Waybar height (to be removed for auto height)
    // "width": 1280, // Waybar width
    "spacing": 4, // Gaps between modules (4px)
    // Choose the order of the modules
    "modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
 8行目、バーの左端に、後で定義する「jgmenu」のランチャーを追加します。

{
    // "layer": "top", // Waybar at top layer
    // "position": "bottom", // Waybar position (top|bottom|left|right)
    "height": 30, // Waybar height (to be removed for auto height)
    // "width": 1280, // Waybar width
    "spacing": 4, // Gaps between modules (4px)
    // Choose the order of the modules
    "modules-left": ["custom/launcher","sway/workspaces", "sway/mode", "custom/media"],

    }
}
 末尾の2行の間(行番号は、バージョンにより異なります)に「jgmenu」のランチャーの定義を記述します。

    },
         "custom/launcher": {
        "format":" ? ",
        "on-click": "exec jgmenu_run",
        "tooltip": false,
	},
}
 160行は、このままコピペしてもだめです。  そのために、「vi」でなく、明示的に「vim」で書いておるのですが、「"」ダブルコーテーションの間は、半角スペースで挟んで。  挿入モードで Ctrl+V に続けて、「uf1d8」と入力します。  紙飛行機のアイコンになるはずです。  「sway 1.9」は、ファイル名や行番号が異なります。

vi ~/.config/waybar/config.jsonc

// -*- mode: jsonc -*-
{
    // "layer": "top", // Waybar at top layer
    // "position": "bottom", // Waybar position (top|bottom|left|right)
    "height": 30, // Waybar height (to be removed for auto height)
    // "width": 1280, // Waybar width
    "spacing": 4, // Gaps between modules (4px)
    // Choose the order of the modules
    "modules-left": [
        "sway/workspaces",
        "sway/mode",
        "sway/scratchpad",
        "custom/media"
    ],
 9、10行の間に下記の行を挿入します。

        "custom/launcher",

    }
}
 末尾の2行の間(行番号は、バージョンにより異なります)に「jgmenu」のランチャーの定義を記述します。  217行の記述は、前の160行の記述と同様です。

    },
         "custom/launcher": {
        "format":" ? ",
        "on-click": "exec jgmenu_run",
        "tooltip": false,
	},
}
 「sway」をリロードすれば、「waybar」が、有効になっているはずです。

4. メニュー設定

 「jgmenu」のコンフィグレーションファイルは、デフォルトでは、すべてコメントアウトされていますので、編集後の状態のみ掲載します。  ログインユーザで。

vi ~/.config/jgmenu/jgmenurc
 表示位置をずらします。

menu_margin_x = 20
menu_margin_y = 40
 上に表示。

menu_valign = top
 項目の間隔を少し狭く。

 item_height = 22
 フォントを自分好みに。

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()
ログアウト,pkill sway,system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
exit
 「jgmenu_run init」を行っていない場合は、上記を一気にまとめて  (以前と少し、設定を変えています。2023年5月25日)

mkdir -pv ~/.config/jgmenu

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

cat << 'EOF' >>  ~/.config/jgmenu/append.csv
^sep()
ログアウト,pkill sway,system-log-out
再起動,sudo /sbin/reboot,system-reboot
シャットダウン,sudo /sbin/poweroff,system-shutdown
EOF
exit
 「/sbin/reboot」「/sbin/poweroff」は、「visudo」でパスワードなしで、ログインユーザが実行できるようにしておく必要があります。

earthcar(アースカー)
葬送のフリーレン Prime Video
ネットオークションの相場、統計、価格比較といえばオークファン
薬屋の独り言
世界最大級のオンライン英会話EF English Live