kanata

Improve keyboard comfort and usability with advanced customization

LGPL-3.0 License

Downloads
29.5K
Stars
2K
Committers
24

Bot releases are visible (Hide)

kanata - v1.3.0-prerelease-1

Published by jtroo over 1 year ago

Changelog (since v1.2.0)

  • WARNING: Kanata now errors on invalid top-level config items

    • Kanata previously would ignore these and they would do nothing. Now they result in errors in the configuration.
  • Fix: do not close immediately on error

  • Fix(Linux): change locking pattern causing unresponsiveness in some cases

  • Fix(Windows-Interception): correction of deflocalkeys-wintercept

  • Fix(Windows-Interception): fix issue with Interception driver sending Esc

  • Fix(Windows-Interception): use Interception mouse movement instead of SendInput

  • Added: -timeout variants of tap-hold that add a third potential action

  • Added: pretty errors using the miette crate

  • Added: make defcfg optional

  • Added: ensure all keys are released at the end of a dynamic macro

  • Added(Linux): mouse move support to Linux

  • Added(Linux): systemd notification when kanata has finished starting up

  • Added(Windows-Interception): use SendInput for arbitrary-code in Interception as well

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata. Kanata does not start a background process, so the window needs to stay open after startup. See this discussion for tips to run kanata in the background.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file. Kanata does not start a background process, so the window needs to stay open after startup. See this discussion for how to set up kanata with systemd.

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

210f8e84daadb8897d3dc58977d51ce07d4563800d88adf400c95f63171eb02a  kanata
f3676580580b9d4df7ece6068d0d6feac9d05ef092cf5b0e961b9b5b3c1d5680  kanata.exe
7e00eb2ff2bfff6fe4cf46eaf48dbe6d87d15fa86041a8306672fbb26718cb54  kanata.kbd
f125165c22b9d830e4d587ff8f1f164c51a9e785c27e9a53f459594db7d2da96  kanata_cmd_allowed
5f4ac0ed29f1eb7811b0f598ad3b995acb60a4ee0e74875393079b7b15e40d2e  kanata_cmd_allowed.exe
9b80498acc978d451682f833592aab17cfecdc5a931d608df3ce342593c420e5  kanata_wintercept.exe
096679538b87ede63b450949752a2ce5612766214de4acaa1e13308eb288e7a8  kanata_wintercept_cmd_allowed.exe
kanata - v1.2.1-prerelease-3

Published by jtroo over 1 year ago

Changelog (since v1.2.0)

  • Fix name of deflocalkeys-wintercept
  • Fix Windows Interception driver randomly pressing esc
  • Fix dynamic macro behaviour keys held at end of macro
  • Fix a locking pattern that causes unresponsiveness
  • Add Linux systemd notification for kanata startup
  • Add Linux support for existing move mouse actions

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata. Kanata does not start a background process, so the window needs to stay open after startup. See this discussion for tips to run kanata in the background.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file. Kanata does not start a background process, so the window needs to stay open after startup. See this discussion for how to set up kanata with systemd.

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

9a84895422609218e3e95f6ca88444bc757e716415081e26d9fb5aafaf427a39  kanata
7322e556ad882590c384fe1ecf70494b52ba6d8298f1e88dbba32db72f5ebf79  kanata.exe
8babac087df964c680f1a506b3ed4dc5a983d6b39832d76cc1d3b1b9b48131f7  kanata.kbd
1940c28742447c236d1f2f573a7892510b7fc4886d0e2fd95fe38e4f0314a431  kanata_cmd_allowed
62c84b662945b7774029f4a7a54ad27edfd39862fcbb278ab687d6faf888e9dc  kanata_cmd_allowed.exe
2af3646b91a117ebeacf93b47789eebe49fc5eb25e6d504ee14c29de110cced7  kanata_wintercept.exe
fbb5616a8b3788b63658af5d12619b71a9103bca75b2539f7be347a6d2bdc6fb  kanata_wintercept_cmd_allowed.exe
kanata - v1.2.1-prerelease-2

Published by jtroo over 1 year ago

