2-level dead key & unicode fonts

860 views
Skip to first unread message

Connor

unread,
Dec 5, 2015, 6:35:20 AM12/5/15
to Ukelele Users
Hi,

I'd like to know whether Ukelele can solve my problem.

I'm a mathematician working in a branch of mathematics that requires lots of special symbols; way too many to just map them to a keyboard.  The more common ones I could get from Alt + another key, but there aren't enough modifier keys for all the symbols.   What I'd like is to be able to use another modifier key, eg AltGr / right Alt or Fn, plus a letter, to indicate the set of symbols, having this work a bit like a dead key, so that the following key press will indicate the specific symbol required.   Eg AltGr+A selects the arrow symbol set, then E produces an East arrow,   and AltGr+M selects the matrix symbols, followed by T for a transpose, and AltGr+G selects the greek alphabet, followed by A for alpha.  Can Ukelele support this or something similar?

In addition, many of the special symbols are not available in standard fonts, and a special unicode font is used for zeta-calculus.   Can Ukelele work with any unicode ttf font?   Eg when giving me a symbol picker, will it display all the unique symbols in this special font, or allow me to specify 4 hex digits to identify each symbol?     

If the answer is no, to either of these, does anyone know how additional functionality can be requested (because there must be plenty of scientists, engineers, and mathematicians, who would welcome this support), (at present we have to copy and paste the symbols from a document that lists them all)  ?  

Thanks.

Connor.   

Geke

unread,
Dec 5, 2015, 10:22:48 AM12/5/15
to Ukelele Users
Twice yes!

1. What you call "2-level dead key" is just a standard dead key.
Practically speaking, you can’t separate left and right Option keys (the Mac’s name for the Alt key), but I think you’ll find enough possibilities without that.
E.g. you could have Option-A as a dead key for arrows, producing about 40 different arrows depending on the second key pressed in the sequence.
And there are other "modifier key" combinations you could use: Shift-Option-..., Ctrl-Option-..., Shift-Ctrl-Option-.... You could also have a whole new keyboard assignment when the CapsLock is down.

Sorin/Cattus Thraex has made a keyboard layout (among many others I don’t know) which uses exactly this approach: Old Church Slavonic manuscripts use lots of diacritics and special symbols, which are made accessible in related groups through various mnemonic dead keys.

2. You can enter all Unicode code points from the Basic Plane in hex form. I think the syntax is &#xNNNN; (including the semicolon); it was discussed here very recently. Ukelele doesn’t have a symbol picker, but you can have the Mac’s Character Viewer open with a certain font’s characters displayed to give you the required hex code.
You can even define a two-code point sequence as the end result – although I don’t know if that’ll work in all application software.

Happy Ukeleling!

Sorin Paliga

unread,
Dec 5, 2015, 10:29:48 AM12/5/15
to ukelel...@googlegroups.com
Hello

I am not a mathematician, but I do understand your problem, as it is much like using a keylayout for dialectal texts or with special symbols. I suggest the following steps:
1. Make a list of ALL the symbols you need; it will be cumbersome at the beginning, as you must use Show emoji and symbols (formerly, it had another, more elegant name: Character Palette, another bad idea of the Apple guys); how many are there?
2. Now decide which ones have a high frequency, and which ones a lower frequency.
3. If you appreciate that all or almost all are necessary to you as ‘high frequency’, you must cut them into two (or more) keylayouts. If you assume that some are indeed frequent, and others less frequent, then:
– the more frequent ones must be at the level option-key and option-shift-key;
– for the less frequent ones, use dead keys, which would imply you must organise some symbols mnemotechnically, by categories, e.g. choose option-E for the symbols like ∈ ∉ etc. under this dead key; option-V should be populated with symbols like ≺ ﹥etc. Note that you may also choose option-E and option-shift-E for different dead keys.

Depending on your needs, it may prove that one keylayout is sufficient, but richly populated with several levels of dead keys. As for the letters of Hebrew and Greek origin, much used in mathematics, you may choose to create a special dead key or perhaps a second keylayout with these symbols only.

It is some work, indeed, but you will have a practical and most useful tool. First of all, practise the use of dead keys, if you decide for this variant, which would allow to create one keylayout only. It is not so trivial.

If something else, please drop your needs here.

