Alpine Linuxで暮したいの巻
だってsystemd使いたくないし。。(宗教論争
日本語入力
fcitxを使うのが良いだろうか。
testing
にしかないのか。。Edgeに変更する。
/home/oku # cat /etc/apk/repositories
#/media/cdrom/apks
http://ftp.udx.icscoe.jp/Linux/alpine/edge/main
http://ftp.udx.icscoe.jp/Linux/alpine/edge/community
http://ftp.udx.icscoe.jp/Linux/alpine/edge/testing
libskk https://github.com/ueno/libskk とfcitx-skk https://github.com/fcitx/fcitx5-skk はパッケージに無いので手動でビルドすることになる。
# apk add fcitx5-gtk fcitx5-qt fcitx5-configtool fcitx5-dev fcitx5-qt-dev
# apk add autoconf automake libtool gettext-dev gobject-introspection-dev g++ json-glib-dev libgee-dev libxkbcommon-dev make vala extra-cmake-modules
gobject-introspection-dev
と vala があまりにもpull in多すぎるな。。後でDocker化することを考えないと。。 extra-cmake-modules
も同様(fcitx5-skk がUninstallのためだけに使っている)。。
PKG_CONFIG_PATH=/opt/skk/lib/pkgconfig \
cmake -DLIBSKK_INCLUDE_DIR=/opt/skk/include \
-DLIBSKK_LIBRARIES=/opt/skk/lib/libskk.so \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/opt/skk -G Ninja ..
libskkの出力するpkgconfigが激烈に間違っているので手動で指定する必要がある。
インストール
Fcitx5は自由にモジュールを配置できない?ので /usr
以下にコピーする必要がある。
/opt/skk/share/fcitx5 # cp -rp * /usr/share/fcitx5/
/opt/skk/lib/fcitx5 # cp -rp * /usr/lib/fcitx5
Gnomeでは専用のimpanelのインストールが必要 https://extensions.gnome.org/extension/261/kimpanel/ 。
ここまでで、とりあえず文字は出た。フォントとかロケール周りの設定が必要だな。
AZIK
Ctrl + Jの処理が正常化したのでコレで。
日本語表示関連
とりあえずCJKフォントをインストールしておく。
# apk add font-noto-cjk font-noto-cjk-extra
あとはフォント設定をちまちま直せばOK。なぜかデフォルトがSource Code Proになっている。。
アンダースコアが入力できない問題
(というか今見てみると、アンダーバーの方がメジャーな呼び方な感じがしている。。)
これは難しいパターンだな。。レイアウトファイル /usr/share/X11/xkb/symbols/jp
にはちゃんと当該キーはあるので、libinput側から見る必要があるな。。
key <AB11> {[ backslash, underscore ]};
libinput debug-events
で確認すると、このキーは KEY_102ND
= 86 として認識されている。これは非USキーボードで 左 シフトキーの隣のキーになる。qemuはSDL2を使っていて、このレベルの識別はAPI的に無理なのでOS側でリマップするのが良さそうだ。
/home/oku # libinput debug-events
-event2 DEVICE_ADDED Power Button seat0 default group1 cap:k
-event1 DEVICE_ADDED QEMU QEMU USB Tablet seat0 default group2 cap:p left scroll-nat calib
-event0 DEVICE_ADDED AT Translated Set 2 keyboard seat0 default group3 cap:k
-event3 DEVICE_ADDED ImExPS/2 Generic Explorer Mouse seat0 default group4 cap:p left scroll-nat scroll-button
-event0 KEYBOARD_KEY +4294967.295s KEY_102ND (86) pressed
event0 KEYBOARD_KEY +0.020s KEY_102ND (86) released
<AB11>
のマッピングは /usr/share/X11/xkb/keycodes/evdev
によると
<AB11> = 97; // backslash/underscore
Linuxのキーコードは -8 されるので(何故?) 89
が期待値ということになる。ちなみに今は
<LSGT> = 94;
LSGT
として動作している。
とりあえず 86 (16進で56) を KEY_RO
にしたいので
ファイル /etc/udev/hwdb.d/99-remap-qemu-kbd.hwdb
をこんな感じに作成し:
evdev:atkbd:*
KEYBOARD_KEY_56=ro
あとは udevadm
でマッピングを書き換える。
# udevadm hwdb --update
# udevadm trigger
勝手にsleepに入る
ォゥどういう事だよ
とりあえずGnome側の設定で切っておく。
GDMの設定も変える
ユーザー gdm
は nologin
なのでシェルを手動でoverrideする必要がある。
# su -s /bin/sh gdm
あとは同様に設定を変える:
$ dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
$ dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'