Home

Contact Us

General

Initiative B@bel

WSI Guidelines

Encoding

Principles

Unicode

Training

Tutorials

PUA

Conversion

Resources

Utilities

TECkit

Maps

Resources

Input

Principles

Utilities

Tutorials

Resources

Type Design

Principles

Design Tools

Formats

Resources

Font Downloads

Gentium

Doulos

IPA

Rendering

Principles

Technologies

OpenType

Graphite

Resources

Font FAQ

Links

Glossary


NRSI: Computers & Writing Systems

SIL HOME | CONTACT US

You are here: Input > Utilities
Short URL: http://scripts.sil.org/ukelele

Ukelele
Mac OS X Keyboard Layout Editor

Jonathan Kew, 2008-03-12; 234655 reads

Ukelele is a Unicode Keyboard Layout Editor for Mac OS X versions 10.2 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 Keyboard Layouts folder within /Library or ~/Library; then they are enabled via the Input tab of the International module within System Preferences.

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 Character Palette, available in the Input menu if it has been enabled in System Preferences, 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-2007. This software is provided under SIL's standard  freeware license.

Latest Update

12 March 2008 — released version 1.8b6

  • Fixed a bug that made keys appear selected when the  Num Lock  key was down.
  • Corrected the behaviour of the Apple Aluminium Wireless keyboard and MacBook (Late 2007), which have a  Fn  key, but no embedded keypad.
  • Provided a better error message when a non-keyboard layout XML file is opened.
  • Changed the way the XML is produced to adhere to part of the original specification (the when element for state “none” must come first).
  • Added the current state and action names in the dialog asking for a new name.
  • Updated all the provided keyboard layouts, both System and Logitech, to have all control keys defined and to avoid numeric state names.
  • If you gave an empty string in a dialog that needed a non-empty string, you got stuck in a loop that wouldn’t accept the string until you clicked Cancel and tried again. This is now fixed.
  • Changed the display in dead key states so that only the output in the dead key state is shown. The previous behaviour was that keys that had only one output would show that, even if the key did not produce that output in the dead key state.
  • A completely rewritten manual is now included. Help files and an updated tutorial are still in progress.

Download

Latest beta release (universal binary):

Ukelele 1.8b6
John Brownie, 2008-03-12
Download "Ukelele_1.8b6.dmg", Mac OS X disk image, 5MB [4673 downloads]

Previous stable release (PowerPC only, also usable under Rosetta):

Ukelele 1.7
John Brownie, 2006-08-08
Download "Ukelele_1.7.dmg", Mac OS X disk image, 2MB [16547 downloads]

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.

History

6 November 2007 — released version 1.8b5

  • Apple has changed how the system keyboard layouts are organised, and so it is no longer possible to create a new keyboard layout based on a system keyboard layout. This option in the “New…” dialog is disabled on Leopard systems (but is still available on older systems).

5 November 2007 — released version 1.8b4

  • Made the default index a pop-up menu in the modifiers editor, so that you can change it there, as well as via the Keyboard menu.
  • Added resources to allow the new Apple aluminium keyboards (both wired and wireless) as options in the keyboard type for display.
  • Added support for the new function keys  F17 ,  F18  and  F19 . This produces a side effect that keyboard layouts will almost always warn that some of the control key output is missing. This is for  F16  to  F19 , so you should agree to add that output.
  • Double-clicking a control key with no output defined no longer silently adds the standard output.
  • Compiled under Xcode 3.0 on Leopard (Mac OS X 10.5), which hopefully makes it work on all systems from 10.2 to 10.5.
  • Added keyboard layouts from Logitech, converted from KCHR to uchr.

