$ plutil -p ~/Downloads/org.jpn.lacaille.Lacaille.plist :

{
  "bsemu" => 0
  "enabled" => 1
  "escemu" => 0
  "firstIgnoredSingleThumbL" => 1
  "layout" => [
    0 => {
      "ASCII - No shift" => <00ffff>
      "ASCII - With outer shift" => <3800ff>
      "No shift" => <20ffff>
      "With left shift" => <0d1fff>
      "With modifier key" => <00ffff>
      "With outer shift" => <3800ff>
      "With right shift" => <0920ff>
    }
...

plistlib --- Mac OS X .plist file generation and parsing - Python 3.8.1 documentation :

{'NSStatusItem Preferred Position Item-0': 450.0,
 'layout': [{'With outer shift': b'8\x00\xff',
   'With right shift': b'\t \xff',
   'No shift': b' \xff\xff',
   'ASCII - With outer shift': b'8\x00\xff',
   'ASCII - No shift': b'\x00\xff\xff',
   'With left shift': b'\r\x1f\xff',
   'With modifier key': b'\x00\xff\xff'},

c

static NSString* keymap[0x80] = {
    @"a", @"s", @"d", @"f", @"h", @"g", @"z", @"x",
    @"c", @"v", @"[Section]", @"b", @"q", @"w", @"e", @"r",
    @"y", @"t", @"1", @"2", @"3", @"4", @"6", @"5",
    @"^"/* = */, @"9", @"7", @"-", @"8", @"0", @"["/* ] */, @"o",
    @"u", @"@"/* [ */, @"i", @"p", @"↩", @"l", @"j", @":"/* ' */,
    @"k", @";", @"]"/* \ */, @",", @"/", @"n", @"m", @".",
    @"⇥", @"␣", @"`", @"⌫", @"⌤"/* no def */, @"⎋", @"[R⌘]", @"⌘",
    @"⇧", @"⇪", @"⌥", @"⌃", @"[R⇧]", @"[R⌥]", @"[R⌃]", @"[fn]",
    @"[F17]", @"[K.]", @"<42>", @"[K*]", @"<44>", @"[K+]", @"<46>", @"⌧"/* Keypad */,
    @"[VolumeUp]", @"[VolumeDown]", @"[Mute]", @"[K/]", @"[K⌤]", @"<4d>", @"[K-]", @"[F18]",
    @"[F19]", @"[K=]", @"[K0]", @"[K1]", @"[K2]", @"[K3]", @"[K4]", @"[K5]",
    @"[K6]", @"[K7]", @"[F20]", @"[K8]", @"[K9]", @"¥", @"_", @"[K,]",
    @"[F5]", @"[F6]", @"[F7]", @"[F3]", @"[F8]", @"[F9]", @"[Eisu]", @"[F11]",
    @"[Kana]", @"[F13]", @"[F16]", @"[F14]", @"<6c>", @"[F10]", @"<6e>", @"[F12]",
    @"<70>", @"[F15]", @"[Help]", @"↖", @"⇞", @"⌦", @"[F4]", @"↘",
    @"[F2]", @"⇟", @"[F1]", @"←", @"→", @"↓", @"↑", @"<7f>",
};
  • layout:0 = keycode:0 = keymap “a”
    • "No shift" => <20ffff>
      • 0x20 = 32 = keymap “u”
    • "With right shift" => <0920ff>: vu
    • "With left shift" => <0d1fff>: wo
  • layout:48=@”¥”
  • layout:49=@”_”

I was able to decipher the format, so it looks like I can spit out Lacaille data directly from keylayout.


This page is auto-translated from /nishio/Lacailleのplistを解読 using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I’m very happy to spread my thought to non-Japanese readers.