みなさん、好きな Window Manager は何ですか?こんにちは、EarthSimilarityIndex です。
今回のコンセプトは「システム設定をいじらずにユーザー毎の設定だけで対応する」です。結果としてやや煩雑となってしまいました。
X における日本語キーボード及び日本語入力の設定については「逆襲の Slackware」さんで書かれているやり方が素直かつわかりやすいのでおすすめです。
X Window設定 | 逆襲のSlackware
https://slackware.jp/configuration/x_window_configuration.html
Anthy は G-HAL さんの patch をあてるとすごく強くなるとか。
最新安定版はこちら。
anthy-9100h.patch13-release-2019406.alt-depgraph-120315-angie.zipdic-201101.tar.xz
逆襲のSlackwareさんの記事を最新安定版に適宜読み替えて実行。xz だと~~tar -Jxfv anthy-9100h.patch13-release-2019406.alt-depgraph-120315-angie.zipdic-201101.tar.xz
とかかな?~~man tar
等で確認よろです。
× tar -Jxfv anthy-9100h.patch13-release-2019406.alt-depgraph-120315-angie.zipdic-201101.tar.xz
○ tar Jxfv anthy-9100h.patch13-release-2019406.alt-depgraph-120315-angie.zipdic-201101.tar.xz
もしくは
○ tar -Jxvf anthy-9100h.patch13-release-2019406.alt-depgraph-120315-angie.zipdic-201101.tar.xz
解凍先を指定しての場合、オプション指定で"-"を使うなら最後をfにしないとダメでした。ごめんなさい。
CAUTION: バグに注意
G-HAL さん家の patch13 系列リリースノートより
2012Z15版より前のバージョンには学習データを壊すバグがあります。
お手数ですが 2012Z15版以降に更新の上、 学習データを削除(/bin/rm ${HOME}/.anthy/last-record*)して下さい。
.xinitrc って?
linux コンソールで xinit とか startx とか打ち込むと読み込まれる設定ファイルです。
xwmconfig って?
Slackware の対話的な wm 切り替えツールです。startx や xinit で X を立ち上げるユーザー向け。
※ グラフィカルなログインマネージャは .xinitrc を読まないことが多いので。
root アカウントで実行すると "/etc/X11/xinit/xinitrc" のシンボリックリンクを切り替えてシステムデフォルトの wm を設定。非ルート環境では ~/.xinitrc を生成。
問題点
生成された設定ファイルのみでは英語キーマップで X が起動してしまう。
xwmconfig を実行する毎に .xinitrc を編集するのは面倒くさい。
解決方法
xwmconfig で生成された .xinitrc は .Xmodmap を参照するのでそれを利用すれば良い。
※ .Xmodmap の X は大文字です。
日本語キーボードなら、X 上の端末エミュレータからこんな感じで設定。
$ setxkbmap -layout jp
$ xmodmap -pke > ~/.Xmodmap
参考資料: manpage
最新版についてはコマンドラインから man ページを引いて下さいな。
setxkbmap
https://linux.die.net/man/1/setxkbmap
http://xjman.dsl.gr.jp/man/man1/setxkbmap.1x.html
xmodmap
https://linux.die.net/man/1/xmodmap
http://xjman.dsl.gr.jp/man/man1/xmodmap.1x.html
参考資料: xfce 起動用 .xinitrc
# !/bin/sh
# xinitrc.xfce - modified to work around xfce4session bug
# https://bugzilla.xfce.org/show_bug.cgi?id=8841
########################################################################
## Merge in defaults and keymaps ##
########################################################################
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
if [ -f $sysresources ]; then
/usr/bin/xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
/usr/bin/xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
/usr/bin/xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
/usr/bin/xmodmap $usermodmap
fi
########################################################################
## Start xfce Desktop Environment ##
########################################################################
if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
exec ck-launch-session dbus-launch --exit-with-session /usr/bin/startxfce4
else
exec dbus-launch --exit-with-session /usr/bin/startxfce4
fi
日本語ロケールで起動したい
LANG=ja_JP.UTF-8 startx
とかでおk
インプットメソッドどうしましょ
標準的インストール環境
例えば .profile や .bashrc で /etc/profile.d/scim.sh を source しておく。
SlackBuilds.org から色々インストールした環境
例えば .profile や .bashrc に適当適切な環境変数を与えておく。
※ wm によっては起動時にインプットメソッドのデーモンを呼び出しておく必要が有ります。
※ クロの思考ノートのクロさんが fcitx-mozc を SlackBuilds.org に投稿して下さっています。ありがたや。
scim
export GTK_IM_MODULE="scim"
export QT_IM_MODULE="scim"
export XMODIFIERS="@im=SCIM"
export DefaultIMModule="scim"
export XIM_PROGRAM="/usr/bin/scim -d"
ibus
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export DefaultIMModule=ibus
export XIM_PROGRAM="/usr/bin/ibus-daemon --config=/usr/libexec/ibus-dconf -dxr"
fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
export XIM_PROGRAM="/usr/bin/fcitx -dr"
Daemon 呼び出し
Demon(鬼、悪魔、ひとでなし)ではないです。
間違って呼び出さないこと。
scim
/usr/bin/scim -d
ibus
/usr/bin/ibus-daemon --config=/usr/libexec/ibus-dconf -dxr
fcitx
/usr/bin/fcitx -dr
グラフィカルログイン(SDDM や GDM 等)の場合
グラフィカルログインへの切り替え
※ グラフィカルログインに切り替えるには、/etc/inittab を編集してデフォルトランレベルを 4 にします。
こんな感じで劇的にビフォーアフターして下さい。
id:3:initdefault:
↓
id:4:initdefault:
冗談でも 0 とか 6 は指定しないこと。起動出来なくなったり終了出来なくなったりします。やっちゃった方は、例えば電源長押ししてシステム強制終了して適当な Livelinux ディストリビューションつかって Slackware のルートパーティションマウントして inittab 書き換え直して下さい。
※ Slackware の init は BSD スタイルですが OpenRC ではないっぽい?
環境変数の設定等
.xprofile を編集して対応しましょう。
例外的に、xdm が読み込むのは .xsession 。
このあたりのことは Arch の wiki に詳しく記載されています。ありがたや。
https://wiki.archlinux.jp/index.php/Xprofile
https://wiki.archlinux.jp/index.php/Xinitrc
https://wiki.archlinux.jp/index.php/XDM
おまけ: Anthy 9100h + G-HAL patch 13 series + tokyocabinet
※ コンパイラに -march=native を渡しても面白いかも。
※ Slackware 14.2 では glibc-2.23 が iconv 関連機能やヘッダファイルを含むので、libiconv のインストールの必要はありません(試しに無理やり /usr/local にインストールしたところ、fcitx のビルドが通らなくなりました)。
SlackBuilds.org の tokyocabinet パッケージのインストール
$ su -
# cd
# mkdir Downloads
# cd Downloads
# wget https://slackbuilds.org/slackbuilds/14.2/system/tokyocabinet.tar.gz
# tar zxf tokyocabinet.tar.gz
# cd tokyocabinet
# wget http://ponce.cc/slackware/sources/repo/tokyocabinet-1.4.43.tar.gz
# ./tokyocabinet.SlackBuild
# installpkg /tmp/tokyocabinet-1.4.43-x86_64-1_SBo.tgz
# ldconfig
# exit
※ SlackBuilds.org のビルドスクリプトを展開したディレクトリにオリジナルのソースをダウンロード・配置します。
※ su -
等で root でログインして下さい。(一般ユーザーでは参照されないPATHがある為)
※ ゼロデイアタックを警戒するなら wget は一般ユーザーで実行するのが良いかも。
※ ldconfig は念のため。
Anthy のインストール
逆襲のSlackwareさんの記事を最新安定版(2019年6月23日時点)に読み替え、tokyocabinet を除外せずにビルドします。例えばこんな感じ。
$ su -
# cd
# mkdir Downloads
# cd Downloads
# wget https://osdn.jp/projects/anthy/downloads/37536/anthy-9100h.tar.gz
# tar -zxvf anthy-9100h.tar.gz
# wget http://www.fenix.ne.jp/~G-HAL/soft/nosettle/anthy-9100h.patch13-release-2019406.alt-depgraph-120315-angie.zipdic-201101.tar.xz
# tar -Jxvf anthy-9100h.patch13-release-2019406.alt-depgraph-120315-angie.zipdic-201101.tar.xz
# cd anthy-9100h
# ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64
# make
# make install DESTDIR=/var/tmp/anthy-9100h
# cd /var/tmp/anthy-9100h
# makepkg --linkadd y --chown y ../anthy-9100h-x86_64-2.txz
# chmod 755 ../anthy-9100h-x86_64-2.txz
# upgradepkg ../anthy-9100h-x86_64-2.txz
# ldconfig
# exit
$ cd
$ rm ${HOME}/.anthy/last-record*
$ exit
※ 上書き解凍することで G-HAL さん patch が適用されます。解凍順が逆だと G-HAL さん patch がオリジナルのソースで上書きされてしまい意味がなくなるので注意。
※ 32bit版の場合は --libdir の指定を変える、パッケージ名に注意する等、少し工夫が必要かも。
※ ldconfig は念のため。
※ /tmp や /var/tmp について。/tmp には蜻蛉のように短命なものを /var/tmp には蝉のように短命は短命だけど蜻蛉よりは長生きなものを置くっぽいです(比喩におけるカゲロウとセミは成虫になってからの活動時間のイメージであって現実には即していません)。ところで蝉はおいしいのかな。たまにスズメが追いかけ回しているのを見かけます。
※ rm 取扱者資格作るべき。
公式ドキュメント
Frequently Asked Questions
http://www.slackware.com/faq/
Configuration Help
http://www.slackware.com/config/