> On 05 Dec 2015, at 13:35, Connor <elg...@tackleanything.co.uk> wrote:
>
> ------=_Part_83_1008835626.1449315320320
> Content-Type: multipart/alternative;
> boundary="----=_Part_84_1098427845.1449315320320"
>
> ------=_Part_84_1098427845.1449315320320
> Content-Type: text/plain; charset=UTF-8
>
> Hi,
>
> I'd like to know whether Ukelele can solve my problem.
>
> I'm a mathematician working in a branch of mathematics that requires lots
> of special symbols; way too many to just map them to a keyboard. The more
> common ones I could get from Alt + another key, but there aren't enough
> modifier keys for all the symbols. What I'd like is to be able to use
> another modifier key, eg AltGr / right Alt or Fn, plus a letter, to
> indicate the set of symbols, having this work a bit like a dead key, so
> that the following key press will indicate the specific symbol required.
> Eg AltGr+A selects the arrow symbol set, then E produces an East arrow,
> and AltGr+M selects the matrix symbols, followed by T for a transpose, and
> AltGr+G selects the greek alphabet, followed by A for alpha. Can Ukelele
> support this or something similar?
>
> In addition, many of the special symbols are not available in standard
> fonts, and a special unicode font is used for zeta-calculus. Can Ukelele
> woial unicode font is used for zeta-calculus. Can Ukelele
> work with any unicode ttf font? Eg when giving me a symbol picker, will
> it display all the unique symbols in this special font, or allow me to
> specify 4 hex digits to identify each symbol?
>
> If the answer is no, to either of these, does anyone know how additional
> functionality can be requested (because there must be plenty of scientists,
> engineers, and mathematicians, who would welcome this support), (at present
> we have to copy and paste the symbols from a document that lists them all)
> ?
>
> Thanks.
>
> Connor.
>
> --
> You received this message because you are subscribed to the Google Groups "Ukelele Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to ukelele-user...@googlegroups.com.
> To post to this group, send email to ukelel...@googlegroups.com.
> Visit this group at http://groups.google.com/group/ukelele-users.
> For more options, visit https://groups.google.com/d/optout.
>
> ------=_Part_84_1098427845.1449315320320
> Content-Type: text/html; charset=UTF-8
> Content-Transfer-Encoding: quoted-printable
>
> <div dir=3D"ltr">Hi,<div><br></div><div>I&#39;d like to know whether Ukelel=
> e can solve my problem.</div><div><br></div><div>I&#39;m a mathematician wo=
> rking in a branch of mathematics that requires lots of special symbols; way=
> too many to just map them to a keyboard. =C2=A0The more common ones I coul=
> d get from Alt + another key, but there aren&#39;t enough modifier keys for=
> all the symbols. =C2=A0 What I&#39;d like is to be able to use another mod=
> ifier key, eg AltGr / right Alt or Fn, plus a letter, to indicate the set o=
> f symbols, having this work a bit like a dead key, so that the following ke=
> y press will indicate the specific symbol required. =C2=A0 Eg AltGr+A selec=
> ts the arrow symbol set, then E produces an East arrow, =C2=A0 and AltGr+M =
> selects the matrix symbols, followed by T for a transpose, and AltGr+G sele=
> cts the greek alphabet, followed by A for alpha. =C2=A0Can Ukelele support =
> this or something similar?</div><div><br></div><div>In addition, many of th=
> e special symbols are not available in standard fonts, and a special unicod=
> e font is used for zeta-calculus. =C2=A0 Can Ukelele work with any unicode =
> ttf font? =C2=A0 Eg when giving me a symbol picker, will it display all the=
> unique symbols in this special font, or allow me to specify 4 hex digits t=
> o identify each symbol? =C2=A0 =C2=A0=C2=A0</div><div><br></div><div>If the=
> answer is no, to either of these, does anyone know how additional function=
> ality can be requested (because there must be plenty of scientists, enginee=
> rs, and mathematicians, who would welcome this support), (at present we hav=
> e to copy and paste the symbols from a document that lists them all) =C2=A0=
> ? =C2=A0</div><div><br></div><div>Thanks.</div><div><br></div><div>Connor. =
> =C2=A0=C2=A0</div></div>
>
> <p></p>
>
> -- <br />
> You received this message because you are subscribed to the Google Groups &=
> quot;Ukelele Users&quot; group.<br />
> To unsubscribe from this group and stop receiving emails from it, send an e=
> mail to <a href=3D"mailto:ukelele-user...@googlegroups.com">ukele=
> le-users+u...@googlegroups.com</a>.<br />
> To post to this group, send email to <a href=3D"mailto:ukelele-users@google=
> groups.com">ukelel...@googlegroups.com</a>.<br />
> Visit this group at <a href=3D"http://groups.google.com/group/ukelele-users=
> ">http://groups.google.com/group/ukelele-users</a>.<br />
> For more options, visit <a href=3D"https://groups.google.com/d/optout">http=
> s://groups.google.com/d/optout</a>.<br />
>
> ------=_Part_84_1098427845

Geke

unread,
Dec 5, 2015, 10:43:03 AM12/5/15
to Ukelele Users
Hi Sorin,

I was wondering when you would answer :)
(But how did you get all that mess into your text?)

I think you should send Connor your PDF file explaining the Staroslavyanski keyboard layout ("Glagolitic and Staroslavjanski.pdf"). That would give him a clear idea. I could have attached it, but I guess it’s better if you do it – maybe you have a more recent version.

Sorin Paliga

unread,
Dec 5, 2015, 11:09:53 AM12/5/15
to ukelel...@googlegroups.com
Hello

I was writing when you were sending yours!
What mess? Can’t you correctly read my text? It looks clean hear, including when you quote it. 
I guess US Academic would be more relevant than OCS, as it has a lot of dead keys based on the mnemotechnical principe. I should decide to update it a bit, there are some new chars included in U 8, but am lazy enough. 
Best


Geke

