Obvious choices like Cloudflare Workers, Github Pages and all their
variants were ruled out as they require accounts, backed by big corps
while I wanted something indy.
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}
textpod.el v0.3.0
Another round of improvements of textpod.el, a companion Emacs
package to Textpod.
Custom ID format - attribute name and prefix
Added two defcustom options in textpod.el:
textpod-id-property (default "TEXTPOD_ID") - name of the Org
property used to store the note id.
textpod-id-prefix (default "") - prefix prepended to ids when
stored, stripped before sending requests to the server.
Introduced textpod--strip-prefix helper and updated all id call
sites (textpod-open-current-note, textpod-org-heading-to-note,
textpod-org-region-to-note) to respect these configs.
textpod-set-id sets ID without creating a node
I need a function to create texpod id property without sending note to
the server. This is needed to submit old notes so they have proper
timestamp.
Added textpod-set-id: an interactive command that sets
textpod-id-property on the current heading (with textpod-id-prefix)
derived from a time as YYYYMMDDhhmmss, without making any HTTP
request.
No prefix arg → uses (current-time).
With prefix arg → prompts via org-read-date, so the note can be
back-dated before later uploading with textpod-org-heading-to-note.
Quickly getting to Textpod notes
Using Ack is possible, placing point on a file-name and pressing {H-RET} will
call visit-source and go directly to the line.
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.
JuliusBrussee/cavekit: A Claude Code plugin that turns natural
language into blueprints, blueprints into parallel build plans, and
build plans into working software with automated iteration,
validation, and cross-model peer review.
forrestchang/andrej-karpathy-skills: A single CLAUDE.md file to
improve Claude Code behavior, derived from Andrej Karpathy's
observations on LLM coding pitfalls.
Currently, when calling org-roam-dailies-goto-today, {C-c n d} for me,
Emacs switches to the daily note buffer, but moves point to
(point-min). I want to advice to first check if the buffer with
"YYYY-MM-DD.org" (for today) already exists, and if so, switch to this
buffer. Related to Org-roam.
Here's an advice function to achieve that:
(defun my-org-roam-dailies-goto-today-advice (orig-fun &rest args)
"Switch to today's daily note buffer/window if it exists, otherwise create it.
Preserves point position if buffer already exists."
(let* ((today (format-time-string "%Y-%m-%d"))
(daily-buffer-name (concat today ".org"))
(existing-buffer (get-buffer daily-buffer-name))
(existing-window (and existing-buffer
(get-buffer-window existing-buffer t))))
(cond
;; Buffer is already displayed in a window - switch to that window
(existing-window
(select-window existing-window))
;; Buffer exists but not displayed - switch to it in current window
(existing-buffer
(switch-to-buffer existing-buffer))
;; Buffer doesn't exist - create it
(t
(apply orig-fun args)))))
(advice-add 'org-roam-dailies-goto-today
:around #'my-org-roam-dailies-goto-today-advice)
This advice:
Checks for buffer by name (not file path)
If the buffer is displayed in any window (even in another frame), selects that window
If the buffer exists but isn't displayed, switches to it in the current window
Edit <2026-04-17 Fri>: check existing buffer using buffer name, not
the buffer vising a file, that depends on org-roam-dailies-directory
(I have two different, but one set of dailies).
Edit <2026-04-21 Tue>: check if the daily buffer is already opened
in existing window, if so - switch to it.