barry@log ~/posts $ cat tmux-blog.mdx
Making a blog look like tmux
I live in a terminal all day, so the blog should feel like one more pane in the session. No hero images, no cards, just text in a monospace grid.
The best UI is the one you already have open.
why
Markdown already reads well raw. Instead of hiding the syntax, this theme keeps #, ** and > visible but dimmed, so the page looks like the source file.
layout
panes
- left: file listing for the posts
- left-bottom: outline built from the headings
- right: the post itself, the active pane
/* 1px grid gap shows the parent bg = pane divider */
.panes {
display: grid;
gap: 1px;
background: var(--t-border);
}
status bar
The bottom bar lists every post as a window. The current one is highlighted, same as tmux marks it with *. See the tmux man page for the real thing.
It’s split into three parts, like status-justify centre: session name and mode on the left, windows in the middle, clock on the right.
/* 1fr | auto | 1fr keeps the middle truly centred */
.status {
display: grid;
grid-template-columns: 1fr auto 1fr;
}
keys
prefix
Ctrl-a arms the prefix (a [prefix] flag shows up in the status bar), then:
n/p: next / previous window0-9: jump to window No: cycle the active pane,z: zoom itd: detach, back home?: show every key on the page.Esccloses it.
vim
The post pane is in normal mode by default, and the status bar says [NORMAL]. h j k l, w b e, 0 $, gg G and Ctrl-d / Ctrl-u move a caret through the text. v switches to [VISUAL] and y copies the selection.
home
/ is a tiny shell. ls, cd about, whoami, clear, with tab completion and up/down history. help prints the rest.
The /posts listing is ls -la: j/k to move, gg/G for top and bottom, l or Enter to open.
next
Every .mdx file in src/content/posts becomes a page at /post/<slug>.
(END)