28 June 2007 — released version 1.8b3

  • Modified the new layout dialog to drop the “.keylayout” extension in the system keyboard layouts popup menu.
  • The dialog box that comes up when you double-click a key now treats the  return  key as clicking  OK .
  • When you copied a key, the paste command didn’t become active immediately, but only after some other action (opening a dialog, switching windows, switching applications, or making a change to the keyboard layout). This is now fixed.
  • Added a new command to unlink a whole modifier set at once, which unlinks all keys with the same modifier combination.
  • Fixed a bug in adding a new modifier combination as a copy of an existing key map which made the keyboard layout invalid and so unusable.
  • Fixed the dialog so that requesting a Dvorak lower case keyboard layout for a new modifier combination actually works.
  • Added new options for AZERTY layouts (upper and lower case) when creating a new modifier combination.
  • Added a new reference to the links page of the manual, with pointers to resources for users with non-Apple keyboards (PC keyboards, if you like).

May 30, 2007: released version 1.8b2

  • Fixed an error in the Serbian keyboard layout.
  • Added keyboard flag icons for almost all the system keyboards.
  • Opening a keyboard layout is now somewhat faster.
  • The output inspector and key code floating windows now remember their position.
  • Made finishing a dead key an undoable action, which avoids a crash when undoing entering a dead key state when you had already left it.
  • Added a new command to “unlink” a key, so that editing a key’s output with one set of modifiers does not affect its output with a different set of modifiers.
  • Tried to fix a crash related to memory management, and also plugged a memory leak.
  • Fixed a typo that made the uppercase Dvorak layout created with a new modifier combination produce “e” instead of “E”.
  • I have begun a complete rewrite of the manual, but that isn’t ready for this release, so there is only the updates to the current manual and help.

March 13, 2007: released version 1.8b1

  • Universal binary, moving to Xcode.
  • New preferences for creating dead keys. Now, naming the dead key state and providing a terminator are optional. If you don’t provide a name, a default name will be used, and, if you don’t give a terminator, a null terminator will be created. This simplifies the creation of dead keys for most users.
  • Resolved a couple of places where the program could crash, including some memory management problems that could also cause memory leaks.
  • Fixed a bug which meant that, though technically correct, produced output that was perhaps not what Apple’s keyboard layout compiler expected. I suggest that all existing keyboard layouts be opened, a change made and then undone, and saved. This may help the system retain the correct keyboard, but I’m not sure about that.
  • The XML file is now indented to show structure.
  • New feature to swap two keys directly. This swaps everything associated with the two keys, including all modifier combinations and dead keys.
  • New feature of cut/copy/paste keys. As with swapping keys, this operates on all modifier combinations. Pasting is only allowed within the same keyboard layout — you can’t copy a key from one keyboard layout and paste it into another.
  • Provided some feedback to tell the user that a control key can’t be made into a dead key.
  • Updated manual and help files, and provided a tutorial.
  • Fixed some problems with some Central European keyboard layouts converted from Apple’s resource files: Czech, Czech-QWERTY, Estonian, Polish and Slovak. Changing some keys with the old versions caused problems with the space key, among other problems.
  • Removed the Japanese, Korean, Simplified Chinese and Traditional Chinese keyboard layouts, as they are of no use — the input methods don’t allow modified keyboard layouts, unfortunately.
  • Improved the display in dead key states, no longer showing the terminator when there is no output in that state, but rather showing a blank key.

August 8, 2006: released version 1.7

  • The feature added in 1.7b6 has been extended so that an untitled keyboard will be given the name from the file name whenever it is saved, not just the first time.
  • Correctly handle the case of changing a control key which had no output associated with it.
  • Change the behaviour when deleting a dead key, so that you don’t get the terminator in states other than state “none”.
  • Handle characters that need to be coded for XML in the name of the keyboard.

July 8, 2006: released version 1.7b6

  • Added a feature to add a name for the keyboard layout when saving for the first time, if the name hasn’t been set from within the program.
  • There is now a new preference, for the default keyboard to display if the system does not recognise the hardware keyboard attached to the computer.
  • The dialog for keyboard type (the keyboard displayed on the screen) has been modified to use two popup menus rather than a list and a popup menu.
  • The manual and help have been updated to reflect the latest changes.
  • The version for OS X 10.2 (Jaguar) now has a “J” at the end of the version number.

