Skip to content

4Source/Keyboard-Layout-Optimizer

Repository files navigation

Keyboard Layout Optimizer

This Project is based on the AtomicFrontierCode/keyboards Repository.

You feelt like the standard keyboard layout isn't a charm? Or just wanna try Another Keyboard Layout? This Project could help you find your better keyboard layout. The change won't be easy, so you should think carefully about whether you want to do it. It is also important that myBook contains pages that are suitable for you. myBook? pages? What does that mean? myBook is the name of the folder where the pages are in. The pages are Text you wrote or just text in the languges you use. These text will be used to create a heatmap, this will measure the usability of the keyboard layout.

Warning

This Project is still under development.

Getting started

  1. Get the Files
    • cd YOUR-FOLDER
    • git clone https://github.com/4Source/Keyboard-Layout-Optimizer.git
    • cd .\Keyboard-Layout-Optimizer\Keylogger\
  2. Create myBook
    • Option 1 (Recommendet)
      1. Install Python
        • If you havend allready you need to install Python 3.
      2. Install Requirements
        • pip install -r requirements.txt

          or install requirements by your self

        • pip install ... see requirements

      3. Setup Keylogger
        • python SetupKeylogger.py
        • Need to run once to create the config file. You can just run it and than exit or change config [Show options] if you like.
      4. Start Keylogger
        • python keylogger.py
        • Let it run as long as you like. Recommendet to collect data for coulple of weeks.
        • You can also add pages.txt that you would like to be taken into account. If you add large files or files with just word list this can distort the result. Solution: Don't add them or let the keylogger collect more data.
    • Option 2
      1. Create myBook folder in Keyboard-Layout-Optimizer folder.
      2. Add pages.txt manualy. Don't use only word list this can result in unusable keyboard layout. Good options are: Text/Code you wrote or Text/Code from Books or other sources
  3. To be continued...

Keylogger

Why Keylogger?

This isn't a must, but if you leave it running for a few weeks while you type on your computer, you'll get a personalized keyboard layout based on your most frequently used keys. This keylogger cannot send your files to other locations, but it is strongly recommended to pause the keylogger using the pause-hotkey while typing passwords. Your passwords wont be saved in plane text but will stay in keylogger till stopped the keylogger.

Note

It is strongly recommended to pause the keylogger using the pause-hotkey while typing passwords.

Note

While playing games also pause the keylogger using the pause-hotkey because the inputs while playing games would affect the rating of the layout with keys there not important for writing text.

Where get it saved?

Your pressed Keys only get saved on your local computer. You can find them in myBook which get created if your first keys get logged. Inside you will find heatmap with the count of pressed keys.

Configs

  • auto-start
    • False (Default) - The Keylogger needs to be started manually.
    • True - The Keylogger will auto start at startup.
  • output
    • local (Default) - Key presses get logged localy on your computer.
    • console - Key names get printed to console. Requiers hide = False.
    • debug - Key presses get printed to the console. Ignores hide config.
  • hide
    • never (Default) - Console stays allways visible after starting the Keylogger.
    • ready - Console will be invisible after the the Setup completted. Can be toggled with visible-hotkey.
    • instant - Console will be instant invisible. Can be toggled with visible-hotkey.
    • allways - Console will be allways invisible.
  • typos
    • exclude-typos
      • True (Default) - If you use BACKSPACE the last keys get removed from buffer.
      • False - Keep all keys you typed.
    • processing-time
      • 2000 (Default) - How long BACKSPACE could affect the state.
      • -1 - All changes from start of the keylogger could be removed. This option is not recommendet.
      • YOUR-TIME - This changes the amount of time that has passed since the button was pressed until the button press can no longer be removed.
  • file-prefix
    • "" (Default) - Your files have no prefix.
    • "YOUR-PREFIX" - It is posible to prefix your files with a custom prefix. Usefull if you use on mulible computers and will combine all your files in one folder so you get not file name conflicts.
  • combination-time
    • 800 (Default) - Maximum time in ms between keypresses wich counts as combination.
    • YOUR-TIME - Increase time if your typing is slower.
  • save-intervall
    • 5000 (Default) - Minimum time in ms between saves.
    • 0 - Saves immediately after pressing a key.
    • YOUR-TIME - Increase time if you want to save less often.
  • hotkeys
    • exit-hotkey
      • ctrl+alt+x (Default) - To stop the Keylogger completly also in hidden mode.
      • YOUR-HOTKEY - Only use correct hotkeys. If you unsure how the keys are named you could use mode = console to see the namings. Invalid hotkeys may crash the keylogger.
    • pause-hotkey
      • ctrl+alt+p (Default) - To Pause/Continue the Keylogger. Usefull is you don't want your passwords in the 'page' files appier in clear text.
      • YOUR-HOTKEY - Only use correct hotkeys. If you unsure how the keys are named you could use mode = console to see the namings. Invalid hotkeys may crash the keylogger.
    • save-hotkey
      • ctrl+alt+s (Default) - To save the buffer. Usefull is if you wanna save the buffer manually.
      • YOUR-HOTKEY - Only use correct hotkeys. If you unsure how the keys are named you could use mode = console to see the namings. Invalid hotkeys may crash the keylogger.
    • visible-hotkey
      • ctrl+alt+v (Default) - To toggle visibility of the Window. Dont affect visibility if hide is "allways".
      • YOUR-HOTKEY - Only use correct hotkeys. If you unsure how the keys are named you could use mode = console to see the namings. Invalid hotkeys may crash the keylogger.