Arch LinuxでWifi接続したときにcannot open displayと出る問題

友達に勧められて1年前からArch Linuxを使い続けているのですが、この一年ずっと奇妙な不具合に悩まされ続けました。ついこの間やっと解決したので、その解決策について紹介します。

起こっていた不具合はNetworkManagerを介して、ネットワーク切断後に再び再接続を試みると"cannot open display"とターミナルに表示されて、あらゆるGUIアプリケーションが使えなくなるという問題です。最初は頻度もそんなに多くなく、何か調子が悪いのだろうと思って再起動で対応していましたが、最近頻発するようになったのでこれはどうにかする必要があると思って解決することにしました。

まず調べて出てきたのが、cannot open displayと表示されるのは$DISPLAYが正しく設定されていないことが原因だというものでした。そこで
export DISPLAY=IP:0.0
などをターミナルに打ち込んで$DISPLAYの値を色々変えてみたのですがダメでした。

次に出てきたのがxhost+をしろというものです。こちらも
xhost +localhost
などをターミナルに打ち込んで試してみたのですが、やはりダメでした。

ネットワーク再接続時にのみ不具合が起こるので、NetworkManagerが何かしているのだろうと思って調べてみると、次の記事にたどり着きました。
https://bbs.archlinux.org/viewtopic.php?pid=684936#p684936

この記事によると、NetworkManagerの設定ファイルがちゃんと設定されていないと、NetworkManagerが勝手にhostnameを書き換えてしまうらしいです。このためX Window Authorityで弾かれてGUIアプリケーションが開けなくなるようです。

そこでNetworkManagerの設定ファイルを/etc/NetworkManager/NetworkManager.confとして作成し、hostnameをセットします。
[main]
plugins = keyfile

[keyfile]
hostname = <your hostname>
manファイルによると、hostnameにlocalhostを設定すると設定していないと見なされると書いてあったので注意してください。localhostにユーザー名のaliasを付けてあれば、自分のユーザー名を指定するのが良いのかなと思います。

また、/etc/hostnameが設定されていないとうまくいかなかったです。


Comments