Giter VIP home page Giter VIP logo

qwerkey's Introduction

Baklava -- Sweet Layered Keyboard Layout with Sticky Keys

This is a keyboard layout for X11, optimized for minimal reach, inspired by (https://github.com/MicahElliott/QWERkey) with the additon of sticky keys from xkbset.

keymap diagram

The CapsLock key now serves as the Ctrl key. All the keys (except CapsLock) work much as they do without baklava, but with additional superpowers.

There is a variant called baklava.sh that is intended run automatically from /etc/X11/xinit/xinitrc.d/. It has some different behaviour than traditional baklava as desribed in this README.

baklava.sh does not do sticky keys. sticky keys are confusing unless some visual indicator is added.

baklava.sh, when run with no args, restarts rather than stops

One superpower is Sticky keys.

The Alt key and the Shift keys are sticky, which means if you tap and release it, the next key you press will have modifier applied. If you double tap, the modifier mode is locked. Tapping it again clears its lock.

Ctrl would be sticky, but I find that annoying, because it makes the keyboard seem locked, instead, it is set so that a single tap on Ctrl (labelled CapsLock) generates Enter.

All three of these modifiers (Ctrl, Alt, and Shift) can also be used the traditional way where you hold down the modifier key & press another key.

The other superpower is the Symbol modifier.

Holdng down the Tab key activates the Symbol modifier, while pressing anohter key performs the Symbol modifier, so you can get type the symbols shown in green in the keyboard map with your right hand, without reaching far from the home row. This gives all the symbols on a U.S. keyboard within easy reach of the homerow.

If you do an extremely long keypress on Ctrl or Tab, holding the key down long enough to exceed the xcape timeout, these keys will latch and lock like Alt and Shift. Tap them again to clear it.

I did not make a binding for Escape, because you can do Ctrl-[ to get Escape, or Ctrl-C in vim.

To install this project, install the "xcape" and "xkbset" packages from your package manager, and put the script "baklava" into any directory in your PATH. To activate it, run "baklava start". To deactivate it, run "baklava" with no arguments.

You might want to read the (https://github.com/MicahElliott/QWERkey/README.md) because it motivates baklava. That author's motivation was that he cannot reach very far with his fingers, to he remapped his keyboard extensively, so that he can type using only keys that are easy to reach, as shown in this image: image of easy reach keys from QWERKey To me, main idea of QWERKey is that you can hack your way around some health issues. For me, the main physical issue is that I have arthritis in my right elbow and left thumb. I use Xmonad as my window manager because it is keyboard driven, greatly sparing my elbows from mouse pain. The problem is that the default keybindngs just transfer the wear and tear to my left thumb. Xmonad uses stretches like Alt-Shift-6, which was just annoying at first, but become quite painful after a couple of years of using Xmonad. This keybinding lets me use might right thumb for Alt, and it is sticky so I can press those keys one at a time, thus avoid the stretch.

qwerkey's People

Contributors

micahelliott avatar jganong avatar

Stargazers

 avatar

Watchers

James Cloos avatar  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.