GNU/Linux

GNOME Shell 3.36 で IBus が使えない対処

IBus が自動起動しない(というか起動はしてるけど使えない)のは Wayland のときだけらしい。 たしかに GNOME on Xorg のセッションにすると問題なく IBus が GNOME Shell から 使えるようになっている。 この原因は,Unix ソケットを作るときに Xorg のときは DISPLAY 環境変数を見て, Wayland のときは WAYLAND_DISPLAY 環境変数を見ないといけないところを, IBus はどちらの場合も DISPLAY を見ているというところにあるらしい。 今まで Wayland でも動いていたということは GNOME Shell の実装が非標準だった ということだろうか(よく分からない)。 https://github.com/ibus/ibus/pull/2195 この PR で直っているみたいなので IBus の次のリリースには GNOME Shell on Wayland でも IBus が動くようになっているはず。 それまでは Wayland じゃなくて Xorg 使うか……。 そういえば ibus-daemon -drx とすれば wayland でも IBus が使えるようになる のだが,なぜか Firefox が既に起動していた場合は Firefox 上だけで IBus が機能しないので実用上問題があった。

SVG でターミナルを録画できる termtosvg

いろんなワードで pacman -Ss してみて眺めていたら,termtosvg というやつを 見つけたので試してみた。 結論:すごい。ただ alternative screen buffer ができないみたい。 ソース見たら CSS で表示位置をずらしてアニメーションしているように見せているっぽい? よくわからぬ。

rootfs に NTFS を使う?

しかも ArchLinux でやってる。エモい。 https://github.com/nikp123/ntfs-rootfs/wiki 正気か?POSIX のパーミッションをサポートしてないので無理な気がしたけど 非公式のサポートがあるらしい。誰得なんだろ。 安定しているの? シャットダウンできないことを除けばとても安定している。 :thinking_face: パーミッション周りをゴニョゴニョやってるせいでパフォーマンスは悪いらしい。

ls --hyperlink の Feature Request を見つけた

https://lists.gnu.org/archive/html/coreutils/2017-05/msg00000.html こんな変なものも割と簡単に受け入れられるんだな,と思った。 で,ここにパッチとかも入ってるメール。 https://lists.gnu.org/archive/html/coreutils/2017-08/msg00038.html

Linux From Scratch

有名すぎて今更感あるけど(でも実際にやった人はあまりいないと思われ)やってみたい。 grub のコマンドを編集すると bash を init ってことにして 立ち上げたりできるので(シングルユーザーモードで起動するみたいな話), 特定の処理専用の Linux を作れるよな,と思ったところから, Linux From Scratch したいみたいな発想になってしまった。 http://lfsbookja.osdn.jp/7.10/ 翻訳のバージョンはちょっと古そうだが,英語を読むという辛さがないし, 参考にしながら腕試しがてらやってみるのもいいかな,という気持ちになった (持てる知識だけで新しい構成にしつつ起動するところまでいけるのかは微妙)。 そもそもこれは systemd じゃなさそうだし,systemd にするにはいろいろ変える必要がありそう。 まあ僕は systemd 便利でいわゆるきれいな設計なんだろうなとは思うけどあまり賛成派ではない。

すごい syslog の話

なんか /var/log あたりを見ても syslog がないな,と思っていたら, systemd がすごい syslogd をやってるらしい。systemd 肥大化しすぎでは……。 で,そのログを見るには, $ journalctl とかする。 でも,これは保存されているログが古い方から全部出てしまうのでたいていの場合は用途に合わない気がする。 僕の場合は 12 月のログとかが最初に出てきてうーん,となった。 たいていの場合はログは新しい方から見たいんではないかと思うので,そういう場合は, $ journalctl --reverse とかすると,新しいものから表示してくれる。 あと --grep オプションとかもあって, $ cat /var/log/syslog | grep foobar みたいにやってたところを 1 つのコマンドで済ませられるっぽい。うーん,でもこれはなんかなー。 他には --since とか --until とかもあるっぽいけど,syslog.1 とかの方がなんとなく好きだったりします。

Minecraft のマップの改造など

ブロックの高さと名前が出せるようになった。 パーサーをサーバーとして実行てきるようにして,PHP で Unix ドメインソケットで話させる みたいな感じにした。 サーバーの実装だけど,最初 wait してなかったせいで,大量のゾンビプロセスを作ってしまった。 これは,犠牲となる子プロセスを作ったあと,そのプロセス内でプロセスを立ち上げて レスポンスを返す感じにして,即座に終了する最初の子プロセスをwaitするようにして解決した。

PAM で遊んでみた

PAM で遊んでみた。PAM ってのは Pluggable Authentication Manager の略らしく, Linux のユーザー認証のしくみで,これの設定次第でユーザーが自由に認証の方法を変更できる。 例えばパスワード認証の代わりに指紋認証を使いたいみたいな場合もこの PAM のモジュールで実現できるはず。 当たり前だが,設定次第で認証システムを破綻(?)させることも可能で,常にログインできる PAM モジュールを使ってパスワードなしでログイン可能にしてしまったり,逆に絶対にログインできない PAM モジュールで全ユーザーを締め出したりもできてしまう。てなわけでまあ割とヤバイ部分で遊んだ。 PAM のモジュールを書くのはとても簡単な部類で,常にログインできるやつとかだと下みたいなコードで できたりする。

gsettings で変更したい設定メモ

ウィンドウのボタンの配列を変更 Unity の頃の Ubuntu に慣れすぎて Windows なレイアウトに慣れないので, mac 風のレイアウトに変更. ※ 決して Windows が嫌いだからとかそういう理由ではない. $ gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:appmenu' CapsLock を潰す 鬱陶しいので. あとついでに Caps の位置に Ctrl があるのに慣れといた方がいいかな, と. $ gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']" gsettings ではないけど,linux console で CapsLock を Ctrl として使うには, /etc/default/keyboard に以下を追加する. XKBOPTIONS="ctrl:nocaps"

Android の Factory Image を Linux でマウントする

Google からダウンロードできる Nexus用 (もしくは Pixel用) のFactory Image は Linux でそのままマウントすることはできません. $ sudo mount system.img system mount: /home/kofu/Downloads/razorg-JLS36C/tmp: wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error. これをマウントするためには, simg2img というコマンドを利用します. APT で入ります. $ sudo apt install simg2img $ simg2img system.img out.img $ sudo mount out.img system simg ってのは何かというと, img の空の領域を圧縮してサイズを小さくしたものらしい (simg2img の simg とは何か? (make_ext4fs コマンドなど)).