IceWM - FreeBSD 12.1 RELEASE - 環境構築

 
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)。  ユーザ名・パスワードを入力してログインします。
「IceWM FreeBSD 12.1」- ログイン画面

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

「IceWM FreeBSD 12.1」- デフォルトのデスクトップ


 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/
 
 
カウンタバックグラウンド