Code Monkey home page Code Monkey logo

querty-altgr-compose's Introduction

QUERTY-AltGr-compose

This keyboard layout adds accented letters (à ê ï ō ç ž), punctuation (— “ ”) and more to the standard QUERTY layout. Useful for those who want to shake their typewriter habits.

For those living in New Zealand, you can at last properly type Māori place names.

Unlike the standard international QUERTY layout, it does not do this by binding dead keys to characters like ' and ^. It’s almost impossible to program on such layout. Instead the AltGr modifier is used.

Characters:

  • Accented letters, typed with the AltGr modifier. This generates precomposed characters.

    key Accent
    ` Grave accent: è
    Shift + ` Tilde: ñ
    ^ Circumflex: ê
    Shift + ^ Caron: ě
    - Macron: ō
    o Ring above: å
    ' Acute accent: é
    Shift + ' Diaresis: ë
    , Cedilla: ç
    . Dot above: ȧ
  • Non-ASCII quotes (“, ”, «, ») are mapped to the 3d and 4th positions on the various kinds of brackets.

  • Proper long dashes: use AltGr + -, - and AltGr + -, Shift + -

  • A few other mathematical characters and symbols, like ×, √, ©, etc.

  • Greek letters: Use AltGr + G, followed by a letter. The mapping follows the Symbol font.

  • The - and . dead keys also include a few punctuation characters (en-dash, ellipsis, arrows, …).

  • One of these dead keys followed by Space will produce a spacing mark, similar to what AZERTY does. I use the combining variants but that would be weird because they must appear after the letter.

See the list of all dead key combinations.

Caveat

This layout uses a few combinations of AltGr + Letter, which may interfere with applications which use keyboard shortcuts of the form Ctrl + Alt + Letter, because of the quirky way AltGr is implemented in Windows.

Install

  • Setup full.zip contains the package generated by MKLC.
  • Setup noG.zip contains the same layout, but without the dead keys on G and O, in case these cause problems with hotkeys in applications.

To build yourself:

  • Get Microsoft Keyboard Layout Creator 1.4 (aka MKLC --- requires .NET 3.5). Although not updated anymore, and it still works on Windows 10. The generated installers sometimes crash after finishing installation but for now this doesn’t seem to have bad consequences.

  • Run the python script to generate the .klc files and matching keys.md file.

  • Open the .klc file of choice in MKLC and create a “DLL and Setup Package”. (qucmf or qucms prefix)

Implementation notes

There are a few things to watch out for when modifying layouts:

  • A dead key plus Space should produce that dead key itself. Eg. AltGr + G is assigned to γ, and γ, Space produces γ.

  • A dead key plus that same character should not be assigned. Pressing the dead key twice will normally produce that character twice. Or maybe I should just avoid assigning the same character as both normal key and dead key.

    For this reason AltGr + G is not assigned to g: then we would have g, gγ.

    The layout will not work properly with GTK+ applications if such combinations are there.

  • Some characters just don’t seem to work as dead keys. Noted so far: (en dash).

  • MKLC will not load your layout if a dead key is defined, but the DEADKEY section is missing.

  • MKLC will refuse to generate a setup package if your layout (with the same name) is currently in use. So go to settings and remove it first. And carefully keep the version string and description strings in sync, otherwise things will get very confusing in the control panel.

  • In general developing this thing is a PITA because Windows doesn’t handle updates to layouts well (in their defence it is a very unusual thing to do). To install a new version:

    • uninstall current version
    • reboot
    • install new version
    • reboot and cross your fingers

License

The layout itself (the Python source code and the input text files) is released to the public domain. The ZIP files contain the installer generated by Microsoft Keyboard Layout Creator. This program comes with its own license, but to the best of my knowledge distribution of the generated installer is allowed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.