FreeBSD 14.1 + Wayland + Swayインストール、日本語入力環境Fcitx5 + Anthy
はじめに
FreeBSDでSwayオンリー環境を作ってみました。Xfce4などのデスクトップ環境を保険に使わず、コンソールでごりごり設定ファイルをいじる練習です。
この環境でやろうとしていること
- Webブラウジング
- YouTube視聴
この環境でやらない(できない?)こと
できないことはない?らしいのですが、以下のことは諦めます。
GhostBSDだと、現行版で、ネトフリ等が見られるChromiumのビルドができるらしいのですが…
GhostBSD 24.10.1 Is Now Available
- アマプラやAbema等の配信動画視聴
- Steam(ゲーム)
- VirtualBox等の仮想ソフトウェア使用
あとBluetooth設定がちょっと難しそう。
インストール対象
Panasonic CF-SZ6
第7世代Core i5のマシンです。
インストールメディアの準備
公式からISOファイルをダウンロードします。
Linuxで作業をする前提でお話しすると
FreeBSD-14.1-RELEASE-amd64-disc1.iso はUNetbootinやVentoyなど、
FreeBSD-14.1-RELEASE-amd64-memstick.img はddコマンドを使ってUSBメモリに書き込みます。
FreeBSDのインストール
基本的にハンドブックを見ながら進めて良いと思いますが、いくつか注意点があります。
なお、ハンドブックの日本語版は情報が古いと見られる部分があるため、英語版に基づいて作業しました。
ディスク領域の割り当て
ハンドブックの説明の画面では、「AUTO (UFS)」を選択します。
ZFSはWaylandと相性が良くないようです。
ネットワークインターフェース設定
ノートPCなので、無線LANを選択しました。
Regdomain(ワイヤレス規制ドメイン)が合っていなかったので、手動で「JAPAN」→「JP」(または「J2」でも動作しました)に設定しました。
パッケージのインストール
sudo, bash
# pkg install sudo bash bash-completion
visudoコマンドでsudoersファイルを編集し、wheelグループに管理者権限を付与。
# visudo
## sudoers file.
(略)
- # %wheel ALL=(ALL:ALL) ALL
+ %wheel ALL=(ALL:ALL) ALL
インストール時にユーザーをwheelグループへ追加していなかった場合は、この辺で追加してしまいましょう。
# pw groupmod wheel -m USERNAME
シェルをbashに変更
# chsh -s “$(which bash)" USERNAME
bash-completionを設定。
# Use bash-completion, if available
[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \
. /usr/share/bash-completion/bash_completion
rootからログアウトし、ユーザーでログイン。
基本ツール
$ sudo pkg install vim nano neovim git curl wget zip unzip htop neofetch fastfetch xdg-user-dirs
ディレクトリ名補完時に大文字小文字を無視する設定。
set completion-ignore-case on
グラフィックドライバ
ハンドブックのX.org編を参照。
以下はintelの場合です。
$ sudo pkg install drm-kmod
ビデオアクセラレータやコーデックもあるので入れました(情報をどこで見かけたか忘れました…)。
$ sudo pkg install libva-intel-driver libva-utils openh264
Wayland, Sway, その他ツール
$ sudo pkg install wayland seatd xwayland
$ sudo pkg install sway swayidle swaylock-effects waybar foot wofi mako thunar xarchiver pavucontrol alsa-utils networkmgr
スクリーンショットを撮るためのアプリも入れます。
$ sudo pkg install grim slurp swappy
フォント、日本語IME
fcitx5-mozcはFreeBSDパッケージにないので、fcitx5-anthyを使っています。
$ sudo pkg install xorg-fonts noto-basic noto-jp noto-emoji noto-extra fcitx5 fcitx5-configtool ja-fcitx5-anthy
ブラウザ等
FireFoxの他はお好みで。
$ sudo pkg install firefox openshot obs-studio
設定ファイルの編集
seatdの有効化
$ sudo sysrc seatd_enable="YES"
グラフィックドライバの有効化
$ sudo sysrc kld_list+=i915kms
$ sudo pw groupmod video -m USERNAME
メッセージサイズの拡張(これ要るかな?)
ハンドブックのデスクトップ環境編のKDEパートを参考にしました。
この設定は必須ではないかもしれません。
$ sudo sysctl net.local.stream.recvspace=65536
$ sudo sysctl net.local.stream.sendspace=65536
Fcitx5用の環境変数
ArchLinuxをいじったことのある人にはお馴染みの「おまじない」です。
$ mkdir ~/.config/environment.d
XMODIFIERS='@im=fcitx'
Waylandオンリー環境のため、GTK_IM_MODULE
,QT_IM_MODULE
の設定は行いません。
Sway関連設定ファイル
~/.config ディレクトリ下に、サンプル設定ファイルをコピーしてきます。
$ mkdir ~/.config/sway
$ cp /usr/local/etc/sway/config ~/.config/sway/
$ mkdir ~/.config/sway/config.d/
$ mkdir ~/.config/foot
$ cp /usr/local/etc/xdg/foot/foot.ini ~/.config/foot/
$ mkdir ~/.config/waybar
$ cp /usr/local/etc/xdg/waybar/* ~/.config/waybar/
~/.config/sway/config.d ディレクトリ下に、自動起動アプリケーション・キーボード・タッチパッド設定ファイルを作成します。
exec --no-startup-id mako
exec --no-startup-id fcitx5 -dr
JIS配列キーボードの設定。
input type:keyboard {
xkb_layout "jp"
}
タッチパッドは、「タップしてクリック」「キー入力中はタッチパッドを無効化(disable while typing」を有効とします。後者ややこしいな…
input type:touchpad {
tap enabled
dwt enabled
}
キーで音量調整するための設定ファイル。
Sway - ArchWikiをパク参考にしました。
pavucontrolはこのために入れました。
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
スクリーンショット撮影用設定ファイル。
bindsym Print exec ~/.local/bin/screenshot.sh all
bindsym Shift+Print exec ~/.local/bin/screenshot.sh window
bindsym Ctrl+Print exec ~/.local/bin/screenshot.sh output
bindsym Ctrl+Shift+Print exec ~/.local/bin/screenshot.sh region
下記リンクを参考に、~/.local/bin/screenshot.sh
も作成。
sway/config
Sway自体の設定ファイル(~/.config/sway/config
)を編集します。
メニューにはwofi、タスクバーにはwaybarを使います。
また、config.dディレクトリもホーム下にあるものに直します。
- set $menu dmenu_path | wmenu | xargs swaymsg exec --
+ set $menu wofi -G --show drun
(略)
bar {
- (コメントアウト)
+ swaybar_command waybar
}
- include /usr/local/etc/sway/config.d/*
+ include ~/.config/sway/config.d/*
文字サイズの調整
ディスプレイ解像度をいじる代わりに、端末やタスクバーの文字を大きくします。文字サイズはお好みで。
- font=monospace:size=8
+ font=monospace:size=14
* {
(略)
- font-size:13px;
+ font-size:17px;
}
Swayの起動
gdm, sddm, lightdm等のディスプレイマネージャは、今回は入れていません。
そのため、Sway起動ファイルを作ります。
とりあえず起動部分のみ。他に必要なものがあれば追加していきます。
#!/bin/sh
exec sway
実行可能ファイルにします。
$ chmod +x ~/swayon.sh
下記コマンドでSwayを起動します。
$ ./swayon.sh
無事起動。htop
のマシン名・CPU・GPUの箇所にご注目いただければ弊環境の証明になるかと思います。
今後
Webカメラ使えるかなぁと思いながら試行錯誤中です。
Discussion