i3wm - FreeBSD 13.1 RELEASE - 環境構築


 クラウディア


1. 概要
2. インストール
3. SDDM カスタマイズ
4. シャットダウンユーザ設定
5. 初期化ファイル作成
6. ログインマネージャ起動

1. 概要

 下記のデスクトップ環境を構築する手順を記述します。
 種別   リソース・設定   備考 
ホスト Windows10 21H2
仮想環境 VirtualBox 6.1.34
ゲスト FreeBSD 13.1 RELEASE
ログインマネージャ SDDM
仮想システムタイプ BSD
仮想システムバージョン FreeBSD (64bit)
ハードディスク 180 GB
メモリ 4 GB
CPU 2コア
グラフィックスコントローラ VBoxSVGA 128MB 3D Disable

 ここまでの時点で、システムインストールと「VirtualBox Guest Additions」の設定は終わっているものとします。
 ぞれぞれのインストール・設定に関しては

	「FreeBSD - デスクトップ環境構築 - 共通事項 - システムインストール」
	「FreeBSD - デスクトップ環境構築 - 共通事項 - VirtualBox Guest Additions」

 をご参照ください。

2. インストール

 「root」ユーザ権限で。

pkg install -y xorg ja-font-migmix numlockx
pkg install -y sddm sddm-freebsd-black-theme cursor-neutral-white-theme
pkg install -y x11-wm/i3 i3status
 2020年 6月25日時点で、「FreeBSD 11.4 RELEASE」へインストールしたときのバージョンが「4.18」でした。  2020年11月18日時点で、「FreeBSD 12.2 RELEASE」へインストールしたときのバージョンが「4.18.2」でした。  2021年 6月30日時点で、「FreeBSD 13.0 RELEASE」へインストールしたときのバージョンが「4.19.2」でした。  2021年12月27日時点で、「FreeBSD 12.3 RELEASE」へインストールしたときのバージョンが「4.19.2」で、前行と変わらず。  2022年5月27日の時点で、「i3wm」のバージョンは、下記の通りでした。

$ pkg info i3
i3-4.20.1
Name           : i3
Version        : 4.20.1
Installed on   : Fri May 27 16:27:47 2022 JST
Origin         : x11-wm/i3
Architecture   : FreeBSD:13:amd64
Prefix         : /usr/local
Categories     : x11-wm
Licenses       : BSD3CLAUSE
Maintainer     : bapt@FreeBSD.org
WWW            : https://i3wm.org
Comment        : Improved dynamic tiling window manager
Shared Libs required:
        libev.so.4
        libpcre.so.1
        libglib-2.0.so.0
        libgobject-2.0.so.0
        libxcb-shape.so.0
        libxcb-xinerama.so.0
        libstartup-notification-1.so.0
        libpango-1.0.so.0
        libcairo.so.2
        libxkbcommon-x11.so.0
        libxcb-util.so.1
        libxcb-xrm.so.0
        libxkbcommon.so.0
        libxcb-icccm.so.4
        libxcb-xkb.so.1
        libxcb-randr.so.0
        libxcb.so.1
        libxcb-cursor.so.0
        libxcb-keysyms.so.1
        libpangocairo-1.0.so.0
        libyajl.so.2
Annotations    :
        FreeBSD_version: 1300139
        repo_type      : binary
        repository     : FreeBSD
Flat size      : 798KiB
Description    :
i3 is an improved dynamic, tiling window manager.
Inspired by wmii that supported Xinerama.

WWW: https://i3wm.org

3. SDDM カスタマイズ

 ログイン画面の解像度を「1366x768」とし、キーボードレイアウトを「jp.106」にします。  「root」ユーザ権限で。

sh
cat << 'EOF' >>  /usr/local/share/sddm/scripts/Xsetup

xrandr --output VGA-0 --mode 1366x768 --rate 60
setxkbmap -layout jp
EOF
exit
 ログイン画面のテーマとカーソルを変更します。  「root」ユーザのまま

sddm --example-config > /usr/local/etc/sddm.conf
vi /usr/local/etc/sddm.conf

[Theme]
# Current theme name
Current=breeze

# Cursor theme used in the greeter
CursorTheme=breeze_cursors
 を下記へ変更します。

[Theme]
# Current theme name
Current=sddm-freebsd-black-theme

# Cursor theme used in the greeter
CursorTheme=Neutral++_White

4. シャットダウンユーザの設定

 一般ユーザからもシャットダウンできるようにします。  逆に、一般ユーザからシャットダウンさせないようにするにはこの手順を行わないでください。  「i3wm - Why does Mate system menu not have the Shutdown and Restart items? | The FreeBSD Forums」を参考にさせていただきました。

/usr/local/etc/polkit-1/rules.d/50-default.rules
 を編集します。  「root」ユーザ権限で。

sh
cat << 'EOF' >> /usr/local/etc/polkit-1/rules.d/50-default.rules

polkit.addRule(function (action, subject)
{
    if ((action.id == "org.freedesktop.consolekit.system.restart" ||
         action.id == "org.freedesktop.consolekit.system.stop")   &&
         subject.isInGroup("wheel"))
    {
        return polkit.Result.YES;
    }
});
EOF
exit
 「wheel」の箇所に、再起動・シャットダウンを許可したいユーザの所属する、グループ名を記述します。  わたしは、サスペンドを使いませんので、省略しています。  サスペンドを許可するには、「subject.isInGroup("wheel"))」の前に続けて、「|| action.id == "org.freedesktop.consolekit.system.suspend"」を追加します。

5. 初期化ファイル作成

 「root」ユーザ権限で。

sh
cat << 'EOF' >> /etc/profile
export LC_ALL="ja_JP.UTF-8"
export LANGUAGE="ja_JP.UTF-8"
export LANG="ja_JP.UTF-8"
EOF

cat << 'EOF' >> /etc/csh.cshrc
setenv LC_ALL   "ja_JP.UTF-8"
setenv LANGUAGE "ja_JP.UTF-8"
setenv LANG     "ja_JP.UTF-8"
EOF
exit

sh
cat << 'EOF' >> /usr/share/skel/dot.xsession
#!/bin/sh
#
setxkbmap -layout jp
numlockx on
/usr/local/bin/VBoxClient-all
EOF
exit

chmod +x /usr/share/skel/dot.xsession
 既存のログインユーザで。

cp /usr/share/skel/dot.xsession ~/.xsession

6. ログインマネージャ起動

 前項までインストール・設定したものを有効にします。  「root」ユーザ権限で。

sysrc polkitd_enable=YES
sysrc dbus_enable=YES
sysrc sddm_enable=YES
 起動します。

service dbus start
service sddm start
 うまく設定できていれば、ログイン画面が表示されます。  ユーザ名・パスワードを入力してログインします。


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