Can you create Mac keylayouts without a Mac?

40 views
Skip to first unread message

Magomed Vagabov

unread,
May 9, 2025, 11:07:55 PMMay 9
to Ukelele Users
Hi!
Sorry for being off the Ukelele topic but I’m a bit frustrated and this group looks like the only place with Mac layout experts.

I made a custom Windows layout that now is relatively known among Russian life scientists (pic related) and I’ve been asked to port it to Mac. Since I don’t have a Mac or anyone who can borrow theirs Mac to me for an unknown amount of time, I thought that it is a great idea to write the .keylayout file myself.

biolayout-cropped.png

It is not. KLFC, .klc→.keylayout converter that I’ve found, made a layout with a broken Option+ state, and when I ditched it and tried to modify someone else’s Ukelele .keylayout content, I made a layout that was not showing in the list of all layouts. I changed keyboard id, checked if XML is valid, double checked that the line ending is LF, not CRLF — still not showing according to my friends with Macs.

Is there a crucial element that I don’t know about? If anyone could try and look at the attachment, I would be immensely grateful.

Magomed


newbiolayout.bundle.zip

John Brownie

unread,
May 10, 2025, 3:46:31 AMMay 10
to ukelel...@googlegroups.com
When I run these through the keyboard layout compiler, I get this error message for the English one:
More than one key with keycode 48
And for the Russian one:
Reference to undefined action "dead:\u02c6”

For the English one, the keymap with index 6 has the two keycode 48 lines. For the Russian one, you will need to work out where you reference this one. \u02c6 is U+02C6, modifier letter circumflex accent. It’s at least in keymap index 4, key code 3, and keymap index 5, key code 3, plus in an action with id “ 3” and with id “5” and in the terminators.

Hope that helps.

John

--
You received this message because you are subscribed to the Google Groups "Ukelele Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ukelele-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ukelele-users/9e65f80a-bf3b-4d56-94cb-75b0aa2c128en%40googlegroups.com.


Magomed Vagabov

unread,
May 10, 2025, 7:18:52 AMMay 10
to Ukelele Users
John, thank you so much! 

I understand where these types of errors came from and could hunt them down now. 

By the way, is keyboard compiler a part or Ukelele or something else? I want to tell my friends to use it, but google struggles to find “keyboard compiler”.

Magomed

John Brownie

unread,
May 10, 2025, 7:44:15 AMMay 10
to ukelel...@googlegroups.com
It's part of Apple's Font Tools package, and is a command line utility. The actual command is klcompiler.

John

Magomed Vagabov

unread,
May 10, 2025, 7:56:00 AMMay 10
to Ukelele Users
Thanks again! I have one last question and I’ll stop bothering you :) Looking through the keylayout generated by Ukelele, I noticed that there is never a pair of action for uppercase and lowercase letters, e.g. if there is action="a" then there is no action="A", but some random number instead. Is it because the compiler is case-insensitive for action ids so Ukelele generates an action number or is it the negligence of the user from whom I borrowed a keylayout?

John Brownie

unread,
May 10, 2025, 10:13:25 AMMay 10
to ukelel...@googlegroups.com
The XML format is case-sensitive, so it’s quite possible to have both “a” and “A”. When you turn a key into a dead key in Ukelele, the action name is taken from the old output plus a space and a number. Action names aren’t ever seen by a human unless they look at the XML, so it’s not much of an issue for most people. But if you’re hand-editing, then good names are more important!

John

Kamal Mansour

unread,
May 10, 2025, 12:20:56 PMMay 10
to Ukelele Users
Magomed,
May I ask how the following graphic was produced?
Thanks,

Kamal

Screenshot 2025-05-10 at 09.16.51.png

Magomed Vagabov

unread,
May 10, 2025, 12:28:12 PMMay 10
to Ukelele Users
Thank you once again, John, this is relieving to hear.

Magomed Vagabov

unread,
May 10, 2025, 12:29:40 PMMay 10
to Ukelele Users
Kamal, I made in Figma with the use of EB Garamond Italic, PT Sans Caption and the font I designed specifically for this graphic.

Kamal Mansour

unread,
May 10, 2025, 1:33:16 PMMay 10
to ukelel...@googlegroups.com
Very nicely done. 

On May 10, 2025, at 09:29, Magomed Vagabov <magva...@gmail.com> wrote:

Kamal, I made in Figma with the use of EB Garamond Italic, PT Sans Caption and the font I designed specifically for this graphic.

Magomed Vagabov

unread,
May 10, 2025, 1:45:11 PMMay 10
to Ukelele Users
Thanks! Feel free to reach for the source files in DM, as long as it’s for personal use.
Reply all
Reply to author
Forward
0 new messages