Add /me, /slap, /q, /topic, tab completion, bold events

- /me <action> sends CTCP ACTION
- /slap <nick> slaps with a large trout
- /q <nick> sets query target, /q clears it
- /topic to view/set channel topic
- Tab completion for nicks (cycling, : suffix at line start)
- Nick list tracking via NAMES/JOIN/PART/QUIT/NICK
- Bold formatting for joins, parts, quits, mode changes
- Incoming CTCP ACTION displayed as * nick action
- Updated README with all commands and features
This commit is contained in:
2026-04-30 08:05:35 +02:00
parent 3e137863fe
commit fe75236fad
2 changed files with 239 additions and 15 deletions
+11 -2
View File
@@ -8,8 +8,10 @@ A lightweight terminal IRC client written in C with automatic charset conversion
- **Window levels** — isolated windows with independent 500-line scrollback:
- Window 1: Status and private messages
- Windows 29: Channels
- **Status bar** — shows current window, channel, nick prefix (@/+), and channel modes
- **Status bar** — shows current window, channel, nick prefix (@/+), channel modes, and activity indicator
- **UTF-8 terminal support** — full multi-byte input editing
- **Tab completion** — nick completion with cycling (`: ` suffix at line start, space mid-line)
- **Query mode** — `/q nick` to set a default PM target
- **CTCP VERSION** reply with OS info
- **SIGWINCH** handling (terminal resize)
- **Ident** — works with system identd on port 113
@@ -37,6 +39,7 @@ Port defaults to 6667.
| Key | Action |
|-----|--------|
| ESC+19 | Switch window |
| Tab | Nick completion (cycle with repeated Tab) |
| Ctrl-A | Beginning of line |
| Ctrl-E | End of line |
| Ctrl-U | Kill to beginning (yank buffer) |
@@ -54,15 +57,21 @@ Port defaults to 6667.
| `/join #channel` | Join channel (assigned to current window) |
| `/part [#channel]` | Part channel (defaults to current) |
| `/msg <target> <text>` | Send private message |
| `/q <nick>` | Set query target (type text to send to them) |
| `/q` | Clear query target |
| `/me <action>` | Send action to channel/query |
| `/slap <nick>` | Slap with a large trout |
| `/nick <newnick>` | Change nickname |
| `/mode <target> <modes>` | Set mode |
| `/topic [#channel]` | View topic |
| `/topic #channel <text>` | Set topic |
| `/names [#channel]` | List users in channel |
| `/whois <nick>` | WHOIS query |
| `/wii <nick>` | Extended WHOIS (queries remote server) |
| `/quit [reason]` | Quit (default: "See you later") |
| `/raw <line>` | Send raw IRC command |
Typing text without a `/` prefix sends to the channel on the current window.
Typing text without a `/` prefix sends to the channel on the current window (or query target on window 1).
## Window Workflow