Changelog (since v1.2.0)

  • Fix name of deflocalkeys-wintercept
  • Fix Windows Interception driver randomly pressing esc
  • Fix dynamic macro behaviour keys held at end of macro
  • Add Linux systemd notification for kanata startup
  • Add Linux support for existing move mouse actions

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

ee1f270d84d210793d24aa66972a8667de6ce0590ad134ee07e5928e9aa2259d  kanata
b2b5fdb02fa172415de206fd8981aabbaee4725db12cd32163a4669d8c648e6b  kanata.exe
c63c995ad8d6231245fb1102f614b96ee2ae96421af72309ae8bc98b96d51f89  kanata.kbd
a00167cb2fb96e410d4d73a9d460bafe41e006cb93ff89ecb576f250965c2679  kanata_cmd_allowed
7985a5b6cbb635899b6d7326cd149b6aa0e3a75e9f0aebda87d9f657de408947  kanata_cmd_allowed.exe
c307da3e2e6697a1c0dec9f4c3af12185ffc8a1687f8440cb0d7229998e341b9  kanata_wintercept.exe
6d3b5bcb353ba9a55fe7d76e0005e6089a520e34bd430537a03e6102065898c5  kanata_wintercept_cmd_allowed.exe
kanata - v1.2.1-prerelease-1

Published by jtroo over 1 year ago

Changelog (since v1.2.0)

  • Fix name of deflocalkeys-wintercept
  • Fix Windows Interception driver randomly pressing esc
  • Attempted fix for dynamic macro layer change behaviour

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly ggopted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

29099ac0dbd8e80cb7e8f9db57555cc0393636ffa777674770de4d82b5a1e04c  kanata
cc1c7b9a9dbc42c4b7a253ace011f20bb9b3600f3665085e59dbb7e5a603d539  kanata.exe
c63c995ad8d6231245fb1102f614b96ee2ae96421af72309ae8bc98b96d51f89  kanata.kbd
57ad2771a1283a12e653bc736fe97b2d6af0ddd63485e8236915a447915f699c  kanata_cmd_allowed
edd06155374da9b2a892e80dba9c17063af36f9c3975697183ddcf0458e09b5b  kanata_cmd_allowed.exe
73ba997bca47d535aeaec1f39cc6a4293668778af299eb963b4dc0ff9e09040d  kanata_wintercept.exe
09c6d50d24bb827ed227bf55daf5e0679e0ab248d4fd6983b7ffd766ca0e3525  kanata_wintercept_cmd_allowed.exe
kanata - v1.2.0

Published by jtroo over 1 year ago

