ここまでの時点で、システムインストールと「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
2023年1月4日の時点で、「i3wm」のバージョンは、下記の通りでした。
$ pkg info i3
i3-4.21
Name : i3
Version : 4.21
Installed on : Wed Jan 4 11:24:54 2023 JST
Origin : x11-wm/i3
Architecture : FreeBSD:12: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:
libyajl.so.2
libxkbcommon.so.0
libxkbcommon-x11.so.0
libxcb.so.1
libxcb-xrm.so.0
libxcb-xkb.so.1
libxcb-xinerama.so.0
libxcb-util.so.1
libxcb-shape.so.0
libxcb-randr.so.0
libxcb-keysyms.so.1
libxcb-icccm.so.4
libxcb-cursor.so.0
libstartup-notification-1.so.0
libpcre2-8.so.0
libpangocairo-1.0.so.0
libpango-1.0.so.0
libgobject-2.0.so.0
libglib-2.0.so.0
libev.so.4
libcairo.so.2
Annotations :
FreeBSD_version: 1203000
repo_type : binary
repository : FreeBSD
Flat size : 807KiB
Description :
i3 is an improved dynamic, tiling window manager.
Inspired by wmii that supported Xinerama.
WWW: https://i3wm.org
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.2 RELEASE」へインストールしたときのバージョンが「4.19.2」でした。
きちんとメンテナンスされ続けています。
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 dbus_enable=YES
sysrc sddm_enable=YES
起動します。
service dbus start
service sddm start
うまく設定できていれば、ログイン画面が表示されます。
ユーザ名・パスワードを入力してログインします。