Punto Switcher Linux File
He pressed Ctrl+Shift. Nothing. He pressed Alt+Shift. Nothing. He installed GNOME Tweaks, hunted through keyboard layouts, set Russian to "Phonetic." Still, the machine refused to read his mind. For the first time in a decade, Alexei had to manually switch layouts. It felt like walking without a cane after a stroke.
Alexei tried it. It crashed when he opened Firefox.
Alexei opened the script. Line 423: a regex that checked if the active window title contained words like "password," "login," "sudo," "passwd," "ssh," "gpg." If yes, the buffer froze. No corrections. No logging.
Alexei tried to debug, but the errors were cryptic: XRecordBadContext , BadMatch , Xlib.error.BadAccess . He spent a weekend recompiling X11 libraries. He downgraded packages. He broke his display manager twice. punto switcher linux
Alexei pushed puntod to GitHub under the MIT license. He wrote a README, a Makefile, and a small script to install it on Ubuntu, Fedora, and Arch. He added a section: "Why this exists."
The bad news: "Punto Switcher for Linux doesn't exist because no one wants to write a keyboard sniffer that works across all desktop environments. GNOME, KDE, XFCE, LXQt—they all handle input differently. It's like asking for a universal TV remote that works on a toaster."
He tried xxkb . It worked, but required manual toggling. No magic. He pressed Ctrl+Shift
Misha paused. Then: "But there's a ghost."
"How?" Misha asked.
He sat in the dark, the glow of his monitor painting his face blue. The ghost was gone. Nothing
He tried keyboard-autoswitch , a Ruby gem that listened to X11 events. It worked for exactly three keystrokes before confusing "cat" with "собака" and locking his keyboard into a Cyrillic loop.
He started dreaming in mixed layouts. In his dreams, he typed "Hello" and it became "Hелло," a grotesque hybrid that made him wake up sweating.
He didn't sleep. At 3:47 AM, he opened a new file: punto_rewrite.rs .
He opened it, heart racing.
He cursed. He debugged. He discovered the script was listening to the wrong X11 display. He fixed it. He ran it again.