- 1. 概要
- 2. インストール
- 3. シャットダウンユーザの設定
- 4. /etc/rc.conf 編集
- 5. ユーザ用初期化ファイルの作成
- 6. ログインマネージャ起動
1. 概要
下記のデスクトップ環境を構築する手順を記述します。
システム | | ホスト(Windows 10 1903 amd64)・VirtualBox 6.0.14 上のゲストとして FreeBSD 12.1 RELEASE |
ログインマネージャ | | Slim |
日本語入力 | | fcitx-mozc |
インストーラ入手やオペレーティングシステムのインストールあたりまでは「FreeBSD のOSインストール」を参照してください。
2. インストール
pkg install -y xorg ja-font-migmix ja-fcitx-mozc zh-fcitx-configtool
pkg install -y slim slim-themes
pkg install -y icewm
3. シャットダウンユーザの設定
一般ユーザからもシャットダウンできるようにします。
逆に、一般ユーザからシャットダウンさせないようにするにはこの手順を行わないでください。
下記のファイルを編集して、例えば、「wheel」グループへ、再起動・シャットダウンを許可するものとして、末尾に以下を追加します。
(スクリプトでいきなり編集しようとしたら、うまくいきませんでした)
ここが一番、問題。何故なら、まだ、ユーザからシャットダウンできないからです。
この赤字の点、どうも「IceWM」が原因かもしれません(「IceWM - ArchWiki」参照)。
vi /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;
}
});
「wheel」の箇所に、再起動・シャットダウンを許可したいユーザの所属する、グループ名を記述します。
わたしは、サスペンドを使いませんので、省略していますが、サスペンドを許可するには、17行の「)」の前に続けて、「|| action.id == "org.freedesktop.consolekit.system.suspend"」を追加します。
4. /etc/rc.conf 編集
前項までインストール・設定したものを有効にします。
cat - << EOF >> /etc/rc.conf
polkitd_enable="YES"
dbus_enable="YES"
slim_enable="YES"
EOF
5. ユーザ用初期化ファイルの作成
/usr/share/skel/dot.xinitrc
というファイルを作成して、編集します。
cat - << EOF >> /usr/share/skel/dot.xinitrc
#!/bin/sh
# set locale
export LC_ALL=ja_JP.UTF-8
export LANGUAGE=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
#
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=xim
export XMODIFIERS=@im=fcitx
/usr/local/bin/mozc start
fcitx -r -d
#
setxkbmap -layout jp
#
exec $1
EOF
既存のログインユーザは、上記をコピーします。
cp /usr/share/skel/dot.xinitrc ~/.xinitrc
各ログインユーザで、「VirtualBox Client」を起動する設定を行います。
mkdir -pv ~/.icewm
cat - << EOF >> ~/.icewm/startup
#!/bin/sh
/usr/local/bin/VBoxClient-all
EOF
chmod +x ~/.icewm/startup
「$1」で起動させるために、ファイルを作成して、編集します。
mkdir -pv /usr/local/share/xsessions
cat - << EOF >> /usr/local/share/xsessions/icewm-session.desktop
[Desktop Entry]
Encoding=UTF-8
Type=XSession
Name=IceWM Session
GenericName=Window Manager
Comment=This session logs you into IceWM
Comment[ja]=IceWM セッションにログインします
Icon=icewm
TryExec=/usr/local/bin/icewm-session
Exec=icewm-session
NoDisplay=false
Hidden=false
Categories=WindowManager;Application;System;
StartupNotify=false
X-GNOME-Autostart-Notify=false
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-WMName=icewm
DesktopNames=ICEWM
X-LightDM-DesktopName=icewm
[Window Manager]
Name=icewm
SessionManaged=true
StartupNotification=false
EOF
6. ログインマネージャ起動
上記までの設定が終わったら、デーモン群を起動します。
service dbus start
service slim start
うまく設定できていれば、ログイン画面が表示されます(テーマは fbsd)。
ユーザ名・パスワードを入力してログインします。

デフォルトのデスクトップはこんな感じになっています。

2019年11月22日時点の IceWM は、下記のバージョンでした。
> pkg info icewm
icewm-1.3.8_5
Name : icewm
Version : 1.3.8_5
Installed on : Fri Nov 22 08:33:58 2019 JST
Origin : x11-wm/icewm
Architecture : FreeBSD:12:amd64
Prefix : /usr/local
Categories : x11-wm
Licenses : LGPL20
Maintainer : portmaster@bsdforge.com
WWW : http://www.icewm.org/
Comment : Window Manager designed for speed, usability and consistency
Options :
BEASTIE : on
DOCS : on
GNOME : off
LITE : off
MENUFIX : on
NLS : on
XFT : on
XINERAMA : on
XRANDR : on
Shared Libs required:
libglib-2.0.so.0
libgdk_pixbuf_xlib-2.0.so.0
libgobject-2.0.so.0
libXrender.so.1
libfreetype.so.6
libXext.so.6
libICE.so.6
libXft.so.2
libintl.so.8
libSM.so.6
libXrandr.so.2
libiconv.so.2
libfontconfig.so.1
libgdk_pixbuf-2.0.so.0
libXinerama.so.1
libX11.so.6
Annotations :
FreeBSD_version: 1200086
repo_type : binary
repository : FreeBSD
Flat size : 3.01MiB
Description :
Window Manager designed for speed, usability and consistency.
'bsd-daemon.xpm' is from Steve Farrell.
WWW: http://www.icewm.org/
|