⚡ Instantly convert selected Tamil Unicode text to Bamini font from anywhere on your system using a simple keyboard shortcut!
- 🖥️ Background Tray App – quietly runs in the system tray.
- 🔠 Text Conversion – converts Tamil Unicode to Bamini using precise character mappings.
- ⌨️ Keyboard Shortcut – convert selected text with Ctrl + Alt + B.
- 🪄 In-place Replacement – replaces the selected text directly (not from clipboard).
- 🧠 Smart Mapping – based on custom Unicode ➔ Bamini character set logic.
- 🛠️ Windows Executable – built with
electron-packager. - 🌐 Cross-platform Ready – designed to migrate to
nut.jsin future versions for Linux/macOS.
tamil-bamini-converter/
│
├── index.js # Background Electron logic (tray, shortcut, selection)
├── converter.js # Tamil Unicode to Bamini conversion logic
├── assets/
│ ├── icon.ico # App tray & executable icon
│ └── screenshot.png # Optional screenshot for documentation
├── package.json # Project metadata and build configuration
└── README.md # You're here!
⛑️ These are required for
robotjsto compile correctly
- ✅ Node.js v18.x (recommended)
- ✅ Python v3.x (for node-gyp)
- ✅ Visual Studio Build Tools Install Build Tools for Visual Studio with the “Desktop Development with C++” workload.
git clone https://github.com/Pakeetharan/unicode-bamini-converter.git
cd unicode-bamini-converter
# Install dependencies
npm installnpm startThis launches the app to the tray and listens for keyboard input. Try selecting some Tamil Unicode text and press:
Ctrl + Alt + B
A system notification will confirm the conversion. The selected text will be replaced in-place with its Bamini equivalent.
Build using electron-packager:
npm run packageThis will generate an executable in the dist/ folder:
dist/
└── TamilBaminiConverter-win32-x64/
└── TamilBaminiConverter.exe
To run the executable:
cd dist/TamilBaminiConverter-win32-x64
./TamilBaminiConverter.exeThe converter is based on a custom replacement engine written in JavaScript (converter.js). The function maps combinations like:
text = text.replace(/கி/g, "fp"); // Tamil 'கி' => Bamini 'fp'
text = text.replace(/த/g, "j"); // Tamil 'த' => Bamini 'j'It covers all major Tamil character combinations used in typing.
- This version only works on Windows.
- Only text selections (not clipboard contents) are converted.
robotjsmay not support Unicode properly on non-English layouts.
| Purpose | Tool |
|---|---|
| Desktop Runtime | Electron.js |
| Native Key Handling | robotjs |
| Bundler | electron-packager |
| Icon/Tray | .ico assets |
MIT License © 2025 Pakeetharan Balasubramaniam
Feel free to fork, contribute, or suggest improvements:
- ✅ macOS/Linux support via
nut.js - 🌐 Auto-launch on boot
- 🖕 Bamini to Unicode (reverse) converter
⭐ Unicode to Bamini, made effortless. ⭐