June 23, 2006: released version 1.7b5

  • Fixed more (I think all, this time) cases of the random crashes introduced in 1.7b2.
  • Validate Unicode values input as &#x...; or &#...; to ensure that only valid Unicode code points are generated. Code points in the surrogate ranges are not permitted. If this is a problem, please tell me!
  • Enforce a system-level restriction that the maximum number of Unicode characters generated by a single key is 20. Attempting to make the output longer than 20 characters will result in a dialog explaining that this is not allowed.
  • Version 1.7b3 introduced output of named entities (e.g. ') in the keyboard layout file. These are not supported, so now numerical encoding is generated again.

June 8, 2006: released version 1.7b4

  • Fixed a second instance of the problem fixed in 1.7b3.

June 8, 2006: released version 1.7b3

  • Fixed a problem where a crash would occur some time after running the dialog from double-clicking a dead key, usually in the second time of bringing up that dialog.
  • Changed the code handling XML entities to produce named entities (e.g. ") rather than numerical entities (e.g. ").

May 23, 2006: released version 1.7b2

  • Added a new floating window, the Output Inspector, which shows the output of the key under the pointer as a Unicode code point. For dead keys, it shows the state entered by pressing the dead key, and the terminator for that state.
  • Added an option to the dialog when double-clicking a dead key. You can now choose to edit the dead key (i.e. enter the dead key state), as well as the previous options of changing the terminator or deleting the dead key.
  • Fixed a problem in handling code points outside the Basic Multilingual Plane when specified numerically.
  • Updated the manual more thoroughly.

May 15, 2006: released version 1.7b1

  • Provide some options when creating a new modifier set. The default is an empty key map, with only the control keys having any output set, but there are two new options: a standard key layout or a copy of another key map. The standard key layouts set the letter keys to the default US QWERTY or Dvorak key layouts in either upper or lower case. Copying an existing key map, for example making the caps lock initially the same as shift, is intended to save some extra work, by making you only specify what is different.
  • Allow navigation of bundles or packages, so that the user can open keyboard layouts that are bundled without having to manually open the bundle in the Finder and drop the keyboard layout file onto the Ukelele icon.
  • Updated help files and manual, including putting page numbers in the manual. Also, the references to web sites was revised, removing dead links and adding several new sites.
  • Fixed a bug that could cause a keyboard layout to become invalid when deleting output from a key in state “none”.
  • Fixed a bug introduced in version 1.6.6 which effectively disabled drag and drop when any modifiers were down, unless sticky modifiers was set.
  • Fixed a bug which meant that nothing was saved if the user double-clicked a key which didn’t already have output associated with it — the dialog ran, but the new output was not retained.

Notes from earlier releases can be found here.


Backlinks (20 most popular; affiliated sites and popular search engines removed)
 http://www.macupdate.com/info.php/id/14495
 http://www.macupdate.com/
 http://macupdate.com/info.php/id/14495
 http://www.macupdate.com/dev.php?id=14495
 http://www.macintouch.com/
 http://www.macnn.com/
 http://www.macnn.com/mobile/
 http://macnn.com/rd.php?id=18023
 http://www.macupdate.com/index.php?os=macosx



Note: If you want to add a response to this article, you need to enable cookies in your browser, and then restart your browser.

Note: the opinions expressed in submitted contributions below do not necessarily reflect the opinions of our website.

 Reply
"Thomas-Xavier Martin", Wed, Sep 14, 2005 02:21 (CDT)

How do I build a keyboard type (physical layout) ?

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.

 Reply
"Jonathan Kew", Wed, Sep 14, 2005 04:33 (CDT)

Re: How do I build a keyboard type (physical layout) ?

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.

 Reply
"John Brownie", Wed, Sep 14, 2005 07:06 (CDT)

Re: How do I build a keyboard type (physical layout) ?

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.

 Reply
"Thomas-Xavier Martin", Thu, Sep 15, 2005 05:19 (CDT) [modified by martinpk on Thu, Sep 15, 2005 06:07 (CDT)]

Re: How do I build a keyboard type (physical layout) ?

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.

 http://developer.apple.com/technotes/te/te_515.html

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.

 Reply
"John Brownie", Mon, Sep 26, 2005 04:36 (CDT)

Re: How do I build a keyboard type (physical layout) ?

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.

 Reply
"the dude", Thu, Oct 20, 2005 08:20 (CDT)

distinguish between right and left COMMAND key

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.

 Reply
"Jonathan", Sat, Oct 22, 2005 14:15 (CDT) [modified by jonathan on Sat, Oct 22, 2005 14:17 (CDT)]

Re: distinguish between right and left COMMAND key

I checked the specification for the XML "keylayout" file format (see  Tech Note 2056), and it does not provide for separately recognizing the left and right command keys. So there's nothing Ukelele can do about this.

 Reply
"the dude", Thu, Oct 27, 2005 03:37 (CDT)

Re: distinguish between right and left COMMAND key

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.

 Reply
"John Brownie", Wed, Nov 30, 2005 21:57 (CST)

Re: distinguish between right and left COMMAND key

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.

 Reply
"Andi", Fri, Nov 4, 2005 00:32 (CST)

Mapping arbitrary keys to non-character keys

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?

 Reply
"John Brownie", Wed, Nov 30, 2005 21:52 (CST) [modified by jonathan on Fri, Dec 2, 2005 09:25 (CST)]

Re: Mapping arbitrary keys to non-character 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 

 Reply
"", Sat, Jul 1, 2006 16:36 (CDT)

Re: Mapping arbitrary keys to non-character keys

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?

 Reply
"John Brownie", Fri, Jul 7, 2006 03:47 (CDT)

Re: Mapping arbitrary keys to non-character keys

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.

 Reply
"pd", Thu, Nov 9, 2006 22:17 (CST)

Re: arrow keys

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. :)

 Reply
