sside.net

Windowsでハイバネーション後、キーリピート間隔が初期設定に戻る問題について

ノートPCを持ち歩くとき、そんなに頻繁に開けたり閉めたりしないので、スリープの代わりにハイバネーションを使ってるんですが、これ復帰時にコントロールパネル > キーボードから設定してたキーリピート設定が、OSのデフォルトに置き換わるのな…。

症状自体は確かThinkPad X301でVista使ってた頃から存在してたし、その頃は「まあ仕方ねえか」で諦めてたんですが、Windows 10のこのご時世になっても全く直ってねえのには閉口する。

どうやって対処するんだよと軽く調べたら、世間では大体こんな感じの模様。

  • OSのキーリピートデフォルト値のレジストリを書き換える [HKEY_CURRENT_USER\Control Panel\Keyboard]
  • OSのアクセシビリティ設定でキーリピート間隔を設定する [HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response]
  • キーボード設定を更新してくれるユーティリティを常駐させる

んで、レジストリ書き換えてもいいんだけど、本来違う目的のアクセシビリティ設定変更するのもなんか抵抗あるなー、と思ったので別の方法調べてたら、Windowsには昔からmodeなるコマンドが存在しており、キーリピート間隔も普通にそこから設定できる模様。

mode con rate=32 delay=0

で、コントロールパネルのキーボード設定でリピートレートとリピート待ち時間を最速にしたのと同じ設定になる、というか設定できる段階数もキーボード設定と一致してる。実行後キーボード設定を開くと、値も書き換わってるので、実質的に同じ設定のCUI版っすね。

多分同じことで困ってる人もいるだろうから、ハイバネーション復帰時に実行させる場合は、上記に@echo off追加したうえで拡張子.batにして保存、タスクスケジューラで新規タスクを作成して以下の設定に。

  • 全般
    • ユーザーがログインしているときのみ実行
    • 表示しない(これ設定してもプロンプト出た気がするが、あんまり気にしてない)
  • トリガー
    • ワークステーション アンロック時
    • 特定のユーザ: 自分のアカウント
    • 停止するまでの時間: 30分(別に設定してもしなくてもいい)
  • 操作
    • プログラムの開始
    • プログラム/スクリプト
      • 保存した.batファイル
    • 開始
      • .batファイルの保存先のパスを指定しておく(不要かも知れないけど、ないと動かなかった)
  • 条件
    • 電源接続時のみ実行する類のオプションは外す
  • 設定
    • 既存のインスタンスの停止(別に設定しなくてもいい)

こんな感じでタスクを登録して、手動で設定して問題が起きなければ(実行結果はタスクスケジューラの表示のリフレッシュが必要)、実際にハイバネーションして適切にキーリピート間隔が設定されてるか確認したら終わり。

レジストリも弄らず、ノンプログラミングでできる対処法があるのに、何故か軽く検索しても日本語で紹介してる向きが見当たらなかったので、とりあえずエントリーに。にしても、同じ問題で困ってるケースってそんなにねえのかなあ。ハイバネーションが使われてないか、そもそもキーリピート間隔の設定とかそうそう弄られてないのか。

ノートPCを持ち歩く毎日

通勤時間が苦痛かつ、無為に思えて仕方ない最近。もう鈍行に乗ってでもせめて意味のある時間をとノートPC(Thinkpad X1 Yoga 2017。感想は使い込んだら書く)を買った。毎日、昼の休憩時間や帰りの鈍行電車でNetflix Appでダウンロードした陰気なドキュメンタリーを見たり、TypeScriptの書き方を調べたりしている。

ノートPCを持ち歩くのはかなり久しぶりで、そもそも持ち歩けるノートPC自体を購入するのが7年位ぶり。ノートPCの括りならSurface Bookがあったのだけど、アレを鞄に入れて満員電車に乗る勇気はおれにはなかった。

で、7年ぶりにノートPCを外で毎日使ってみると、7年前と全然違う。あの頃も外でノートPC使うときは携帯からテザリングしてインターネットには繋げていたし、ファイル同期もWindows Live Meshがあったので、今使っているWindows 10のOneDriveとさして変わりはない(というかOneDriveの前身がLive Mesh)。

勿論、ノートPCのメモリ容量だったり、ディスプレイの表示品質、解像度、インターネットへの通信速度など、Webブラウザの性能など、線形に改善している要素は確かに効いてます。ただ、それ以上に7年の間に世の中クラウド前提に変わってるんだなと。

ファイルを同期して、外での作業をシームレスに家のデスクトップで継続するロールモデルは7年前にもあったし、事実可能だったにもかかわらず、実際の体験として連続性が全然違う。かつては携帯とノートをUSBケーブル繋いでテザリングさせるか、家に帰ってからスリープ復帰させて同期スタートを待つ感じだったのが、今ではとりあえず無線LANで携帯とテザリングしておけば勝手に家のデスクトップにファイルは同期されてるし、オンラインサービスの利用状況もサービス側で保持しておいてくれる。家のマシンで作業を継続しようとしたら、そのまま作業を続けるか、精々更新されたファイルのリロードを行うかのプロンプトが出る程度。シームレスの質が全く異なる。

今挙げた事柄は、以前から出来たことなのは繰り返し述べていますが、iOSやAndroidの携帯電話が普及して、求められる作業継続性の質が明確に底上げされ、デバイス、場所を選ばず、どのサービス、ソフトウェアでも作業の続きができる、というのは本当に気持ちが良い。

ノートPC買うときは、毎回「これで外でもXXX(ゲームでもblog書きでもTwitterでもコード書きでも好きな奴を入れてください)が出来るぞ!」と思うんだけど、実際には「ファイル同期するのにノートPCのスリープ復帰させるの面倒だな」「ローカルに置いておいた必要なファイル、デスクトップにも持っていくの面倒だな」とかの理由で段々面倒になり、リビング用のごろ寝操作PCになり下がるのが毎回の流れだったのだけど、今回はちょっと継続して持ち歩くようになるかも、と思った。というかノートPCを持ち歩く合理性が生じる時代にようやくなったのではないでしょうか。