座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

ディスプレイがスリープから復帰しない

今月半ばに購入したディスプレイで, ディスプレイがスリープモードから復帰しない問題に悩んでいます.

結論からいうと再現条件がわかりましたが, 解決していません. どなたかからアドバイスいただけることを期待して, 解決に向けて調べたり試したことをメモしておきます.

環境について

関連しそうなスペックだけ記載していますが, もしアドバイスいただける際に他に必要なことがあったら教えていただければと…….

発生している問題・事象

タイトルの通り, 問題はディスプレイがスリープモードから復帰しないことです. 復帰しないのは, デュアルディスプレイの片方だけ, HPのモニタだけです.

次の手順で再現します.

  1. パソコンで画面をロック (一定時間経過でのブランクスクリーンでも同じ)
  2. HPのディスプレイにに次の表示 「入力信号が見つかりませんでした. (省略) ディスプレイはスリープモードに入ります」のあと, スリープモードになる (電源ランプ オレンジ). ASUSのディスプレイも同様
  3. キーボード・マウス操作をおこなうと, ASUS側のディスプレイはスリープから復帰. HPのディスプレイは, スリープが解除されたあと (電源ランプがオレンジから白へ) スリープに入るときと同じメッセージが表示され, またスリープに戻ってしまう

「ときどき起きる」ではなく, 確実に再現します.

暫定的な対処方法

この状態を回避するために, 次のいずれかの方法をとっています.

  • HPディスプレイの電源を一度切り, ONにする. これで画面表示されるようになる
  • HPディスプレイのOSDメニューから, 「自動スリープモード」をオフにする. 述べた問題は起きなくなりますが, 省電力的なことがあるので, これで解決にはしたくない

試したが効果がなかったこと

解決に向けて, 次のことを試してみましたが, 効果はありませんでした.

  • HPディスプレイのOSDメニューで, 「省電力モード」から「パフォーマンスモード」へ変更
  • HPディスプレイのOCDメニューで, 「入力ソースの自動検出 (HDMI or DisplayPort)」をオフにする
  • HDMIケーブルを交換する

原因特定に向けて試したこと

直接, 解決にはつながらなかったですが, 原因特定に向けて試してみたことを列挙してみます.

別のPCをつないでみる

手元にある別のノートパソコンをHPディスプレイに, HDMIで接続してみました.

再現方法であげた手順で, ちゃんとスリープから復帰してしまいました……. ということは, HPディスプレイの故障とは考えづらい…….

デュアルディスプレイをやめる

ASUSのディスプレイを外して, デュアルディスプレイをやめてみました.

すると, スリープからの復帰ができるようになってしまいました. ということは, H/W相性に原因がある, という可能性はちょっと薄くなる……?

デュアルディスプレイの解像度を合わせる

ASUSのディスプレイはFull HD. いっぽう, 追加したHPディスプレイは WQHD 解像度のものです.

GNOME設定で, HPディスプレイの解像度をASUSに合わせて, Full HD (1920x1080) へ変更してみました.

この場合も, スリープからの復帰ができるようになりました. これが怪しい…….

再現条件という点では, デュアルディスプレイの解像度の混在が怪しい?

いまのところ, デュアルディスプレイ環境で, 解像度が混在しているところに原因の一端があるのではないかな……, という気がしています.

完全に想像ですが, スリープからの復帰信号として, Full HD解像度のデータを, 両方のディスプレイに送ってるんじゃないかな, 解像度混在の環境においては, 低い方へ合わせている. そのため, WQHD解像度のHPディスプレイは復帰しようとするけど, 「入力信号がない」として, スリープに戻ってしまってるのかも.

まあ, 一概にそうと言い切れないなというのもあって, たとえば1600x900解像度のノートパソコンに1920x1080解像度の外付けディスプレイをHDMI接続して使っていたときに, この問題は起きてなかったんですね. マルチモニタで解像度が混在という条件以外がぜんぜん違うので, 参考程度ですが.

引き続き調べてはみますが, 難しい問題だなと. 同一H/WでWindows環境を用意できたら, もうちょっと試したり, 問い合わせるって方法もとれるかなとは思うんですが (少なくとも, H/W問題なのか, ミドルウェアを含むS/W問題なのかは切り分けられる).

ちなみに, DisplayPortケーブルを注文しています. それでまた試してみますが, 想像していることが原因である場合, 解決は期待薄かなーと思っています.

HackGen フォントを導入

HackGen フォントを導入してみました.

github.com

qiita.com

ずっとRictyを使っていましたけど, これもなかなか良きでした. 気になるところがないわけではないですが, じゅうぶんに見やすい.

GitHubでビルド済みフォントデータが配布されてるので, ぼくはそれをそのままフォントのディレクトリへ放り込みました (cp *.ttf ~/.local/share/fonts && fc-cache -fv).

この記事を書いているときに気づいたのですが, ArchLinuxのAURリポジトリにすでに登録されていたので (速い!), ArchLinuxユーザーは yay -S ttf-hackgen で導入することもできますね.

f:id:zashikiro:20200625114728p:plain ちなみになぜHackGen フォントを導入したのかというと, RictyフォントにPowerlineフォントのパッチをあてるのがどうしてもうまくいかなかったためでした (fontforgeによるパッチ当て自体は成功するが, 左向きの三角の形だけちょっとおかしい. この問題が解決できず……).

HackGenはPowerlineフォントを内蔵しています.

Powerlineって枯れた技術なのか, 調べて出てくるのは古い情報ばかりです. ぼくは最近覚えたんですがw

Vim でファイルを開けない原因が wildignore オプションにある

Vim でファイルを開けない原因が wildignore オプションにありました.

正確に言うと, ファイルを開けないというより :e のあとにタブを押しても候補が出てこない, ということですね.

ぼくはちょっとした作業用のディレクトリに tmp という名前をつけることがあるのですが, Vim Bootstrap で作った設定ファイルを導入してから事象が発生.

:e tmp/ のあとでタブを押しても候補が何も表示されません.

.vimrc を見てみると, 次の記述がありました.

set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite

個人的には, 余計なお世話な設定でオプション指定自体やめてしまうかとも思いましたが, 問題のディレクトリ指定だけ除外することにしました.

.vimrc.local に次の行を追記.

set wildignore-=*/tmp/*