Fedora39下i3+urxvt+tmux组合出现X11转义色码异常输出问题
Fedora 39下urxvt+tmux的转义序列异常问题
问题现象
在Fedora 39搭配i3窗口管理器、urxvt终端与tmux的环境中,每次执行tmux new-session或tmux attach-session时,终端会输出异常字符,推测是转义序列解析错误导致:
user@hostname:~ $ /fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[user@hostname:~ $
重新附加会话(tmux attach-session)时,该异常会重复出现:
user@hostname:~ $ /fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[^C
该问题在升级到Fedora 39后首次出现,疑似tmux与urxvt之间存在兼容性Bug。
已尝试的排查操作
- 删除
~/.tmux.conf、~/.Xresources、~/.bashrc(含PS1和COMMAND_PROMPT配置)及~/.bash_profile的所有自定义配置,问题仍存在。 - 移除
~/.Xresources文件,问题未解决。 - 在urxvt中切换到root用户(
su - root),即使root目录下无任何shell、tmux或X11配置,异常依然出现。 - 在
/etc/profile中添加set -x排查系统触发点,发现异常输出在/etc/profile执行过程中异步触发,例如添加set -e; sleep 1后,异常出现在sleep的跟踪日志中:
+ sleep 1 ^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[+ '[' -x /usr/bin/id ']' + '[' -z 1000 ']' ++ /usr/bin/id -un + USER=user
临时解决方法(除切换终端外)
目前可尝试以下临时规避方案:
- 在tmux配置中强制指定终端类型,避免颜色序列协商问题:
在~/.tmux.conf中添加:
保存后执行set -g default-terminal "screen" set -g terminal-overrides ",rxvt-unicode:RGB"tmux source ~/.tmux.conf生效。 - 在urxvt配置中禁用动态颜色序列解析:
在~/.Xresources中添加:
执行URxvt.colorBD: #ffffff URxvt.colorUL: #cccccc URxvt.allow_bold: falsexrdb -merge ~/.Xresources后重启urxvt生效。
Bug上报渠道
- Fedora官方Bug跟踪系统:针对
rxvt-unicode或tmux包提交Bug,因问题是升级Fedora 39后出现,优先排查发行版打包层面的兼容性问题。 - rxvt-unicode上游:若确认是终端模拟器本身的解析问题,可提交到rxvt-unicode的官方Bug仓库。
- tmux上游:若验证是tmux发送的转义序列不符合标准,可提交到tmux的官方项目仓库。
内容的提问来源于stack exchange,提问作者Dolph
相关产品推荐
相关产品推荐

