#topicpath
*河豚板の日本語デスクトップ環境設定ツール [#re3b4d2a]
RIGHT:EBUG 第72回会合 ~
2020年2月29日~
三条市、SnowPeakキャンプ場 ~
川俣吉広、kaw@on.rim.or.jp

今回は過去のEBUG勉強会ではあまり触れられてこなかったXのデスクトップ環境についての話題です。

** 背景 [#k6a027d3]
0. ''河豚板のリリースのたびに環境作ってテストするの面倒くさい。''

1. FuguIta BBSでの質問
#ref(sshot3.png,wrap,around,right,zoom,250x250)
-[[Installing IceWM in FuguIta 6.6>FuguIta/BBS#s8ac28e9]] ~
Hi, Kaw!~
How can I install IceWM in FuguIta as my main window manager?~
How many MB or GB of space should I use for the swap partition for
the installation of FuguIta?
#clear

2. 河豚板でキオスク端末的なやつを作ってみた
#ref(kiosk2.jpg,wrap,around,right,zoom,250x250)
#ref(kiosk1.jpg,wrap,around,right,zoom,250x250)
-https://twitter.com/yoshi_kaw/status/1206620780697505792 ~
A turnkey browser system that runs on #FuguIta. I made it for my mother.~
Press the power button, click any icon of the configured URL,~
and finally press the power button again to shut down #OpenBSD automatically.~
That's all.
#clear

** 概要 [#g7fd34b7]
***各BSDでのXの導入状況 [#b1513a30]

||FreeBSD 12.1|NetBSD 8.1|OpenBSD 6.6|h
|OSデフォルト|Xなし(Portsから要導入)&br;(XOrg 1.18.4)|XOrg 1.18.4|xenocara (*1)&br;(XOrg 1.20.5)|
|初期環境|''twm''|twm, ''ctwm''|twm, ''fvwm'', cwm|
|フットプリント|2.5GB|1.5GB|1.3GB (*2)|
||&ref(freebsd-ss.png,zoom,250x250);|&ref(netbsd-ss.png,zoom,250x250);|&ref(openbsd-ss.png,zoom,250x250);|
|備考|デスクトップ用途に特化したフォークあり。&br;[[TrueOS>https://www.trueos.org/]]&br;[[GhostBSD>https://www.ghostbsd.org/]]など||*1 xenocara ... OpenBSDのXOrgサーバ実装。特権放棄と権限分離が組込まれている。&br;*2 河豚板では KARL(Kernel Adress Randomized Link)が入っていないため、約940MB|

***OpenBSDでのXデスクトップ導入 [#o5158401]
参考資料

-30分でできる OpenBSD 日本語デスクトップ環境~
「デスクトップ環境として OpenBSD を用いることは、実はとても簡単です...」
--https://yasuoka.net/~yasuoka/openbsd-desktop.html

-OpenBSD 6.0 で Xfce4 日本語デスクトップ環境の構築~
「この文書では OpenBSD 6.0 で簡単に日本語デスクトップ環境を構築する方法を説明しています...」
--https://qiita.com/kinichiro/items/dac58e29b7fca01de705
--続編: OpenBSD 6.2 のデスクトップに Mate を導入 - https://qiita.com/kinichiro/items/858952f4bb8380c8ea61

どちらの資料でも、以下のような手順により導入を行っている:

+Xのログインマネージャ(xenodm, slimなど)をセットアップ
+pkg_addでデスクトップ環境と日本語環境関連のソフトウェアをインストール
+$HOME/.xsessionをセットアップ
--dbus等message busの設定
--言語関連の環境変数
--入力メソッドの起動
--ウィンドウマネージャ and/or デスクトップ環境の起動
+その他アプリケーション(ウェブブラウザなど)のインストールと設定

** インストーラの実装[#j657f41a]

''dtjsetup'' - &ruby(デスクトップ){DeskTop}; (&ruby(何ならついでに日本語も){plus optionally Japanese};) &ruby(設定){SetUp}; &ruby(ツール){Tool};

*** 実装方針 [#g9fd14f5]
-前項の導入手順のうち、pkg_addと.xsessionのセットアップをスクリプト化する。
--ログインマネージャのセットアップは河豚板本体で実行済み
--アプリケーションのインストールと設定は各自お好みで。
--最終的にはLiveシステムへの永続化が必要 → 河豚板ではusbfadmユティリティで実施

-straightforward(直截的)な実行
--リトライ等なし ... エラーが発生したら、原因を表示して終了

-シンプルなU/I
--ユーザに入力を必要とさせない ... y/nあるいは複数項目からの選択のみ

*** 実際の動作の様子 [#j3468b3b]
-[[河豚板ガイドでの説明>河豚板ガイド#r41dd079]]

--デスクトップ環境 - WMのみ, ROX-Filer+WM, Xfce, MATE, Lumina, LXQt

--ウィンドウマネージャ - cwm, FVWM, Twm, icewm, fluxbox, jwm, $DTJ_WMSで設定したウィンドウマネージャ

--入力メソッド - SCIM-Anthy, UIM-GTK, Fcitx-Anthy, ibus-SKK

*** コーディング &ref(dtjsetup.txt); [#a611fac1]
シェル(ksh)スクリプトで記述

-ユーザ選択/力のための補助関数
-[[ユーザ選択/力のための補助関数>https://github.com/ykaw/FuguIta/blob/master/rdroot/boottmp/dtjsetup#L44]]

-実行環境のチェック
--[[ユーザの環境によってroot権限の関数定義を変える>https://github.com/ykaw/FuguIta/blob/master/rdroot/boottmp/dtjsetup#L318]]
--[[パッケージの設定とネットワーク環境のチェック>https://github.com/ykaw/FuguIta/blob/master/rdroot/boottmp/dtjsetup#L355]]

-ユーザの環境によってroot権限の関数定義を変える
-[[.xsessionの雛形をhere documentで作って流し込む>https://github.com/ykaw/FuguIta/blob/master/rdroot/boottmp/dtjsetup#L417]]

-.xsessionの雛形をhere documentで作って流し込む

///--デスクトップ環境の選択
///
///--デスクトップ環境「なし」、「rox-filer」の場合
///---ウィンドウ・マネージャの選択
///
///--日本語環境を導入するか?
///---日本語入力メソッドの選択
///
///--インストール権限のチェック
///
///--ネットワーク環境のチェック
///
///--pkg_addの実行
///
///-- .xsessionの生成
///--- 古い.xsessionのバックアップ
///--- .xsessionを/etc/skelにコピーするか?
///
///--日本語環境ありの場合
///--- time zoneをJSTに設定するか?
///--- ハードウェアクロックがJSTと仮定するか?

** Future Work [#mf852c81]
-root権限 / ネットワークアクセスが不要な場合への対応

-デスクトップ環境のextra packageに対応させる

-メジャーなアプリケーション(ウェブブラウザなど)のインストールに対応させる

-インストールの永続化を実行(現在は表示のみ)

** その他の話題 [#a6d4235a]
*** BitTorrentによる配布 [#e22dfe65]
[[LinuxTracker.org>https://linuxtracker.org/index.php?page=torrents&search=&category=2046&active=1]]にてBitTorrentによる配布を開始

----
#topicpath

Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes