Window configuration on m4pro
MacBook Pro M4 Pro has larger screen and windows in Emacs behave differently, often ending up with 6 windows at once. That's not what I want.
Time to learn Window management in Emacs.
On <2026-04-21 Tue> I switched to ace-window from other-window and keeping track of what has changed.
Keybindings:
- {M-o}: ace-window
- {§}: ace-window
- {C-x o}: other-window (built-in)
- {C-u C-u M-o}: delete window
- {C-x
}: winner-undo
Good:
- {C-u M-o}: swap windows, crux package no longer needed.
- window-extras package contains two functions – transpose-windows (same as {C-u M-o}) and toggle-window-split. Will keep it for now.
Bad:
- golden-ratio-mode is not triggered, because it adds after-advice (ad-Advice-other-window). The advice itself is called ‘golden-ratio-resize-window’. For now I disabled golden-ratio mode. Will use balance-window {C-x +} ad-hoc.
Things to try:
- toggle-window-dedicated {C-x w d}
I'm on vacation, in free time setting up new MacBook Pro machine.

Rewrite Textpod to Go
On <2026-04-21 Tue> I rewritten Textpod from Rust to Go.
While I'm on vacation with the new MacBook Pro M4 Pro and I have installed only bare minimum on it, I don't have Rust toolchain but do have Go. So, asked Claude to do rewrite. The only external dependency is goldmark package to render Markdown as HTMLs.
Updated Elisp helpers:
(use-package textpod
:config
(setq textpod-token (cadr (auth-source-user-and-password "finita.myaddr.dev" "textpod"))
;;textpod-url "/notes"
textpod-url "http://localhost:3000/notes"
))
(let ((default-directory "~/Developer/src/github.com/velppa/textpod"))
(async-shell-command "go build -o ~/.local/bin/textpod ." "*textpod-build*"))
(let ((default-directory "~/Developer/src/github.com/velppa/finita-la-comedia/textpod")
(buffer-name "*textpod-server*"))
(when (get-buffer buffer-name)
(kill-buffer buffer-name))
(async-shell-command (format "textpod --token %s --base-path notes" textpod-token) buffer-name))
(browse-url (format "%s?token=%s" textpod-url textpod-token))