"Yakov", Sun, Mar 25, 2007 02:33 (CDT)

Re: Mapping arbitrary keys to non-character keys

Lithuanian Language Characters, please!

 Reply
"John Brownie", Wed, Mar 28, 2007 07:43 (CDT)

Re: Mapping arbitrary keys to non-character keys

> 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).

 Reply
"simonas", Thu, Jun 21, 2007 06:20 (CDT)

Re: Mapping arbitrary keys to non-character keys

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?

 Reply
"John Brownie", Thu, Jun 21, 2007 10:50 (CDT)

Re: Mapping arbitrary keys to non-character keys

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.

 Reply
"Chris", Fri, Jan 27, 2006 02:07 (CST)

Multimedia PS/2 Keyboard

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

 Reply
"Apan", Mon, Jan 30, 2006 09:08 (CST)

Some keys...

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

 Reply
"John Brownie", Wed, Feb 1, 2006 18:50 (CST)

Re: Some keys...

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.

 Reply
"Fred Jones", Tue, Jan 31, 2006 11:02 (CST)

Problem with command-T

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,

 Reply
"John Brownie", Wed, Feb 1, 2006 19:13 (CST)

Re: Problem with command-T

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?

 Reply
"Fred Jones", Thu, Feb 2, 2006 12:04 (CST)

Re: Problem with command-T

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,

 Reply
"Fred Jones", Tue, Jan 31, 2006 22:12 (CST)

Keyboard refresh

Hi,

Is there any way to 'refresh' the keyboard listing in the international palette other than rebooting the workstation?

Thanks,

 Reply
"John Brownie", Wed, Feb 1, 2006 18:11 (CST)

