Closed5

[未解決] yaskkserv2 + skkeletonの環境構築 on M2 mac

HansyHansy

yaskkserv2の準備

https://github.com/wachikun/yaskkserv2

ビルド

cd ~/.local/share
git clone https://github.com/wachikun/yaskkserv2.git  && cd yaskkserv2
cargo build --release

適切なPATHに通す

システムの方に置きたくなかったから、.local/binに置いちゃう

cd ~/.local/bin
ln -s ~/.local/share/yaskkserv2/target/release/yaskkserv2
ln -s ~/.local/share/yaskkserv2/target/release/yaskkserv2_make_dictionary
HansyHansy

yaskkserv2を動かす

既存辞書をdictionalyに変換する

skkの辞書がそのまま動くわけではないので、dictionaly形式なるものに変換が必要。

mkdir -p $XDG_CONFIG_HOME/skk
yaskkserv2_make_dictionary ----dictionary-filename $XDG_CONFIG_HOME/skk/dictionary.yaskkserv2 ~/.skk/SKK-JISYO.L ~/.skk/USER-JISYO

単純に動かす場合

yaskkserv2 $XDG_CONFIG_HOME/skk/dictionary.yaskkserv2

システムの起動時に走らせる場合

単純に考えて、yaskkserv2はそんなに重たいプログラムではない(辞書の大きさを加味しても)。
そもそも、skkeletonを何個ものvimで都度都度起動してる方がメモリ的に大きな損失。
そしたら、どっかのタイミング = ユーザーログイン時 に起動してやれば良い。
問題は、Macのユーザーログイン時にどこを使えば起動できるか。。。

HansyHansy

原典当たるのがしんどい(翻訳したとしても英語を読みたい気分ではない...)ので、https://qiita.com/rsahara/items/7d37a4cb6c73329d4683 を参照した。
https://news.mynavi.jp/article/20071211-iul01/resources/Leopard_launchd_newkeywords.pdf もめちゃ良い情報が載ってる。

結果、こんな感じにすれば良さそう

~/Library/LaunchAgents/yaskkserv2.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Label</key>
		<string>launch.yaskkserv2</string>
		<key>ProgramArguments</key>
		<array>
			<string>/Users/hansy/.local/bin/yaskkserv2</string>
			<string>/Users/hansy/.config/skk/dictionary.yaskkserv2</string>
		</array>
		<key>RunAtLoad</key>
		<true />
		<key>KeepAlive</key>
		<dict>
			<key>SuccessfulExit</key>
			<false />
			<key>Crashed</key>
			<true />
		</dict>
	</dict>
</plist>

HansyHansy

だいぶ時間が空きましたが、この構成は諦めました。
なので、Closeします。

このスクラップは2023/10/23にクローズされました