YAKC is an open-source Platform-independent Electron-based keystroke visualizer.
- Highly customizable style options
- Flexible Positioning
- Show Modifiers only
- Toggle Keyboard/Mouse Click Visualization
- Force popup next line on screen percentage
- Smooth Transition (Fade In & Fade Out)
- Timing Control
- Spacebar as Unicode? ("␣")
- Text-To-Speech (perfect for blind people)
YAKC.mp4
- Clone the repository to your local machine:
git clone https://github.com/iammodev/YAKC.git
-
cd YAKC
-
npm install
- Start the application:
npm start
- The application will launch and display a system tray icon.
- Upon pressing on any key, a popup will appear.
-
npm install --save-dev electron-packager
-
npm run package:windows
(Options: package:windows, package:mac, package:linux, package:all) -
run executable
The configuration file config.json
allows you to customize the behavior of YAKC. Here are the available options:
-
keyboardLayout
: Select Keyboard Layout. (options: english, german). -
showOnMonitor
: Specifies the monitor on which the pop-up text should be displayed. The value should be the index of the monitor (starting from 0). -
popupTextMaxWidthInPercentage
: Specifies the maximum width of the pop-up text as a percentage of the screen width. -
popupOpacity
: Opacity of the popup text. Range: ("0.0" - "1"). -
popupFadeInSeconds
: Duration of Fade effect for the popup text. -
popupRemoveAfterSeconds
: Remove inactive popup after X seconds. -
popupInactiveAfterSeconds
: After X seconds, a new popup will be created upon key/mouse press. -
popupFontSize
: Font size of popup text. -
popupFontColor
: Font color of popup text. -
popupFontFamily
: Font Family for the text. -
popupFontWeight
: Font weight of popup text. -
popupBorderRadius
: Corner border radius. Use "0" for sharp corners. -
popupBackgroundColor
: Background color of popup text. -
showMouseClick
: Show mouse clicks. Options: true, false. -
showMouseCoordinates
: Show mouse coordinates. Options: true, false. -
showKeyboardClick
: Show Keyboard clicks. Options: true, false. -
onlyKeysWithModifiers
: Show only keys with modifiers. Options: (true, false). -
showSpaceAsUnicode
: Show space as Unicode character (␣). Options: (true, false). -
textToSymbols
: Change some Keystrokes to Unicode Characters (example: Tab to ↹). Options: (true, false). -
textToSpeech
: Speak out loud every Keystroke. (perfect for blind people!). Options: (true, false). -
textToSpeechCancelSpeechOnNewKey
: Cancels current SpeechToText if new Keystroke pressed. Options: (true, false). -
position
: Position of popup on screen. Options: "top-left", "top-right", "bottom-left", and "bottom-right". -
topOffset
: Top offset of the popup text in pixels. -
bottomOffset
: Bottom offset of the pop-up text in pixels. -
leftOffset
: Left offset of the pop-up text in pixels. -
rightOffset
: Right offset of the pop-up text in pixels.
- Reliable solution for all/common keyboard layouts
- position (top-left, top-right, bottom-left, bottom-right)
- topOffset, bottomOffset, leftOffset, rightOffset
- GUI to easily configure at runtime
- Drag and Drop the popup to desired position
- Add hotkey for start/stop listening to keystrokes
- Add unit tests
- iohook for capturing keyboard & mouse input.
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
We require an extensive collection of Keyboard Layouts to accommodate a wide range of languages and input methods.
YAKC is free and open source. YAKC operates independently without any network interactions. Your private information, including passwords, is never stored or shared by YAKC, guaranteeing your safety and privacy.
Please Exercise Caution: When using YAKC for activities like presentation, recording or streaming, be mindful not to inadvertently share sensitive information. Always ensure your privacy and the security of any confidential data.
This project is licensed under the MIT
License. See the LICENSE file for details.