Search / 3 matching notes

Notes &
other things.

2026

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.

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](../MacBook-Pro-M4-Pro.md) machine.

I'm on vacation, in free time setting up new MacBook Pro machine.

I'm on vacation, in free time setting up new MacBook Pro machine.

20260423T173752--m4pro-on-vacation__life-1.jpg

Rewrite Textpod to Go

On <2026-04-21 Tue> I rewritten Textpod from Rust to Go.

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))