现在我用Arch Linux搭配KDE桌面环境,偶尔会碰上这样一个奇怪的状况:用着用着,想打开新的程序,结果窗口死活都显示不出来,闪退;只有早已打开的拉幕终端Yakuake“幸存”。
为了查明原因,我打开Yakuake,直接输入命令启动程序。果不出所料,程序运行时,终端输出了这样的错误信息:
1 |
|
为什么会出现这种情况?
从错误信息看,表面上是无法连接到X11服务器,然而此时桌面却仍在正常显示。接着,我尝试注销重新进入,结果,结果,KDE彻底挂掉了,甚至连Plasma都打不开,一直在欢迎屏幕转圈圈……
其实,这个问题源于X11桌面的认证机制Xauth。它对应的配置文件是主目录下的.Xauthority
,会在每次验证时读取该文件。但有时该文件会莫名其妙损坏,引起打不开窗口等种种故障。
那么,到底该如何修复?能不能别折腾,干脆直接让它重新生成?
答案是肯定的!回想一下Arch Linux的官方安装教程,好像自始自终都没提到要操作.Xauthority
这个文件。所以基本可以断定,它是在某一个步骤中自动生成的——我猜,就是由桌面环境自动生成!既然KDE进不去,那就让其他的桌面环境来生成它吧。
如何修复?
话不多说,立刻按以下的步骤尝试:
第一步:切换到TTY模式
即使X11出故障,只要电脑不卡,还是能随时按Ctrl+Alt+F2~F7切到TTY模式(具体按键视系统而定)。切过去,然后登录自己的账户。
第二步:删除现有的.Xauthority
1 |
|
第三步:进入另一款桌面环境
我的电脑事先安装好了轻量级桌面环境LXDE,那么接下来直接进入它。我一般是通过SDDM来进入,先运行以下的命令重启SDDM:
1 |
|
不一会儿,SDDM登录界面就会出现在屏幕上。左下角有桌面环境选择器,在其中选择LXDE,然后正常登录。
如果你的电脑没有其他的桌面环境,可以直接在TTY中,运行pacman
自行安装。
第四步:让桌面环境自动生成.Xauthority
过一会儿,系统顺利进入LXDE桌面,一切操作正常,不存在打不开窗口的问题。
此时,进入主目录,可以看到.Xauthority
已经重新生成。
第五步,退出登录,重新进入KDE
注销登录后,重新回到SDDM登录界面,左下角选择KDE。这就是见证奇迹的时候——窗口终于能正常打开了!
总结
碰到因.Xauthority
故障而打不开窗口的情况,利用其他的桌面环境来重新生成,无疑是相对最便捷的方法。看来多一个桌面环境也可以帮大忙。
- 本文作者: 爱拼安小匠
- 本文链接: https://anclark.github.io/2022/12/28/Struggle_with_Linux/KDE_Xauthority_error/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0(署名-非商用-禁止演绎 3.0) 许可协议。转载请注明出处!