ずっと古いバージョンだったので…
6.0.1から6.1.4になりました
LoupeDeckは私が左手デバイスというものを知るきっかけになった製品で,現在はLoupeDeck Live Sを職場のWindowsPCで使っています。
設定アプリは以前アップデートしたことがあったのですが,アプリの挙動が変に感じたので元のバージョンに戻してそのまま使っていました。今回久しぶりにアップデートしたところ,しっかり動作しているようなので最新版を使うことにしました。
設定とアイコンのアップデート
最新版にアップデートしたので,設定を見直して使っていないものを削除したり,動作がおかしいものを修正しました。アイコンも少しだけ手直しをしたので見た目が変わってテンションが上がります。
左は基本画面で,業務で使用するWebシステムへのログインと呼び出し,Notionのメモやパスワード一覧のファイルを開く,マウスポインタの確認,シャッドダウンなどをボタン一発でできるようにしています。中央はExcel用の画面で,よく使うショートカットでマウス操作だと手間がかかるものを登録しています。右は左手デバイス定番のテンキーです。
ダイヤルにはウインドウのズーム,マルチモニタ切替,ウインドウスナップなどを登録しています。
ウインドウスナップを動かす
私の環境ではWindowsキーを使ったショートカットが左手デバイスで動作しないことがあります。おそらく,Windowsキーを単体で押したときに日本語入力の切り替えをしていることが原因かと考えています。Loupedeck Live Sに設定していたものも動作していませんでした。そこで,ウインドウスナップ関係のショートカットであるWIN+ZやWIN+左右カーソルをAutoHotKeyでファンクションキーに割り当てて左手デバイスに登録しようと考えました。
AutoHotKeyのスクリプトに以下の2行を追加して,LoupeDeck Live Sのダイヤルに反時計回りでF16,時計回りでF17を割り当てたところ,無事に動作しました。
F16:: #Left
F17:: #Right
左手デバイスでウインドウの左右2分割表示
更に色々調べていると,WinMoveというコマンドでウインドウの位置や大きさを指定できることが分かりました。検索で出てきた以下のスクリプトに変更したところ,ダイヤル反時計回りでウインドウを画面左半分に,時計回りで画面右半分に表示できるようになりました。
F16:: WinMove, A, , 0, 0, A_ScreenWidth / 2, A_ScreenHeight
F17:: WinMove, A, , A_ScreenWidth / 2, 0, A_ScreenWidth / 2, A_ScreenHeight
しかし,このスクリプトではメインの画面でウインドウを左右2分割するだけでマルチモニタ環境では使えないことが分かりました。メインの画面以外でも左右2分割できるように,前回作成したマウスポインタを移動するスクリプトを参考にして,以下のように書き替えました。
F16::
SysGet, MonitorD, Monitor, 1
SysGet, MonitorL, Monitor, 2
SysGet, MonitorU, Monitor, 3
CoordMode, Mouse, Screen
WinGetPos, X, Y, , , A
If x < %MonitorULeft%
WinMove, A, , MonitorLLeft, MonitorLTop, (MonitorLRight-MonitorLLeft), (MonitorLBottom - MonitorLTop) /2
Else If y > %MonitorUBottom%
WinMove, A, , MonitorDLeft, MonitorDTop, (MonitorDRight-MonitorDLeft) /2, (MonitorDBottom - MonitorDTop)-70
Else
WinMove, A, , MonitorULeft, MonitorUTop, (MonitorURight-MonitorULeft) /2, (MonitorUBottom - MonitorUTop)-70
Return
F17::
SysGet, MonitorD, Monitor, 1
SysGet, MonitorL, Monitor, 2
SysGet, MonitorU, Monitor, 3
CoordMode, Mouse, Screen
WinGetPos, X, Y, , , A
If x < %MonitorULeft%
WinMove, A, , MonitorLLeft, MonitorLTop+(MonitorLBottom - MonitorLTop) /2, (MonitorLRight-MonitorLLeft), (MonitorLBottom - MonitorLTop) /2-70
Else If y > %MonitorUBottom%
WinMove, A, , MonitorDLeft+(MonitorDRight-MonitorDLeft) /2, MonitorDTop, (MonitorDRight-MonitorDLeft) /2, (MonitorDBottom - MonitorDTop)-70
Else
WinMove, A, , (MonitorURight-MonitorULeft) /2, MonitorUTop, (MonitorURight-MonitorULeft) /2, (MonitorUBottom - MonitorUTop)-70
Return
ウインドウの表示座標を取得してどの画面に表示されているかを特定し,ダイヤルを回す向きによってウインドウを画面の左半分または右半分に表示するという流れです。
かなり長いスクリプトになってしまいましたが,ウインドウがメインの画面以外にあるときもダイヤル反時計回りでウインドウを画面左半分に,時計回りで画面右半分に表示されるようになりました。
ずっとやりたかったことが実現しました
左手デバイスでウインドウの左右2分割表示は以前からずっとやりたかったのですが,ウインドウスナップの提案機能のためにショートカットが一定にならず,左手デバイスに登録できなかったのです。
今回,思いがけずAutoHotKeyのスクリプトで実現することができたのでとても嬉しいです。キーマップの変更だけでなく,いろいろなことができるアプリなんだと改めて思いました。












この記事へのコメント
コメントはまだありません。
コメントを送る