DECSWBV / DECSMBV — 设置警告 / 边距铃音量(CSI Ps SP t / CSI Ps SP u)
调整 C0 BEL(DECSWBV)与右边距警告铃(DECSMBV)的音量 —— 现代模拟器几乎一致忽略。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[<Ps> t (DECSWBV) \x1b[<Ps> u (DECSMBV)\\033[
\033[8 t / \033[4 u\\e[
\e[8 t / \e[4 uESC [
ESC [ Ps SP t / ESC [ Ps SP uhex
1b 5b ... 20 74 / 1b 5b ... 20 75说明
两个 DEC VT520 音频控制,共用同一组 `Ps` 取值:`0` 或 `1` 静音、`2` / `3` / `4` 低音量、`5` / `6` / `7` / `8` 高音量。**DECSWBV**(`\x1b[<Ps> t`,中间字节是字面空格 `0x20`)控制 C0 BEL(`\x07`,Ctrl-G)字节触发铃音的音量 —— shell 完成 / 错误 / Ctrl+G 都会发出该字节。**DECSMBV**(`\x1b[<Ps> u`)控制独立的边距铃 —— DEC 终端在写入超过第 N 列且逼近右边距时会触发(N 默认 80 中的 72,可经 DECSMM 调整)。中间空格不可省 —— 没有它 `\x1b[8t` 解作 XTWINOPS 调整大小,`\x1b[8u` 则未定义。现代模拟器(xterm、kitty、wezterm、ghostty、alacritty、iTerm2、Windows Terminal)一律把铃声渲染交给系统音频设置或单一的开 / 关布尔值处理,DECSWBV / DECSMBV 因此被静默忽略。这两个序列只在物理 DEC VTxxx 终端以及少数自带 VT 兼容模式的模拟器(mlterm、部分 BBS 客户端)上仍有效果。出于解析器完备性记录在册,但不要指望真的能调整音量。
规范出处: DEC VT520 RM (DECSWBV / DECSMBV)
参数
| Ps | 音量等级。`0` / `1` 静音 · `2`–`4` 低音 · `5`–`8` 高音。默认 0。 |
示例
printf '\033[8 t' # DECSWBV: warning bell at max volume (note SP before t)import sys; sys.stdout.write('\x1b[0 t') # DECSWBV: silence the warning bellfmt.Print("\x1b[4 u") // DECSMBV: low-volume margin bellprocess.stdout.write('\x1b[0 u') // DECSMBV: silence the margin bellprintf("\x1b[6 t"); /* DECSWBV: medium-high bell — ignored on most emulators */终端支持
- xterm
- 不支持
- Linux console (fbcon)
- 不支持
- macOS Terminal.app
- 不支持
- iTerm2
- 不支持
- Windows Terminal
- 不支持
- cmd.exe / ConPTY
- 不支持
- kitty
- 不支持
- alacritty
- 不支持
- WezTerm
- 不支持
- Ghostty
- 不支持
- GNOME Terminal
- 不支持
- Konsole
- 不支持
- tmux
- 不支持
- GNU screen
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |