跳到主要内容
ansicode

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 u
ESC [ESC [ Ps SP t / ESC [ Ps SP u
hex1b 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。

示例

bash
printf '\033[8 t'   # DECSWBV: warning bell at max volume (note SP before t)
python
import sys; sys.stdout.write('\x1b[0 t')   # DECSWBV: silence the warning bell
go
fmt.Print("\x1b[4 u")   // DECSMBV: low-volume margin bell
javascript
process.stdout.write('\x1b[0 u')   // DECSMBV: silence the margin bell
c
printf("\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
不支持

相关序列