Re: Keyboard refresh

Yes, you only need to log out and log in again. A reboot is not required.

 Reply
"John Brownie", Thu, Jul 6, 2006 20:23 (CDT)

Re: Keyboard refresh

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.

 Reply
"jondh", Tue, Sep 5, 2006 14:49 (CDT)

Re: Keyboard refresh

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?

 Reply
"Mitch", Thu, Sep 14, 2006 18:18 (CDT)

Re: Keyboard refresh

I am having this same issue as well, and am also on 10.4.7.

 Reply
"Tyler", Wed, Apr 18, 2007 05:51 (CDT)

Re: Keyboard refresh

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.  :@

 Reply
"John Brownie", Fri, Apr 20, 2007 07:02 (CDT)

Re: Keyboard refresh

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.

 Reply
"Fred Jones", Wed, Feb 15, 2006 22:32 (CST) [modified by jonathan on Thu, Feb 16, 2006 05:00 (CST)]

Combining grapheme joiner

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.

 Reply
"Jonathan", Thu, Feb 16, 2006 04:55 (CST)

Re: Combining grapheme joiner

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.

 Reply
"Carly", Fri, Dec 15, 2006 21:20 (CST)

Re: Combining grapheme joiner

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

 Reply
"Peter Hugosson-Miller", Thu, Feb 16, 2006 11:40 (CST)

Swedish Keyboard

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!

 Reply
"John Brownie", Thu, Feb 16, 2006 18:00 (CST)

Re: Swedish Keyboard

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.

 Reply
"Fred Christian", Thu, Mar 2, 2006 22:31 (CST)

Problem editing a Korean keylayout

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

 Reply
"Merle", Sat, Mar 11, 2006 09:45 (CST)

using Ukelele to remap the numeric keypad?

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!

 Reply
"John Brownie", Mon, Apr 24, 2006 20:17 (CDT)

Re: using Ukelele to remap the numeric keypad?

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.

 Reply
"Joe", Tue, Mar 14, 2006 01:23 (CST)

Application compatability issues

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?

 Reply
"Windsor Productions", Tue, Apr 4, 2006 05:26 (CDT)

How to activate the space bar

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.

 Reply
jonathan, Tue, Apr 4, 2006 05:32 (CDT)

Re: How to activate the space bar

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.

 Reply
"Windsor Productions", Tue, Apr 4, 2006 16:32 (CDT)

Re: How to activate the space bar

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.

 Reply
jonathan, Tue, Apr 11, 2006 14:36 (CDT)

Re: How to activate the space bar

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!)

 Reply
"thomas", Tue, Apr 11, 2006 13:36 (CDT)

modified unicode keyboard - chars not displayed in different fonts and applications

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

 Reply
jonathan, Tue, Apr 11, 2006 14:29 (CDT)

Re: modified unicode keyboard - chars not displayed in different fonts and applications

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.

 Reply
"darek", Thu, Feb 22, 2007 05:39 (CST)

Re: modified unicode keyboard - chars not displayed in different fonts and applications

All TTF fonts from Windows have full set of Polish characters

Darek

 Reply
"Julka", Mon, Apr 17, 2006 11:10 (CDT)

keyboard icon

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)

 Reply
jonathan, Mon, Apr 17, 2006 11:46 (CDT) [modified by jonathan on Mon, Apr 17, 2006 11:47 (CDT)]

Re: keyboard icon

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.)

 Reply
"Larousse", Sun, Mar 18, 2007 06:59 (CDT)

Re: keyboard icon

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?

 Reply
"John Brownie", Wed, May 30, 2007 06:06 (CDT)

Re: keyboard icon

"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.

 Reply
"bryan", Thu, May 11, 2006 15:45 (CDT)

german macbook pro layout

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

 Reply
jonathan, Fri, May 12, 2006 10:30 (CDT) [modified by jonathan on Fri, May 12, 2006 10:33 (CDT)]

