|
|
NRSI: Computers & Writing Systems You are here: Input > Utilities Ukelele
Ukelele is a Unicode Keyboard Layout Editor for Mac OS X versions 10.2 and later. Version 2.0 is only for Mac OS X versions 10.4 and later. Beginning with version 10.2 (Jaguar), Mac OS X supports an XML-based format for keyboard layouts (.keylayout files). These may be installed by copying them to the folder within or ; then they are enabled via the tab of the module within . However, modifying keyboard layouts—let alone creating entirely new keyboard layouts, such as for a new script—by directly editing the XML text is tedious and error-prone. Ukelele aims to simplify keyboard layout editing by providing a graphical interface to .keylayout files, where the desired characters can simply be dragged onto keys as needed. (The , available in the Input menu if it has been enabled in , is a great place to find the characters.) In addition to simple assignment of single character codes to keys, Ukelele can assign multiple-character strings and can create "dead keys", where a keystroke sets a new state that modifies the output of the following keystroke. For more information about Mac OS X keyboard layouts, as well as existing layouts available for download, see Input Resources. For some types of layout, particularly with large numbers of dead-key sequences, creating a layout with the text-based tool KeyLayoutMaker may be a useful alternative. Ukelele is written by John Brownie of SIL and is copyright ©2003-2010. This software is provided under SIL's standard
Latest Update 9 February 2010 — Released version 2.0b5 This is the fifth beta release of version 2.0 of Ukelele, a major rewrite which will only work on Mac OS X 10.4 and later. The previous stable version (1.8.4) is still available for download.
DownloadLatest release (universal binary, for Mac OS X 10.4 and later):
Last stable release (universal binary, 1.8.4, 15 September 2009):
Note Feedback about the Ukelele tool is invited (see the Read Me file for contact information). This software is provided in the hope that it may be useful, but with no warranty, expressed or implied, and with no guarantee of support or future upgrades. History27 January 2010 — Released version 2.0b4
25 January 2010 — Released version 2.0b3
20 January 2010 — Released version 2.0b2
15 January 2010 — Released version 2.0b1
15 September 2009 — Released version 1.8.4
8 June 2009 — Released version 1.8.3
30 April 2009 — released version 1.8.2
6 January 2009 — released version 1.8.1
29 July 2008 — released version 1.8
12 March 2008 — released version 1.8b6
6 November 2007 — released version 1.8b5
5 November 2007 — released version 1.8b4
28 June 2007 — released version 1.8b3
May 30, 2007: released version 1.8b2
March 13, 2007: released version 1.8b1
August 8, 2006: released version 1.7
July 8, 2006: released version 1.7b6
June 23, 2006: released version 1.7b5
June 8, 2006: released version 1.7b4
June 8, 2006: released version 1.7b3
May 23, 2006: released version 1.7b2
May 15, 2006: released version 1.7b1
Notes from earlier releases can be found here.
Note: the opinions expressed in submitted contributions below do not necessarily reflect the opinions of our website.
Ukelele seems great, except for the fact that I can't find in its list a keyboard type that even remotely looks like what I have on my desk (Textorm small footprint USB, with French layout). I have looked up and down and everywhere I could think of but I have found no information on how I could build/describe the physical layout of my keyboard in Ukelele (what Ukelele cals the "keyboard type".) With so many keyboards out there (contoured, one-hand, etc.), this seems necessary. I'd be grateful for any pointers or information on this subject.
I don't know how to add a new physical keyboard type (perhaps John can comment on whether this is feasible), but I'd expect it should be possible to use Ukelele to create layouts to work with your keyboard even though the on-screen display won't match your hardware. A little experimentation should help you determine exactly which "virtual" keys on the Ukelele screen correspond to your physical keys, and you can still re-define their output as necessary.
Indeed, it's not possible to add a new hardware layout in any easy manner. Ukelele uses the KCAP resources that Apple provides as part of the system. If people really want to create their own KCAP resources, it's not too hard to add that as an option to Ukelele, but I doubt that many would relish the task! In recent versions of Ukelele, there's a new floating window which will show you what "virtual key code" is generated when you hold down a key. Then there's the capability of editing keys by specifying the key code. It's not the easiest way to do things, but sometimes there are no hardware layouts that provide access to some of the keys on third-party hardware keyboards, and that's the best compromise I've found. The information is in the manual, but let me know if it's not clear how to do it.
Thanks to the pointer to KCAP resources. I've looked up ways to edit or create a KCAP resource : - ResEdit doesn't seem to have a KCAP editor, but it allows hexadecimal editing; - Resorcerer has a bare-bones structured editor (not graphical), but the price is a little steep for a one-time use; - The format for KCAP resources is referenced by Technical Note TE515; it is quite simple and could probably be hacked on a text editor.
Lacking time to seriously hack this either through a text editor or ResEdit, I will try to find the closest possible layout and work from there to get the missing keys. Thanks to both of you for your help on this. John, thanks A LOT for Ukelele and don't worry about the manual, it seems quite clear to me.
If you want to create a KCAP resource, take a look at Rez, which is installed with Apple's developer tools. It enables you to write a C-like description of the resource and then compile it into the resource. I'll add a command to an upcoming version which will allow you to open extra resource files to get access to other KCAP resources.
I'm using Leopard 10.5.8 and have even enabled invisible files, and can't find USExtended.keylayout in the Keyboard Layouts folder. I've checked both the general system and my own user's folder. I don't want to create a layout from scratch and I have a non-working key I'd like to remap. If someone knows what I can do, I'd really apprecieate it. thanks
That's because the keyboard layout files included with Leopard are in a different format. To create a keyboard layout based on one of the older system layouts, use one of the ones that are included on the disk image with Ukelele. All the system keyboard layouts from Mac OS X 10.4.11 are there. Just use "New..." and choose "Copy of other keyboard layout" in the dialog, and then choose a keyboard layout from one of the folders supplied with Ukelele.
Thank you. The problem now is that I'm trying to swap or re-assign key values to navigational keys. My back arrow key is broken and I wanted to re-assign the back function to the page up key (which I never use anyway). To do this, I simply double clicked the page up button and pasted the back arrow key code into it's field. However, after logging out and choosing my new keyboard layout, the page key has not been changed to the back arrow. Is it not possible to re-assign navigational keys like this?
Firstly, it doesn't work with all applications to change the arrow keys. Some, including some of Apple's own applications, look at the key code rather than the assigned output of the key. Second, if you have a keyboard layout that is active, modify it (in Ukelele or any other way), save it, then log out and log in again, the system will not load the new version. You need to modify the folder that contains the keyboard layout to get the system to recognise the change. The easiest way is to drag the keyboard layout file to the desktop and then back to the Keyboard Layouts folder, then log out and log in again. Restarting will always load the newest version of a keyboard layout.
great program, unfortunately it is not possible to have an additional modifier key by distinguishing between left and right command key... anybody knows whether this is possible at all? i can understand that it is not possible for caps lock (as i never have seen a keyboard with two caps lock keys), but for the command key it 'd be great (all keyboards have two of them)... what a waste of keys... would be very helpful to create a real german keyboard layout (identical with windoze layout), as i use the option key for emacs and i don't want to lose it.
I checked the specification for the XML "keylayout" file format (see
now that 's what i 'd call a perfect answer, thanks :-)... too bad that it 's not possible, but as there is a left/right OPTION key, i'll take one of these. it 's not perfect (especially for an emacs freak like me), but very close to (i'm suffering from perfectionism, you know). btw, somewhere else i read that my first-generation 17" pb uses the same keycode for either command key, so i could have used it only if an external usb (or maybe also bluetooth) keyboard is attached.
Left and right shift, option and control keys can be used as far as Ukelele and the keyboard format go. However, very few hardware keyboards actually generate different key codes for the left and right keys, and not all have two option keys. Most keyboards that you can use map the left and right modifiers to the left modifier.
Hi Since some of my arrow keys are broken, I'd like to remap some key combos (like command-.) to the arrow keys. But if I understand correctly, the keylayout mechanism only handles characters, but not things like arrow keys. Is there some other method to remap some keys to the arrow keys?
You can make other keys behave as arrow keys. I would suggest that you double-click one of the arrow keys and see the "standard output" for that key. It will be something like "" which is the XML way to designate hex output. Next, double-click the key that you would like to be an arrow key, and put the appropriate output there. Up arrow is  Down arrow is  Left arrow is  Right arrow is 
This doesn't work for me. I do exactly this: Copy the hex output onto the new key I want to use, ie. "e". Save the file, install in Keyboard Layouts folder. Log out, log in, change to the new keylayout But now when I push "e" nothing happens. It does not mirror the functionality of the up arrow. The up arrow still works as always but the "e" key doesn't do it. I'm running Tiger on an Intel MacBook, and using a wireless Microsoft keyboard. Do you have any idea what i'm doing wrong?
It appears that most Cocoa applications, and many Carbon applications, don't behave as expected with this sort of change. They are actually looking at the virtual key code to determine whether a key is an arrow key rather than the output. A few applications do work properly, such as TextWrangler or File Buddy, but they appear to be a minority, unfortunately. I have filed a bug with Apple, and we will see what happens.
Man, that's really too bad. My down arrow key has stopped working, and it's really annoying. I had high hopes for being able to remap it with a keyboard layout. :)
Lithuanian Language Characters, please!
> Lithuanian Language Characters, please! There is a Lithuanian keyboard layout available in the System Keyboards folder, in the CentralEuropean folder. Note that it is not a Unicode keyboard layout, but that can easily be changed, by changing the keyboard ID (Keyboard menu, Set Keyboard ID...) to a negative value and setting the Keyboard Script to Unicode (both things are in the same dialog box).
When I look into /System/Library/Keyboard Layouts/Central European.bundle and/or ~/Contents, I find no *.keylayout What file do I open with Ukelele?
The keyboard layouts in the Central European bundle aren't the XML format that Ukelele edits. On the install disk image for Ukelele, you can find XML versions of these in the System Keyboards folder.
I have connected a multimedia PS/2 keyboard to my mac via a USB convertor. All the basic keys work, but this keyboard has a number of extra 'multimedia' keys which I wish to resurrect and maybe even use them as short cut keys to other apps. Will Eukalele help me with my query? If not, any other ideas to what I can do? Kindest regards, Chris
Hello, this is such a wonderful program. I am swedish, but love the US layout because of the natural placement of / [] {} etc when coding. Then, ofcourse, I lack swedish keys. I just took the US layout and added swedish keys with OPTION and SHIFT+OPTION pressed :) I have two questions, 1. How can I find out more hex-codes for things like UP, DOWN, BACKSPACE, PGUP etc? Is there a list somewhere? 2. I have a logitech USB keyboard with multimedia keys, pause, scroll lock, F12 etc, but none of these keys give me a keycode when showing key codes. However, pressing the MUTE multimedia button corretly tells MAC OS X to mute the computer (shows fancy graphics) and F12 correctly ejects the CD. Why doesn't ukelele show me the key codes, but mac os x properly reacts? And how can I change the behaviour of these keys? Thanks, Apan
1. How can I find out more hex-codes for things like UP, DOWN, BACKSPACE, PGUP etc? Is there a list somewhere? The easiest way is to pick a keyboard type that has these keys (Keyboard menu, Set Keyboard Type...), and double-click one of those keys. A dialog box will appear which will tell you the "standard output" of that key, such as  for the up arrow. You can then enter that for whatever key you want. 2. I have a logitech USB keyboard with multimedia keys, pause, scroll lock, F12 etc, but none of these keys give me a keycode when showing key codes. However, pressing the MUTE multimedia button corretly tells MAC OS X to mute the computer (shows fancy graphics) and F12 correctly ejects the CD. Why doesn't ukelele show me the key codes, but mac os x properly reacts? And how can I change the behaviour of these keys? Unfortunately, these keys get trapped by the operating system before applications even see them. On a PowerBook keyboard, for instance, the function keys aren't seen by applications unless the Fn key is down, but the Exposé keys don't come through to applications at all. Ukelele can only help with keys that applications can see.
Hi, I'm working with several Ukelele keyboards. To both keyboards I've added modifiers for Caps Lock down and Caps Lock down + Shift down. With these two addtions I'm now able to have primary and shifted characters for another language. The problem I'm having now is when I have TextEdit open, and press command-T for the font dialog, the TextEdit program minimizes. I based these keyboards on the 'US Extended' when I created them. I'm working on a Powerbook and have changed the keyboard type to 'Powerbook 2nd command key'. How do I troubleshoot this problem to find out what I've done wrong? Thanks,
The problem I'm having now is when I have TextEdit open, and press command-T for the font dialog, the TextEdit program minimizes. I based these keyboards on the 'US Extended' when I created them. I'm working on a Powerbook and have changed the keyboard type to 'Powerbook 2nd command key'. Firstly, the keyboard type only affects how the window looks inside Ukelele. It doesn't change how the keyboard layout works. As to the problem, I don't really know what is happening. All I can suggest is that one of the following might have happened: - you assigned m to the t key when the command key is down - somehow you have managed to change the shortcut for minimize from command-m to command-t, perhaps with another application that allows remapping keyboard shortcuts. Does it happen just in TextEdit, or in all programs?
Hi John, I think you're right on the first idea. I was trying to develop a new 'touch type' keyboard that placed the new language characters in an alphabetic sequence beginning with the tilde key. Since I was using a keyboard printed in the standard QWERTY format, I forgot that the 'T' key was no longer a valid key and that the position that 'T' would normally occupy was replaced by an 'm". I guess, in the back of my mind, I forgot about the implications associated with menu commands. I'll have to re-think the touch-type key idea. Thanks,
Hi, Is there any way to 'refresh' the keyboard listing in the international palette other than rebooting the workstation? Thanks,
Yes, you only need to log out and log in again. A reboot is not required.
Further light on this issue: When you log out and log in, the system checks the modification date of the Keyboard Layouts folder, and only reloads the keyboard layouts if the folder has changed. So, when editing a keyboard that is already in the Keyboard Layouts folder, move the file out of the folder and back in, then log out and log in. This should make the system load the new version of your keyboard layout.
I have a new polytonic greek keyboard layout that I saved to keyboard layouts folder of my library, but it will still not show up among the available options on the international panel when I log out and log back in. I have tried saving it under a different name, rechecking the file extension (.keylayout), and — as you suggested — moving it from the folder and back in again before logging in and logging out. Have I done something to the keyboard while mapping to make OS 10.4.7 not want to recognize it?
I am having this same issue as well, and am also on 10.4.7.
I am also having this same problem. Has anyone found a solution? VERY FRUSTRATING to spend time editing a layout that I can't even use. :@
If your keyboard layout doesn't show up at all, even after a reboot, it may be that something has made it invalid somehow. Please send me a copy of the keyboard layout (compressed with zip, StuffIt, or something like that), and I can try to diagnose the problem and see if there's a bug causing it. Just mail it to john_brownie@sil.org.
I had my keyboard layout show in grey (non-selectable). I changed it from Unicode to Roman, and it was finally selectable. Maybe it is your case, too.
Hi, I want to enter multiple unicode characters into a single keyboard key. I need to enter the unicode codepoint, but I've only been able to enter a single codepoint using the example in the docs... ʷ What I want to be able to enter are the codepoint U+034F and U+02B7. Since 034F is an 'invisible' mark, I don't know if it is actually there if I drag from the character palette. When I try Í͏ʷ I tried leaving out the second ampersand and pound...but haven't found a combination that works for multiple characters. Thanks for your ideas.
I'm not sure about dragging characters from the palette; when I tried just now, the dialog box for multi-character key output didn't seem to accept them. But you can double-click characters in the Character Palette to insert them at the cursor position in the dialog. Yes, it's hard to see if an invisible character such as CGJ is present! But you can detect that there's something there by using the arrow keys to move the insertion point through the text. More generally, I'm curious why you'd want to include CGJ in the key output; it's hard to think of a reason it would be needed before a "modifier letter" like this. But that's a question you might want to discuss on the Unicode list or something like that--how best to encode the kind of data you're dealing with.
I'd actually like to be able to do this same thing for Russian. At the beginning levels of teaching Russian as a second language, stress marks are used over the vowels. Since stressed Russian vowels are not pre-compossed characters in the Unicode charts, I'd like to use one key (or key combo) to input the Russian vowel plus U+0301 (non-spacing accent). I've done this using the MS Keyboard Creator for Windows and would now like to make a Mac equivalent. Any additional thoughts would be helpful
Like a previous poster, I too am Swedish. Unlike him, I prefer the standard Swedish keyboard layout which I have got used to over the last 25 years or so (programming in Windoze and Linux). I am new to the world of Mac, and I have been very frustrated with the Mac-specific Swedish keymap (called "SWE") that doesn't map to a standard Swedish keyboard. I recently bought a new Logitech Cordless Comfort Duo (which even came with a bold "Built for Mac OS X" sticker on the box), and with it came an installation CD with a keymap, called "SWE PRO". The trouble is that neither the Mac-provided "SWE" nor the Logitech-provided "SWE PRO", map correctly to the physical layout of the keys on the keyboard. Trying to solve that problem has brought me here, and I had great hopes that Ukelele might be able to help. However, the keyboard pictures that Ukelele provides do not include the standard Swedish keyboard either, only the Mac version (which has much fewer keys on it), so I am unsure how to proceed from here. I looked around in the Ukelele application for a way to modify the keyboard picture, but was unable to find one. For your reference, the standard Swedish keyboard layout can be seen in this series of photographs: http://ign.arcanel.se/images/LogitechCCD_all.png http://ign.arcanel.se/images/LogitechCCD_left.png http://ign.arcanel.se/images/LogitechCCD_right.png http://ign.arcanel.se/images/LogitechCCD_num.png . I hope you can help, as I won't be able to use the computer for programming otherwise. I find the lack of {|\} very frustrating indeed!
To get more keyboard "pictures", try the "Set Keyboard Type..." item in the Keyboard menu. Since Apple supplies layouts for Apple hardware, none will match the Logitech keyboard. However, you should probably be able to find one that has most of the keys that you want. For example the USB Pro keyboard, ISO version, seems to have most of the keys, though not in exactly the same layout. Note that the keyboard type on screen has no effect on the keyboard layout itself - it's just a matter of convenience in editing the keyboard layout. You might want to start from the Swedish Pro layout that's included with Ukelele and make whatever changes you want from there. Note that it's a MacRoman keyboard layout, so you will need to change it to Unicode (via Set Keyboard ID...) if you want to generate non-Roman characters.
Thanks so much for the great program. I am using it to create a custom Korean Keylayout. I have ran into a problem within the Korean Hangul Input Method that I don't experience while doing test keylayouts in the standard list. A little side note: To type Korean, you have to use the Hangul Input Method, so that it will assemble individual letters into a symbol that combines two or three letters into one syllable. I am using OSX 10.4.5 - The problem I am having is that I can not figure out how to consistently get my edits of the keylayout file to become effective or accepted by the OS. I try rebooting, changing the permissions of the files, changing the ID of the file back and forth, rebooting, changing the name of the keylayout file back and forth, rebooting, basically all kinds of just strange things to get the new edits to take. Eventually they do, but some times it takes me hours, and I haven't figured out the pattern. When I create a standard .keylayout everything works fine, my edits take effect immediately or after a log out/log in. I found the .keylayout file here: /System/Library/Keyboard Layouts/HangulIMKeyboardLayouts.bundle/Contents/Resources/HNCRomaja.keylayout And I copied the whole "HangulIMKeyboardLayouts.bundle" to here /Library/Keyboard Layouts/HangulIMKeyboardLayouts.bundle/ I edit the HNCRomaja.keylayout file in one/the other/ or both locations, while doing all the other tricks. Has anyone ever experienced this? solved it? want to get paid to solve this for me? Seriously, I we be happy to donate to the cause. Thanks Fred PS. the .keylayout would prove to be very useful to anyone that has learned the English keyboard and wants to type Korean, and I would be happy to share it. fredc (at) gloryofgod (dot) com
Probably it's just a user error, but I'm having trouble remapping keys on the numeric keypad so they do what they would on a Wintel box if NumLock is off. In other words, I want to remap (say) numeric "7" to the "home" key. I double-click on the "7" key, and type in the scancode for the "home" key (115?)... yet it remains unmapped, even after a restart. Is there something special I have to do to map a key to a "magic" key (like home, arrows, etc)? Thanks!
To get the navigation, you need to supply the correct output for the key, which has to be in hexadecimal encoding, and it's not obvious, unfortunately. The format for the output is like:  That is an ampersand followed by a hash, an x, three zeros and a one, and a semicolon. The key codes that you need are: Home: 0001 Enter: 0003 End: 0004 Help: 0005 Delete: 0008 Tab: 0009 Page up: 000b Page down: 000c Return: 000d Escape: 001b Clear: 001b Left arrow: 001c Right arrow: 001d Up arrow: 001e Down arrow: 001f Forward delete: 007f Hopefully this will work for you.
I love this app! I've been using an older iMac keyboard (cosmo). My only gripes with this kb are the lack of "end" and "delete" keys. I managed to remap the "num lock/clear" to be "delete" and the "help" and "home" keys to "home" and "end" respectively. Interestingly the remapping doesn't work in iChat, Safari or Mail, but it does work in the Finder and Photoshop Elements. "Use one input source in all documents" is also checked. Software versions: System: 10.4.5 Safari: 2.0.3 (417.8) iChat: 3.1.4 (v432) Mail: 2.0.7 (746.2) Any ideas?
Does anyone know how to activate the space bar? I can type my newly generated unicode font, but the space bar doesn't work! Thanks.
Not sure whether you're talking about a keyboard problem or a font problem here. If you use a standard keyboard with your "newly generated Unicode font", does the space work? If not, I'd guess that the space character in your font is missing or zero-width. If the problem only occurs with a custom keyboard layout, then I'd guess that you forgot to assign the space character (decimal 32, or hex 20) to the spacebar key, and so it's not generating anything when pressed.
I have checked my font, with FontLab, and the space bar is generated, and it's not with zero width. In fact I made a test text with the Text Editor, and tried to type something by using the U.S. keyboard, and the space worked! When I check the for the space bar in the Show Character Palette, I can't see the space bar, actually I don't know where it is, if it's there. I appreciate your help. Any suggestions are welcomed.
Space is character 32 (0020 in hexadecimal); in the Character Palette, it'll be the blank character immediately before the exclamation mark. (If you select that position, the Character Info section should confirm that it is the SPACE character.) You need to assign this character to the spacebar key in order for it to work. (If you start with a copy of an existing layout, it would normally be there already, but if you start from a blank layout, it's truly blank!)
Hi, I have created a customized unicode keyboard layout with german basic layout and polish characters supplied with the "Alt" key with ukelele. I activated the layout and was able to type in most of the OSx applications BUT only with fonts Times New Roman and Arial. When I switched to a differnet font and typed normal chars they were displayed in the font style selected. When I typed the Polish characters defined via ALT + A for example, these chars were displayed in TimesNew Roman, not in the selected font e.g. comic mt... this was the case in ms office apps as well as in Apple Mail or other apps. Please help me out. I need a functional basic German keyboard layout with aditional keys defined under ALT+ somewthat. How can I get this stuff working, maybe without using Unicode? Do I have to modify the generic .RSC files with ResEdit, and does somebody have an Idea how to do this. Basically I need German keyboard with the mentioned addition of some polish keystrokes. Many thanks in advance thomas
It sounds as if your keyboard layout is working fine, otherwise the Polish characters would never appear in any application or font you where you try it. Your problem is most likely that some fonts do not include these characters. If you type a character that the current font doesn't support, many applications will automatically substitute a different font; they figure it is more helpful to show the right character from the wrong font than to show nothing at all (or an empty box or other error indication). Try a font such as Lucida Grande, or Gentium, Charis SIL, and Doulos SIL, all of which have extensive support for the extended Latin characters in Unicode. Many common fonts support only Western European characters, unfortunately.
All TTF fonts from Windows have full set of Polish characters Darek
i had to change slovenian keyboard. Everything is OK, but how can i get slovenian flag as icon and not this default icon (grey keyboard)
To associate an icon with a keyboard layout, you need to create an icon and save it in the same folder as the keyboard layout file. The file name must be the same as the keyboard layout file name, with the ".keylayout" extension replaced by ".icns". So, if the keyboard layout is in the file "US Extended.keylayout", the icon would have to be in the file "US Extended.icns". Apple provides a simple icon editor called "Icon Composer" as part of the Xcode tools package. (Information taken from page "Creating new keyboard layouts" in Ukelele Help.)
The instructions for associating an .icns file with a keyboard layout file do not work for me. The .icns file I am using is a valid file, it is in the same folder as the .keylayout file, and has the same basename, i.e. [name of keyboard file].icns. Logged out and back in. Nothing. Am I missing something? Any other steps nececessary?
"The instructions for associating an .icns file with a keyboard layout file do not work for me. The .icns file I am using is a valid file, it is in the same folder as the .keylayout file, and has the same basename, i.e. [name of keyboard file].icns. Logged out and back in. Nothing. Am I missing something? Any other steps nececessary?" The problem may well be that the file is not of the correct type. You can't just take a graphics file (JPEG, TIFF, etc) and change the extension. It has to be in the "icns" format. You can use the Icon Composer program supplied by Apple, which is installed with Developer Tools to convert a graphics file to the icns format.
hi, i'm using a german macbook pro and have been slowly losing my sanity trying to deal with the need to type a few specific characters from convenient keystroke combinations. does anyone no where to find the german macbook keyboard layout to use as a starting point for modification? many, many and very sincere thanks for any feedback! regards, bryan
There's a German.keylayout file included in the Ukelele disk image, in the System Keyboards / Roman folder. I don't have access to a MacBook (and especially not a German one) so cannot check whether it ships with slightly different layouts, but I would expect this to be a close starting point, at least.
thank you so much for the simple and direct help I feel very, very dim for not finding the German layout sooner, but it worked flawlessly and I am now humming away with a slightly modified version and woa... what a productivity boost regards, brzan (now I have to unlearn qwertz for a few dazs...) :)
Thanks for the application. It works well. But I have a problem with the Input Menu tab of my International Preferences — it doesn't update properly when I log out and in. There's still a keyboard layout in there that I deleted months ago. Also when I edit a keyboard layout the changes show up fine in Ukelele but never seem to get applied to the way the keyboard layout actually works - after relauncing applications, opening and closing the preference pane, logging out and in and restarting. Nothing makes any difference. It is as though an old state of keyboard layouts is stored somewhere in a file that the OS draws on. Any idea how to fix this?
Is it possible to bind the caps lock to an escape? I've searched high and low and can't find a way to do this.
I don't think so. "Modifier" keys (shift, control, option, command, caps-lock) are handled in a fundamentally different way from the "character" keys that actually generate keystroke events. Turning a modifier into a character key would require some other kind of low-level hacking, not merely a different keyboard layout resource. While anything is possible in theory — just a small matter of programming! — I am not aware of any documented or supported way to approach this.
Hi, Like most other people here, I think that Ukelele is a great app which helps me work in English and German more or less simultaneously. I don't know if this problem is related to Ukelele or if it's a more general OS X problem. I now have three input sources on my menu bar: UK English, German and my Ukelele defined keyboard. The input method just seems to change of it's own volition. At first, I thought this was happening when I used Cmd Tab to switch between apps. I use Ctrl Alt Space to select the next input source and Ctrl C was set to "previous". I first selected "use one input source in all documents" but still had the problem. I then disabled Ctrl C as "Previous Source" as I thought I might have been hitting the combo inadvertantly, but I'm still getting the problem. There is no way that I am hitting Ctrl Alt Space inadvertantly - certainly not as often as the input source changes. Any ideas? Best regards, Steve G4 Powerbook, OSX 10.4.6
It may be that you are switching to a program that doesn't support Unicode. Such programs will switch the input to a non-Unicode method. Apart from that possibility, I don't know what else would be causing this.
I don't think this is related to Ukelele, which just creates layout files; it doesn't have any effect on the runtime process of choosing/switching between them. I've experienced similar annoying behavior, and never really gotten to the bottom of it, but I suspect maybe some applications maintain their own record of the current layout (per app or even per window), and "helpfully" restore it when they choose — not necessarily respecting the System Preferences setting to use a single source across all documents. If you can identify specific situations/applications where it happens, it might be worth reporting a bug to the application vendors.
I have this exact same problem. I have created a custom keyboard layout, based on the US layout, but which also has the Finnish special characters included under alt and shift+alt. I select my custom layout, open a new tab in Opera, and the layout switches back to Finnish. The same happens when I switch between tabs. Or if I switch from Safari to Opera and back. I tried to leave my custom layout as the only one that is checked in the Input Menu, but the OS wont let me do this; I can have, for example, the custom layout and the Finnish layout selected, but the Finnish one will be grayed out so I can't un-select it. So, I'd appreciate if someone came up with a way to either 1) remove all the other layouts in the Input Menu except my custom layout or 2) make it stop! changing the layout by itself. OS X 10.4.8 on a MacBook Opera 9.02
I've got the same problem with a custom keyboard layout called "Neo". Everytime I switch to Photoshop or to Opera the settings get reset either to German. In Opera this also happens when I create a new tab. Terribly annoying. If anybody could help with this problem I'd be very glad.
Yup, same problem here.. with opera, like one of the other posters mentioned - New Tab causes keyboard layout to switch back to British (this is a normal british usb keyboard, not an apple one: do apple keyboards have keys in american locations or what?).. has anyone come up with a solution for this yet? it's tremendously annoying
It have to pick this up again. It does not seem possible to actually USE a customized layout, because it switches back to the default one all the time (especially in opera) Is there a possibility to make a customized keyboard layout wich behaves like one of the apple-layouts? If so, it would be possible to make the customized layout the default one. Or can it exchange an original layout with my new one?
"It does not seem possible to actually USE a customized layout, because it switches back to the default one all the time (especially in opera) Is there a possibility to make a customized keyboard layout wich behaves like one of the apple-layouts?" A change made in the current beta of version 1.8 seems to have helped with NeoOffice, and possibly may help with Opera. I haven't tried Opera myself, so I can't say for sure. Anyway, it's worth a try: with the current beta, open the keyboard layout, make a change, undo it, and save. Then move the keyboard layout out of the Keyboard Layouts folder, put it back in, and then log out and log in again. See if it makes a difference. If there's no difference, I am at a loss. It comes down to Apple's problem, or Opera's, I would think, since the keyboard layouts produced by the current version (1.8b1) are exactly the same format as Apple's layouts.
Dear Mr. Brownie, Thank you for creating Ukelele, after four years, finally i have a tool to create a Malaysian Jawi keyboard layout. Together with the Lateef and Scheherazade fonts, it makes TextEdit a great Jawi editing system. I would like to send it to SIL so that others who need Malaysian Jawi can use it. Is this possible? Please feel free to contact me at shah at mac dot com.
Thanks for your message; glad to be of service! For any interested users, Mr Sahar's "Jawi Kit" for Mac OS X (providing both fonts and keyboard layout) can be downloaded from his site:
Hello, Is there any way I can see for sure of my keyboard has seperate Left and Righ Control / Alt keys (it is a Windows spec. keyboard). I realise that you say most are not seperate - but I would like to find out for sure :o) Jamie.
The simplest way is to create a keyboard layout that has different key maps for left and right control (or option? Alt usually maps to option) keys, then see what happens when you press those keys in Ukelele. If you get the different key maps showing up, then your keyboard supports left and right keys.
i mapped the space bar to the key just right of it on a powerbook keyboard its working in every app EXCEPT firefox why? (using macosx10.2.8, firefox1.5.0.4)
update: it seems firefox sees the layout as this key used to send "enter" and its doing nothing now(in any kind of text input in wabpage and also the search and adress bars) BTW,the space bar is dead,thats why I remap it;)
i have the exact same problem. couldn't find anything in about:config either. i guess cmd v will have to do until i get this fixed.
Quite a few programs expect that the control keys (those that don't normally produce letters, digits or symbols) will behave the same way on all keyboard layouts, and so they respond to the key code rather than the output the keyboard layout produces. So in this case, the enter key will always be treated as an enter key. For programs like this (and there are many) you will need to have a regular key produce a space. Pick a key that you use rarely and make it the space key. You can rearrange perhaps the option key combinations to put whatever you are displacing to make the space key.
Vote for this to be fixed in Mozilla products like Thunderbird and Firefox - http://getsatisfaction.com/mozilla/topics/firefox_ignores_mac_os_x_remapped_keybindings_for_control_keys
I have a problem similar to the one of Steve Hyde a few posts up. I have created my own keyboard layout as a variation of the US extended layout. This works very well in all applications tested so far. However, there is a spooky kind of behavior in Safari. When I go to websites that require text input, everything is fine, unless I come to an HTML input box for passwords. As soon as I click into this field to type, the input source immediately switches back to US extended (which is also activated in the Input Menu of the pref pane International). This behavior can be reproduced every time. The US extended remains active even after I leave the password input box, and I have to revert it manually. This is really annoying, especially as I have used the original US extended layout as a template - I don't know whether it is a problem in OsX (10.4.7 now), or in the layout created by Ukelele. Maybe the keyboard layout does not support the password "dots", but I really don't know what to do about it.
I got the same problem and I posted a question about this a while ago on the apple forum: http://discussions.apple.com/thread.jspa?threadID=544324&tstart=0 But that didn't get any replies. I don't think this can be a ukelele problem. Is there a way to send bug reports to apple? I can't find a place to do that.
>Is there a way to send bug reports to apple? I can't find a place to do that. There is, but you have to be registered as a developer to use it. Send me a copy of your keyboard layout and some examples of the problem, and I can file the bug with Apple.
Here you can download the layout + an there is an example input field. http://roelandmoors.be/keyboard/ In de normal input field the layout works fine, but when going to the password input field, the unicode keyboard layout is disabled and the default is selected. After leaving this field the default layout keeps selected and you have select the correct layout again. This only happens in Safari! Maybe the solution is to add the character in the layout that the safari password input field generates. But I have no idea what that code is.
I changed my mind. It has to be something in the layout (or bundle?) The unicode keyboards in the unicode bundle in /System all work just fine. I tried adding my layout in the same way to the bundle, but that didn't help.
it's not a problem in the bundle. in apple's view, all bundles are equal, but some are more equal than others. you always need to have an "approved" ascii bundle selected in keyboard preferences. you cannot, for example, select only a cyrillic layout and remove the U.S. layout - the U.S. layout will remain checked and disabled (so you cannot uncheck). this also goes for custom layouts - they are second-class layouts and cannot be used without an approved layout, even if they are just a slightly tweaked U.S. layout. then again, there are ways to trick OS X into accepting your layout as a first-class one. if you place your custom layout in a bundle called "Roman.bundle", and the name of your layout is "U.S.", and its ID is 5000, OS X will happily accept it without requiring you to also enable one of the approved ones. this _might_ avoid the problem with safari switching the layout, since i suppose it just switches to the first "approved" layout in order to avoid entering your password in a weird script and wonder why it doesn't work (same reason why a caps lock indicator is displayed in password fields). in my case, i have two layouts, and both are custom. one of them is a minor tweak on the "U.S." layout and is set up as i described above to replace the "U.S." layout, the other is a very customized layout (with bulgarian phonetic in caps-lock mode and latin qwerty otherwise) with no such trickeries regarding its installation, and is the one i use most of the time. safari will happily switch from the second layout to the one masquerading as the "U.S." layout, which indicates it will accept the workaround i described above. what i find more funny is that the dvorak layouts are among the "blessed" ones. so you can have a custom layout which is actually qwerty-based, and a dvorak layout, and safari will happily switch from the qwerty-based layout to the dvorak layout, completely messing-up the good intention it has in helping you type your password properly. now, the proper way to deal with this would be to tweak safari not to think for you, but i'm still looking for a way to achieve this.
Thank you for working this out! It does explain some things well, and I'll include some of this information in the rewrite of the manual that I'm working on.
I have managed to make my custom French layout as the only source in the Input menu. hereâs what I did: - In a text editor, I opened the layout I have made with Ukelele and changed the group to 126 (means unicode) and the id to an arbitrary negative one - I opened the "Unicode.bundle" (control-click>show package content) in "/System/Library/Keyboard Layouts", then add my layout to the "Ressources" folder together with a custom icon - I changed the permissions of these two files to match those of others files in the folder - then I edited the Info.plist file (Unicode.bundle/Contents/Info.plist) with Property List editor (an utility that comes with the Apple Developer tools) and added a new child to root which I called, following the model of the other chidren, "KLInfo_TheNameOfMyLayout". I set the class of this property as a "dictionary", then added a child to it, which has the property "ISOCode" and the value "fr" (for France) as string. To modify the Info.plist, you have to first modify its permissions to gain write rights; after these modifications, I changed back the permissions to what they were. - I removed all caches with a free app called "Maintenance", then restarted - After restart, I selected my new layout and was able to deselect all others - In the Account Preferences Pane, I enabled the Input Menu in the login window, then logout - In the login window, I selected my new layout as the default one. And thatâs all!⦠Hope this helps; Iâm not sure all of these steps are required. Up to now, it has worked perfectly, in Safari âs password forms as well. Sorry for the bad english.
Hi, Could you post updated instructions to make this work on 10.5? My layout (customized french dvorak) keeps reverting to the default mapping when in authentication dialog. Thank you.
The solution that worked for pre-10.5 systems won't work on 10.5, because Apple has changed the way that the system keyboard layouts are stored. They are no longer the XML .keylayout format, or even uchr resources, but they are all stored in an undocumented data format. That means that, unless you can reverse-engineer the data, you can't substitute your own keyboard layout for a system one. The bug report that I have on this is listed as open by Apple, so there's no solution in sight at this point, as annoying as it is.
This isn't true! I have a Dvorak keyboard and--well, actually, I'm having troubles with password input in Installer, but same concept. It switches back to QWERTY even when I have it disabled. Help....
This is a problem that Apple has to solve, unfortunately. I have a bug report from August 2006 about Safari switching input in a password field, and it is still listed as "open", meaning that it hasn't been fixed. I suspect that Installer has the same problem, but can't be certain of it. Maybe this will be one of the bugs fixed in 10.6...
Is this bug fixed? If I open an authentication window the keyboard still change, but after its closed, it changes back to the correct keyboard layout.
It is still showing as an open problem in Apple's bug reporting system, so it's not resolved yet.
Do you have any plans to port this program to Intel Macs? And can I create a layout in Ukelele on a PowerPC Mac and then load it on an Intel one without alteration?
Have you tried running the existing program on your Intel-based Mac? I would expect it to work fine (thanks to Rosetta), but have not tested this personally. You should be able to copy keylayout files between PPC and Intel Macs; they are independent of the machine architecture.
I don't have an Intel Mac yet, and I am gathering info before I buy one. I have a very specific remap that I use on PCs that I'm really fast with, and it has modifier keys shuffled around, and it's really frustrating to try to use my PPC Mac without those modifiers... I love the thing excert for the modifiers. I was hoping that the universal binary would make it easier for programmers to port PC remappers to Mac, but I don't know much about programming so I don't know if I'm on the right track with that one...
Hi, I almost have my dream layout working, but I can't seem to assign up/down/left/right functions to any keys besides the arrow keys, and I can't assign other keys to the arrow keys. I want to trade \ with the right arrow for instance, so I cut and paste the keystroke numbers for "right" and "\", but when I press either key, nothing happens; the cursor just sits there and kind of blinks irregularly, I think. How can I fix this? The manual lists hex and decimal #'s for the arrow keys, but they don't work when I type them in. I have an iBook G4. Any help would be MUCH MUCH MUCH MUCH APPRECIATED
oh sorry, i didn't see that earlier post about this same problem... never mind
Unfortunately, this is a problem with many applications, including a lot of Apple's own applications, such as TextEdit, Microsoft Word, and Nisus Writer Express. They appear to rely on the key code rather than the output of a key to decide whether you've hit an arrow key or not. Some applications work properly, such as TextWrangler. However, we just have to wait for Apple and others to fix the bug in those programs. I don't know when we could expect that - perhaps Leopard next year. It's unlikely to be a high priority for Apple, though. Sorry!
AHA! The new arrow keys DO work in some programs, like Apple Logic Pro! Do they work in Safari? My copy got deleted and I can't use it, but if you can find out for me, I could go about getting it back up and running.
darn it doesn't work in Safari. for your notes, the arrows do work in the following music programs: Logic, Max/MSP, Sibelius.
Sounds great, but I think it should be spelt Ukulele!
Would you believe it.... I just deleted an old post (and response) on this exact point! Yes, "Ukulele" is arguably "more correct", but many dictionaries accept "Ukelele" as a variant spelling, and this seems to fit better with the phrase "Unicode Keyboard Layout Editor", though of course it's not a precise abbreviation/acronym.
Is it possible to change the icon of custom key layouts to something besides the default keyboard icon? I have four custom ones in my list and can't tell them apart; flags would really help.
From the page "Creating new keyboard layouts" in Ukelele Help: To associate an icon with a keyboard layout, you need to create an icon and save it in the same folder as the keyboard layout file. The file name must be the same as the keyboard layout file name, with the ".keylayout" extension replaced by ".icns". So, if the keyboard layout is in the file "US Extended.keylayout", the icon would have to be in the file "US Extended.icns". Apple provides a simple icon editor called "Icon Composer", which is installed with developer tools.
thanks you very much
You can use Apple's resource editor If you need more information about keyboard software in pre-OS X systems, you'll probably have to look for the old Inside Macintosh documentation (I expect it's archived on
Hi there - thanks for the handy utility! Like some other commenters, I'm trying to use Ukelele to create a keyboard layout that reflects the non-Apple USB keyabord I'm using. It looks like the USB Pro ISO layout is the one that I'm after. However, I'm running into a problem. Once I've changed the keyboard type, saved and closed, when I open the layout file again in Ukelele, it thinks that the keyboard type is Standard ADB! It seems to "forget" all about the keyboard type I've set once I've closed the file. Can you shed any light please? I'm on OS X 10.3.9. and Ukelele 1.7 Thanks in advance!
The "keyboard type" in Ukelele is not something that is stored in the layout file; the actual keylayout file is independent of the physical keyboard type, and will work with whatever keyboard you happen to be using. The view options are just to help you relate the "virtual" key codes that go into the keylayout file to the physical arrangement of keys on a particular piece of hardware.
What you should do is to go to Preferences... and select the default keyboard type that you want (USB Pro ISO, in your case). In theory, that should do it for you. When you start Ukelele, if the system doesn't recognise your keyboard as an Apple keyboard, it should use what you specify in the Preferences dialog. I haven't tested it myself, as I work on a PowerBook, and don't have an external keyboard.
I set the extra enter key next to the left arrow on my MacBook. Trouble is, it works basically in the Finder only. All other programs switch the keyboard back to the American flag. what can I do?
A couple of issues might be relevant here: First, there's a preference setting to control whether the same layout is used in all programs, or a separate setting for each (see System Preferences / International / Input Menu, "Input source options"). Second, Ukelele creates Unicode layouts (whether or not you actually assign any non-MacRoman characters in the layout), but any applications that don't accept Unicode input will force the system to revert to a non-Unicode layout such as U.S. English.
Thank you very much for this great app. It works very well for me ; but does someone know where in OS X are icons of languages, the one you can see in the input menu ? I have check in the System/Library/Keyboard Layouts/Roman.bundle, but it doesn't have any icon, nor French neither US⦠Where are they ? Thank you FG
They are in the Roman bundle, but stored as 'kcns' resources rather than as icon files, so they can't really be handled with any of the icon or resource editors that I have tried. Perhaps someone else knows how to extract kcns data to a format that can be edited.
Hello It is impossible to download the file. Is there any trouble on your server? Best Marc
There have been some access problems recently, but I believe things should be working better now.
hello, i have kensington slim type keyboard and it includes a really annoying extra slash-pipe key to the left of the spacebar. this is where the Command Key is supposed to be! Needless to say, this is very annoying. Also, the keycode output of the key (10) is different than the other slash-pipe key(42). So there shouldn't be a conflict. But basically I need to make this key (which appears in the Extended ADB layout as the key next to the 1) into a command key. Also, I need to switch the Command and Option key. I can do this in the keyboard preference pane, but it would be nice to switch everything at once. Thanks for the help and the great product -phil
My understanding is that "modifier" keys (control, command, option, shift, caps-lock) are treated as a separate category from "character" keys, and a layout resource such as Ukelele creates can't convert between these two kinds. The operating system makes the distinction at a lower level before the key codes are mapped through the keylayout.
I'm making a one-handed keyboard layout on the left side of the keyboard, so I need to move the delete key. When I copy the Unicode value  from the delete key to another key, nothing happens when I press that key. I've checked the XML file, and the lines for the delete key and the key I mapped look the same to me. Any suggestions?
I think many programs handle "control" functions such as arrow and delete keys in their own special way, and ignore the character mapping from the keyboard layout. You may find that redefining such keys will work in some applications but not others.
I'm guessing that this is outside the scope of Ukelele, but it never hurts to ask... Can I remap my right shift button to act like multiple modifiers? Specifically like shift-ctrl-option-command?
No, I don't think so. You could set up a keyboard map so that the characters generated with right-shift down are the same as would have been generated by shift-ctl-opt-cmd; but this won't make applications behave as if the command key were actually pressed.
I am trying to edit the 10.4 Greek Polytonic Keyboard as it has certain inadequacies for my purposes. The question is this: I would like to replace a particular result for a dead key combination, but when I put the chosen character in the edit dead key process, I get a diamond with a question mark in it. The place of the character is 1050 / 0 . What can be done about this? Thanks for the software.
I'm not sure what character you mean. Is it 1050 decimal (41A hexadecimal), Cyrillic capital letter Ka? How are you specifying it? If you put ၐ you would get the hexadecimal 1050, which is Myanmar letter sha, which probably isn't in any font that you have, and so the "last resort" font shows the missing glyph symbol.
This program is awesome! I am so glad you wrote it. Keep up the good work! I hope you continue future support. It has really made life easy for my typing Russian, Ukrainian, and Portuguese because I made Dvorak-based phonetic layouts with lots of dead keys where I just type the transliterated sounds and it shows up correctly in the foreign symbols! I wouldn't mind paying for a future version if you decide to do that, to ensure future compatibility with OS X Leopard. Great job.
this program rules. excellent work. keep it up!
Thanks for this wonderful app. The only problem is that I can't seem to get it to work for me but I suspect that I'm doing something wrong. I have removed the JIS keyboard that was originally installed in a iBook G4 and replaced it with a U.S. iBook G4 keyboard. The keyboard works but is still behaving as a JIS (e.g. @ mark over next to the "p" key instead of being shift-2) I used this app to try to change the keyboard layout but everytime I try to save the ANSI keyboard layout it seems to get switched back to JSI because when I reopen the keyboard layout with Ukelele it says it's a JIS layout instead of ANSI. What am I doing wrong? I have logged out each time I add the keyboard layout and select it from the Preferences International pane but.... Any help will be greatly appreciated. My grey hairs are multiplying :-) Jason
> I have removed the JIS keyboard that was originally installed in a iBook G4 and replaced it with a U.S. iBook G4 keyboard. > The keyboard works but is still behaving as a JIS (e.g. @ mark over next to the "p" key instead of being shift-2) >I used this app to try to change the keyboard layout but everytime I try to save the ANSI keyboard layout it seems to get switched back to JSI because when I reopen the keyboard layout with Ukelele it says it's a JIS layout instead of ANSI. There may be more than one thing going on here. One is simply a display issue. Ukelele can display many different keyboard types, and the particular one displayed has no effect on the actual keyboard layout - changing the view does not change the keyboard layout. However, I suspect that what you are seeing is that the system somehow believes that you have a JIS keyboard attached. I don't know how that can be changed. I don't know even if it is controlled by software or hardware. If you open Keyboard Viewer, do you get the JIS or the ANSI keyboard shown when you press a key? Contact me by email if you want to.
I did the same thing with a PowerBook G4 and had the same problem. Found this site that generates an XML script. http://wordherd.com/keyboards/ Replaced the contents of the .keyboardlayout file with the new script and it worked fine. Good luck!
I didn't find how to make a true US international keyboard. How I can do to make that ' and AFTER e give me é ? How I can recuperate under ukelele, a rsrc file format of a keyboard ? ( Or How I can recuperate the actual keyboard description ? ) Thank for this geat app.
> How I can do to make that ' and AFTER e give me é ? The way to do this is to make e a dead key, with terminator e, and output é when the ' key is pressed. However, you may wish to think about this one first. Do you use the ' key after e without intending to get é, for example, typing 'example'? This is the sort of issue that has led to the current methods. > How I can recuperate under ukelele, a rsrc file format of a keyboard ? I'm not sure exactly what you're asking here. If you have an older keyboard resource (either KCHR or uchr), Apple provides a tool for converting these, but it's a command-line tool, which makes it not very friendly. If you want to do it, but don't want to use the tool, you can send it to me by email, and I can convert it for you. If you are wanting to make a keyboard layout created by Ukelele into a resource form, it's not always possible, or easy. You can always convert to uchr, but only sometimes can you convert to KCHR.
> > Apple provides a tool for converting these, but it's a command-line tool, which makes it not very friendly. > What is the command path/name for this tool ? Thanks in advance Kind regards Uffe Jakobsen
The tools are part of the Apple Font Tool Suite, which you can get from The relevant tool is called kluchrtoxml. Its usage is fairly simple. At the command line (in Terminal, or other such program) you do kluchrtoxml <filename> where you give the name of the resource file. It will create appropriate .keylayout and .icns files in the same directory.
I have tried using kluchrtoxml but it produces no output. Here is the command line I use kluchrtoxml /TransUkr.rsrc Why do I get no output?
If that was your command line, you told the computer to use the file TransUkr.rsrc, located at the top level of your hard disk, which is unlikely to be its location. You need to give the correct path for the file. If you are already in the correct folder, leave out the "/" to get the correct path. You may need to do something like: cd ~/Documents/KeyboardLayouts kluchrtoxml TransUkr.rsrc
I found out that there are two binaries, klkchrtoxml and kluchrtoxml. The first one worked for the Norwegian Dvorak layout I wanted to convert, the other did not. Just a little heads up.
Hello, first of all thanks very much for this software, it works like a charm. I am writing on this message board because I also have the annoying problem of Keyboard switching automatically when I change from one application to another. This even happens when I use Terminal.app, I switch back and forth between two windows and my keyboard goes back to English (I am not even using an English keyboard in my installation!) In my setup I have the following keyboard configurations: French, Japanese and German. My laptop has a German Keyboard and I have either my French or Japanese keyboard connected via USB. I have this problem which pretty much every application I use: Safari, Mail, Terminal, AdiumX I configured 1 Input for all Documents in the System Preferences, so now, I really don't know what else to do with this. Has anyone got a fix for this Mac OS X behavior? PS: I have Tiger latest update Thanks in advance!
Hi! I really like Ukelele, but I was having problems mentally making things work, so I wound up making a .keylayout file by hand. If anyone else is taking this route, I have some resources at http://homepage.mac.com/pukku/keylayout_files/index.html that might be of use. Primarily, they will help you figure out what key corresponds to what code. HTH, Ricky
I used Ukelele successfully to remap the punctuation keys of an external USB keyboard for my laptop. It is a standard french PC keyboard, and only a few punctuation keys differed from ukelele's "french layout". I was very happy with that (great software !), but only for an instant, because I then realized that I was then facing a much more complicated challenge. This keyboard had now a layout almost identical to my everyday mac usb keyboard, but one thing was still wrong: The "Windows" key was mapped to "Command", and the "Alt" keys were mapped to "Alt" ("option"). Great. The wrong thing is that on my mac, the command keys are the *first* ones next to the space bar, and then Alt, and then Ctrl. On the PC keyboard, there is the space bar, first Alt, then Windows, and then Ctrl. That made my brand new layout almost unusable, because of my fingers going by reflex to the wrong keys... After messing around for a long time with Ukelele's modifiers window, but without success (this soft is *almost* perfect, but that "modifier" thing is just too complicatedd for me), I finally found the solution: In System Preferences -> Keyboard and Mouse -> Keyboard -> Modifier Keys, there is a very simple panel that lets you choose your modifiers. In my case, I just swapped "Alt" and "Command", and now it works fine: the physical "windows" key is my "Alt", and the "Alt" key is my "Command", AND they are located like on the mac keyboard ! Not very tricky after all, but it took me a whole afternoon to figure out, so I post it here. hope this helps. -Gyom ( salagnac@imag.fr )
I've created a one-handed Dvorak layout, but I'm having trouble getting it to play nicely with another of my favourite apps, TextExpander. TextExpander listens to keyboard input, waiting for user-defined abbreviations to be typed, and then expands them into whatever text the user has pre-defined. For example, you may want to be able to simply type "sig" for your full email signiture, or "ht.com" for "http://www..com", and it's even able to place your cursor wherever you like in the expanded text. I'm sure you can see how this would be handy for someone using a one-handed keyboard layout. Anyhow, the problem is this: When switching from my built-in layout to any of the custom layouts I've created in Ukelele, TextExpander's functionality is broken. Typing the abbreviations produces nothing. However, if you press the keys as though the Canadian layout was selected, that is, the keys which would correspond to the abbreviation on the Canadian layout, then TextExpander expands the text to the desired extension. This does not occur, however, when switching between built-in layouts provided with OS X. So there must be something different about the files produced in Ukelele vs. the layout files provided by Apple. If anyone can help me to find out what that difference might be, or can otherwise shed some light on this problem, it would be greatly appreciated. Tom White OS X 10.4.8 PowerBook G4 1.5GHZ
First, this is a nicely done app. Though, I'm having an issue with some of my re-mappings, but only in emacs. I'm using a modified Dvorak mapping. CTRL keys work great in every app except emacs. For example, in this Firefox browser, CTRL-e moves to the end of the line, but in emacs the key combo deletes, since the Dvorak "e" key is the qwerty "d" key. It's as if emacs is ignoring Ukelele when I use the CTRL key. I'd blame Ukelele, but all other apps seem to work fine. Any help would be appreciated. ksc
Just to add a bit of clarity to my post, I'm running Carbon Emacs and what is baffling is that when I use the Dvorak keyboard under the "System Preferences -> International" menu, things work fine. All CTRL keys work great. It's only when I use Ukelele (which I use to further modify some unrelated number and punctuation keys that I experience the problem. ksc
I have exactly the same problem but with vim... All C-* combination cannot be accessed. It is a real pain!
Typetrainer4Mac is a typing tutor which accepts a lage variety of customized layouts. It is a freeware. Try it with your own layout!
Many thanks for this application — it enabled me to modify Apple's Hebrew layout for OS X 10.4 into something usable. I don't know how I could've managed to do it without ukelele (the other alternative — diving into the actual XML file, was not a possibility, as I had no time to spend on it).
hi there, i really like ukelele. i got some problems creating my keyboardlayout, though. I use a G4 Powerbook 12" with Mac OS X. I need 6 ModifierKey- Combinations. I tried this: 0 all up 1 shift down, rest up 2 option down, rest up 3 option+shift down, rest up 4 control down, rest up 5 control+shift down, rest up Everything worked fine besides 4 and 5. so i tried to create my keyboard again. This time i tried if it works everytime i changed something. starting with combination 4 and 5. everything worked so far. then i defined combination 0. and it didnt work anymore. why is this ? doesnt make sense to me! My Powerbook only has left+right shift, left control and left option. How can i make 6 different combinations that work ? i tried caps lock, too, but it said "layout too complex". there is also an "enter" key right next to left command. I really never use it, so maybe i can use this button as a modifier key ? thanks in advance!
If I create a new keyboard and add dead keys, they work, but in Cocoa applications they don't display the yellow highlight indicator that shows that it is a dead key combination. But if I base the new keyboard on a the US Extended layout, and add new dead key combinations, both the new and the old dead keys display the yellow highlight. Is there a command in Ukelele that enables that behaviour, or is there a command that can be added to the xml file? Thanks.
Hi, I've seted up a keyboard layout to be used on an ISO keyboard (with a key between shift and first letter). Everytime I save the layout ukelele switch it back to ANSI keyboard and it doesn't seems to care about the fact that the keyboard was defined as a ISO one. I've also tried to edit manually the config file changing <keyMapSet id="ANSI"> with <keyMapSet id="ISO"> without any luck... there is someone who know how to make it works ? let me know tnx Stefano
> Hi, I've seted up a keyboard layout to be used on an ISO keyboard (with a key between shift and first letter). Everytime I save the layout ukelele switch it back to ANSI keyboard and it doesn't seems to care about the fact that the keyboard was defined as a ISO one. I've also tried to edit manually the config file changing with without any luck... there is someone who know how to make it works ? I think that what you are seeing is just the way Ukelele displays the keyboard layout. If you have a non-Apple keyboard, you might want to go to Preferences and set the default layout to an ISO layout. That should help you. If you have an Apple ISO layout, but Ukelele doesn't recognise it at first, try using the keyboard to open a file rather than just the mouse (press Enter or Return rather than click OK) - the system doesn't report the keyboard to a program until the user types (presumably because the user might have more than one hardware keyboard connected).
Maybe I'm doing something wrong, but when I use Keyboard Viewer to see what layout I'm actually in it switches to display U.S. when I'm in Ukelele but then back to my actual current layout when I click on any other application or the Finder. Oddly, when I type in Ukelele, the keys are still mapped to my real current layout and not U.S. (unless I really am in U.S.) For example, say I'm really in Dvorak. I load up a layout in Ukelele and try to change the key labeled "f" on the actual physical keyboard which is really u in Dvorak. Say that in the layout I'm editting that key is currently assigned o. So in Ukelele, I double click on the o and go to type in the new symbol I want. Say I want it to be u. Then I press the "f" key and this mysterious thing happens: in the dialog box, I get a u, as expected since I'm in Dvorak. However, the Keyboard Viewer thinks I pressed f because it always thinks I'm in U.S. whenever I'm in Ukelele no matter what keyboard layout I'm actually in. This makes editting layouts sortof cumbersome when I don't have the layout I'm in completely memorized. Is this a bug or a feature and is there a way to get keyboard layout not to switch to U.S. when I'm in Ukelele?
I don't see this behaviour. Keyboard Viewer always seems to be showing the correct keyboard for me. Is it only in Ukelele or in other applications as well?
I've got the same problem with the Japanese Hiragana keyboard and if I remember well, it appeared recently, probably with the 10.4 version of MacOs. I have a physical AZERTY keyboard. I use several keyboards and input methods: Canadian CSA and Hiragana for Japanese. When I use the canadian CSA or French keyboards, the keyboard viewer displays the right layout: the canadian. When I use the Hiragana keyboard and input method, it displays the US keyboard. I first thought that it was because the Hiragana is not a direct input method but there is no problem with the Chinese: When I use a traditional Chinese keyboard and input method, the keyboard viewer displays the right Chinese layout. I think that it is a bug form Apple. Someone could send them a bug report...
Does anyone know what the keycode is for the extra key on the Brazilian ABNT keyboard (it has one more than ISO and two more than ANSI) and what characters are supposed to be on it for normal, shift, option, and option shift? Thanks for any help! email tom at bluesky dot org
> Does anyone know what the keycode is for the extra key on the Brazilian ABNT keyboard (it has one more than ISO and two more than ANSI) and what characters are supposed to be on it for normal, shift, option, and option shift? Thanks for any help! email tom at bluesky dot org The simplest approach is to open Ukelele, show the Key Code window (Keyboard > Show Key Code), then hold the extra key down. The key code is displayed in the Key Code window. If you want to see what the output is for that key, you can choose Other Keyboard Key⦠from the Keyboard menu, choose Code, and then enter that key code. You will get a dialog with the existing output in it.
Unfortunately I don't have access to one of these unique keyboards, which only seem to exist in Brazil. However I was lucky to have someone send me a copy of another layout on which the 12th bottom row key did reportedly work, and from this it appears that the key code for that is 94, in case anyone might need that info. As far as I know, Ukelele doesn't have an option to display an ABNT layout with the extra key, so the code for it has to be added to the xml manually (in ABNT is does / and ?).
> Unfortunately I don't have access to one of these unique keyboards, which only seem to exist in Brazil. However I was lucky to have someone send me a copy of another layout on which the 12th bottom row key did reportedly work, and from this it appears that the key code for that is 94, in case anyone might need that info. As far as I know, Ukelele doesn't have an option to display an ABNT layout with the extra key, so the code for it has to be added to the xml manually (in ABNT is does / and ?). You can change it with Ukelele, using the Other Keyboard Key⦠menu item, click Code, and enter the key code 94. That will give you a dialog box allowing you to specify the output you want. Hold the modifiers you want down before choosing the command from the menu. Ukelele can only display keyboards that it knows about, which is basically the Apple keyboards.
If anyone needs layouts for odd languages or starting points for their own custom layouts, you are welcome to use any of ones I've made in the last few years, almost always with Ukelele: http://homepage.mac.com/thgewecke/tckbs.html
Hi, I installed a custom keyboard layout and it works great everywhere but in the password dialog. Whenever a password dialog comes out, the layout is changed to Dvorak! The only way to type a password is to change the layout to US standard everytime. This does not happened with builtin keyboard layouts. Has anyone experienced this? I am using Mac OS 10.4 tiger. Thanks.
we've been discussing this problem last year, starting with my post in July. There is no solution yet, and also the new 1.8b1 version of Ukelele does not solve the problem. The strange thing is that the problem WAS actually solved in Os 10.4.8, but reappeared in 10.4.9. Apparently the xml keyboard layout parser in OsX has (once again) problems with the files created by Ukelele, and the system automatically reverts to a "roman" script instead of the unicode script of the Ukelele keyboard layouts, whenever a password field is selected. I am sure the problem would be solved if Ukelele allowed creating keyboard layouts in "roman script".
Hi, I'm using a modified German layout in "roman script" and I'm having the same problems.
I created a new keyboard layout based on the U.S. Extended layout in the System folder and did nothing but swap the tilde and weird double-S "section" symbol, to make by Egyptian keyboard more like a US keyboard. I want the tilde above the tab key, and the section symbol to the left of the Z key. (Actually, I want that key gone and a longer shift key, and the backslash key to be on top of return, but the physical configuration of my keyboard makes that impossible.) After I moved it to the /Library folder and logged in and out, it didn't work. When I typed in TextEdit (and other apps), the keys were swapped, but when I tried the Command-tilde shortcut to cycle through windows, it wouldn't work unless I pressed the key where the tilde used to be before I swapped it. Later, I added a custom icon, and then remade the layout based on the U.S. layout in the Ukelele application folder, which is what I actually use on my computer. However, the keys still acted like they weren't swapped when I held down the Command key. Also, I chose U.S. Extended at first because I couldn't find U.S. in the pop-up menu of templates to use to create a new layout. I later found that layout in the Ukelele folder, but there is no .icns file for it, so I was forced to base my .icns file on the U.S. Extended .icns file (I just changed the U in the corner of the flag to a tilde). I've searched all over my system, but I can't find any original U.S..keylayout or U.S..icns file (it's just the .icns file I'm interested in, though). Can anyone please help? To summarize, I have two problems: - After swapping two keys, they type as I would expect, but Command makes them act like they aren't swapped - I can't find the .icns file for the U.S. layout Thanks.
First question is, how did you swap the keys? With the "Swap Keys" command, or by changing the output manually? If the latter, you should check the way that the keys are mapped with the command key down. You may need to change those as well. The US icon is stored in the Roman bundle (/System/Library/Keyboard Layouts/Roman.bundle/Contents/Resources/Roman.rsrc), but it's a kcns resource. I haven't found a way to convert it to an icns file, though it should be possible â Apple's Technical Note describing XML keyboard layouts (TN 2056) says, "...the kcns resource format, which is new for Mac OS X and is the same as the icns icon format...". As far as I can tell, it may be possible to convert, but it may only be possible with a hex editor, unless you have Resorcerer.
I used the "Swap Keys" command both times. Any other ways I could fix it? Thanks for the info on the US icon.
Well, I tried to replicate your problem, but it works for me. I don't have an ISO keyboard (with that extra key), so I can't test it extensively, but if I type command-§ in the swapped keyboard, it doesn't behave as if it were command-`. Is there any particular application where it doesn't work as expected?
I found the problem and the solution, but I still don't know why the problem existed. I went to System Preferences and looked in the Keyboard & Mouse > Keyboard Shortcuts section, and found that for some reason, the "Move focus to next window in active application" and "Move focus to the window drawer" shortcuts were Command-[Section symbol] and Command-Option-[Section symbol]. When I changed the language back and forth between U.S. and my modified layout, the shortcuts changed between using tilde and the section symbol (if I waited long enough or switched tabs in the Keyboard & Mouse section). I changed those shortcuts in my layout to use tildes and now they work fine. However, the application switcher brought up with Command-Tab still uses the wrong key (tilde should cycle backwards through the applications), and I don't see any option for it in the Keyboard Shortcuts list. It seems that keyboard layouts may also be tied to system keyboard shortcuts. If they are, you may want to note that somewhere in the Ukelele documentation, and possibly fix some bug in Swap Keys that makes it not always change keyboard shortcuts. Please tell me if you find some way to change the shortcut for the application switcher and any other applications there might be with custom shortcuts for the tilde.
Re getting the U.S..icns file, I found that Apple's conversion tool for creating an XML keyboard layout file from a KCHR resource also converts the kcns resource to an icns file. I will see what I can do about getting the icns files generally available.
I have been using Ukelele for a few weeks, when suddenly my enter/return key just disappeared. It is not a hardware problem, because fn+return/enter functions properly, and all other users on my Mac can us the enter/return properly. What do I need to do to get my key back? Thanks: ZZZZZ
> I have been using Ukelele for a few weeks, when suddenly my enter/return key just disappeared. It is not a hardware problem, because fn+return/enter functions properly, and all other users on my Mac can us the enter/return properly. Does this mean that you have a keyboard layout created/edited with Ukelele as your regular layout? Have you tried switching to another keyboard layout, and seeing whether the problem goes away? If it does, then it's the keyboard layout. If the problem persists, then something is is the source of your difficulty. If it's the keyboard layout that is the problem, open it in Ukelele, double-click the return key, and check that the output is the default (shown in the dialog) of #x000d (with the ampersand before and semicolon after). If it's not, reset it to that value. You will probably want to restart your computer afterwards to make sure that the corrected keyboard layout is loaded properly.
Is there any way to decouple the caps lock key from its standard interaction with the shift key? I want to be able to use the caps lock to, in essence, switch between two keyboard layouts (while retaining normal shift key uppercasing for both layouts). Can this be done? If so, I can't figure out how to specify this in Ukelele. Thanks
Decoupling of keys like this is something I'm looking at for a future version, though there are quite some complexities with it. In the meantime, the best way to handle it would be to delete the modifier combination for caps lock, and then add a new modifier combination for caps lock, which would then have nothing bound to the keys. You would probably have to create new modifier combinations for caps lock + shift, caps lock + option, and so on.
I'm also trying to do this but can't figure out how. Can you provide a step-by-step example? thanks!
This is implemented now, but it's called "unlink" rather than "decouple". To get caps lock completely independent of shift, choose "Unlink Modifier Set..." from the Keyboard menu. Click OK in the dialog, and then set caps lock down, and press any ordinary key (letter, number, punctuation). When that is done, you can change the output for any key with caps lock, and it will not affect the output of the key with shift. Hope that's clear enough.
i cant download 1.8 b2, the diskimage is corrupted...
Thanks for reporting this. We had a server problem — please try again now. Sorry for the inconvenience.
thank you for this wonderful intuitive program. Since I'm working on both systems, mac and windows I wonder if it's possible to create a layout on the mac and transfer/convert or save it as a keyboard-layout for windows xp? Thanks in advance
No, the system on Windows is completely different, I'm afraid. At present, I know of no way to convert a Mac OS X keyboard layout to a Windows keyboard layout.
Okay, I've been having serious problems with this issue: the keyboard file is in the right folder, but it won't show up in International. What do I have to do to make it work?
A few details on what is going on: I have a modified Dvorak keyboard. That one, based on the normal Dvorak one, works fine and can be found in "International". But this second one I've made doesn't show up. It's based on the first one and just adds, like the "Dvorak - QWERTY", a whole "Cmd" modifier that enables the user, when using that layout, to use all the "cmd + ..." keys with the physical AZERTY layout that I have on my keyboard, instead of having to know Dvorak to be able to access anything. This modification is based on the modifiers that are in the "Dvorak - QWERTY" keyboard Ukelele bundles with the app, and therefore ?should? be correct, no?
First question is, is the name of the keyboard layout the same as another keyboard layout? That may block the system loading your keyboard layout, though it's not something I've tested. If it's not that, it may be that there is something funny going on with the file. You could send it to me (compressed, preferably, as keyboard layout files are fragile in email) and I can look at it. My email address is in the Read Me file on the install disk image. If you are comfortable looking at log files, you can open the Console application and see if there are any error messages in the console log that contain "uchr" (without the quotes) - just type uchr into the filter field in the top right. If there is a message, it would probably give some information about what was wrong with the keyboard layout, so please send me that information.
Thank you, I have sent you an e-mail.
My layout doesnt show up in the input menu either...I tried restarting. Its a layout based on the US original.
There was a bug in recent versions (perhaps as long as 1.7b1) that made the "Copy of an existing key map" option for creating new modifier combinations work incorrectly. The main symptom is that the keyboard layout refuses to load. It's been fixed in the most recent release, but it doesn't attempt to repair the problem, unfortunately. It can be fixed by hand editing the XML, but that defeats the purpose of Ukelele! If you have an affected keyboard layout, you can email it to me (compressed, please), and I will try to fix it. My email address is in the Read Me file.
My problem is solved, it was very simple. When I created a layout from an existing one the filename generated was myfilename.keylay and not myfilename.keylayout as it should. My problem now is that ctrl+anykey doesnt work. fn and alt works as they should but no combination involving ctrl. Another thing is that it goes back to the english layout when i open ceirtain webpages even though I checked use one input source in all documents.
The control key combinations are problematic. The system tends to ignore them, or treat them as something else. The source of the problem is the system's key bindings. It is possible to work around it, but it involves making changes in system files, which is not recommended for most people. If you want to know the details, ask me by email.
Hello John, I notice in this post that you mention there is a way to get around the Control + B producing cursor movement instead of a glyph. I presume this is by altering standardKeyBindings.dict Could you send me what info you have on this, as I have been trying for ages to get a keyboard resource into OS X ... and the key layout uses Control + B, + A, + E ... which all map to EMACS cursor movement. I have not been able to find where Apple keep the EMACS bindings, or how to over-ride them. Regards, Tony Barry tonybarry AT aapt DOT net DOT au
For those wanting the instructions on changing the system files to allow use of control key combinations, they are in the new manual, on page 28.
I got myself an original IBM Model-M keyboard with a UK physical layout last year. I was hoping Ukelele could help me configure my Mac to support it fully, which it almost does, except for one small problem which renders the layout I have almost useless :( Maybe you can shed some light on the issue? The keyboard has a similar (identical actually) looking physical layout to the "USB Pro keyboard ISO", as chosen through Ukelele. Unfortunately, the application does not distinguish between a key press made with the key to the left of enter (printed on my board, those are characters ~ and #), and the key to the right of the left shift key (on my keyboard, | and \). This means I can't configure the layout to do different things for those keys (and as I do lots of UNIX work, | and # are essential to me). Is this a limitation of my own keyboard? I would not be surprised as the thing is running through a PS2 -> USB adaptor. But I thought I would ask here, in case there is something I can do. Thanks for your help.
If you make the key code window visible, and type those two keys, do you get the same key code? If you do, then there is no way to make them behave differently â the operating system is going to treat them as the same key in almost all contexts. If they have different key codes, it might be a case of linked keys, which you can unlink with the most recent version of Ukelele.
Hi John, I just did the test and they're both coming up with the same code (42). Oh well, looks like I'll just have to live with it :) Thanks for your help!
I've just downloaded your Ukelele software (the most recent Universal beta) and was wondering if you'd be so kind as to answer a question I have regarding it's capabilities: is it possible to make a non-modifier key on a keyboard behave like a modifier key? Specifically, I want to switch the Ctrl and Help keys on an ergonomic keyboard I just bought (KeyOvation's Goldtouch for Mac), which is a great keyboard for my needs aside from the bizarre placement of a single Ctrl key in the very bottom left corner with the Help key between it and the Option key! (see http://s31.photobucket.com/albums/c374/jgc78/?action=view¤t=Crazykeyboardlayout.png) This is particularly impractical for me as I do quite a bit of work at the command line. Upon a quick perusal of Ukelele's documentation, the comments above and some experimentation with the app itself, it seems that this is unfortunately not possible. Can you confirm? If it is possible, could you briefly explain what I need to do? If it's not possible with Ukelele at the moment, would it be possible for you to add this feature to a future version of the software (it seems a lot of people want something similar), or could you recommend another tool to achieve this? Any help would be greatly appreciated!
Do you use your caps lock key for anything? As has been mentioned above, Ukulele doesn't handle all the different remapping tasksâand in particular can't remap modifiersâbut in the Keyboard control panel you *can*. If you can retrain your little finger to search for the Control key just to the left of the A (which is more ergonomic anyway, Sun had this right years ago), that could resolve your problem.
Just downloaded Ukulele today, and I am loving it! It takes all of the guesswork out of building a custom keyboard layout! My dream of Programmer Dvorak on a Mac will soon come to fruition! My friends worry about me. In other news, one feature I would love to see in a future version would be a standard entity checklist. In other words, before I declare a keyboard layout to be 'finished', I'd love to be able to run a check that will tell me if my layout is missing any vital characters ("Whoops... completely forgot to add a 'q'!"). Thanks for your time.
I'll put that in my list of features to work on. I have some ideas on how to implement it, but it probably won't make it for version 1.8.
Thank you so much for this neat utility. I'm just having a little question. I'm having a Japanese laptop keyboard and on the JIS layout the bottom-right key is supposed to be "\" unfortunately this key does return any key code. Is anybody in the knowing of a utility to find out code for keys when Ukelele doesn't return anything? Thanks
If the key doesn't produce a key code (in the key code window), then it is likely to be a modifier. As I understand it, JIS keyboards have some extra modifier keys used in composing Japanese characters. I don't think that Ukelele can help you with such keys. What happens if you double-click the key in the window?
Maybe a bit off-topic. I'm using a MBP with US keyboard. However, I also need some special characters, German umlauts and Russian. Therefore I've made two layouts: one is a modified U.S. layout with a few extra characters, and another is my own phonetic Russian layout. Now I want to have only these two and switch between them. However, I could not find a way how to disable the "standard" U.S. layout, so instead of 2 layouts I always have 3... And some applications are switching to this stupid U.S. layout by themselves, causing me a lot of unnecessary effort to go with my mouse to the menu bar instead of just hitting the hot key. Do you know how to shut the standard layout so that I have ONLY my two custom made?
Hi! Take a look at http://www.striber.dk/dinovo/ Seems OSX likes to switch back to an original apple layout once in a while - the fix is to turn one of your own layouts into an "original" one. Regards
Hello! How can I tell Ukelele that backspace-key+alt-key means forward delete? I tried a variety of approaches but never succeeded. Is alt-Backspace reserved? Thanks, Ruben
Have you tried making the output "&#x007f;"? That is the code for forward delete. If you set it to that, it should work.
Having done a little more work, I see that option-backspace is actually part of the standard key bindings, which means that the system is intercepting it and interpreting it as "delete word backwards". Apparently, the only way to get around this is to edit the standard key bindings, which is not for the faint-hearted, since it involves modifying system files. Contact me if you want to go this route.
I'm unable to get the forward delete 007f to work. No matter which key I assign it to (I'd like it to be assigned to the "Enter" key by the arrows). After saving and restarting the key will just act like the normal backspace.
I've tried this with ukelele but haven't yet been successful, so I suspect I'm not doing it correctly. I have the new Apple aluminum keyboard and because of how the keys are set up, the side of my right hand often lightly depresses the option key on the right when I am typing and the y key turns into a yen symbol. Very annoying! I created a new layout in Ukelele (the latest version just downloaded yesterday) and replaced the yen symbol with the unicode for Y and saved that layout, but it didn't work. Any suggestions? Thanks!
You don't give a lot of information about what you did and what didn't work about it, so here are some general things: - Make sure that you have saved the keyboard layout in the correct folder (often the Keyboard Layouts folder inside the Library folder in your home folder). - Log out and log in (or restart the computer). - Make sure that the keyboard layout is enabled in the Input Menu tab of International preferences (i.e. System Preferences, International pane). - Select the keyboard layout from the input menu (the one with the flag). You may also come across random switches to a different keyboard layout â see some options on getting around this in a message a few up from yours on this page. If you still have problems, either post more details, or contact me by email. My address is in the Read Me file.
I'm hoping to use Ukelele to change the functioning of a key I never use on the new iMac wireless keyboard, the Eject Media key, which is in the top right corner of the new keyboard, to the right of the F12 key. However, this key does not show at all on the Ukelele layout using the USExtended choice. Am I doing something wrong? Thanks, Hal
You are not necessarily doing something wrong. There are some keys which can't actually be used as regular keys, and the media eject key is one of them, I think. To find out if you could use it at all, show the key code window and press the key. If no key code appears in the window, then it's not generating a key code that the system can use. If it does show a key code, you can actually set output for the key by using the "Change other key..." command (not sure of the actual wording now â I'm not at my computer) and specifying the key code that you get.
I changed the function of a few keys and saved the layout, but the changes have not gone into effect. How do I get it started? The Getting Started and Tutorial pages don't seem to give this basic information, nor the Help section. Thanks, Hal
You say that you saved the layout. Did you save it to one of the Keyboard Layouts folders? Did you then log out and log in again (or restart the computer)? After doing so, did you open the International pane of System Preferences and enable the keyboard layout in the Input Menu tab? If you've done all these steps and you still don't have the keyboard layout working, you can contact me directly (my email address is in the Read Me file), and I'll try to solve your problem.
The application is fantastic! It looks that there's a bug with Leopard. I've tried to create a new document and a new window flashes on screen: open and closes very fast. As soon as I have a chance I'll try on Tiger. (I really would like to see an option to edit the physical layout as well, as some other users. :)) Thanks!
I don't have Leopard yet, so can't test it myself. If Ukelele is not behaving, there might be some messages in the Console log. Start up the Console application (inside the Utilities folder in the Applications folder) and look for some lines that contain "Ukelele". If you do find some such lines, please either post them to this page, or send them directly to me (my email address is in the Read Me file), and I will try to see what can be done about it.
this part of console log (it's really long log): 30.10.07. 10:53:02 Ukelele[12280] *** _NSAutoreleaseNoPool(): Object 0xa0199470 of class NSCFString autoreleased with no pool in place - just leaking 30.10.07. 10:53:02 Ukelele[12280] *** _NSAutoreleaseNoPool(): Object 0x392c80 of class NSPathStore2 autoreleased with no pool in place - just leaking 30.10.07. 10:53:02 Ukelele[12280] *** _NSAutoreleaseNoPool(): Object 0x3922e0 of class NSBundle autoreleased with no pool in place - just leaking 30.10.07. 10:53:02 Ukelele[12280] *** _NSAutoreleaseNoPool(): Object 0x394c10 of class NSPathStore2 autoreleased with no pool in place - just leaking 30.10.07. 10:53:02 Ukelele[12280] *** _NSAutoreleaseNoPool(): Object 0x3945e0 of class NSCFArray autoreleased with no pool in place - just leaking
That's helpful. Could you email me directly the whole console log - it might help me to work out what's happening.
Another same symptom here. Using 10.5, Ukelete splash screen is ok, but "create new" one is not.
Well, it appears that the system keyboard layouts are organised very differently in Leopard, so I need to try to find a way to do what worked in previous systems. I hope that I can get a version out soon. 1.8b4 does not fix this one, unfortunately.
created under OS X.4 not working at all with Leopard. They are installed, but the flag icon doesn't show up in the drop down menu and regardless of which keyboard is selected, it justs defaualts to US English.
Scratch previous message. They are working now albeit the icon flags are not there.
i have the the same problem where i cant get a new doc, but i can open an existing layout and modify it. the major problem is that leopard doesn't recognize the new layout completely. i can open a text doc and type with the new layout, but i can't type in spot light or other os features.
I amjust considering switching to Mac from PC and wanted to make sure I can do custom keyboard layouts (a dealbreaker for me). At the apple store, with the help of a Mac specialist, we tried installing Ukelele last night (November 5, 2007) and got nowhere. It would just blink and disappear. Please help.
After the upgrade to Leopard, the modified US keyboard I had created back in the 10.3 days, stopped working for some reason. With what I created it, I don't even remember. In any case, I stumbled upon Ukelele after some Googling, downloaded it and re-created my keyboard layout. I based it off of the standard US keyboard layout bundled with Ukelele and added § as a dead key so I can quickly produce the accented characters in Estonian (§a for ä, §u for ü, etc). Now everything works fine, EXCEPT that in BBEdit's search & replace dialogue, the keyboard shortcut for "Replace All", which is alt-cmd-R, does not work. The rest of the shortcuts, that are plain cmd-letter ones, do work. In, for example, Fireworks, the menu shortcut for enabling/disabling rules, which is also alt-cmd-R, does work. BareBones (makers of BBEdit) helped me trace it down to a point where it's indeed a problem with my keyboard layout - the shortcut works properly with all the system layouts bundled with Leopard. At that point, they let me go and asked to be kept in the loop in case I find a solution. :) Any ideas what might be causing this anomaly?
I'm not sure what the problem is. Could you send me the keyboard layout by email (my address is in the Read Me file), and I will have a look at it. In the meantime, does it fail for all non-Apple keyboard layouts? You could try creating a keyboard layout which is one of those that came with Ukelele, without any modifications apart from the name. For example, create a keyboard layout as a copy of the US (or US Extended) keyboard, only changing the name (so that you can find it in the Input Menu list). If that works, then it is probably your keyboard layout. If it doesn't, it may be that Apple has a bug somewhere.
In regard to not being about to modify existing keyboards... Would it be a workaround to run Ukelele under Tiger, make a keyboard based on a system keyboard with no changes and output it. Then input that file into the Leopard Ukelele and go from there? If this is feasible, it would be helpful if someone could do this and make at least the U.S. Extended keyboard available in this way.
Sorry, I'm a little slow sometimes...
Hello dear author and all. I have just gotten my first Mac and it has Leopard. I come from the Windows experience where I use a Russian phonetic keyboard. The idea is the same as with Mac's Russian-Phonetic keyboard, but six or so letters are in different places and it's killing me. I need to "customize" Mac's layout to my liking. Is this doable? I am reading about all the "does not work with Leopard", "can't install" and "feature unavailable" comments and just trying to figure out what I can try and what I should expect. I have downloaded Ukelele 1.8b5, but have not installed it yet.
The current beta version of Ukelele works correctly on Leopard, with no known issues. Earlier versions mostly worked, though not the New... dialog. The only feature that is disabled in Leopard is creating a keyboard layout based on a system keyboard layout, which was available in the New... dialog. All the system keyboard layouts available on earlier versions of Mac OS X (up to at least 10.4.10) are provided with Ukelele, so this only means that you have to create a new keyboard layout by opening a copy of one of these.
You're a genius. Done! СпаÑибо.
Someone created a Keyboard layout file for Telugu using Perl. Is there a way to use the files with .pl extension to generate a Mac OS keyboard layout without having to redo all over again? I know very little about programming but want to create a QWERTY keyboard layout for Telugu. These layouts exist for PCs. It looks like all the resources are around but no one is interested in creating one for Mac. Any guidance and help will be appreciated.
What kind of keyboard layouts does the Perl script generate? If they are for Windows or Linux, or anything other than Mac OS X, then it won't be easy to make it create one for Mac OS X, especially if you're not a programmer. So, your choices are to create your own with Ukelele or KeyLayoutMaker (or the web-based tool at I know of two current locations for Telugu keyboard layouts, though not QWERTY Telugu:
I don't think I stated my question accurately before. What is needed for Telugu typing on Mac is actually a transliteration program. On PCs there are several transliteration applications available. Basically, if you type Telugu phonetically using Roman script, the program interprets the typed text and displays the Unicode glyphs. Many of these are web based. One example of this is Lekhini (http://lekhini.org/). You type the phonetic expression in English in the upper box and the Telugu script appears in the lower window (either on the fly or one word at a time, i.e. when you hit the spacebar, comma, or a period, etc.). This works on the browser regardless of the platform. You can then copy the transliterated text and past in TextEdit or any other Unicode compatible application. A transliteration application was written by someone in Perl script and is available freely (http://search.cpan.org/~syamal/Unicode-Indic-0.01/lib/Unicode/Indic/Telugu.pm). Now my question is, can this transliteration script be adapted for Mac? I realize that I may asking too much or too ignorant questions! I'm just frustrated that a facility so prevalent on PCs is not available on Mac for Telugu. Thank you again for even reading through all this!
I think that the answer is going to be that you can't do this with just a keyboard layout. What you need is an input method, which is something for a programmer to do, not something that Ukelele can help with. Apple provides some input methods for Chinese, Japanese and Korean, and there are others available on the Internet. Unfortunately, I don't know of any for Telugu.
We are trying to install a keyboard layout under Mac OS Leopard but the system seems not to accept it. The symptoms are that when we select the new layout in the "International" panel, the standard US keyboard layout checkmark of Leopard remains grayed out, the checkmark of the new layout is solid black. Typing shows that the new keyboard layout is not effective. This happens with our own layout and the standard layouts supplied with Ukelele! The console window does not show error mesages. Greetings Michael
I have custom keyboards working correctly in Leopard, so it is something on your system. To verify that, try creating a new user account, install the keyboard layouts in that, log in to the new account and see if they work. Having said that, I don't know what would be causing keyboard layouts not to work. I believe that there are some problems with Input Managers in Leopard, but you'd need to find some more information elsewhere on that. What you will need to do is to try to remove whatever custom software is on your computer, see if the keyboard layouts are working, and then add things back until something breaks it. Not much fun, but about all you can do.
Hello, is it possible to recreate the functionality of the Numpad the former MacBooks had, using Ukelele? What I don't need is the "Numpad" Button itself, but e.g. the fn+j for 1(numpad) or fn+u for 4(numpad). What won't help me, is to use the number keys originally provided, as I need the numpad for a very special application I am using with Parallels and WindowsXP. Now, with the new MacBook, I have a problem ... If there is a solution, could please someone tell me? Thanks a lot, Christoph
I haven't seen these latest MacBooks, but I see that they don't advertise an embedded keypad. Do they have an fn key? If they do, it's probably worth trying to see if it can make the keys produce a different key code. Open Ukelele, show the Key Code window, and try pressing j and then fn+j, and see if there are different numbers shown in the Key Code window. The j key should be 38, and fn+j 83, if the embedded keypad is available. If the fn key doesn't give you different key codes, then you'll have to try a different approach, such as making the keys behave as a keypad when the caps lock key is down, for instance. That can easily be done in Ukelele.
This problem also afflicts the new aluminum wireless keyboards. Both it and the Macbook keyboards have a Fn key. Creating a "New..." Ukelele layout using the "based on System keyboard layout" option creates a layout which shows the embedded numpad keys when Fn is held down - that is Fn+U changes to 4, Fn+I changes to 5, etc, and Fn+arrow keys changes to Home, End, etc, just as on the MacBook Pro keyboards and earlier Powerbook and iBook keyboards. However, using the Ukelele KeyCode window shows that only a few of the Fn+keys actually emit a different keycode. The ones that I see working are Fn+ any of the arrow keys (emits Home, End, Page Up & Page Down) Fn+Return (emits Enter key). The other embedded numpad keys emit the same keycode regardless of the Fn key state. Also, F1-F4 & F7-F12 do not emit keycodes at all unless Fn is down. F5 & F6 are unaffected by Fn. In summary, I can find no keys which emit different keycodes when Fn is down, other than the 4 arrow keys and Return. (RANT)This is quite annoying in music programs such as Sibelius, MOTU Digital Performer, and Digidesign ProTools, as these (and many others) make heavy use of the numeric keypad. These apps typically have MANY key commands, and there really aren'tany open keys to transfer these functions to. For example, in Sibelius, the numpad is used to change note durations. Formerly you could very rapidly enter music on Apple laptop keyboards without dragging along an external keypad, by typing note letter names and numbers (for musical intervals above and below the last entered note), and using Fn to select the time value (quarter note, eighth note, etc). Now it doesn't work. Hard to imagine why Apple would remove this function - you' think it would also hamstring their own media editing apps like Logic. Admittedly many people never used the embedded numpad. But for those who DO use it, it's a deal breaker and makes the MacBook and Aluminum Wireless keyboards useless...I bought the wireless one for use with Sibelius, and while I love it - it wipes out note entry. (/RANT) Well, now that I feel better... one thing I don't understand is that pressing Fn on the Aluminum wireless keyboard -does- cause the key layout display in Ukelele to show the proper numpad keys. So something coming from the keyboard is different. So, shouldn't it still be possible to make a layout that would output keypad4 in place of Fn+U, etc? Using CapsLock to get these keypad keys isn't going to work in these kinds of apps. For example, like Sibelius, MOTU Performer already assigns important commands to nearly all the lower case alpha keys, and to many if not most of the Shift-alpha keys...as well as just about every other combination of Command, Option and Control keys.
The reason that Ukelele displays an embedded keypad is what I'd call a bug. I have built into it the assumption that, if a keyboard has a fn key, then it has the same set of combinations as all other keyboards with a fn key. Obviously, that's no longer the case, so I need to work on that, and identify exactly what fn-combinations are available on each kind of keyboard. So I'm sorry, but Ukelele is actually misleading you on this issue! Although you can edit what would appear on the keypad if you had one, you can't actually make your keyboard behave as if it had one. The function keys usually have two types of function. The default with current versions of OS X is that they control hardware functions without fn, so that the key presses never get to an application. To get the function key, you need to press the fn key as well â for example, triggering Spaces or Exposé requires fn to be pressed. That can be changed in System Preferences, Keyboard & Mouse pane, Keyboard tab.
I couldn't get it to work, and a little digging by a Apple Care specialist revealed that the embedded numpad is removed on a hardware level and is not expected to return. Thus FN+F6 does nothing, I have left feedback for Apple but they still include embedded numpad in the specification of Late 2007 MacBooks all over the web. I had to look elsewhere, since my application (run under VMWare fusion) required a numpad.
Hi, The keyboard I am using (an ergonomic keyboard by GoldTouch) has for some strange reason put the help key next to the Ctrl key. This is very problematic, since the location of the help key is where Ctrl should be! So, I'm constantly hitting the help key when designing in photoshop or other apps. I would love to be able to map the help key to Ctrl. Can I do this? In the help, it states: "To make a key behave like a control key, you need to enter the right hexadecimal code.". How do I find the hex code for the control key? Any help or guidance is appreciated. John
You can't do it, I'm afraid. When the manual talks about control keys, it means keys that aren't alphanumeric or symbol keys, that do things like enter, return, backspace, home, left, and so on. The ctrl key is a modifier key, like shift, option, command. The two types of keys are distinct. You can't change the help key into a modifier key (such as the ctrl key). There's just no support for such a change at the level of creating a keyboard layout. Such a change would have to be done at a lower level, like a keyboard driver.
Has anyone encountered an issue with CTRL-together-with-another-key not working as expected on some applications. For example, on Carbon Emacs the CTRL-X combination requires that I use the original X key where it used to be before my re-mapping. I'm using a modified Dvorak mapping. When I use the Dvorak keyboard under the "System Preferences -> International" menu, things work fine. All CTRL-key combinations work great. It's only when I use Ukelele that I experience the problem. Thanks! ksc
Have you changed the key output for control-X to be the same as control-X would produce on the Dvorak layout? It should be the hex value 0018. You need to enter &#x0018; to get that (I hope that turns out correctly on the web site!). I haven't tried this myself, and there are some problems with control key combinations at the best of times, but it should hopefully work.
Thanks John, Interestingly, I used the Dvorak template provided in Ukelele. So all the CTRL mappings are fine. The CTRL mappings even work fine in other applications I've looked at. CTRL-X works as expected in a terminal, for example. I would blame Carbon Emacs, but the Mac OS X Dvorak keyboard provided under System -> International works with Carbon Emacs fine. So it's something to do with the way the mappings are implemented by Ukelele. I'm wondering if looking at the XML code for the Ukelele mapping and the Mac OS X mapping might provide some clues. Or perhaps this is even deeper than that. Any suggestions would be appreciated. If you can point me in a particular direction, I'll be happy to pursue it. All I need are some technical details as to the implementation used in Ukelele. ksc
I am using the SIL YI font and trying to build an input keyboard for mac. I want the combination of "dead key" + "a" + "p" to give me a glyph associated with "ap". Is this possible? thanks so much!
In theory, you could do this by defining LOTS of dead keys in Ukelele; e.g., "a" would be a dead key, with "p" as a completer generating the "ap" character, and many, many others. But it would be a huge undertaking to handle the entire Yi script this way. For a case like this, have a look at KeyLayoutMaker:, a tool that was designed to simplify the construction of layouts with hundreds of dead-key pairs or sequences. The download even includes a sample input file for a Yi layout, which you may be able to adapt to your needs.
I built a Kharosthi layout, everything is fine with Ukelele, but Keyboard Viewer won't show the font for this or any other Plane 1 script (10.5.0). Any fix known for this?
This bug seems to be fixed in 10.5.2
I've used Ukelele on and off for several years making specialized keylayouts for different languages and scripts — fantastic app! :) I've just run into a problem that looks similar to others reported here. A new keylayout I've made isn't showing up in the System Prefs > International > Input Menu list. Other keylayouts I've made in the past with Ukelele are fine; they're still there. Just the new one isn't showing up. This doesn't really seem like a Ukelele issue — probably more an Apple one! But perhaps someone here has an idea of what's wrong? The only think I can think of is that the new keylayout is essentially my own "remix" for inputing polytonic Greek and so uses numerous characters from Unicode's "Greek Extended" block. None of the previous keylayouts I've made with Ukelele have done so (I don't think they've used characters from blocks "higher" than the regular "Greek and Coptic" or Cyrillic blocks. I wouldn't think the "higher" block should make a difference, but maybe it does? (Though of course, the default Greek Polytonic keyboard layout works fine — I just wanted to make my own ;) I've been using both Ukelele 1.8b3 and most recently 1.8b5 on an Intel Mac mini running 10.4.11.
Another thought — could this be some weird keyboard ID issue? I know conflicts are supposed to be resolved dynamically by the OS, but .... Still stumped on this one! :P
It's unlikely to be an ID conflict. You may find more clues in the console log, which you can look at with the Console application (Applications > Utilities). You can send me the keyboard layout by email (compressed with StuffIt or zip or something) and I'll have a look at it, too. My email address is in the Read Me file.
If you send me a copy I'll see if it works for me (tom at bluesky dot org).
Thanks John, Tom — I've emailed you the problem keylayout and another Ukelele-made keylayout that _is_ behaving properly. Perhaps you can see where I've gone wrong!
The problem appears to be caused by dead key state names that are numbers. For some reason, the keyboard compiler can get confused with them and refuse to accept the keyboard layout, but only in some cases. The solution is to change state names that are just numbers to something else, so change state "1" to "s1" or something like that. It can be done from within Ukelele, via the "Change State Name..." command. I will try to make an automatic fix for this in the next release.
Thanks John (& Tom)! I can confirm that remaining the state names to something other than plain numerals has fixed the problem. :)
I've done a new layout and installed it fine. It works well in Safari, but for some strange reason it does not work in Word for Mac. The program just does not respond to the keys. What am I doing wrong? Thanks, Ros
I am having this same problem too and I can't find a response to this problem. My keyboard layout works in Firefox, but not in Word:Mac 2008. Is there any update to this problem?
I open a keyboard layout file and see it includes the Fn modifier key. When I press it the key highlights on the map. When I open the Modifiers window (Shift-Cmd-M) the Fn key isn't listed as one of the modifiers. How do I go about creating a new key combination that includes the Fn modifier key if it's not included in this list? Thanks, Dave OS X 10.5.2 Ukelele 1.8b5
The fn key is not really a modifier in the sense that shift, option, command, caps lock and control are modifiers. It rather serves to convert keys on a keyboard into other keys that are not present on that keyboard, so creating a number pad on a laptop keyboard. For those keys that don't have a second character printed on them to indicate their function with fn down, fn does nothing. Also, in Apple's scheme of keyboard layouts, only shift, option, command, caps lock and control are counted as modifiers. That means that you couldn't create another modifier combination including fn even if it made any sense.
Hi Is it possible to generate XML keylayout files from binary Apple keylayout files on Mac OS X 10.5.x ? Kind Ragards Uffe Jakobsen
I don't know of a way to do it. They are not resource files, so Apple's tools don't work on them. The two files are identical, just with different byte orders, -B having big endian, and -L having little endian. Someone could perhaps reverse engineer the format, but I don't have the skills for that. Alternatively, ask someone at Apple.
Ok thanks for your answer. Here is what I'm trying to do: I'm using an Apple ALU keyboard and wish to remap a few number of keys/chars - so that the keyboard layout is more like my pc keyboard layout - switching between them makes me crazy. Since I don't want to build up the total keylayout from ground and up - it would be nice if I could grab the (apparently binary) keylayout shipped by Apple and just remap the few keys that are "wrong". Is it in any way possible to use the Apple layouts as a foundation (start) in Ukelele ? Kind regards Uffe Jakobsen
You can use the system keyboard layouts that are supplied with Ukelele. Since the 10.5 versions are not accessible (I still haven't worked out what the file format is), all the keyboard layouts supplied with 10.4.10 are available in the System Keyboards folder. The Unicode folder was missing up to the latest release (1.8b6), but is there now. The easiest way to use one of the system keyboard layouts is to choose the option "Copy of other keyboard layout" in the New dialog, and then open one of the files from the System Keyboards folder supplied with Ukelele.
Hi I am trying to use this IBM-SK-8809 with my two Macs: one G4 running Tiger and one G5 running Leopard. It responds correctly except fot two keys even though the layout is exactly the same as my Apple French-Canadian keyboard. In fact, when I type a " ù" I get a "/ " and when I type a " / " I get a " ù " . Can Yukelele make this keyboard respond the way it is laid out when used with a Mac? I would love to use it. Thanks
Thats excactly what I was looking for! http://utechristian.wordpress.com
At first, I was at a loss when my created layout correctly appeared in the International tree, but didn't work at all with already open applications (except for Keyboard Viewer and Ukelele itself). After actually following the directions and logging off and logging in again, things work perfectly. Any idea why the system needs this kind of "reboot"? I've been using a Mac for about 6 hours now, and I was kinda getting used to the whole "changes to preferences take effect immediately" thing :) Thanks for the great software, really helped my mac experience along :) //sjl
Unfortunately, this does not work for me (under Tiger). I switch to a second user, choose the new layout. It appears selected, but it does not work. I logout, then login again. The chosen layout is reset to the default layout.
Just wanted to say that it would be easier to use if you could just single-click instead of double-clicking to edit keys. Sorry for short message, but switched to Dvorak yesterday. :)
i'd like to assign one letter to a key with control+alt modifers, and another to cntrl+alt+shift (captial letter), but whatever i assign to control+alt is copied to control+alt+shift, and vice versa. why is it not possible to separate these two? i am using the latest version of ukelele
There are two possible sources of this problem: 1. Both control + option and control + shift + option are mapped the same. In this case, you need to create a new modifier combination. Choose Show Modifiers, and create a new set. Instructions are in the manual. 2. It may be that you have a linked pair of keys, where changing one automatically changes the other. You can unlink keys now, and, again, the instructions are in the manual. I hope that makes enough sense for you to find an answer.
Hi, I try to remap a french PC keyboard. When i hit the upper left key, ukulele show the key between "shift" and "w" if i push this key it show the (µ/*) key stroked. Is there a reason? I have un adaptater ps2 to usb which work fine on PC. And a last question how can i change the "top" and "bottom" keys (left to page up/down) to start and end of the line functionnality. Regards. Régis
I don't quite understand your first question. It sounds as though you have a mismatch between the keyboard type you are using in Ukelele (via Set Keyboard Type⦠in the Keyboard menu) and the physical keyboard that you are using. In other words, the arrangement of keys on the screen doesn't match the arrangement of keys on your keyboard. That's likely to be caused by having a non-Apple keyboard, which means that you won't get a perfect match automatically. You can try to find a better match by experimenting with different keyboard types. Changing the top and bottom keys to home and end may not work well, as explained in the manual. For this reason, the control key codes haven't been included in the latest version of the manual. Home has code 0001, and end has code 0004, which are entered with the XML notation starting with an ampersand (&), then #, the number, and then a semicolon (;). Ask again if you need more information. I can be contacted by email, and my address is in the Read Me file.
I have created a new keyboard layout based on the Logitech French keyboard layout that comes with Ukelele. I am able to modify the keyboard mappings without a problem. However, when I try to save the new keyboard layout, the "save" button is grayed out. Impossible to save the newly created layout. I have tried "save" and "save as" but both give the same result. I am sure that I have sufficient write permissions in the folder that I am trying to save, which is my home folder. I am able to save there with other applications. Could someone please help?
I've never seen this problem myself. Are you able to save it in a different folder? Perhaps in /Users/Shared? Otherwise, you could check that the permissions are correct. They should be 755 for the application bundle, and also for the executable (Ukelele.app/Contents/MacOS/Ukelele). Beyond that, I don't have much idea what's going wrong.
Is there a way that I can just change one key mapping without going through the whole process of creating a layout? I tried basing one on the US layout that comes with Ukelele but I immediately noticed that some CMD+key combinations weren't working. I'm guessing what I want is the "Based on system keyboard layout" option that appears when I create a new layout in Ukelele, but it's always disabled/greyed-out. What I'm trying to do is map the CLEAR key to the CAPSLOCK key (or even better.. disable the CLEAR key altogether). The reason for this is my USB numeric keypad prepends and appends a CLEAR (what it thinks is NUMLUCK since it's designed for Windows) before each number keypress. eg: pressing the number 7 on the keypad sends NUMLOCK+7+NUMLOCK to the mac (which is really CLEAR+7+CLEAR). Pretty messy. I want it to send nothing+7+nothing or at least CAPSLOCK+7+CAPSLOCK. I'm trying to do this without changing anything else in my keyboard layout. If there were already editable XML layouts in the OS, I'm guessing I wouldn't need something like Ukelele to do this, but of course they're not there. Thanks for any help. Rob
"Based on system keyboard layout" is not available in 10.5 (Leopard), due to Apple changing the format that the system keyboard layouts are provided. However, all the keyboard layouts from 10.4 (Tiger) are provided with the current version of Ukelele. Choose "Copy of other keyboard layout", and then open your desired keyboard layout from the System Keyboards folder that is on the Ukelele disk image. You won't be able to turn Clear into Caps Lock, since Clear is not a modifier key, but Caps Lock is. Your problem with the number pad may not be something that can be fixed with Ukelele. It is likely at a driver level that the Clear is being added, and the keyboard layouts that Ukelele produces operate at a higher level.
"all the keyboard layouts from 10.4 (Tiger) are provided with the current version of Ukelele" Actually, the Italian layouts are missing from the list. Do you want I create them, and them to you?
The Italian keyboard layouts are there, but they are in the Roman folder, not the Unicode folder.
Hi there, nice app, think it might solve one of my problems converting from Windows to Mac. However, I do have a problem. I loaded up the Swedish keyboard layout in Ukulele and mapped superscript 2 and 3 to Alt+Numpad-2 and Alt+Numpad-3 respectively. Saved it to ~/user/Library/Keyboard Layouts, selected it in preferences and tested it. The new keybindings worked fine, but then I noticed that â-w for closing windows had stopped working. Switching back to normal keyboard layout and it worked again. Am I doing something wrong here? I weren't really prepared to sacrifice my shortcuts for this, if you know what I mean. :) Any help here is appreciated.
I had a similar issue: This worked great for remapping the sharp, flat, and natural signs to an opt-s, d, and f. I've wanted a solution for typing accidentals quickly in text for a long time. But in Sibelius all the shortcuts that use control or option are broken. Even if I try to reset them, the input dialog shows bizarre combinations when I type a shortcut. Opt-g shows shift, control, copyright symbol.
I'm not sure what is happening here. It would seem to be a problem with Sibelius rather than anything else. I'm not familiar with the program myself, but some programs like that are badly behaved in that they more or less assume a standard keyboard layout, and work with the key codes rather than interpreting the output of the keyboard driver. There's not much that can be done if that is the problem. It's a problem with some of Apple's programs, too!
I made a simple keylayout based on the standard US keyboard. I added grave:0300 and accute:0301 accent deadkeys (just like the spanish keyboard) assigned to the "[" and "]" keys, and I needed one new vowel: the caret (lowercase:028C uppercase:039B) which I assigned to the "v" key. Every combination works fine in TextEdit, but in Excel I can ONLY get accented caret and never the caret by its self. I can cut and past them into cells, but I can't type it in manually. I've tried with both SIL and Helvetica fonts. This has me stumped.
One more detail that might be relevant. I just discovered that I can generate the accented turned-v, and then delete the accent (leaving only the turned-v with no accent), but not input it directly. Still scratching my head.
Have you added Ê and Î to your keyboard layout without them being a dead key combination? Are they replacing v and V respectively? Without more explanation, it's hard to know exactly what is going wrong. If you get stuck, feel free to send me a copy of your keyboard layout, and I can try to help. My email address is in the Read Me file.
That's exactly what I did. I made them replace v and V respectively (using the shift key to make the capital). I will email you a copy of the layout.
When I modify the main keyboard, it seems to change all the keys for Apple/Command as well. How can I have them stay as Latin?
It's likely that the basic set of modifiers is set to be no modifiers or just the command key. If that's the case, then you need to edit that modifier combination to remove the command option, and then create a new modifier combination with the command key. You can either set it to be the basic Latin (QWERTY) layout, or copy one of your existing sets.
Could someone elaborate on what's mentioned above? ("input source change in Safari") I did manage to get two U.S. entries in International.prefPane, but they were both the original layout. Since that's in .rsrc and mine's .keylayout it's complicated to remove.
I need to disable Ctrl+click as secondary click in order to work on some softwares on Windows using Fusion(which is a software that runs windows inside the Mac os, for those that don't know it). I need to be able to press ctrl and be able to click as a regular click in order for certain things to work properly, and since I already have the two finger click enabled, I don't really need ctrl+click.
No, Ukelele doesn't affect control-click. Have you looked at this thread on the Apple bulletin boards? http://discussions.apple.com/thread.jspa?threadID=1520841&tstart=487 It seems to imply that Fusion should enable you to disable the control-click contextual menu. Alternatively, try the mouse driver they mention.
Thanks for your answer. Unfortunately, unchecking that option in fusio, also makes me lose the ability to midle-click which is also essencial. Either you have, both or you have none. About the driver, I´m not sure it would work since i´m using the trackpad.
Hello All, Just installed Ukelele. Where are the 'included' keyboard layouts? I want to change a few letters in the polytonic Greek keyboard, but can't find any of the keyboard layouts...Probably right under my nose. Can someone direct me? P
Look on the disk image that you downloaded. There are folders "System Keyboards" and "Logitech Keyboard Layouts", and the included keyboard layouts are in these.
Hi everybody, I just created a new layout based on the regular US Layout. When I created the layout, I opened the US Layout that was in the .dmg file that I downloaded from this site. What I did is just invert the shift key usage of the number keys. So for instance, if I press 1, ! will be typed and if I press Shift+1, 1 will be typed. I Selected Roman for the Key ID and the ID set itself automatically to 2356. I tried to change that value to other random numbers that I picked in the range of 2000-3000. I set the keyboard type to Aluminum Wireless/ISO; I have a 4th generation MacBook Pro, this keyboard type is the only one that matched my keyboard.. I saved the layout as PrQ.keylayout, and created a small 16x16 gif icon with the same name (and I changed the extension to .icns). I've put those two files in ~/Library/Keyboard Layouts/ and logged out, but the new layout did not appear in the Input Menu tab of the International System Preferences. I then put copied the two files in /Library/Keyboard Layouts/ and restarded my mac but the new Layout did not appear in the Input Menu tab. I then deleted the two files from ~/Library/Keyboard Layouts/ and restarted, but it didn't work. Can anyone tell me who to activate my new layout please? Aziz Light
It sounds as though the keyboard layout may be generated with an error. Can you send me the keyboard layout, compressed with zip or StuffIt, to the email address in the Read Me file. I will be away from email contact from 1st October to 27th November, so can't promise to get it fixed soon, if there's a bug.
Hi, OSX 10.5 including Turkish keyboard but not change. Because, I'm not find resources in system folder. I want to change it. Because, It's inculuded (,) in numeric pad. I'm change it (,) to (.)
You can find the Turkish keyboard layout on the disk image on which Ukelele came. Look in the System Keyboards folder, and the Unicode folder inside that. You'll see three Turkish keyboard layouts, Turkish, Turkish-QWERTY, and Turkish-QWERTY-PC. You can create new keyboard layouts based on any of those with Ukelele.
Hi, I'm interested to know how you generated the system xml-files in the first place. I've downloaded the font-toolkit with the kluchrtoxml/klkchrtoxml tools but where and in what format are the apple system provided keyboard-layouts? In System/Library/Keyboard\ Layouts/AppleKeyboardLayouts.bundle for example I don't find any maps per layout. What's the secret? Thanks for a cool tool! /Mats
In the swedish layout, the characters 'TM' (0x2122) and '@' seems to have switched places. E.g. <opt>+2 (code=19) should give a '@' and <opt>+' (code=42) should give 'TM'. Is this a bug in generation of the XML or where might this stem from? (I'm trying to use the XML-files to generate layouts to use in an app I write). I wrote the last comment with the question about how the XML is generated (still google'ing to understand how :-). Cheers, /Mats
Sorry for confusion here, the problem with the swedish keylayout was actually that I ignored the Swedish-Pro layout which has the keys correct (I wasn't aware, but I assume the Pro denotes some revision which Apple has made to the swedish keyboard in the past). About the Hebrew I still find both the Hebrew and Hebrew-QWERTY to be faulty (having swapped keycodes 25 and 29 in keymap index 7). Cheers, /Mats
I'm trying to remap the backspace key to the tilda key, but it doesn't seem to be working. Does anyone know how to di this?
This is another case of some applications not behaving as you might hope they would. Many applications, including many from Apple, respond to the "control" keys such as backspace rather than checking the different output you might assign via a keyboard layout. So, there is no real solution to this one.
What do I have to do to make it show up? I've moved the file to Keyboard Layouts in both the user Library folder and the main drive Library folder and then restarting and logging in and out but in never shows up. How do I fix this?
This should "just work". If it doesn't, it usually means that there is something wrong with the keyboard layout. There would be a message in the console log if there was an error. If you are stuck, please send me the keyboard layout file, and I will have a look at it. My email address is in the Read Me file.
Hi there, I've created new arabic keyboard layout, but not sure how to modify the Command+Key options. In the default leopard arabic keyboard (i.e. Arabic - PC) when you click the Command button all the keys change to english so you can do things like Copy, Paste, Quit ..etc with the new keyboard i have to switch back to english to use the command shortcuts. Thanks Ahmed
The easiest way to do this is to start with an Arabic keyboard layout that already has the command keys working correctly. If you already have a keyboard layout, and want to add the English keys with the command key, then you need to edit the keyboard layout and look at how it appears when the command key is down. You might need to change the modifier combinations to get a separate set of key outputs for the command key. Otherwise, you can hold down the command key, and either double-click and enter via a dialog, or drag output onto the keys. If you're doing the whole set of command key combinations, it might be easier to turn on "sticky modifiers", so that you don't have to keep holding the command key down - it will behave like the caps lock key, with one press to make it down, and another press to make it up.
If I create or modify a layout (even if I just save a system layout using a different name, not making any changes), that new layout doesn't work in most apps. It works in Safari and a few other places, but not for example in TextEdit (all input ignored). Console shows one of these messages for each keypress: TextEdit[267] TSMProcessRawKeyCode failed (-192) Any ideas? Tried on two different systems, both with relatively fresh and recent Leopards installed.
There is definitely something wrong with your system if you are getting this sort of error. One thing to try is to create a new user account, and see if you still have the problem. If the problem persists, it is something in the system, and you may want to consider reinstalling the operating system and being careful about what you install. If changing to a new user account makes the problem go away, then the problem is most likely linked to one of your login items, or possibly a corrupted preference file. Try logging in with the shift key held down, which disables the login items, and see if that fixes things. Otherwise, there are various programs available for checking preference files for being valid property lists. Another way to check for a bad preference file is to move half the files out of the Preferences folder, and see if that fixes things. Keep halving the number of files included or excluded until you work out which file causes the problem.
Hello, Thank you for a great program! It works really well. One question (I couldn't find the answer in the license or anywhere else, if there is one, I'm sorry): Can I redistribute (e.g. publish on a blog) a .keylayout file modified in Ukelele? And if so, what would be the conditions of doing it? The file was taken from Ukelele's .dmg (System Keyboards folder) and altered in Ukelele. Thank you, Dam
I don't think that Apple has copyrighted the keyboard layouts that are distributed with Ukelele, so they would be public domain. To be safe, though, I would acknowledge the source when distributing a modified version of a keyboard layout.
Hi John! Should Ukelele work with Word 2008 or OpenOffice.org! Word seems to recognize the given keyboard files, but as soon as I edit them, it won't work... Bacardi
I think that custom keyboard layouts should work with Word 2008 and Open Office, but I don't have either to test. In what ways are they not working? Ensure that you have the changed keyboard layout active. If you have a keyboard layout already in use, and edit it, then logging out and logging in doesn't necessarily pick up the change. If that is what you are doing, move the keyboard layout file out of the Keyboard Layouts folder (say, to the desktop), and move it back in before logging out. That will make the system read the changed keyboard layout file.
Is there any way to make Sticky Modifiers stay on after you've clicked a key? The problem is that I want to start with a regular Windows-like US layout. I don't want all of those Option-key combinations. I thought there would be a quick and easy way to just delete all of the Option- states, but there's not. This is also where MSKLC (Microsoft Keyboard Layout Creator) wins in terms of convenience. With MSKLC you can double-tap a key to open its options pane and then you can see ALL modifier states for that key. It just seems so tedious and time-consuming to make a custom layout. I keep thinking that I might be wrong and that there's a much more ergonomic way to design, but I can't seem to find any way to design that doesn't involve tons and tons of clicking.
I'm not sure what you're asking. Sticky modifiers does have a problem, now that I look at it, since it returns to no modifiers when the dialog gets dismissed. I'll look into changing that. If you want to remove all the combinations with the option key, there may be an easier way to do it, which involves changing the modifier combinations for the keyboard layout. Choose "Show Modifiers" from the Keyboard menu, select the combination for option down, and then choose "Delete Modifier Combination" from the Keyboard menu. Ukelele will warn you that it will delete an entire KeyMapSelect element, which is what you want to do, so click "Delete". If that's not what you're asking, can you try to explain what you want to do, and maybe I will be able to suggest a way to do it.
Took me months to get back to you... I moved to a new apartment and it's been crazy, but that's exactly what I wanted to do. Thanks for your help.
I try to make Mac OS X version of Ukrainian Unicode keyboard layout (http://dict.linux.org.ua/other/ua_layout_uni.html) but when I try to use it hotkeys with â (like âX, âC, âV) didn't work: http://mrgall.com/dev/Ukrainian_Unicode.keylayout.zip In standart Ukrainian keyboard layout it's works fine. I did something wrong or it's limitations of Mac OS X?
I downloaded the keyboard layout and installed it, and I can use the command key combinations, so there must be something else going on with your system. Ensure that your keyboard layout is active when you try to use the command key combinations, as Mac OS X has a habit of changing the keyboard layout without your asking it to do so. Otherwise, look at other applications that you are running, whatever you have as login items, and so on.
I wish there were something like 'test drive' function. When it's enabled new window appears and you can test your new layout there without enabling it through International.
is there ANY way of doing this, if not with that tool? would like to know if i can give up my hope to map shift to tilde or at least toggle caps lock with shift. cheers
There's no way to do it with Ukelele, that's for sure. What you want to do needs to be handled at a lower level than the keyboard layout mechanism. You might want to check out DoubleCommand, or similar programs. It may be possible, but I don't know for sure.
Experimenting with the program and looking through the previous posts, I begin to suspect that Ukelele and this kind of .keylayout file cannot accomplish what I want to do, but before giving up I thought I'd ask... My unibody MacBook Pro has both a left and a right option key. I would very much like to make the right option key behave as if it were an fn key. (This is so I can do a one-hand page up, page down, home, and end, using the arrow keys and adjacent option/fn key.) Is this possible? If it is not possible, do you think a ~/Library/KeyBindings/DefaultKeyBinding.dict file that mapped right-option+left-arrow to home, right-option+up-arrow to page up, etc. would be possible and provide the desired functionality?
You're right, Ukelele can't do this for you. You can look into DoubleCommand and see if that does what you want, though I suspect it doesn't. It's the sort of utility that does remapping of modifier keys.
Hi! Thanks, Ukulele is a great tool! However, I've noticed two things: - command keys don't seem to work with the Finder (cmd+N doesn't open a new window, while cmd+W doesn't close it). Also copy/paste commands don't work. - still with the Finder: navigating in the menu bar with the arrows doesn't work. Did I miss something? Thanks again for this tool.
Sorry, but I'm not sure what your problem is. Is it that you aren't getting the command key combinations working in Ukelele? Or is it that the Finder isn't honouring the key assignments in a keyboard layout? If it's the latter, then make sure that your keyboard is active (the operating system occasionally changes the keyboard layout without warning), and that you have the right output for the command key combination. With the arrow keys, you can't really change them to something else, or other keys to be arrow keys. Apple doesn't see this as a problem, so it's unlikely that this will be fixed. However, if you haven't remapped the arrow keys, and they aren't working properly in the Finder, that is a problem, and I'd like to see more details. You can contact me directly and I'll see what I can do.
Hi, I would like to know what i must to change in keyboard.layout XML file to invert modifers key. I have an illuminated logitech keyboard, but the Windows Key is know as option, and option is know as command ;((( i don't know what i need to change ? Regards,
Although it's theoretically possible to do this with a keyboard layout file, what you want to do is better done with a different program, such as DoubleCommand, which allows you to change the meaning of the modifier keys.
Actually I had the same issue with Finder unable to response to Cmd+N or W. You have to restart the computer when applying a new keyboard layout and everything is working perfectly afterwards. (Using a Fr pc logitech layout with the Alu Macbook Us keyboard) Thanks to the creator of the software (saved me a lot of tweaking) :-)
I am not sure whether this is a Ukelele or Leopard issue. I have been using Ukelele since Panther times. Some of my layouts use ctrl-alt-e, for example, to output Ä (e with dot above). Or I used alt-c to get Ä but kept ç with ctrl-alt-c and so on and so forth. This worked pretty good in Tiger for instance. This doesn't work anymore in Leopard. I experimented with new keyboard layouts and I cannot get any combination of ctrl-alt- alt-cmd- ctrl-alt-cmd- + key to output anything (although Ukelele and Keyboard viewer shows the right character). Nothing is output. I guess Leopard reserves the use of ctrl- and cmd- to system wide and application specific shortcuts. Does any one has an idea how to solve this ? Thanks.
I have a very odd keyboard that places the right shift key to the right of the arrow keys. It looks like this: Up Shift Left Down Right In attempting to modify the keyboard, I have physically moved the key covers around, such that I get the following layout: Shift Up Left Right Down Basically the middle column and the right column have been swapped. Is there any way to use Ukelele to swap the up arrow and shift functionality? I know that the keyboard is capable of identifying the right and left shift keys separately. However, I could not figure out how to use the modifier key settings to even recognize right vs left shift. Thanks in advance for any help you can offer
Sorry, but this is not possible with Ukelele. Modifier keys and non-modifier keys cannot be interchanged by changing the keyboard layout that is in use, but it has to be done at a different level, such as the keyboard driver.
How do you swap Function keys - I'd like to make F3 (volume mute) into F5 (volume up) and vise-versa. Is that possible?
No, that's not possible. You cannot change the hardware control keys by changing the keyboard layout. It happens at a lower level, down somewhere in the keyboard driver.
Hi, I use a normal PC keyboard with a Mac Mini. There is a key which is only available if I choose the Extended ADB as the keyboard type. This key is next to y (if you use qwertz) on left. On my keybord this à (U+00CD and U+00ED). But the OS X 10.5 recognizes it as 0 (zero) and put à next to 1 on left. I want to change these two keys. Its possible (if use the Extended ADB layout) but after I save and try to use it everything is the same. Nothing changes. Do you have any solution for this?
It sounds as though you either have an ISO keyboard (they have that extra key to the right of the left shift key), or a keyboard that puts an extra key there without being ISO. The difference between an ANSI and an ISO keyboard is that the extra key beside the shift key is actually the same as the key to the left of 1 on the ANSI keyboard, and the new key is put to the left of 1. Confusing, I know. I'm not sure what you can do about it. Try checking the key code for this extra key and seeing what it generates. Also, experiment with some other keyboard types. These only affect display, not how the actual keyboard layout works. If you are still stuck, you could contact me directly (my email address is in the Read Me file), and send me the keyboard layout file and some screen shots to explain the problem more, and I'll see if we can get an answer for you.
Is there any way I can make a donation to the creator(s) of Ukelele, to help them continue developing it? Can I do it via PayPal, perhaps?
If you'd like to, contact me directly. My email address is in the Read Me file on the installation disk image.
Hello, I just got a MacBook from Switzerland. I changed the keyboard to English, under International in Systems Preferences. But the 'enter' key is so far away for my little finger of right hand, because there is an extra key, compared to the America keyboard. I was wondering if I could change the (£/$) key into an 'enter' key. Would that be possible with this? Many thanks. Elizabeth
Hi! Thank you for this great app! However, I am still looking how to change the writing direction (like hebrew from right to left). Is this already possible? Thanks a lot!
Writing direction has nothing to do with the keyboard layout as such. Directionality is a property of the Unicode characters (so Hebrew and Arabic letters, for example, have right-to-left direction, whereas Latin and Cyrillic have left-to-right). If your keyboard generates Unicode values that are right-to-left characters, they'll behave as such; and if it doesn't, they won't. In addition, there's the issue of overall line/paragraph layout within applications; that's an aspect of application-specific text formatting, also independent of the keyboard layout. E.g., in TextEdit.app, you can use the Format / Text / Writing Direction submenu to set this.
Seems simple enough. F10 doesn't do anything on my Mac (I changed the defaults in Spaces & Expose), and if I can get it to do the same thing as Command, then I can plug in my favorite old keyboard which does not have a Windoze or Command key. So I guess the answer is to assign Command's hex value to F10. Anybody know what that is?
It can't be done with a keyboard layout. The F10 key is not a modifier key, and can't be made into a modifier key.
Hi, Would anyone know the answer to my question above? Thanks for the help, Elizabeth
Hi Elizabeth, try to assign code "
" to all layers of that key.
© 2003-2010 SIL International, all rights reserved, unless otherwise noted elsewhere on this page. |