我刚刚从 Ubuntu 12.04 升级到 14.04。升级后,终端有时会(但并非总是)在当前屏幕和上一个屏幕之间闪烁。以下是一些示例:
- “ls”命令的输出将会在屏幕上闪烁。
- 但是当我按下回车键开始新行时,有时(但并非总是) ls 的输出将停止闪烁,而是换行符开始闪烁。
- 有时 vim 会在当前位置和前一个位置之间开始闪烁,例如在搜索之后。
- 当我在 bash 终端中打开 sh 时也会发生这种情况。(我希望问题只是出在我的 .bashrc 上,尽管我已经几个月没有改变它了,而且在 12.04 中也没有遇到任何问题。)
这非常烦人,并且使终端基本上无法使用。不幸的是,在 google 上搜索了半个小时后,并没有发现有人遇到类似的问题,无论是在 14.04、其他版本的 ubuntu 还是其他版本的 linux 上。
更新:我不确定这是否有助于识别问题,但是当我按照这些说明关闭光标闪烁时,文本停止闪烁如何禁用 gnome-terminal 中的闪烁光标?。但是问题还没有完全解决,因为现在我打字的时候文本会暂时消失。
答案1
这可能是 compiz/nvidia 的一个错误。
我注意到非常相似的“屏幕闪烁”似乎与屏幕重绘有关,例如,当光标闪烁时,屏幕的块会奇怪地重绘,或者如果我关闭闪烁的光标,就无法在正确的时间重绘。
https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1314367/描述了以下解决方法:
为了修复此问题,您可以使用 CompizConfig 设置管理器 (ccsm),然后转到“实用程序”类别中的“解决方法”,并选中“重新绘制时强制全屏重绘(缓冲区交换)”复选框。
...这似乎对我有用。至少目前如此。
答案2
多年后,我从 Ubuntu 18.04 升级到 Ubuntu 20.04 后又开始遇到同样的问题。它发生在位于 的 Regolith 桌面和 gnome 终端上/usr/bin/x-terminal-emulator
。
通过安装旧st
终端apt install stterm
然后将我的~/.config/regolith/i3/config
文件更改为/usr/bin/st
按下时启动$mod+Return
而不是 x-terminal-emulator 来修复。