NetBSD Advent Calendar 2018、1日目の記事です。日もとっぷり暮れてしまってからの投稿です...。
今日はNetBSDをデスクトップ用途で使う場合の設定手順を紹介しようと思います。
背景
sshとかで端末にログインして作業するような生活をしていると、「GUIは無くてもまあ何とかなる」と思ってしまうことがあります。とはいえ、古いノートPCにNetBSDをインストールして利用するような場合にはGUI環境があれば良いなと思うこともあります。
もちろんNetBSDでもGUIな環境は構築できますが、毎回手順を忘れてググるのと、微妙にハマったりすることがあるので、備忘録的な意味も兼ねて設定手順を記録しておきます。
手順を試してみた環境
今回はNetBSD-8.0(amd64)な環境で手順を試しています。
今回のゴール
今回構築するGUI環境では、以下ができればOKとします。
- X11の設定手順が行えること
- デスクトップ環境が利用できる状態になること
- 日本語入力が行えること
- VNCでリモートからアクセスできるようになること
事前準備
GUI環境の設定に際して、以下の項目は事前に設定を済ませた状態にしておきます。
- NetBSDのインストール
- sudoの設定を済ませておきます。
必要なパッケージ
まずは今回の設定に必要となるパッケージをインストールします。
$ # Xfceデスクトップ環境用のパッケージ
$ sudo -i pkg_add -v xfce4 xfce4-panel xfce4-wm-themes xfce4-icon-theme
$
$ # 日本語フォント
$ sudo -i pkg_add -v ja-sazanami-ttf
$
$ # 日本語入力用のパッケージ
$ sudo -i pkg_add -v scim-uim scim-anthy
$
$ # VNCサーバ
$ sudo -i pkg_add tigervnc
$
$ # メモ帳的なアプリケーション
$ sudo -i pkg_add -v leafpad
$
$ # Webブラウザ
$ sudo -i pkg_add -v firefox
また、 pkgse
というパッケージをインストールしておくと、Yumで言うところの yum search
的なことができて便利です。
$ sudo -i pkg_add -v pkgse
X11の設定
X11の設定は、以前の記事にもあるように、以下の手順で /etc/xorg.conf
を用意すればOKです。
$ sudo Xorg -configure
$ sudo X -config /root/xorg.conf.new
$ sudo cp /root/xorg.conf.new /etc/xorg.conf
X11起動時にXfceを起動させる
X11の起動は xinit
コマンドで行いますが、その際に $HOME/xinitrc
を用意しておくとX11の起動と共にXfceが立ち上がります。
私の環境では以下のような $HOME/.xinitrc
を用意しています。
# .xinitrc
[ $HOME/.Xmodmap ] && xmodmap $HOME/.Xmodmap
export LANG=ja_JP.UTF-8
# ASCII文字の0x07(BEL)が来ても音を鳴らさないようにする
xset b off
# デスクトップの背景色を紺色にする
xsetroot -solid midnightblue
# プロジェクタでデスクトップを移す際の画面サイズ設定
# (ノートPCとかでない限り不要な設定かも)
#xrandr --addmode VGA 1280x800
#xrandr --addmode VGA 1024x768
# 日本語入力周りの設定
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
uim-xim &
uim-toolbar-gtk &
export XMODIFIERS="@im=uim"
# Xfceを起動する
exec xfce4-session
日本語入力まわりの設定
今回の日本語入力設定では、 uim
と anthy
を使用します。
日本語入力ON/OFFキーの変更
Anthyのデフォルト設定では、日本語入力のON/OFFを行うキーシーケンスが Shift+SPACE
になっています。知らないと微妙にハマる(日本語入力ONの状態から戻せなくなる)ので、自分の使いやすいキーシーケンスに変更しておきます。今回は Shift+O
に設定してみます。
以下のコマンドでUIMの設定画面を開きます。
$ uim-pref-gtk
Anthyのオン・オフのキーシーケンスを設定します。キーを取得した後に「追加(A)」を押さないと設定が有効にならないので注意してください(忘れがちです...)。
設定が完了したら、最後に「適用」または「OK」ボタンを押します(これも忘れがちです...)。
VNCの設定
次はVNCの設定です。コンソールから xinit
コマンドを実行するとX11起動→Xfce起動となりますが、VNCのデフォルト設定では $HOME/.xinitrc
を読み込みません。
そのため、以下の手順でVNCサーバ起動時に $HOME/.xinitrc
のが参照されるようにします。
VNCでもXfceが起動するようにする
具体的にはVNC(tigervnc)の設定ファイルである $HOME/.vnc/xstartup
で .xinitrc
を実行するように設定します。なので、 $HOME/.xinitrc
は chmod +x
しておきます。
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = 'Linux' ]; then
case "$WINDOWMANAGER" in
*gnome*)
if [ -e /etc/SuSE-release ]; then
PATH=$PATH:/opt/gnome/bin
export PATH
fi
;;
esac
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
$HOME/.xinitrc
VNCサーバを起動します。
$ vncserver -depth 24 :0
VNCにセキュアに接続する
VNC自体は暗号化の機能を提供しないため、ローカルマシンの仮想マシン上で動かすような場合を除き、何らかのセキュリティ確保が必要です。一番手っ取り早い対応方法は、sshのトンネリング機能を利用するというものです。
以下の手順で5900番ポートの通信はsshによって暗号化されます。この方法であれば、クラウド上のインスタンスで動作しているVNCサーバにも安全に接続できます。
$ ssh -L 5900:localhost:5900 <ホスト名>
まとめ
NetBSDで最小限のデスクトップ環境を設定する手順を紹介しました。
後は必要に応じてパッケージでGUIなアプリケーションをインストールすれば通常利用においてはあまり困らないかと思います。
明日の記事ではNetBSDを利用したUSBメモリのちょっとした利用Tipsを紹介できればと思います。