ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【WSL】リモートデスクトップのGUIで放置していると勝手に画面が黒くなるのを解消する方法

 今までWSLでのリモートデスクトップGUIの記事を書いてきましたが、一つ問題がありました。

 それは「リモートデスクトップの画面を10分ほど放置していると画面が真っ黒になり操作を受け付けなくなる」というものでした。

 この状態になると一度リモートデスクトップを終了させた後、WSLのUbuntu自体を再起動させる必要がありました。特にファイルが編集中だったりするとかなり困っていました。

 今回その問題を解決する方法がわかったので記事にした次第です。


 では、始めます。


1:現在の設定の確認
 まずは現在の設定を確認するために以下のコマンドを実行します。

$ xset q

 特に何もしていない初期設定の場合、以下のように表示されると思います。

$ xset q
Keyboard Control:
  auto repeat:  off    key click percent:  0    LED mask:  00000002
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
    03: Shift Lock:  off    04: Group 2:     off    05: Mouse Keys:  off
  auto repeat delay:  500    repeat rate:  20
  auto repeating keys:  00feffffdffffbbf
                        fedfffffffdfe5ef
                        ffffffffffffffff
                        ffffffffffffffff
  bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  2/1    threshold:  4
Screen Saver:
  prefer blanking:  yes    allow exposures:  yes
  timeout:  600    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffffff
Font Path:
  /usr/share/fonts/X11/misc,/usr/share/fonts/X11/Type1,built-ins
DPMS (Energy Star):
  Server does not have the DPMS Extension

 ここで重要なのは「Screen Saver:」の項目です。「prefer blanking: yes」とあるのでスクリーンセーバーが発動すると画面がブランク、つまり真っ黒の状態になります。また「timeout: 600」とあるので600秒経過した後にスクリーンセーバーが発動することになります。

 これでは困るので、次の手順でスクリーンセーバーを無効にします。


2:スクリーンセーバーを無効にする
 方法は簡単で以下のコマンドをそれぞれ実行します。

$ xset s off
$ xset s noblank

 少し解説すると、最初のコマンドがスクリーンセーバーをオフにするコマンドで、その次のコマンドが画面をブランクにするのをオフにするコマンドです。
 コマンドについての詳細は以下のページを参照してください。

 コマンドを実行した後、再度設定を確認すると以下のようになっているはずです。

$ xset q
Keyboard Control:
  auto repeat:  off    key click percent:  0    LED mask:  00000002
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
    03: Shift Lock:  off    04: Group 2:     off    05: Mouse Keys:  off
  auto repeat delay:  500    repeat rate:  20
  auto repeating keys:  00feffffdffffbbf
                        fedfffffffdfe5ef
                        ffffffffffffffff
                        ffffffffffffffff
  bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  2/1    threshold:  4
Screen Saver:
  prefer blanking:  no    allow exposures:  yes
  timeout:  0    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffffff
Font Path:
  /usr/share/fonts/X11/misc,/usr/share/fonts/X11/Type1,built-ins
DPMS (Energy Star):
  Server does not have the DPMS Extension

「Screen Saver:」の項目の「prefer blanking:」が「no」、「timeout: 」が「0」になっていればOKです。

 ただしこの設定は再起動すると無効になってしまうため、ログインする度に実行するようにします。

 なんのエディタでも良いですが、今回はviを使って「.bashrc」ファイルを開きます。

vi ~/.bashrc

 ファイルの末尾に以下の記述を追記して上書き保存します。

# black screen off
xset s off
xset s noblank

 これでログインする度にコマンドが実行されるようになったので、放置していて画面が黒くなり操作できなくなることはなくなります。


 以上がリモートデスクトップGUIで放置していると勝手に画面が黒くなるのを解消する方法になります。

 これで長時間放置していても再起動する手間がなくなるので、かなり快適になると思います。


・関連記事


・参考資料