Skip to content
/ 2Keys Public
forked from Gum-Joe/2Keys

A easy to setup second keyboard, designed for everyone.

License

Notifications You must be signed in to change notification settings

poa00/2Keys

 
 

Repository files navigation

2Keys Build Status codecov Maintainability

A easy to setup second keyboard, designed for everyone.

For a full setup guide, see here

For keyboard mappings, see here

DEVELOPMENT NOTICE

I'm now working on a new version of 2Keys that is more modular & will be designed for the upcoming 2Keys Studio GUI. Please see the v1 branch.

Support

Windows is supported only as the server (where the hotkeys will run) and a raspberry pi is required to run the detector.

WARNING

This will download a copy of AutoHotkey_H, a DLL version of AutoHotkey

Building

To build & install the server, where hotkeys are run (for development purposes):

# IGNORE
$ yarn
$ yarn build
$ yarn link

To build all packages:

$ yarn
$ yarn workspace @twokeys/common-hi run tsc -b # need to compile this initially for bootstrapping purposes
$ yarn run compile:all # use yarn build -v to display more detailed output -> this builds the TS files

To test everything:

$ yarn workspace @twokeys/server run ts-node ./scripts/bootstrap.ts --debug # Downloads AHK for testing
$ yarn test:all # use yarn coverage:all for coverage

To test packages one by one:

$ yarn workspace @twokeys/server run ts-node ./scripts/bootstrap.ts --debug # Downloads AHK for testing
$ yarn workspaces run test

To build the detector (after installing Pipenv) (for development purposes):

$ cd detectors/detector-pi/detector
$ pipenv install
$ pipenv shell

You can then install it in the Pipenv shell's PATH with pip link -e .

If you want to install it globally, so you can use it with the 2Keys systemctl services:

$ cd detectors/detector-pi/detector
$ pipenv lock -r > required_tmp.txt
$ pip3 install -r required_tmp.txt
$ pip3 link -e .

Note that with this 2Keys and its dependencies will be installed for the entire system.

Devices

Server: The device running the hotkeys sever, i.e. where the hot keys will be run

Detecter: Device that handles detection of key presses & which keyboard it is and sends this to the server

Sofware used & inspiration

Inspired by LTT editor Taran's second keyboard project: https://github.com/TaranVH/2nd-keyboard

2Keys uses AutoHotkey_H (a DLL version of AutoHotkey): https://hotkeyit.github.io/v2/

License

Copyright 2020 Kishan Sambhi

2Keys is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

2Keys is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with 2Keys. If not, see https://www.gnu.org/licenses/.

About

A easy to setup second keyboard, designed for everyone.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 40.7%
  • TypeScript 38.8%
  • C++ 5.2%
  • JavaScript 5.0%
  • Shell 3.9%
  • AutoHotkey 3.2%
  • Other 3.2%