British PC 105 key layout

47 views
Skip to first unread message

A Barratt

unread,
Oct 11, 2026, 6:25:03 AMOct 11
to Ukelele Users
With a bit of artificial assistance, I've come up with the attached keyboard shape definition and keylayout. The British layout of keys is all working perfectly for me on a PC keyboard plugged into my Mac. 

Why? I KVM switch between a variety of machines, and with decades of typing on a PC keyboard this old dog decided to learn a different sort of trick rather than change all that muscle memory.
British PC.keylayout
British_PC_105.plist

Gé van Gasteren

unread,
Oct 11, 2026, 7:35:07 AMOct 11
to ukelel...@googlegroups.com
On Sun, Oct 11, 2026 at 12:25 PM A Barratt <msbba...@gmail.com> wrote:
With a bit of artificial assistance, I've come up with the attached keyboard shape definition and keylayout. The British layout of keys is all working perfectly for me on a PC keyboard plugged into my Mac. 

Thanks for your report on successfully using Ukelele!
I’m not sure how AI would help you with a keyboard layout?
Or what Ukelele’s role would be for a new "keyboard shape definition"?

What I know is that Apple includes a "British – PC" keyboard layout with its macOS releases.

image.png

Also, I believe that since macOS 26, custom keyboard layouts need to be in a .bundle file, i.e. inside a "keyboard layout collection" to work.

Maybe you installed your custom keyboard layout, then activated Apple’s built-in one?

Tom

unread,
Oct 11, 2026, 12:03:43 PMOct 11
to Ukelele Users
Is the main difference between your version and Apple's the characters under escape and next to z?

A Barratt