Re: german macbook pro layout

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.

 Reply
"bryan", Fri, May 12, 2006 14:41 (CDT)

Re: german macbook pro layout

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...)  :)

 Reply
"Nicholas Allott", Tue, May 16, 2006 12:01 (CDT)

Input menu won't update

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?

 Reply
"Adam", Tue, May 30, 2006 10:48 (CDT)

Caps Lock => Escape?

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.

 Reply
jonathan, Tue, May 30, 2006 11:16 (CDT)

Re: Caps Lock => Escape?

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.

 Reply
"Steve Hyde", Sun, Jun 11, 2006 17:43 (CDT)

Input source changes by itself

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

 Reply
"John Brownie", Mon, Jun 12, 2006 03:38 (CDT)

Re: Input source changes by itself

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.

 Reply
jonathan, Mon, Jun 12, 2006 04:04 (CDT)

Re: Input source changes by itself

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.

 Reply
"Erno Kaikkonen", Wed, Oct 18, 2006 05:49 (CDT)

Re: Input source changes by itself

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

 Reply
"", Thu, Oct 26, 2006 16:29 (CDT)

Re: Input source changes by itself

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.

 Reply
"Scott Lees", Mon, Feb 5, 2007 09:38 (CST)

Re: Input source changes by itself

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

 Reply
"Felix", Wed, May 23, 2007 06:57 (CDT)

Re: Input source changes by itself

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?

 Reply
"John Brownie", Wed, May 30, 2007 06:21 (CDT)

Re: Input source changes by itself

"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.

 Reply
"Ahmad Sahar", Sat, Jun 24, 2006 02:46 (CDT)

Thank you

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.

 Reply
jonathan, Sat, Jun 24, 2006 04:07 (CDT)

Re: Thank you

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:  http://homepage.mac.com/shah/Personal/FileSharing5.html.

 Reply
"Jamie", Sat, Jul 15, 2006 19:19 (CDT)

Left / Right Control Key

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.

 Reply
"John Brownie", Fri, Jul 21, 2006 02:55 (CDT)

Re: Left / Right Control Key

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.

 Reply
"tba03", Wed, Jul 19, 2006 03:31 (CDT) [modified by jonathan on Wed, Jul 19, 2006 03:35 (CDT)]

firefox

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)

 Reply
"tba03", Wed, Jul 19, 2006 22:40 (CDT)

Re: firefox

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;)

 Reply
"quoquo", Tue, Mar 11, 2008 14:02 (CDT)

Re: firefox

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.

 Reply
"John Brownie", Wed, Mar 12, 2008 19:46 (CDT)

Re: firefox

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.

 Reply
"walli", Wed, Jul 19, 2006 17:40 (CDT)

input source change in Safari

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.

 Reply
"Roeland", Sun, Jul 23, 2006 14:52 (CDT)

Re: input source change in Safari

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.

 Reply
"John Brownie", Sun, Jul 23, 2006 18:40 (CDT)

Re: input source change in Safari

>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.

 Reply
"Roeland", Tue, Jul 25, 2006 03:41 (CDT)

Re: input source change in Safari

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.

 Reply
"Roeland", Tue, Jul 25, 2006 04:29 (CDT)

Re: input source change in Safari

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.

 Reply
"lanzz", Thu, Jul 5, 2007 05:52 (CDT)

Re: input source change in Safari

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.

 Reply
"John Brownie", Fri, Jul 6, 2007 01:16 (CDT)

Re: input source change in Safari

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.

 Reply
"FG", Wed, Aug 15, 2007 19:18 (CDT)

Re: input source change in Safari

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.

 Reply
"Guillaume", Wed, Jan 9, 2008 08:21 (CST)

Re: input source change in Safari

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.

 Reply
"John Brownie", Wed, Jan 23, 2008 03:26 (CST)

Re: input source change in Safari

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.

 Reply