Known bugs

  • deflocalkeys-wintercept does not work - it is currently incorrectly defined as deflocalkeys-winercept - missing a t
    • Fixed in latest main code, v1.2.1-prerelease-1
  • Windows+Interception driver will randomly (timing based) press Esc without releasing it, when typing
    • Fixed in latest main code, v1.2.1-prerelease-1
  • Layer changing in dynamic macro has some issues (#300)
    • Probably fixed in v1.2.1-prerelease-1

Changelog (since v1.1.0)

  • Fix a bug in fake keys with incorrect layer assignment in the layout
  • Fix sequence timeout
  • Fix some keycodes, add new ones
  • Fix support for multiline comment syntax in cfg file
  • Fix memory leak in live reload
  • Improve device discovery behaviour in Linux
  • Add support for defsrc mouse buttons in Windows
  • Add deflocalkeys to help with non-US layouts
  • Add tap-dance-eager
  • Add mouse movement actions
  • Add sending an initial LayerChange message to newly connected TCP clients
  • Add dynamic macro
  • Add different sequence input modes
  • Add sending arbitrary keycodes
  • Add configuration cycling with lrld-next and lrld-prev
  • Add mappings for higher numbered OS codes

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

95c2e1e3d3a6de80172940e9026942a9e0ec4c842d02f6d15e91da9f80d31976  kanata
ab0627deb333970eed187d4531dc509163eb307dfc200edc39326768c1bc7b84  kanata.exe
c63c995ad8d6231245fb1102f614b96ee2ae96421af72309ae8bc98b96d51f89  kanata.kbd
c201f304fb02c8f4a59849c0a87ebbe75fc071bb3cc1091ead4423da285f0365  kanata_cmd_allowed
75c977570d80d1d0c9349fb7a741d4fdd161f894350c3973f705b5455a9c534c  kanata_cmd_allowed.exe
cdbf928ba4608c6093822fa20d6f91504dc4ded2c09932251944a6a299b7b78f  kanata_wintercept.exe
7a71244511bf02c80532284f6df17149d6e2da39f3e702c55a1582cf27dfacca  kanata_wintercept_cmd_allowed.exe
kanata - v1.2.0-prerelease-1

Published by jtroo over 1 year ago

Changelog

  • Fix a bug in fake keys with incorrect layer assignment in the layout
  • Fix sequence timeout
  • Fix some keycodes, add new ones
  • Fix support for multiline comment syntax in cfg file
  • Fix memory leak in live reload
  • Improve device discovery behaviour in Linux
  • Add support for defsrc mouse buttons in Windows
  • Add deflocalkeys to help with non-US layouts
  • Add tap-dance-eager
  • Add mouse movement actions
  • Add sending an initial LayerChange message to newly connected TCP clients
  • Add dynamic macro
  • Add different sequence input modes
  • Add sending arbitrary keycodes

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

7d7ec47503d19741fd021573ac343559ce950a8067e8fc316499512c52442874  kanata
1d6fcdf189228fea15dd3a400165c8570dddcf2286a263a5751b6bd361c79bbd  kanata.exe
684835d4fe5532451572246a8522106b95f825ae97e3b290a284c084598f8863  kanata.kbd
c0d8d5dab606af8a1dff7fc4303a48587b2a5163bbb2fec7c3fe27fdfd1420df  kanata_cmd_allowed
a2783f993ad7cf242a4f7190853d8ee345cecd1bf050b89891a301490f84eee7  kanata_cmd_allowed.exe
2893d894deeb61bdae99a071a3f5d9cbc2b48997c572373172aa056844da7fdb  kanata_wintercept.exe
7436fd23759a76f080df560aade39e0d108ad84d82add9cc9e683fc28b40979f  kanata_wintercept_cmd_allowed.exe
kanata - v1.1.1-prerelease-1

Published by jtroo almost 2 years ago

Changelog

  • Fix a bug in fake keys with incorrect layer assignment in the layout
  • Add/fix some keycodes
  • Explicitly add support for multiline comment syntax in cfg file
  • Windows: Implement preliminary (still buggy) defsrc mouse buttons
  • Linux: improve device discovery behaviour
  • Add defcustomkeys to help with non-US layouts

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

f2717e53f808e8189550dc8055017e1ea99cd8f05b136bf364a6897c7831667f  kanata
f8ea3ded15ae70c4ee40a390ef8642b789cba11c1512a44dc7bf2ea43deddc6d  kanata.exe
a46566881c2c818761b8c3fe97c62ccc9da972a253060eb253f33ec2b761c4a7  kanata.kbd
d83fc0f1b0ee0ee0a5419dbeebdfee8850c209dddb7c92ada0ab57c48f4545a0  kanata_cmd_allowed
cdd9b63ee6aedc9360b0f23e106c307c84f5c36a5d4726ee7817d03e1bff4185  kanata_cmd_allowed.exe
3fe67cba7e6faa258017a9d8a5cd5590b5ad69ca9f1ba224d02e7245e02805c5  kanata_wintercept.exe
634fb8e53caf77865a7f22782eccd5291fd08da32f6dfa89852a1d8d6fda0cc2  kanata_wintercept_cmd_allowed.exe
kanata - Windows key code tester v0.2.0

Published by jtroo almost 2 years ago

Binaries to help test Windows keycodes without having to have a kanata config. Simply run the program and see the logs.

Notes for interception variant:

Running the binary has the same requirements as kanata. See the wintercept variants of the kanata release.

kanata - v1.1.0

Published by jtroo almost 2 years ago

Changelog

  • fix incorrect mapping of kp0
  • fix key repeat behaviour with some key actions
  • add cancellable macro
  • allow some actions in macro
  • improve leniency with linux device definitions

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

6acc7f749f57164cc606e94ad02c147252b2f3cbf6195a8e9fbf46ec6979ca23  kanata
8ec9839977fd69806b7507fbfb2a251c106b0e7896f0dd492f5fbe61407e51b4  kanata.exe
395a7a8b4136c8e2e46b4d474896d57cf79f2fd19e4ed554da39ecf7673bc376  kanata.kbd
a11f417b974a139053d7caf57d9ad769d7bb464ec16cf0d743308d54b1fed980  kanata_cmd_allowed
6d79e23b1c2221ad2d9370a9e7894b2913d5664e34461b773dc4f8cc391d70fb  kanata_cmd_allowed.exe
adacdcd2801146c8728f32d9668163ab00397976a2a78391f576430959d691f8  kanata_wintercept.exe
999dce55259272e029dd5ababb871e15ef7e40062db04bfe0eaad939aabfaaa1  kanata_wintercept_cmd_allowed.exe
kanata - Windows key code tester v0.1.0

Published by jtroo almost 2 years ago

Binaries to help test Windows keycodes without having to have a kanata config. Simply run the program and see the logs.

Notes for interception variant:

Running the binary has the same requirements as kanata. See the wintercept variants of the kanata release.

kanata - v1.0.8

Published by jtroo almost 2 years ago

Known issues

  • Incorrect numpad 0 key mapping kp0. Workaround: build from the main branch in which this is fixed, or use v1.0.7

Changelog

  • Fixes to some Interception keys
  • Improve CPU usage when nothing is being typed
  • Allow colons in device path by escaping with backslash
  • Add AltGr chord shortcut (AG- or RA-)
  • Autodetect keyboard devices if linux-dev is omitted
  • Add more mappable keys
  • Add guaranteed termination of kanata using the key combo LCtrl+Space+Escape
  • Enable defsrc and remapping of mouse buttons in Linux
  • Allow automatic handling of unmapped keys
  • Fix an issue on Windows related to keys mapped to shift
  • Fix behaviour of nested multi actions
  • Fix one-shot behaviour when followed by certain other special actions
  • Add more remappable mouse buttons

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting it down, or if you frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

sha256 checksums

99e44ef70594f3d916402ea606f6a5d0368301bd84aa10991180b7716e233b81  kanata.kbd

27c25bc33d710faec48c59efcac57071cd14ec131dfeab0b16b74684cb3486ab  kanata
876a08b9d83537af043769c73165b3d1582f6d53f1eb95cddc00be8f30cebfde  kanata.exe
2082f3e64e2ab991e494de2f45f7b5efabade3efb76400981c87c5f88e01bb77  kanata_cmd_allowed
583691bb4f3544bab2a6d81722a2355eb21b040efc32ac38da571be960cf857b  kanata_cmd_allowed.exe
8d6be55d095bf491e0bc97cfb57cf888b3bcbd797914a0f496cac1ac2f0c2bb1  kanata_wintercept.exe
8ddc3db8f1e63d94a6c57762c0cfa0cd2b37656c8e17cf661d38639887af3a3d  kanata_wintercept_cmd_allowed.exe
kanata - v1.0.7

Published by jtroo about 2 years ago

Changelog

  • Add support for the interception driver
  • Add vertical and horizontal mouse scrolling actions
  • Add fake keys feature with press-only, release-only actions
  • Add leader->sequence actions that activate a fake key tap
  • Fix mouse button regression in Linux in v1.0.6

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries with the name cmd_allowed are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

wintercept variants

Warning: experimental feature

The interception driver support is newly added in this release. Some handling of specific key inputs/outputs may be incorrect because the driver uses a different scancode mechanism vs. existing code. Please file bugs if you find issues.

Warning: known issue

This issue in the Interception driver exists: https://github.com/oblitum/Interception/issues/25. This will affect you if you put your PC to sleep instead of shutting down or frequently plug/unplug USB devices.

Description

These variants use the Interception driver instead of Windows hooks. You will need to install the driver using the assets from the linked website or from the copy in this repo. The benefit of using this driver is that it is a lower-level mechanism than Windows hooks. This means kanata will work in more applications, including administrator-privileged apps.

Steps to install the driver

  • extract the .zip
  • run a shell with administrator privilege
  • run the script "command line installer/install-interception.exe"
  • reboot

Additional installation steps

The above steps are those recommended by the interception driver author. However, I have found that those steps work inconsistently and sometimes the dll stops being able to be loaded. I think it has something to do with being installed in the privileged location of system32\drivers.

To help with the dll issue, you can copy the following file in the zip archive to the directory that kanata starts from: Interception\library\x64\interception.dll.

E.g. if you start kanata from your Documents folder, put the file there:

C:\Users\my_user\Documents\
    kanata_wintercept.exe
    kanata.kbd
    interception.dll

Known issues

  • Not all keys are mapped (e.g. L/R Windows keys, numpad Enter)
    • This is fixed in the latest main branch - you can build it yourself with:
    • cargo build --release --features interception_driver

sha256 checksums

4310ec51672d51ed335340861e181aed7e8717f87ea11f07db2c217ab02cd15c  kanata.kbd
40797919c508b5c361038d53009982c508a48339822e8acd874c8daf9696630a  kanata
f82a77495e38a5c04f43eb4c5353cf74c02e2db81c5f0ba9728e8543d9a15325  kanata.exe
1525391232738d3cc139cc68fa24b5624ab11c7d17fe3d48701d3ef8881103ba  kanata_cmd_allowed
aa74311a15edb9a6c9d8f355170f6454c9d7aaff402fc00ebb667b9ae7dd9151  kanata_cmd_allowed.exe
79553252062d0438d00e557d940928f58c1e95c8fdb997bf935b58fcbda280ff  kanata_wintercept.exe
757e57367c68d820afdda4ca5ed812c47b5aed2861debb514a19976436db1a83  kanata_wintercept_cmd_allowed.exe
kanata - v1.0.6

Published by jtroo about 2 years ago

Changelog

  • Add TCP server for changing layers and publishing layer changes
  • Add release-key and release-layer
  • Add ro key (ABNT2 slash key)
  • Add tap-hold-press and tap-hold-release actions
  • Add Windows AltGr behaviour mitigations
  • Enable Linux to listen for multiple devices

Known issues

  • Mouse button actions do not work in Linux (works in v1.0.5)

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries kanata_cmd_allowed and kanata_cmd_allowed.exe are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

sha256 checksums

b18f3c03a3835fc7c777c1458bbe5b88fc7941f74e586f5e5b733fdb6b35ae5a  kanata.kbd
6be621d05dfb23dcd0cb942fcc4653ac599a4692eaf6c1702078ea276c89194b  kanata
02a8ca50b988f08236582fd83a4c798457373a17892e4c1b53ff2b7be20ffbfe  kanata.exe
712720863633fc9989040d8643e2b0b84f0789968e9d9f65594e437ce0189b62  kanata_cmd_allowed
d82a6ecd3482d191307c4553fa456c574f8aa1a030261c258716eac1a9047d9f  kanata_cmd_allowed.exe
kanata - v1.0.5

Published by jtroo over 2 years ago

Changelog

  • Add tap-dance
  • Add one-shot
  • Add parsing support for M- for use as a chord with lmeta (aka GUI, Windows, Cmd)
  • Disable nested tap-hold
  • Fix behaviour of some multi actions

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries kanata_cmd_allowed and kanata_cmd_allowed.exe are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

sha256 checksums

485129267862373bb6164c56bf3d6f6e7a4248342c2b425a8b175625830d9ba3  kanata.kbd
10749aa49b7c41d8fed5832a44ac3fa3b504f44a158918f3620f307dde33dee7  kanata
760384a577e55dc8e507b76c41c849f7f30c636da69dbabae598f66993f89309  kanata.exe
c8e79a25c8e6fa5334535958138989177b6a709399c3ea880a095ce320a96e0d  kanata_cmd_allowed
469631650eb47da5434d0971dba56aeb2b8a16ddac47ce54caad3e0a79d3e56b  kanata_cmd_allowed.exe
kanata - v1.0.4

Published by jtroo over 2 years ago

Changelog

  • Add optional "cmd" functionality to execute binaries from kanata
  • Fix regression of mouse buttons in linux
  • Add sleep on init as mitigation for key spam issue
  • Add M- as shortcut for lmeta

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

cmd_allowed variants

The binaries kanata_cmd_allowed and kanata_cmd_allowed.exe are conditionally compiled with the cmd action enabled.

Using the regular binaries, there is no way to get the cmd action to work. This action is restricted behind conditional compilation because I consider the action to be a security risk that should be explicitly opted into and completely forbidden by default.

sha256 checksums

abe365a8bd75fba0eb686f2c915dee620932f90bcc100f49c388c0d1558dd85d  kanata.kbd
e57ff76219430f4eae31b4c3296401af9d048a5d529050496c77eaaf47b8aaf9  kanata
4bb7025b157a6e5c05afeaa29ebf48b38ef1e618e0025293e05d70b3fc190ecc  kanata.exe
93b43d720d70378774794a7faffc4fe9bd0554967f6d412cfb21477dd27d2478  kanata_cmd_allowed
f2101ed0498f00be3d7c6f3550d95dc4de1c63e78eaf1e86c97279fb3811f9c5  kanata_cmd_allowed.exe
kanata - v1.0.3

Published by jtroo over 2 years ago

Changelog

  • Fix handling of key 102 (non-US pipe+backslash)
  • Change behaviour of transparent keys on default layer to delegate to defsrc

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

sha256 checksums

e6301f1ecc8abc6b6c0a36035eb5c69b52f5feca5fede6e392e6bf67cca4e7e5  kanata.exe
7ef97acd0157805b9ca42c04a8c7398955ede004d76760e6bf5d28d9a59d5709  kanata
kanata - v1.0.2

Published by jtroo over 2 years ago

Changelog

  • Add Hangeul/Hanja key aliases
  • Add missing kmonad aliases
  • Limit maximum keycode number to 256 (exclusive) in Linux to fix a Wayland issue
  • Print layer configuration when the active layer changes

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

sha256 checksums

e5b7176799ad69f7cfbfef54bc26205b807c5088c7ee72f93c5c8b7967bea43b  kanata.exe
05d57040ce5672c401d77d935b8a52b6288792ad2c03f1989814fa6d26937dd8  kanata
kanata - v1.0.1

Published by jtroo over 2 years ago

Changelog

  • Add support for f13-f24 keys in the configuration file.

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

sha256 checksums

f8ec0f40a7f3080c5975440132208a98b6fc583304eab210ab3b02b5dc727885  kanata.exe
1831f3922d70f71bf19f440911c4b3d84ab815de250267431c794af6285ca30b  kanata
kanata - v1.0.0

Published by jtroo over 2 years ago

Changelog

  • Fix bad lock contention bug

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

sha256 checksums

abc0150b45c1de9a62e44fdb49d5ae3df2ea7c2f73967d0a6004fbe9bd5423e0  kanata.exe
696b45d0fabd9d998f6d4e3b9620836ebce571658c3e7dbe209077c828bb8e8f  kanata
kanata - v0.1.4

Published by jtroo over 2 years ago

WARNING:

  • Do not use, this has a bad lock contention bug in Windows

Changelog

  • Add mouse left, right, middle buttons
  • Add live reload action

Sample configuration file

The attached kanata.kbd file is tested to work with the current version. The one in the main branch of the repository may have extra features that are not supported in this release.

Windows

Download kanata.exe. Optionally, download kanata.kbd. With the two files in the same directory, you can double-click the exe to start kanata.

You need to run kanata.exe via cmd or powershell to use a different configuration file:

kanata.exe --cfg <cfg_file>

You can also set up a toolbar shortcut.

Linux

Download kanata.

Run it in a terminal and point it to a valid configuration file:

chmod +x kanata   # may be downloaded without executable permissions
sudo ./kanata --cfg <cfg_file>`

To avoid requiring sudo, follow the instructions here.

sha256 checksums

9371e974907914c7d1e25c0f488c3a293f6991ea7ad89a5ada93e7c9fad3682b  kanata.exe
bef87945af0bb525ff3bca9bfb19b0fed91d121e61e56461b1335d513f90b62b  kanata