This repository contains:
- A collection of my personal AutoHotkey (AHK v1.1) scripts, in /scripts.
- HaKey, a C++ application that is implementing most of my AHK Script's functionality, in /HaKey.
A representation of changes in a 60% keyboard (alternative layers are not displayed).
List of scripts:
-
main.ahk: The main script that includes all other scripts. I'm usingTask Schedulerto run this script at user log on. -
homeRowNavigation.ahk: Implements custom home row modifiers usingCapsLockas the main trigger. For example:CapsLockkey combined withi,j,k, andlare remapped to arrows↑,←,↓, and→respectively. -
stringReplace.ahk: Contains hotstrings for quickly inserting the current date and time in different formats. -
60pKeyRemap.ahk: Remaps various keys, designed for 60% keyboards. It remaps common keys used for debugging, text editing, and navigation. -
Find mike.ahk: Displays a list of device input settings. -
muteMike.ahk: Used to mute the microphone. More information in the script file. -
navigationLayer.ahk: No longer in use, but was used to make custom layers for navigation.
Please note that these scripts are designed for personal use and may need to be adjusted based on your specific needs and keyboard layout.
The HaKey application was created as an alternative to AHK. Currently supporting Linux and Windows 1.
- Written in C++ for performance and compatibility reasons 🏃♂️
- Created with modules for fast development and sanity 😇
- Used CMake and Clang, to be able to build from any platform. 👽
- Haven't followed C++ naming convention, it's more like C#. 🦄
- Non user-configurable; layers are hard-coded for my needs:
- CMake:
sudo apt install cmake - CLang tools:
sudo apt install clang-tools - Build:
- Windows (VS):
cmake --preset=x64-release&cmake --build --preset=x64-release - Windows (Clang):
cmake --preset=x64-release-clang&cmake --build --preset=x64-release-clang - Linux (Clang):
cmake --preset=linux-release&cmake --build --preset=linux-release
- Windows (VS):
- Troubleshooting (Linux):
- FAIL TO READ IO (input / uinput):
- You need permissions:
- to read the input
sudo chmod +r /dev/input/event0, change 0 with your input index from:cat /proc/bus/input/devices- if you're not sure which one is the keyboard you can use
sudo apt install input-utilsand probe each device withsudo input-events 1
- if you're not sure which one is the keyboard you can use
- and write in uinput:
sudo chmod a+rw /dev/uinput
- to read the input
- You need permissions:
- Missing
/dev/uinput(Kubuntu 25.04)- If
modinfo uinputprints nothing, your kernel is missing the uinput module. - You can try
sudo apt update && sudo apt upgradeand reboot, but this only works if a new kernel including uinput is available. - The solution is to install the missing modules:
sudo apt install linux-modules-extra-$(uname -r)then reboot. - On non-Ubuntu-based distributions, you’ll need to use or install a kernel containing the uinput module.
- If
- FAIL TO READ IO (input / uinput):
Footnotes
-
Support for MacOS can be added (probably), but it's not planned. ↩