"Todd", Mon, Jul 31, 2006 02:20 (CDT)

Intel Macs

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?

 Reply
"Jonathan", Mon, Jul 31, 2006 12:41 (CDT)

Re: Intel Macs

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.

 Reply
"Todd", Mon, Jul 31, 2006 21:17 (CDT)

Re: Intel Macs

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...

 Reply
"Todd", Sun, Aug 6, 2006 19:35 (CDT)

trouble remapping arrow & page-up/down keys

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

 Reply
"Тodd", Mon, Aug 7, 2006 18:45 (CDT)

Re: trouble remapping arrow & page-up/down keys

oh sorry, i didn't see that earlier post about this same problem... never mind

 Reply
"John Brownie", Tue, Aug 8, 2006 00:10 (CDT)

Re: trouble remapping arrow & page-up/down keys

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!

 Reply
"Todd", Tue, Aug 8, 2006 13:09 (CDT)

Re: trouble remapping arrow & page-up/down keys

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.

 Reply
"Todd Long", Wed, Aug 9, 2006 11:25 (CDT)

Re: trouble remapping arrow & page-up/down keys

darn it doesn't work in Safari. for your notes, the arrows do work in the following music programs: Logic, Max/MSP, Sibelius.

 Reply
"John V. Keogh", Wed, Aug 9, 2006 08:18 (CDT)

Ukulele

Sounds great, but I think it should be spelt Ukulele!

 Reply
"Jonathan", Wed, Aug 9, 2006 08:26 (CDT)

Re: 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.

 Reply
"Todd", Wed, Aug 9, 2006 15:42 (CDT)

keyboard layout icon

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.

 Reply
jonathan, Wed, Aug 9, 2006 15:45 (CDT)

Re: keyboard layout icon

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.

 Reply
"ismael", Wed, Aug 23, 2006 12:47 (CDT)

i need application like ukelele for mac os classic

thanks you very much

 Reply
jonathan, Wed, Aug 23, 2006 13:40 (CDT) [modified by jonathan on Wed, Aug 23, 2006 13:46 (CDT)]

Re: i need application like ukelele for mac os classic

You can use Apple's resource editor  ResEdit to edit the KCHR resources that define keyboard layouts in the classic Mac OS. Or you can use the SILKey for Macintosh utility to remap keystrokes. Depending on your needs, one or other of these solutions may be suitable.

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  http://developer.apple.com somewhere); this is all obsolete and unsupported software, so don't expect anyone to help with it. But it's still usable.

 Reply
"Matt", Thu, Sep 7, 2006 09:01 (CDT)

Change to keyboard type not being saved

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!

 Reply
jonathan, Tue, Oct 10, 2006 14:10 (CDT)

Re: Change to keyboard type not being saved

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.

 Reply
"John Brownie", Mon, Oct 23, 2006 22:11 (CDT)

Re: Change to keyboard type not being saved

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.

 Reply
"Justin", Sat, Sep 23, 2006 14:21 (CDT)

Getting changes to work in all programs

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?

 Reply
jonathan, Tue, Oct 10, 2006 14:15 (CDT)

Re: Getting changes to work in all programs

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.

 Reply
"Franck Guadagnini", Tue, Sep 26, 2006 15:25 (CDT)

French icon

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

 Reply
"John Brownie", Mon, Oct 23, 2006 21:07 (CDT)

Re: French icon

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.

 Reply
"Marc Thouvenin", Wed, Sep 27, 2006 02:22 (CDT)

I can't download the file

Hello

It is impossible to download the file. Is there any trouble on your server?

Best

Marc

 Reply
jonathan, Tue, Oct 10, 2006 14:02 (CDT)

Re: I can\'t download the file

There have been some access problems recently, but I believe things should be working better now.

 Reply
"PZ", Sun, Oct 8, 2006 18:13 (CDT)

Change character key to Command Key

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 ke