Coder Social home page Coder Social logo

dvorak-qwerty's Introduction

Dvorak with Qwerty hotkeys

On Mac OSX, there is a keyboard layout known as "Dvorak-Qwerty ⌘". This layout normally acts like Dvorak, but when the command key is held, it becomes Qwerty. I find this layout has two significant advantages over straight Dvorak:

  • The common copy/paste hotkeys X, C, and V remain on the left hand, and so can be used while the right hand is on the mouse.
  • Holding the control key with my pinky tends to make it hard for me to remember where many keys are located, because my hands are no longer positioned as they would be when touch-typing. Meanwhile, the labels on my keyboard are Qwerty, because I no longer bother reconfiguring them physically. With the Dvorak-Qwerty layout, I can look at the keyboard to find the key I want.

Unfortunately, the layout is not shipped with Windows or most Unix variants. Worse, while it's technically possible to implement DQ as a standard XKB layout on Unix systems, the layout appears to expose bugs in many Unix apps making it unusable. Instead, we're forced to write code that MITMs and rewrites keystrokes.

This project provides several different implementations of the Dvorak-Qwerty layout on various operating systems.

Unix

By me:

  • xdq.c - Implements DQ on X (Unix/Linux) using X Grabs. See comments at top of file for instructions. WARNING: This doesn't work on Wayland, which many distros are moving to as of late 2017. It's also pretty hacky due to the nature of X grabs.
  • dvorak-qwerty.stp - Implements DQ on Linux by monkey-patching the kernel using SystemTap. This is totally nuts but it works and ultimately is way cleaner than xdq.c.

By others (I have not tested these):

  • Thomas Bocek's implementation using Linux's /dev/uinput and EVIOCGRAB. This looks similar to my SystemTap-based implementation, without injecting code into kernelspace.

Windows

By me:

  • dq-windows.zip - Implements DQ on Windows. Source code and compiled binaries included. WARNING: This code was originally written literally half my lifetime ago and I have not used it in nearly a decade since I don't use Windows anymore. I hear it still works, though.

By others (I have not tested these):

dvorak-qwerty's People

Contributors

kentonv avatar

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.