Wednesday 5 July 2023

macOS text replacement

UIだとひどくて、フリーズとかするわけですが、実は

~/Library/KeyboardServices/TextReplacements.db

に sqlite3 がある。こっちを直接いじれば良いわけね。

my $DBname = "$ENV{'HOME'}/Library/KeyboardServices/TextReplacements.db";
my $mdb = DBI->connect("dbi:SQLite:dbname=$DBname","","") or die("db errr $!\n");

my $sql = $mdb->prepare("
INSERT INTO ZTEXTREPLACEMENTENTRY (Z_PK, Z_ENT, Z_OPT, ZNEEDSSAVETOCLOUD, ZWASDELETED, ZTIMESTAMP,
ZPHRASE, ZSHORTCUT, ZUNIQUENAME, ZREMOTERECORDINFO)
VALUES (NULL, 0, 1, 1, 0, CURRENT_TIMESTAMP, '$abrev', '\\$word', '$unique_name', NULL);
");

で、良いらしい。

Cloud 同期を入れれば、iPhone 側にいくはずですが...

reboot しないと反映されないのは残念だな。

Programming 3 がなんか学生が何も言わないので、最近は、勝手にそんなことしてます。

No comments: