Skip to content

Latest commit

 

History

History
69 lines (56 loc) · 2.27 KB

README.md

File metadata and controls

69 lines (56 loc) · 2.27 KB

capylayer

A simple python package to create key layers activated by modifier hotkeys.

Layers are activated by defined hotkeys. You can build remappings for symbol layers, layouts like Dvorak, or any other customized layer.

Platform support

Windows

On windows, an AHK script is used to simulate key remapping. Use AHK key name syntax for it to work.

Other platforms

On Linux and MacOS, for now, keyboard library is used to simulate the key remapping action, unfortunately it does not work as intended/fully for a range of keys. For example, modifier keys like Alt when remapped by other keys will not fully work (E.g. Alt + F4 won't work).

Modifier mode

A modifier hotkey can be set to one of two modes:

  • Switch: Activate a layer by holding, similar to Shift.
  • Lock: Toggle a layer on/off by pressing, similar to CapsLock.

Example

Profile: "capy"

  • Key Layer:
    • Modifier hotkey: CapsLock
    • Modifier mode: Switch
    • Key remaps:
      • aDelete
      • sF1
      • dUp

While CapsLock is held, the key layer is active:

                     _____  _____  _____ 
                    /\ Del \\  F1 \\  ↑  \ 
                    \ \_____\\_____\\_____\
                     \/_____//_____//_____/
                      /      /      / 
                  ___/_  ___/_  ___/_   
    __________   /\  a  \\  s  \\  d  \     
   \  CapsLock \ \ \_____\\_____\\_____\    
    \___________\ \/_____//_____//_____/  

Installation

pip install capylayer

Usage

  1. Add profiles in capylayer/modules/data/profiles (TUI is not implemented currently)

  2. Then run:

capylayer

Future Improvements

  • Add a TUI with Textual
  • Design a way to check if key names exist as keys
  • Error logging
  • Key -> Hotkey remapping
  • Key -> Text remapping (useful for LaTeX)
  • Implement better key remapping for Linux and MacOS
  • Compile script dynamically
  • Create a pt-br README
  • Implement a dead key behaviour for accents
  • Add dist files to repo