I am using both windows 7 and windows 8 PC.

currently I am writing a paper in latex and tired of pressing shift key to type special characters like $%^#& . Is there a software so that I can type these characters directly without pressing shift key. I have a numpad so I can type numbers from there.


Thanks to Franck Dernoncourt for a wonderful answer. Here is the keyboard layout I am currently using

enter image description here Anyone can get the setup files from here. After unzipping these files ,Run setup.exe . Then use win + space to change windows layout on win 8. For win 7 click here to know how to change keyboard layout

  • Thanks for sharing the setup files for your keyboard layout! Jun 21, 2014 at 19:33

3 Answers 3


You could create a new Keyboard Layout (or edit an existing one) with Microsoft Keyboard Layout Creator, which is free, provided by Microsoft, and works on Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows 7:

  • Create new keyboard layouts from scratch
  • Base a new layout on an existing one
  • Modify an existing keyboard layout and build a new layout from it
  • Multilingual input locales within edit control fields
  • Build keyboard layout DLLs for x86, x64, and IA64 platforms
  • Package the resulting keyboard layouts for subsequent delivery and installation

enter image description here

FYI: Some ideas in the post An Ideal Keyboard Layout for Programming:

  • Swap numbers with symbols in the top row, because long or repeated literal numbers are typically replaced with named constants;
  • Swap backquote with tilde, because backquotes are rare in many languages but destructors are common in C++;
  • Swap minus with underscore, because underscores are common in identifiers;
  • Swap curly braces with square brackets, because blocks are more common than subscripts; and
  • Swap double quote with single quote, because strings are more common than character literals.

If anyone is aware of some nice keyboard layout repositories, please edit my answer or add as a comment.

  • I made a layout, test the layout, validated it, then created the setup files and installed the setup file too. I this whole precess , there was no error. But still after this the keyboard layout hasn't changed to what I had created. Do I need to restart my PC after the installation. I am working on win 8 and have .Net 2.0 redistributable package installed
    – Nishant
    Jun 20, 2014 at 17:52
  • Did you change your keyboard layout after installing it (support.microsoft.com/kb/258824) ? Jun 20, 2014 at 17:57
  • 1
    thanks for your help, in windows 8 I can do that by pressing win + space key.
    – Nishant
    Jun 20, 2014 at 18:12
  • You're welcome, I think there is a similar shortcut on Windows 7. Jun 20, 2014 at 18:13
  • 1
    @FranckDernoncourt win+space is a new shortcut in win 8 which displays a layout menu. On all windows you can still use alt+shift to change keyboard language, ctrl+shift to change IME in the same language which results in layout change
    – phuclv
    Jun 21, 2014 at 2:36

You can use AutoHotKey to do this. It's a resident program, and I've been using to generate and insert GUIDs on a keypress for a while now.

You'll want to know about the key list, and you'll want to read some of the documentation.

To remap the numberpad 0 key to !, for instance, you'd put the following line in your AutoHotKey script file:


Similarly for the rest of the numeric keys. Note that AHK can distinguish between the numeric keys when numlock is on, and when numlock is off, so you can remap them differently in those two states if you like.

This tool is a resident program, but it also allows you to update the script on the fly without a reboot, so that's nice.

  • Thanks but,I do not want to map the numpad keys. I want to map the numbers keys which type special characters when shift is held. Any help in that ?
    – Nishant
    Jun 20, 2014 at 16:24
  • Do you know about any similiar software for a unix/linux OS
    – Nishant
    Jun 21, 2014 at 4:44

From your question and responses, it seems that you want to remap the number keys on top row to their special meanings. Franck Dernoncourt addressed that.

Another way, though admittedly strange, would be to tape down the Shift and Caps Lock keys. By taping down Shift, the numbers will use their special meaning. To address the side-effect of the letters becoming capitalized, taping down Caps Lock will return them to small caps. (Using both shifts on a letter does nothing more than one. Both with Caps Lock does not do anything on my system.) This will prevent capital letter entirely, but even that can be addressed with a regex replace afterward on period-space-letter.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.