Chat From Anywhere: The Ctrl-T Popup

September 20, 2026

On a traditional BBS, chat is a place. You navigate to the chat section, you sit there, you talk. When you want to check your mail you leave chat — and the conversation — behind. That’s fine when chat is an event you schedule. It’s terrible when it’s ambient, the way a community actually works: someone drops a line into the channel while you’re reading the board, and you want to answer without losing your place.

Phosphor BBS now does popup chat. Press Ctrl-T — anywhere — and a chat overlay appears over whatever you’re doing. Press it again (or ESC inside it) and you’re exactly where you were. Nothing navigates away; nothing reloads.

What the popup gives you

  • Summon from any screen. The main menu, a board, a door game’s intermission — Ctrl-T toggles the overlay over all of them. The keystroke is intercepted before any screen logic sees it, so it works uniformly everywhere.
  • True toggle semantics. The controller tracks the open popup, so ESC-dismiss and Ctrl-T-toggle can’t get out of sync — dismissing with ESC and then pressing Ctrl-T again reopens cleanly. (Getting this wrong left stale windows behind; the controller owns the popup’s lifecycle now.)
  • Modal while open. The overlay takes the keyboard. Your position on the underlying screen is untouched — ESC and you’re back mid-board-post where you left off.
  • Your last channel. The overlay reopens on the channel you used last, instead of making you re-pick every time.
  • History on open. It loads a tail of the channel’s persisted history (best effort — the popup works even when persistence is unavailable), then streams live messages as they arrive.
  • Colored conversation. Messages render through a styled list box: timestamps, usernames, and message text each get their own color treatment, so the channel reads like a channel instead of a log dump.
  • DM awareness. Direct-message channels show up alongside the public channels, with unread counts — the same tab model as the full-screen chat.

Why a popup and not just a screen

The full-screen chat (C from the menu) is still there and still the right tool for sitting down to hang out. The popup is for the other 90% of chat: the drive-by. Anyone on the board? Lunch at noon? Server restarting in five. Those messages want an answer in ten seconds without context-switching, and a popup over the current screen is the ten-second version of chat.

It’s also the same feature for every client. The overlay lives server-side in the jterm GUI layer, so it behaves identically over telnet (MuffinTerm, SyncTERM) and the web terminal — nothing client-specific to break.

The small print

Ctrl-T was chosen because it’s unclaimed in every screen in the system — no menu uses it, no text box needs a control-T character, and it’s the classic “talk” binding from BBS heritage. The popup caps its message tail so a busy channel can’t grow it without bound, and the overlay never writes to your screen behind the popup — the underlying display refreshes normally once the popup closes.

Try it: log in, go anywhere, Ctrl-T. Type a line, ENTER. ESC. You’re still exactly where you were — with one more message in the channel.