I spent an afternoon today tinkering with the blog, giving the homepage a fresh look. There weren’t many changes — just three things: removing that huge welcome banner, adding a sidebar, and fixing the categories. But each one was more trouble than I expected. Writing it down for the record — maybe it’ll be useful... » read more
精美壁纸
https://tux.fan/wp-content/uploads/2026/07/8797304179290591388.mp4[/video]
Best Input Method Collection for Linux
Talking about input methods on Linux, what probably comes to mind is fcitx, Sogou Pinyin Input Method, Rime, and the like. Actually, there are quite a few good Linux input methods available nowadays. I’ve collected them for everyone. The list is in no particular order: Baidu Input Method Download link: https://srf.baidu.com/site/guanwang_linux/ Sogou Input Method Download... » read more
Markdown Manager Plugin Test — Agent Auto-Publish
Markdown Manager Plugin Test This is a post published by the new Markdown Manager plugin. Feature Test Checklist Markdown editor Task list support Strikethrough syntax Bold and Italic Inline code Table Test Feature Status Notes Task list ✅ – [x] Syntax renders correctly Table ✅ GFM table Code block ✅ Fenced code blocks Code Block... » read more
TUX IM Dev Log Part 8 · Releasing 0.1.0: mypy strict, CI, deb packaging (Engineering)
From code completion to apt install ./tux-im.deb: mypy strict, CI evolution, deb packaging. This is part 8/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 8 · Releasing 0.1.0: mypy strict, CI, deb packaging Code completion doesn’t mean you can ship. Between the last line of code and apt install ./tux-im_0.1.0-12_all.deb,... » read more
TUX IM Dev Log Part 7 · From Emoji to Google Pinyin: The Triumph of the InputMode Protocol (Extensibility)
The InputMode protocol allowed emoji mode and Google Pinyin ctypes binding to be integrated with nearly zero cost. This is part 7/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 7 · From Emoji to Google Pinyin: The Triumph of the InputMode Protocol The previous post covered ASR, which was a... » read more
TUX IM Dev Log Part 5 · Wubi and Mixed Input: Wubi + Wbpy — Two Philosophies (Technical Deep Dive Part 2)
Wubi’s “dead key passthrough” and wbpy’s dual-buffer synchronization design philosophy. This is part 5/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 5 · Wubi and Mixed Input: Wubi + Wbpy — Two Philosophies Pinyin is a “stream” — a string of letters corresponds to a list of candidates. Wubi is... » read more
TUX IM Dev Log Part 4 · Pinyin Mode: trie, Word Frequency, User Dictionary (Technical Deep Dive Part 1)
Pinyin query: 110 lines of trie code, word frequency boosting, atomic user dictionary persistence. This is part 4/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 4 · Pinyin Mode: trie, Word Frequency, User Dictionary This post starts the technical deep dive. Pinyin query is the hottest code path in the... » read more
TUX IM Dev Log Part 6 · Making Chinese Input “Talk” — ASR Speech Input Subsystem (New Feature)
AudioCapture / ASRClient / OverlayWindow — how three modules work together. This is part 6/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 6 · Making Chinese Input “Talk” — ASR Speech Input Subsystem Pinyin, Wubi, and mixed input are all keyboard input. Voice input is a different paradigm: the user... » read more
TUX IM Dev Log Part 3 · The Core Architecture Carved Out by 6 Bug Fixes (Architecture Natural Formation)
The InputMode protocol wasn’t designed — it was carved out by bugs, one by one. This is part 3/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 3 · The Core Architecture Carved Out by 6 Bug Fixes The previous post covered crashes — but crashes are just the surface. Beneath... » read more
TUX IM Dev Log Part 2 · The First Scream of the IBus Engine — How I Crashed the Daemon (Troubleshooting)
IBus engine crash = desktop crash. 8 pitfalls nearly made me give up, and how cddcb40 saved the day. This is part 2/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 2 · The First Scream of the IBus Engine — How I Crashed the Daemon In Part 1, I set... » read more
TUX IM Dev Log Part 1 · From an Empty Repo to the First Character ‘Di’ — Why I Rewrote an Input Method
TUX IM started from 5 files, 132 lines of Python. This is part 1/8 of the TUX IM Dev Log: From Zero to 0.1 series. Part 1 · From an Empty Repo to the First Character ‘Di’ — Why I Rewrote an Input Method Prologue: Why an Input Method? In spring 2026, I was typing... » read more
Writing an OS Kernel from Scratch – Part 12: stdin/stdout/stderr in VFS — Making User Programs “Talk”!
Writing an OS Kernel from Scratch – Part 12: stdin/stdout/stderr in VFS — Making User Programs “Talk”! # Writing an OS Kernel from Scratch – Part 12: stdin/stdout/stderr in VFS — Making User Programs “Talk”! “Your OS can run user programs, but how do they interact with the outside world? Today, we wrap the serial... » read more
Writing an OS Kernel from Scratch – Part 23: Framebuffer — Run Your OS on a Graphical Interface!
Writing an OS Kernel from Scratch – Part 23: Framebuffer — Run Your OS on a Graphical Interface! “VGA text mode can only display characters; a real graphical interface requires pixel-level control. Today, we implement the Framebuffer driver, enabling your OS to draw points, lines, rectangles, and even display images!” In previous posts, our output... » read more
Tiny Trick: Embedded Filesystem in Kernel — Stuffing init Right Into the Kernel Binary!
Tiny Trick: Embedded Filesystem in Kernel — Stuffing init Right Into the Kernel Binary! When your kernel doesn’t yet support reading disks or filesystems, how do you support a simple filesystem in a temporary way? Today’s trick — compile the filesystem directly into the kernel! No disk needed, no driver needed, the kernel executes init... » read more
Writing an OS Kernel from Scratch | Windows GPT+UEFI Boot: ESP Partition, NVRAM Boot Entries & Secure Boot Explained
Writing an OS Kernel from Scratch | Windows GPT+UEFI Boot: ESP Partition, NVRAM Boot Entries & Secure Boot Explained The previous chapter covered MBR+BIOS mode Windows boot, where the System Reserved partition is the core anchor — BOOTMGR and BCD live in that 100MB FAT32 partition, and BIOS finds it via the MBR active partition... » read more
Writing an OS Kernel from Scratch – Part 2: Hello World Analysis
Writing an OS Kernel from Scratch – Part 2: Hello World Analysis “You think ‘Hello World’ is just printing a line? In an OS kernel, it hides the secrets of boot flow, memory layout, and hardware protocols.” In the previous post, we successfully had our kernel output “Hello from the kernel!” on QEMU. Looks simple,... » read more
Long Article 101: Memory Management – Boot Phase: Memory Layout from Real Mode to Paging
Long Article 101: Memory Management – Boot Phase: Memory Layout from Real Mode to Paging “The kernel code is linked at 1MB+, but the CPU starts in real mode — today we unveil the boot phase memory layout and see how the kernel safely enables paging!” In the OS boot process, memory management is the... » read more
Teach AI to Turn Lights On and Off in 15 Lines of Code: A Smart Energy-Saving Butler with Neural Networks
15 Lines of Code to Teach AI to Turn Lights On and Off: A Smart Energy-Saving Butler with Neural Networks No rules, no if-else, just “trial and error + reward” — let AI learn to intelligently control lighting. This is the magic of Reinforcement Learning! Problem: When Should the Light Be On? Is your home... » read more
Writing an OS Kernel from Scratch – Part 2: Hello World Analysis
Writing an OS Kernel from Scratch – Part 2: Hello World Analysis “You think ‘Hello World’ is just printing a line? In an OS kernel, it hides the secrets of boot flow, memory layout, and hardware protocols.” In the previous post, we successfully had our kernel output “Hello from the kernel!” on QEMU. Looks simple,... » read more