Saturday, October 17, 2015

Italian keyboard: entering the tilde (~) and backtick (`) characters without changing keyboard layout


Here is what the layout of an Italian keyboard looks like:


enter image description here


As you can see, the curly braces, which are absolutely necessary to
write code in any of C, C++, JavaScript, Java, Objective C, and others,
appear in purple in this picture. This is because while the other
characters can be seen visually as printed characters on most Italian
keyboards, these purple characters are actually usually not printed
on the keyboard's keys. These characters, found in the upper right
corners of the given keys, can usually be generated with the
following key combinations:


(RIGHT SHIFT or LEFT SHIFT) + (RIGHT CTRL or LEFT CTRL) + (Alt or AltGR) + ([ or ])


(Actually as the MSKLC application shows, SHIFT + AltGr + [ and SHIFT + AltGr + ]
are enough to generate the curly braces.)


Characters such as the at (@) sign (called 'chiocciola' in Italian) and the
hash (#) key (called 'cancelletto' in Italian) found in the lower right hand
corner of the keyboard can be generated easily as follows (AltGr + @) or
(AltGr + #). Such characters are also fundamental to programming as
they can be for instance be found in CSS, namely with media queries
and with selectors referring to the id html attribute.


Upon further inspection we can see that all of the US ASCII keyboard / programmer's keyboard
are covered by the keys of the Italian keyboard, except for the following, which are the
tilde, which is especially useful on the Linux command line and is used to refer to a
user's home directory on such system, as well as the back-tick (`) also known as the
back-quote, which is also very useful on the Linux shell when we want to turn the output
of a command into a command-line input.


So, here comes the question:


With all those empty upper-right hand corners of keys, why isn't there a better
way of generating these characters, perhaps through a CTRL-ALT-SHIFT modifier key
combination?


All I've been able to find regarding generation of these characters are the
following ALT-codes:



ALT code 96 corresponds to `


ALT code 123 corresponds to {


ALT code 125 corresponds to }


ALT code 126 corresponds to ~



and to generate a character via an ALT code you make sure that the NumLock key on your
keypad is toggled on, hold down the ALT key, enter the keycode, and release the ALT key.


ALT code are documented at: http://www.alt-codes.net/


If someone knows of a better way of inserting these characters from an Italian
keyboard without swithing the keyboard layout in the Control Panel than
please let me know. Thanks.


Answer



The basic Italian keyboard layout as shipped with Windows 7 has no way of typing the backtick (`) or the tilde (~). I checked this using Microsoft Keyboard Layout Creator (MSKLC), with that layout loaded into it. I presume that this layout is more or less standard in Italy, though of course Microsoft might have its own oddities here.


However, in Windows 7, there is somewhat different layout called “Italian (142)”. In it, the backtick can be typed using AltGr + and the tilde using AltGr §. Here “+” and “§” refer to the keys labeled so in the picture in the question, i.e. two keys to the right of “P” and three keys to the right of “L”. I suppose this “Italian (142)” might be some kind of “Italian programmer’s keyboard”, or just a variant keyboard, possibly reflecting different physical keyboards.


If you are using Windows (as I guess because you mentioned “Control Panel”), consider downloading MSKLC and using it to create a modified Italian keyboard layout that suits your needs, and use it as the normal layout, with no need for switching between layouts. You could e.g. make AltGr ' produce the backtick and AltGr ^ produce the tilde; these should be relatively easy to remember due to similarity of characters.


As to the “why” question (why basic Italian layout lacks those characters), I would say that keyboards are primarily designed for typing texts in natural languages, and Italian has little use for those characters. The layout has keys for à, è, ì, ò, ù, so there is no need for a backtick key acting as a dead key (diacritic key) for typing vowel + grave accent combinations, as in many other European keyboards. And while other Romance languages have letters with a tilde, like ã and ñ, Italian does not.


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...