unread,
Oct 11, 2026, 12:53:25 PMOct 11
to Ukelele Users
With the stock Apple layout, I do indeed find that backslash (\) and reverse quote (`) are swapped over. It's most irksome!

Also, I couldn't find in the standard set of Apple keyboard shapes an actual British 105 key keyboard; this may very well be down to laziness on my part. So it seemed (to my possibly ignorant self!) non-trivial to simply swap a few assignments round in an existing layout. 

This started off mostly as a "what can it do?" exercise. I let an AI read the Ukelele manual "User Defined Keyboard Types.pdf", having noted it's general contents and lament that there's no nice editor for these things. Then I asked it, "can you do a proper British PC 105 keyboard layout?", and the result (attached) looked spot on when I imported it into Ukelele.
British PC keyboard layout.png
Only the return key could have been better, but I decided I could cope with that minor blemish. I'd not shown it any other keyboard layouts from Ukelele by way of templates; it did it all from the PDF and (I presume) some web definitions of what a British keyboard should look like. 

So I then started populating that layout with key outputs in Ukelele, and saved that as a partially complete keylayout file. I fed that back into the same AI, and challenged it to fill in the rest according to the full definition of a British PC keyboard (which a includes some accented letters for Welsh, Scots Gaelic, etc, e.g. áéíóú I've just typed with alt-gr + a,e,i,o,u). And that seemed to work out pretty well (other attachment) too. 

I was moderately shocked. It seemed to do a pretty comprehensive job, and apart from a quick glance as a sanity check on the files I've not edited them myself at all.

I installed the layout using Ukelele, and I now have the stock Apple "British - PC" input source (the one shown in Ge's post) as well as my new one "British PC" (I should have given it a more distinct name). I'm not sure about bundles - this is Mac OS 26.6.2, and apart from some warning about "the developer may see what you type" (I reckoned that'd be OK, at least in my case!), it seems OK. And yes, Ukelele is awesome.

Feel free to pick apart, find problems, use as one wishes, etc. 


Gé van Gasteren

unread,
Oct 11, 2026, 5:04:47 PMOct 11
to ukelel...@googlegroups.com
Thank you for the detailed report! 
And: Wow, this is a new chapter, using Ukelele with AI guidance!
I’m not sure how John likes this new development…

• Basically, what you did was a very long detour, only it didn’t feel like that because it was facilitated by AI. 
The standard way to customize your keyboard layout with Ukelele would be:
1. Find a layout that is similar to what you want (e.g. British – PC)
2. Modify a copy of that layout to fit your desires.

• The swapped two keys and the oddly-shaped Return key are a completely separate story, connected with the difference between ANSI vs. ISO keyboard types.
Most of the time macOS recognizes your keyboard type, but when it doesn’t, you can try these steps from Tom:

The Ukelele user interface is just that, a user interface, which may or may not match your physical keyboard.
Ukelele does have a setting to display your custom keyboard layout as an ANSI or an ISO keyboard, but again, that is not hard-wired to how it will work when installed.
But a customized layout will work with whichever hardware keyboard you have.

• The macOS message "the developer may see what you type" is shown for every non-built in Input Source – and you’re right, for simple custom keyboard layouts as produced by Ukelele this really is a nonsensical message.
image.png


--
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/62917fe1-1dec-47d3-9675-5c9aba15e734n%40googlegroups.com.

Gé van Gasteren

unread,
Oct 11, 2026, 5:25:19 PMOct 11
to ukelel...@googlegroups.com
To clarify the point about those swapped keys, here are two screenshots of your custom layout, opened in Ukelele.
The only difference between the two is that Ukelele’s View setting has been changed from ANSI to ISO – no changes were made to the custom layout!
image.png

A Barratt

unread,
Oct 12, 2026, 6:24:59 AMOct 12
to Ukelele Users
Understood, and that probably would have done!

That Third Party iso layout is not quite right for a British 105 key PC keyboard. There's supposed to be 4 keys to the right of the space bar. If I set they keyboard type in Ukelele (View, Keyboard Type, British PC (105-key) (the keyboard type my artificial friend created)), I then get:
screenshot.png 
The U+10 key is MS's right-click menu, and that's working in Mac OS too. And that key could then be reassigned. 

Plus, it's swapped the position of the command and alt keys round so that the Windows key does something more like what Mac's Command key does. That'd annoy anyone deeply used to a Mac keyboard, but it fits a Windows or Linux user's muscle memory better. 

Gé van Gasteren

unread,
Oct 12, 2026, 8:22:12 AMOct 12
to ukelel...@googlegroups.com
1. 
I’ll try to clarify one important point: keyboard layout files have nothing to do with how the keys on the physical keyboard are arranged. 

Over-simplified: When you press a key, the keyboard sends a number to the computer, not the key’s location.
The hardware keyboard has a memory linking each physical key with a key code, and that memory is different for different keyboard types, such as ANSI vs. ISO, or also for Apple vs. PC keyboards.

So the active keyboard layout in your computer doesn’t know where the pressed key is and it doesn’t need to know – it just receives the key code and translates it into a string of one or more characters.

Ukelele helps you to assign your desired character(s) to each key code, and this is possible completely without any visual user interface – through its command Keyboard >> Edit Key.
Obviously, it’s more comfortable through the visual keyboard layout, but any differences in presentation with your physical keyboard don’t mean that the custom layout you’re creating won’t work properly with that (or any) hardware keyboard.

2.
The "wrong" locations of Modifier Keys on PC keyboards connected to a Mac can be adapted to your habits through macOS System Settings >> Keyboard >> Keyboard Shortcuts >> Modifier Keys.
Note that this is done separately for each connected keyboard, e.g. for an internal Mac keyboard and an external MS Windows keyboard.
image.png


John Brownie

unread,
Oct 12, 2026, 8:38:01 AMOct 12
to ukelel...@googlegroups.com
This is all rather amazing! I’ve been toying with some ideas of using a more natural language approach to doing things like creating dead keys (along the lines of ‘make option-e a dead key that adds an acute accent to vowels’), but haven’t figured out how to make that work. Maybe AI can do that already…

That extra key with U+10 is like the function keys in the top row, in that the output is more or less irrelevant, as all the function keys produce U+10. It’s the key code that matters, so at a level Ukelele can’t control.

I seem to remember the enter key being out of alignment in some version of Ukelele before I worked out how to fix it (I think it was an error in Apple’s keyboard description), so I wonder if the AI was reverse-engineering Apple’s binary format keyboard definitions. Fixing it would mean adjusting the two rectangles by a couple of points, which I did in the attached version, which looks like this:

I can see that there are still a few cosmetic problems with using an imported keyboard definition, including the wrong name in the message bar and the wrong selection in the keyboard type dialog.

John

British_PC_105.plist

John Brownie

unread,
Oct 16, 2026, 4:10:59 AMOct 16
to ukelel...@googlegroups.com
All of this led me down a much deeper hole than I expected! I realised that I needed to add the option to remove a user-defined keyboard type, and there turned out to be a lot of twists and turns in getting that working reliably and safely.

Then I looked into the issue of the offset return key, and discovered that there was a bug in the original program I wrote to generate the keyboard definitions that are supplied with Ukelele, which put these non-rectangular keys two points higher compared to the regular keys, and then there was a work-around in the code to handle this. That led to user-defined keyboard types getting the keys appearing incorrectly. So I had to fix the built-in keyboard types, remove the work-around, and then fix the two user-defined keyboard types that I know of.

While I was doing this, I updated the two internal databases of Unicode and languages, updating to Unicode 18.0.0, and the language registry to the September 2026 version.

Unfortunately, doing all this on the latest version of Xcode meant that I couldn’t keep supporting old versions of macOS, so the minimum version now is macOS 12 Monterey. That allowed removal of some old code, which was good, but I decided to change the version number to 3.7 so that people on macOS 11 Big Sur or earlier can continue to access the current version of Ukelele.

If nothing unexpected turns up, I plan to put out the new version next week.

John

Sorin Paliga

unread,
Oct 16, 2026, 4:30:32 AMOct 16
to ukelel...@googlegroups.com
We all thank you for your continuing efforts to make our lives easier. 

Sorin Paliga
Sent from my iPhone

On 16 Oct 2026, at 11:10, 'John Brownie' via Ukelele Users <ukelel...@googlegroups.com> wrote:


--
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.
Reply all
Reply to author
Forward
0 new messages