unread,
Dec 5, 2015, 11:33:20 AM12/5/15
to Ukelele Users
Hi Sorin,

"quote"? I don’t see any quote of your text in my message – maybe the thing is browser-dependent.

Your text is clear, but what comes after is an enormous tail of the previous posts in the thread, once normal, once repeated as hex64-encoded, I think... See attached screenshot.

Screen shot 2015-12-05 at 17.27.04.png

Connor

unread,
Dec 5, 2015, 12:53:26 PM12/5/15
to Ukelele Users
Okay guys, sounds great.   Thanks.   

I already have a list of all the required symbols, and already grouped into (I think is it 8) keyboard mappings.  I also have a list of symbols with their unicode numbers, so I'm part of the way there.   

Some of the symbols are just 'alternatives' for what is on the keyboard already, eg 'not equals' (not on the keyboard) is kind of an alternative for =, and 'Greater than or equal to' is an alternative to '>'.   So it would be nice to use one modifier key directly to access these 'alternative' symbols (and very commonly used symbols), and the dead key mappings for all the rest.  

By the way, I use OpenOffice Writer rather than Word because Word does not have a unicode character picker (and now that I have Office 365 I'm always expecting the "Unexpected Error" message and crash).  Does Ukelele work okay with OpenOffice Writer? 

Please send me any useful files, either key layouts or a description of how I need to use Ukelele for my purposes if you think that would be useful.   Perhaps you have links to the files that you can post here?   

Can you also post a link to the best site to download Ukelele?   None of the first few sites about Ukelele contained a download feature; you guys probably know the location already.   

Let me know if you need an email address.

Hopefully I'll be able to get Ukelele up and running tomorrow, ready for Monday!

Regards,

Connor.

Sorin Paliga

unread,
Dec 5, 2015, 12:57:58 PM12/5/15
to ukelel...@googlegroups.com
Here
you have some keylayouts, perhaps the best for study is US Academic.
If you have 8 groups of math symbols to be put under 8 dead keys, then you are theoretically done with ONE keylayout. Proceed by creating the first dead key, test it, and, if OK, go on with the other 7 dead keys. If this is your FIRST keylayout, it will be some work to get familiar with this cumbersome, slow action of creating a keylayout, testing it, and going on until you are fully satisfied. It may take weeks or months to get to a good result.

Geke

unread,
Dec 5, 2015, 5:02:50 PM12/5/15
to Ukelele Users
I’m not sure if there are more download sites for Ukelele, but here’s one:
http://ukelele.en.softonic.com/mac

Ukelele is not a program that runs in the background, but a keyboard layout generator. The resulting keyboard layout is activated just like Apple’s built-in keyboard layouts.
You should probably start with a base keyboard: should the "unshift" level be German, US English, French, etc.?
Does your physical keyboard have an extra key between the Z and the left shift key? Not all users may have that key, so it’s a bit tricky to use that for important characters.

≠ ≥ can be typed through Option- =  and Option - > on my Dutch keyboard layout, so I’m wondering what is your standard layout?

Geke

unread,
Dec 5, 2015, 5:05:52 PM12/5/15
to Ukelele Users
O, I forgot:

Do some research, e.g. on Wikipedia: I think it’s better to switch to LibreOffice from your OpenOffice.
Both work OK with Ukelele’s keyboard layouts.

MS Word should have a character picker, I think: "Insert symbol..." or some such command. Otherwise use the Mac’s built in Character Viewer (or however it’s called in newer OSes) from the Keyboard Layout menu.

Connor

unread,
Dec 6, 2015, 5:10:14 AM12/6/15
to Ukelele Users
Thanks guys.

My keyboard is UK, it does have a key between Z and shift; thanks for the advice to ignore it.   Yes, I see that ≠ and ≥ are already available on the Alt/Option key which is good.   I just need to choose another modifier key for the set of dead keys (without using multiple modifier keys which is a bit cumbersome).   

Can I use Control 'ctrl'?  or Function 'fn'? 

Did I understand correctly that (unlike on a PC) right Alt is not separate from left Alt?  

Could I achieve my aim without using a modifier key, eg using the key to the left of 1 has a first level dead key, then a letter as a second level dead key to select the set of symbols then a key for the actual symbol I'm after?

I realise that Ukelele is running in real time, and that if such functionality exists it will be by Ukelele specifying these key combinations to functionality in apple's keylayouts.   Some symbols are made up of multiple elements, for instance one symbol is two horizontal lines (longer than =), and another is three horizontal lines.   Does Ukelele have an ability to turn multiple normal keystrokes into a single character, ie if I type two underscores, can Ukelele translate this into the symbol that has two horizontal lines, and translate three underscores into the triple horizontal line symbol? 

Regards,

Connor.

On Saturday, December 5, 2015 at 11:35:20 AM UTC, Connor wrote:

Sorin Paliga

unread,
Dec 6, 2015, 5:33:12 AM12/6/15
to ukelel...@googlegroups.com
Hello
The standard modifier for extended the keyboard is the Option/Alt key alone or in combination with Shift. Therefore, you may get two pairs of related dead keys (as an example, you may choose whatever you wish) at the level option+M key and another dead key at the level Option+Shift+M key. You may of course use the combination O-key or O-Sh-key for getting other chars outright, as you may see using any existing keylayout, e.g. U.K. or U.S. You may use this for very frequent chars. Of course, frequency is relative, but perhaps you know which math symbols are used more frequently than others.
Indeed, you may use either left or right Option/Alt keys. 
Example: you wish to create a dead key to populate it with all the math symbols based on V. Create the dead key at the (suggested) level Option+V, then put all the symbols you wish under that dead key, then close the dead key. If not sufficient, create the complementary dead key at the level Option+Shift+V etc. etc.
The extra key left to Z, present on the European keyboards, is absent on the U.S. keyboards, that is why the chars used on that key should be duplicated somewhere else, in order to make the keylayout usable with U.S. keyboards too. (Apple engineering forgot this detail for some older keylayouts for Romanian and Hungarian, as an example).

‘Could I achieve my aim without using a modifier key, eg using the key to the left of 1 has a first level dead key, then a letter as a second level dead key to select the set of symbols then a key for the actual symbol I'm after?’

I do not fully understand what you mean. A dead key is achieved by Option/Alt key pressed simultaneously with another key, any. If you wish another combination I am afraid you are wasting your time. I would recommend to read the basic rules of UKELELE, and begin testing one keylayout you create, e.g. with one dead key only. If satisfied, this means you got the clue, and may go on populating the keylayout with all the symbols you need.

I hope this is useful.

Good luck

John Brownie

unread,
Dec 6, 2015, 5:33:58 AM12/6/15
to ukelel...@googlegroups.com
On 6/12/2015 20:10, Connor wrote:
Thanks guys.

My keyboard is UK, it does have a key between Z and shift; thanks for the advice to ignore it.   Yes, I see that ≠ and ≥ are already available on the Alt/Option key which is good.   I just need to choose another modifier key for the set of dead keys (without using multiple modifier keys which is a bit cumbersome).   

Can I use Control 'ctrl'?  or Function 'fn'?

Control yes, fn no. There are downsides to using control, since there are some default key bindings that interpret control key combinations as commands (e.g. control-h is the same as backspace).

Did I understand correctly that (unlike on a PC) right Alt is not separate from left Alt? 

Yes, that's correct. Both left and right option/alt keys are equivalent.

Could I achieve my aim without using a modifier key, eg using the key to the left of 1 has a first level dead key, then a letter as a second level dead key to select the set of symbols then a key for the actual symbol I'm after?

Yes, you can certainly make any key into a dead key.

I realise that Ukelele is running in real time, and that if such functionality exists it will be by Ukelele specifying these key combinations to functionality in apple's keylayouts.   Some symbols are made up of multiple elements, for instance one symbol is two horizontal lines (longer than =), and another is three horizontal lines.   Does Ukelele have an ability to turn multiple normal keystrokes into a single character, ie if I type two underscores, can Ukelele translate this into the symbol that has two horizontal lines, and translate three underscores into the triple horizontal line symbol?

I'm not sure what you mean by "running in real time". Ukelele creates keyboard layouts, which the operating system uses to interpret key strokes, so Ukelele is not running when you are using your keyboard layout.

That said, you can make multiple key strokes produce an output. That is what a dead key does. It might be useful for you to read section 5.4 of the Ukelele 3 manual on dead keys, to get an idea of what is possible.

For your example, it's possible to have two underscores turn into one symbol, and three into another, but it is all rather complex, as you want one underscore to stay as an underscore, but you also want it to be a dead key. It can be done, but can also be rather confusing when ordinary characters are used as dead keys. You have to think things through pretty carefully to see that what you design is usable, both for yourself and for others.

Hope that's some help.

John
--
John Brownie, john_b...@sil.org or j.br...@sil.org.pg
Summer Institute of Linguistics, Ukarumpa, Eastern Highlands Province, Papua New Guinea
Mussau-Emira language, Mussau Island, New Ireland Province, Papua New Guinea

Connor

unread,
Dec 6, 2015, 6:29:48 AM12/6/15
to Ukelele Users
Geke, what advantage does LibreOffice have over OpenOffice?

I have another problem that is not solvable by Ukelele.   Zeta-calculus uses grids, an extension of simple grids (tables) used in z-notation see http://www.w3.org/TR/wsdl20/wsdl20-z.html (scroll down a bit to see some grids).   Grids are special purpose tables that have a particular shape (only some of the lines are drawn in, which lines are are which are not define which type of grid it is).   Making these manually from tables is a bore.   It would be really great if an expert in one of those open source word processors would write an extension to support grids.   I have begun documenting the requirements, but which one of those word processors would be easier to add that functionality I don't know, but that will really determine which word processor we use.

Yes, MS Word does have a character picker, but it only covers a selection of unicode (instead of showing all the characters in the font), which is a bit rubbish.  MS word does allow unicode characters to be copied in.   By using Ukelele as an input method I could use Word, but since going to Office 365 its reliability is too poor; I've stopped using Excel for the same reason.


Connor.

Sorin Paliga

unread,
Dec 6, 2015, 6:34:38 AM12/6/15
to ukelel...@googlegroups.com
So: 
On 06 Dec 2015, at 13:29, Connor <elg...@tackleanything.co.uk> wrote:

Geke, what advantage does LibreOffice have over OpenOffice?

I have another problem that is not solvable by Ukelele.   Zeta-calculus uses grids, an extension of simple grids (tables) used in z-notation see http://www.w3.org/TR/wsdl20/wsdl20-z.html (scroll down a bit to see some grids).   Grids are special purpose tables that have a particular shape (only some of the lines are drawn in, which lines are are which are not define which type of grid it is).   Making these manually from tables is a bore.   It would be really great if an expert in one of those open source word processors would write an extension to support grids.   I have begun documenting the requirements, but which one of those word processors would be easier to add that functionality I don't know, but that will really determine which word processor we use.
This is solvable at the level of the application used, not by a keylayout. You must identify that app or those apps, which fit(s) your needs. 


Yes, MS Word does have a character picker, but it only covers a selection of unicode (instead of showing all the characters in the font), which is a bit rubbish.  MS word does allow unicode characters to be copied in.   By using Ukelele as an input method I could use Word, but since going to Office 365 its reliability is too poor; I've stopped using Excel for the same reason.
MS Word is a word processor, not always suitable for certain needs. LibreOffice or OpenOffice has/have special features for math editing. Check MathMagic, it Lite version is here
There are pro versions, too.
Once identified, and combined with a suitable keylayout, you may have all what you need for specific math documents.



Connor.
On Saturday, December 5, 2015 at 10:05:52 PM UTC, Geke wrote:
O, I forgot:

Do some research, e.g. on Wikipedia: I think it’s better to switch to LibreOffice from your OpenOffice.
Both work OK with Ukelele’s keyboard layouts.

MS Word should have a character picker, I think: "Insert symbol..." or some such command. Otherwise use the Mac’s built in Character Viewer (or however it’s called in newer OSes) from the Keyboard Layout menu.

Connor

unread,
Dec 6, 2015, 6:48:38 AM12/6/15
to Ukelele Users
Hmm,

I've just been playing with the apple Preferences>Keyboard.   In the text pane I can specify character sequences to be replaced by other symbols, eg one of the existing ones is '(c)' is replaced by ©.  That would allow me to use a dead key such as the key above the tab key '§' followed by a letter to indicate which set of symbols to choose from, eg 'a' for arrows, followed by 'e' for East arrow.  It seems to work really well, and works in real time (no need to restart anything).   Doing that would mean that I'd only need to use Ukelele for adding symbols to the Alt set.  However, where does Apple save these replacement sequences, and can I easily give them to other people?   Are there any other problems with me doing this?  

Thanks.

Connor.

On Saturday, December 5, 2015 at 11:35:20 AM UTC, Connor wrote:

Sorin Paliga

unread,
Dec 6, 2015, 6:55:09 AM12/6/15
to ukelel...@googlegroups.com
These are saved at the system level, sublevel user. I think they may be saved only by using backup app like Time Machine. I do not know whether you may export them. I would be interested in exporting such settings, I also use a limited number, but must redo it every time I install the system. But perhaps I am ignorant here. 

Geke

unread,
Dec 6, 2015, 10:39:18 AM12/6/15
to Ukelele Users
Sorry for my previous link to Ukelele. Better use this one, where you can download the latest version:
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele

You can read more details in the Wikipedia article on LibreOffice, but it seems the OpenOffice branch is not developed anymore, only LibreOffice. They had to change the name because of copyright reasons.

Have you tried Apple’s Character Viewer? I think it does exactly what you want, and you can have it open side by side with any application.

Re. your question: Could I achieve my aim without using a modifier key, eg using the key to the left of 1 has a first level dead key, then a letter as a second level dead key to select the set of symbols then a key for the actual symbol I'm after?
These are the two basic features a keyboard layout offers to extend the range of available characters:
1. Press one or more modifier keys together with a character key
2. Press a "dead key" (which may be a key combination as in point 1), then press a character key (which may also be key combination).
With Ukelele, these are the only two available. In principle, the keyboard layout file’s syntaxis allows dead key sequences of three or more keystrokes, but you can’t define them with Ukelele.
(The keyboard layout "Unicode Hex Input" that comes with OS X demonstrates this: Hold down Option and type four hex digits to input any Unicode character.)
Key combinations may be harder to remember, especially if there’s a large number of special characters you want to make accessible, therefore dead keys are probably the ticket for your project. But of course you can mix the two things, like Option-Z can be a dead key, or after a main-level dead key like ` (pressed without Shift or Option) you can specify different output results for the second keystroke being  A, Shift-A, Option-A, or Shift-Option-A.

I think you’ll find the Tutorial included with Ukelele quite instructive, albeit poorly readible with that grey print – I copied the text out and pasted it into TextEdit for comfortable reading.
The Manual is accessed through the Help menu inside Ukelele and also has good stuff on dead keys.

I didn’t know about such "auto-replace" possibilities (as in (c) -> ©) so I guess those have been added in newer versions of OS X. I presume it won’t solve all of your requirements, so to keep complexity low I’d suggest to put everything together in one keyboard layout which can be shared easily.
But if you like this approach, you could investigate other software solutions like Karabiner or DoubleCommand. They are different from Ukelele in that they have to be installed and active for the replacements to work.
In fact, MS Word also has this feature ("auto-correction" it’s called, I think) but I don’t know if one can share tables with other users.

Every keyboard layout has a flag icon – have you thought about one for your layout already? :)


Connor

unread,
Dec 6, 2015, 1:50:50 PM12/6/15
to Ukelele Users
Oh dear.   I've been really struggling trying to use Ukelele (3.0.0).   There is a lot that is not intuitive, where I don't know what practical effect my actions are having, or what I need to do to have the desired effect.   I think the application is fine, and I take my hat off to John for all his hard work in making it.   There are two pieces of documentation, a PDF which cover some basics, and html which is out of date (because the user interface has changed so much, the old html simply does not correspond with todays Ukelele).  The software does a really good job, but trying to work out how to use it from outdated and disjoined (its not obvious in which order to read them) documentation is frustrating; the application deserves better.   


Is there anyone who has already mastered Ukulele who can put together updated documentation to help new users?   I'm sure it would be much appreciated.


Regards,


Connor.  

Sorin Paliga

unread,
Dec 6, 2015, 1:58:50 PM12/6/15
to ukelel...@googlegroups.com
Concentrate on learning how to create dead keys. Start from an existing keylayout, put it on the desktop or elsewhere, work with it, change name and ID, put it in Library/Keyboard Layouts, restart, activate and work with it. 
The right way to learn an app is to use its functions and buttons, and see what happens.

Geke

unread,
Dec 6, 2015, 4:58:03 PM12/6/15
to Ukelele Users
Hi Connor,

It’s probably best to "Create a keyboard from the active keyboard". Then you change the name with  "Keyboard menu:Set keyboard name", then start changing key assignments. First make some just simple changes, save and test your layout.
When you get that working, venture into dead keys stuff.

All those steps are given nicely in the Tutorial (what you call the HTML document). Did you open the file "introduction.html"?
You could of course install an older Ukelele version, but I think the Tutorial still does a good job to give you a quick start, even if the user interface is different now. The functionality is practically the same as in older versions and there are actually only a few functions you need: create and save a keyboard, and assign keys. That’s part 1 of the Tutorial. When that works, do part 2 including dead keys.

Otherwise, have you checked the Help inside Ukelele?

Connor

unread,
Dec 7, 2015, 10:17:24 AM12/7/15
to Ukelele Users
Ok,

Can you tell me what I need to do to to set up Option+K as a dead key, and how I specify this dead key mode for adding characters, and also adding characters to the shifted version of this mode?

Much appreciated.

Thanks.

Connor.

Geke

unread,
Dec 7, 2015, 10:34:28 AM12/7/15
to Ukelele Users
Dear Connor,

As you had trouble with the difference between the Help and the program, I suggest you start on something easier.
I think the Tutorial breaks up the process in nice steps: first part 1 the general stuff, then part 2 the dead key stuff.
It may seem to take more time that way, but usually in the end it’s a big time-saver...
Whenever you get stuck on some step in the Tutorial, post it here. That way, you’ll get specific help and John gets a concrete message where the Tutorial should be edited :)

Good luck!

John Brownie

unread,
Dec 7, 2015, 7:24:46 PM12/7/15
to ukelel...@googlegroups.com
On 7/12/2015 4:50, Connor wrote:
Oh dear.   I've been really struggling trying to use Ukelele (3.0.0).   There is a lot that is not intuitive, where I don't know what practical effect my actions are having, or what I need to do to have the desired effect.   I think the application is fine, and I take my hat off to John for all his hard work in making it.   There are two pieces of documentation, a PDF which cover some basics, and html which is out of date (because the user interface has changed so much, the old html simply does not correspond with todays Ukelele).  The software does a really good job, but trying to work out how to use it from outdated and disjoined (its not obvious in which order to read them) documentation is frustrating; the application deserves better.   


Is there anyone who has already mastered Ukulele who can put together updated documentation to help new users?   I'm sure it would be much appreciated.


The main manual is available from within Ukelele from the Help menu. Choose "Ukelele Manual (PDF)" and it will open the manual. It's intended to be the complete resource for information on how to use Ukelele.

On another topic, I find PopChar X to be the easiest way to access a Unicode picker. It's not free, though. http://www.ergonis.com/ is the web site, and the price is €29.99. Typinator is another of their products, and allows you to define keyboard abbreviations that apply everywhere that uses text in a standard way. You may find it a useful tool, either as an alternative to creating a keyboard layout or as an adjunct to it. I have no affiliation with the company, but love those two products!

Another option is the Character Viewer in OS X (it's gone by other names, too). It has a search feature that searches code points by their Unicode name.

John Brownie

unread,
Dec 7, 2015, 7:25:59 PM12/7/15
to ukelel...@googlegroups.com
On 7/12/2015 4:50, Connor wrote:
Oh dear.   I've been really struggling trying to use Ukelele (3.0.0).   There is a lot that is not intuitive, where I don't know what practical effect my actions are having, or what I need to do to have the desired effect.   I think the application is fine, and I take my hat off to John for all his hard work in making it.   There are two pieces of documentation, a PDF which cover some basics, and html which is out of date (because the user interface has changed so much, the old html simply does not correspond with todays Ukelele).  The software does a really good job, but trying to work out how to use it from outdated and disjoined (its not obvious in which order to read them) documentation is frustrating; the application deserves better.   


Is there anyone who has already mastered Ukulele who can put together updated documentation to help new users?   I'm sure it would be much appreciated.


The main manual is available from within Ukelele from the Help menu. Choose "Ukelele Manual (PDF)" and it will open the manual. It's intended to be the complete resource for information on how to use Ukelele.

I'm sorry that things are not intuitive. I welcome any suggestions in improving the interface. There are many complex interactions that need to be handled, and I have been experimenting with different methods, none of which I'm entirely satisfied with.

Connor

unread,
Dec 8, 2015, 6:47:24 AM12/8/15
to Ukelele Users

John,


Thanks for the practical advice.


"I'm sorry that things are not intuitive. I welcome any suggestions in improving the interface. There are many complex interactions that need to be handled, and I have been experimenting with different methods, none of which I'm entirely satisfied with."


Yes, creating an application does throw up a number of design issues.   First I’m mention some small frustrations such as:


"New from Current Input source” - it delivered an error message telling me that the key layout file did not exist; this may be because there is no UK keyboard in the set of unicode layouts but there is one in the roman set.


It is not made clear why someone should select a layout from Roman verses Unicode (I presumed I should use Unicode, so based my layout on US key layout).


When choosing a name for my new keyboard, I thought that a new layout was being created; what actually happened is that the original US keyboard was renamed and my sandbox playing was ‘damaging’ the original file.   What I ought to have done was duplicate and rename the original file, as well as renaming within Ukelele (or Ukelele should copy and rename the file in addition to what it normally does).


There is a keylayout ID, a negative number, but there was not indication how this is used, or what problem there may be if the number chosen is the same as an existing keyboard.   Would there be any value in Ukelele identifying what ID numbers are already in use and suggesting a number that does not conflict?   From a UI point of view, asking the user for a value without the user knowing what it is for is not good.


When I was playing, I made a dead key.   When I realised I had changed the original file rather than my own file I wanted to remove the dead key, but could not see how this could be done.


These are my thoughts on the design side...


One big problem with user interfaces is modes.  The more modes there are the mode difficult/confusing software tends to be.   With Ukelele the keyboard window has a different mode for each combination of modifier keys, and a different mode for each dead key.   An alternative approach may be better.


I wonder whether editing a list for each key would be easier, ie the keyboard window does not change mode, but, when a key is double clicked, instead of displaying just one input field for the character for that mode, it displays a list of fields, each field for one combination of modifier keys and other key states.   Eg first field for the desired character from the plain keystroke, next field for the shifted keystroke…. with dead key states added at the lower end of the list.   That way the user only has to define new keystates in a separate place (which is conceptually easy), then desired characters can be added to all keystates in a consistent manner, ie double click a key icon, and it shows the list of all possible states for the key and the user can drag and drop etc.   That would avoid the more awkward mode changes.   


I would recommend that the add new keystates panel should either not use a representation of a keyboard, or be visually different so that there is a clear difference between defining new keystates and placing character codes on the keys in each state.   The add new keystates panel could be a table with one row for each key state, with 2 fields for keystate name, and the key sequence to enter that state (the sequence being entered by the user typing the keys on the physical keyboard while the cursor is in that field).   I suspect that would be more intuitive.   I hope that makes sense.   I suspect it would work well if the add new keystates panel and the keyboard drag and drop panel are displayed one above the other in the same window, that way a user on opening the application will twig immediately the relationship between keystates, and keys, and will not need a manual.  


If the double click could be replaced by either a single click, or a hover-over, the user doesn't need to be told that a double click is necessary.  


Typinator sounds like a good product, especially because some symbols I wish to use may need different length key sequences, eg to get an upward pointing arrow, I want to type <some dead key> A (for arrow symbol set), N (for North), but I also want:  <some dead key> A (for arrows), N E (for North East)  to give an arrow that points diagonally up and to the right.


OpenOffice (like other word-processors) has an auto correct feature that replaces one string with another which would work well for me, however it has a couple of drawbacks.   Entering new substitution values through the screen dialogue is time consuming for large numbers of symbols.   Instead of this information being stored in a simple flat file that is easy to edit and easy to pass to other people, it is stored in an XML file which is then compressed, with other files, into a .dat file.   I think that was a design mistake.   Although that would work well for work in my specific field, it would of-course, not allow me to access those symbols when typing emails etc, which is why 'Typinator' or 'aText' may be my best option.     


I hope that these thoughts are useful, and I wish you well.


Regards,


Connor

Geke

unread,
Dec 8, 2015, 10:42:46 AM12/8/15
to Ukelele Users
So many problems! I thought using the Tutorial would get you over most bumps...

Just one question: Which version of Ukelele are you using? There has been a version where "New from current input source" had a bug, yet that is your best way for starting a new layout.

John Brownie

unread,
Dec 13, 2015, 8:47:02 PM12/13/15
to ukelel...@googlegroups.com
Wow, a lot of suggestions here! I'll respond to some, but others will have to wait until I think about them some more.


On 8/12/2015 21:47, Connor wrote:
Yes, creating an application does throw up a number of design issues.   First I’m mention some small frustrations such as:


"New from Current Input source” - it delivered an error message telling me that the key layout file did not exist; this may be because there is no UK keyboard in the set of unicode layouts but there is one in the roman set.


This shouldn't happen, and if it does, it's not what you think it is. The background to this is that Apple has created a tool that turns compiled keyboard layouts (in the 'uchr' resource format) into XML versions. However, there are still some bugs in this, which I report as I come across them. So, if it's not working for you, I'd really like to know what triggers it: what keyboard layout you were using, and the exact error message.

It is not made clear why someone should select a layout from Roman verses Unicode (I presumed I should use Unicode, so based my layout on US key layout).


There's no reason to keep those, they are just the original organisation, and they refer to the "script" that is output. There is some discussion of scripts in the manual. But it is usually better to make a keyboard layout produce Unicode. I think that it may be a good idea for me to reorganise the keyboard layouts into a more useful set of collections.

When choosing a name for my new keyboard, I thought that a new layout was being created; what actually happened is that the original US keyboard was renamed and my sandbox playing was ‘damaging’ the original file.   What I ought to have done was duplicate and rename the original file, as well as renaming within Ukelele (or Ukelele should copy and rename the file in addition to what it normally does).


This is the new document model that Apple introduced some years ago. So, in some ways, Ukelele is doing what is expected, but in other ways it's not doing what is expected. There is a disconnect there that is faced by most developers, and all I can say is that it's documented in the manual. There may be a way to make this clearer, and I'll think about it.

There is a keylayout ID, a negative number, but there was not indication how this is used, or what problem there may be if the number chosen is the same as an existing keyboard.   Would there be any value in Ukelele identifying what ID numbers are already in use and suggesting a number that does not conflict?   From a UI point of view, asking the user for a value without the user knowing what it is for is not good.


That's what the "Generate" button is for. I agree that it's not the best approach, and I'll think about some alternatives. Conflicts are dependent on the system in use, so it's never possible to be sure you'll have a unique ID.

When I was playing, I made a dead key.   When I realised I had changed the original file rather than my own file I wanted to remove the dead key, but could not see how this could be done.


Undo should be able to go all the way back to the original file, unless you have quit Ukelele somewhere along the process.

These are my thoughts on the design side...


One big problem with user interfaces is modes.  The more modes there are the mode difficult/confusing software tends to be.   With Ukelele the keyboard window has a different mode for each combination of modifier keys, and a different mode for each dead key.   An alternative approach may be better.


I can see your point, but can't see any great alternatives myself, but see comments below.

I wonder whether editing a list for each key would be easier, ie the keyboard window does not change mode, but, when a key is double clicked, instead of displaying just one input field for the character for that mode, it displays a list of fields, each field for one combination of modifier keys and other key states.   Eg first field for the desired character from the plain keystroke, next field for the shifted keystroke…. with dead key states added at the lower end of the list.   That way the user only has to define new keystates in a separate place (which is conceptually easy), then desired characters can be added to all keystates in a consistent manner, ie double click a key icon, and it shows the list of all possible states for the key and the user can drag and drop etc.   That would avoid the more awkward mode changes.


There are extremes which make a list approach impossible. Someone has developed a keyboard layout for Egyptian hieroglyphics, which has over 1500 dead key states. We also have lots of keyboard layouts which have eight or more modifier combinations, and many dead key states. Lists may work for less complex keyboard layouts, though, so it may be a possible way to have an alternate interface. Certainly, I will think about it more.

I would recommend that the add new keystates panel should either not use a representation of a keyboard, or be visually different so that there is a clear difference between defining new keystates and placing character codes on the keys in each state.   The add new keystates panel could be a table with one row for each key state, with 2 fields for keystate name, and the key sequence to enter that state (the sequence being entered by the user typing the keys on the physical keyboard while the cursor is in that field).   I suspect that would be more intuitive.   I hope that makes sense.   I suspect it would work well if the add new keystates panel and the keyboard drag and drop panel are displayed one above the other in the same window, that way a user on opening the application will twig immediately the relationship between keystates, and keys, and will not need a manual. 


That is one possibility, though there's never a situation which means a manual isn't required. One person's intuitive interface is totally opaque to another. I wonder if it might be a possible approach to have two different ways of interacting with a keyboard layout, suitable for different personalities and for different situations.

If the double click could be replaced by either a single click, or a hover-over, the user doesn't need to be told that a double click is necessary. 


There is an option to make a single click edit a key's output.

Anyway, thank you for the thoughts, and I'll keep working on things.
Reply all
Reply to author
Forward
0 new messages