Keybinder to type diacrytical characters without needing to hack the layout itself. Supports bindings to the left Alt + letter

Overview

Ďíáǩříťíǩád

I just thought that it's a shame the word diakritika does not have any diacritics in it.

Key points

  • diakritika is a simple Windows daemon that allows you to type your favourite european language's modifiers (diacritics) in a way that does not twist your arm and does not take away your @s and #s and $s. You can now say goodbye to your horrible Czech keyboard!
  • Program is controlled with a simple configuration file with hot-reload*.
  • Sample config uses Czech letters for US layout and Ukrainian letters for the russian layout.
  • The program automatically creates capitalized version of binding by adding Shift key to them.
  • It also allows to bind letters on both of your Alts and use bindings like LAlt+s to paste š

Configuration

is simple:

  • open bindings.ini
  • start a new line
  • put the letter you want to type into an []. For example, [ř]
  • On the next line key add key combinations that should trigger this letter, one binding per line (see an example below).
    • Program automatically detects characters from config:
    • Everything with a length of 1 character is a string symbol
    • Everything that starts with 0x will be treated as a scancode
    • Otherwise assuming that this is a virtual key name without "VK_" and trying to construct a virtual key (ref: src/win/keyboard_vk.rs:87)

⚠ You are also not restricted to simple bindings like alt+s, you can do something like ctrl+n+m+F2 to paste a shit emoji and it should be fine.

Here is a sample bindings.ini file with Czech and Ukrainian letters:

; US->Cz
[á]
alt+a
[č]
alt+c
[ď]
alt+d
[é]
lalt+e
[ě]
ralt+e
[í]
alt+i
[ň]
alt+n
[ó]
alt+o
[ř]
alt+r
[š]
alt+s
[ť]
alt+t
[ú]
lalt+u
[ů]
ralt+u
[ý]
alt+y
[ž]
alt+z

; Ru->UA
[і]
ALT+ы
ALT+s
[ї]
win+ы
alt+ъ
alt+]
[є]
ALT+э
ALT+'

*hot reload is not implemented yet

TODO:

  • Add logging with log instead of prints
  • Clean up mixed Debug and Display traits for structures
  • Remove unneeded winapi features
  • Resolve conflicts and don't add conflicting bindings
  • Hot reload of last good configuration. Inotify / etc?
  • Auto-add program to system startup with admin rights (without admin access the software can't control administrator's applications which is a shame)
  • GitHub CI because manually generating builds is pain
  • Add support of different things instead of typing letters? for example, running scripts
  • I still don't quite like how program handles repeating characters with alt key pressed. and especially with altGr. It works and works great, but not perfect
  • Flexible hotkey rules. For example, make hotkey strictly ordered, or withold keyboard events from being sent until the hotkey is complete
  • Disable application console window and make a tray icon
  • More examples for different european languages (if you'd like to contribute a hotkey list for your language feel free to open an issue)
You might also like...
Catch Tailwindcss Errors  at Compile-Time Before They Catch You, without making any change to your code!  Supports overriding, extending, custom classes, custom modifiers, Plugins and many more 🚀🔥🦀
Catch Tailwindcss Errors at Compile-Time Before They Catch You, without making any change to your code! Supports overriding, extending, custom classes, custom modifiers, Plugins and many more 🚀🔥🦀

twust Twust is a powerful static checker in rust for TailwindCSS class names at compile-time. Table of Contents Overview Installation Usage Statement

A crate that allows you to mostly-safely cast one type into another type.

A crate that allows you to mostly-safely cast one type into another type. This is mostly useful for generic functions, e.g. pub fn fooS(s: S) {

That program use on platform windows. And if you write any text on uncorrect keyboard layout, that program for that.
That program use on platform windows. And if you write any text on uncorrect keyboard layout, that program for that.

📌 This program is designed to translate text into the correct layout when typing is incorrect. 📌 Example ghbdtn - привет Just (by default) pressing

A tiling layout engine for egui with drag-and-drop and resizing
A tiling layout engine for egui with drag-and-drop and resizing

egui_tiles Layouting and docking for egui. Supports: Horizontal and vertical layouts Grid layouts Tabs Drag-and-drop docking Trying it cargo r --examp

Leptos integration with Golden Layout.

Leptos Golden Layout Leptos integration with Golden Layout. This has many features missing but covers the basics for integrating leptos with golden la

Like HashSet but retaining INSERTION order and without `Hash` requirement on the Element type.

identified_vec A collection of unique identifiable elements which retains insertion order, inspired by Pointfree's Swift Identified Collections. Simil

Small CLI for escaping and unescaping characters in strings

🐌 esc Small CLI for escaping characters in strings. Install cargo install esc Usage cat LICENSE-MIT | esc escape | pbcopy pbpaste | esc unescape | pb

Tiny Rust library to draw pretty line graphs using ascii characters.

rasciigraph Tiny Rust library to draw pretty line graphs using ascii characters. Usage Add this to your Cargo.toml [dependencies] rasciigraph = "0.1.1

`boxy` - declarative box-drawing characters

boxy - declarative box-drawing characters Box-drawing characters are used extensively in text user interfaces software for drawing lines, boxes, and o

Owner
null
Deadliner helps you keep track of the time left for your deadline by dynamically updating the wallpaper of your desktop with the time left.

Deadliner Watch the YouTube video What's Deadliner? Deadliner is a cross-platform desktop application for setting deadline for a project and keeping t

Deadliner 34 Dec 16, 2022
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Warp 369 Jan 2, 2023
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Warp 227 Jun 1, 2022
Switch windows of same app with alt + ` on windows pc.

Windows Switcher Switch windows of same app with alt + ` on windows pc. 250k single file executable downloaded from Github Release. No installation re

null 172 Dec 10, 2022
An i3/Sway utility to switch focus to your last focused window. Alt+Tab in i3

i3-back An i3/Sway utility to switch focus to your last focused window. Allows for behavior similar to Alt+Tab on other desktop environments. Features

Charles C 17 Mar 13, 2023
Split text into semantic chunks, up to a desired chunk size. Supports calculating length by characters and tokens

Large language models (LLMs) can be used for many tasks, but often have a limited context size that can be smaller than documents you might want to use. To use documents of larger length, you often have to split your text into chunks to fit within this context size.

Ben Brandt 4 May 8, 2023
Get your loadshedding schedule in your calendar and never be left in the dark! Open-source, up-to-date, and developer friendly.

Loadshedding schedules in your digital calendar. No apps, no ads, up-to-date, and developer friendly. Get it • Key Features • Using the data • Project

Boyd Kane 117 Apr 26, 2023
Following "ZK HACK III - Building On-chain Apps Off-chain Using RISC Zero"

RISC Zero Rust Starter Template Welcome to the RISC Zero Rust Starter Template! This template is intended to give you a starting point for building a

drCathieSo.eth 3 Dec 22, 2022
Burrow is a tool for burrowing through firewalls, built by teenagers at Hack Club.

Burrow Burrow is a tool for burrowing through firewalls, built by teenagers at Hack Club. At its core, burrow is a command line utility written in Rus

Hack Club 44 Apr 20, 2023
a hack implementation of CCS generic arithmetization, won a prize at Zuzalu hackathon 2023 despite incompleteness

ccs-hack CCS (Customized Constraint System) is a generic constraints representation system can simultaneously capture R1CS, Plonkish, and AIR: $$\sum_

Thor 27 Jun 1, 2023