【Vivaldi】AHKを使ってタイリングを右Shift2回押しに割り当てる方法
この記事では、Vivaldiの独自機能「ページのタイリング」を、右Shift2回に割り当てる方法について書きます。
キーに別の機能を割り当てるWindowsソフト「AutoHotkey」を使うことで、自由に設定できます。
キーに別の機能を割り当てるWindowsのフリーソフト「AutoHotkey」を使うことで、ウェブブラウザVivaldiの独自機能であるページのタイリングを、好きなキー2回押しに割り当てることができます。
Vivaldi側でキーを変更することは可能ですが、同じキー2回押しといった高度な設定はできません。あくまで単一キー、複数キーの組み合わせのみです。AutoHotkey(以下、略してAHK)を使うことで、好きなキーに割り当てられます。左右、上下、タイリング解除のキーを別々に設定できます。
本記事は、Windows10、またはWindows11をお使いの方で、なおかつVivaldiブラウザを利用している方向けです。MacではAHKがリリースされていないので注意です。
皆さん、Vivaldiのページのタイリング機能って使ってますか?僕はしょっちゅう利用しています。
同一タブ内で、2つ以上のページを並べて表示する機能です。1つのウィンドウでサクッとページを比較して閲覧できる、とても便利な機能です。Vivaldiを使ったら、ぜひとも触ってみたい機能の1つです。並べたいページを新しいウィンドウで開いて、上手に並べる~といった手間が省けます。
デフォルトだと、ショートカットキーが以下のように割り当てられています。
アクション | ショートカットキー |
---|---|
左右に並べて表示 | Ctrl+F9 |
上下に並べて表示 | Ctrl+F8 |
タイル状に並べて表示 | Ctrl+F7 |
タブのタイリングを解除 | Ctrl+F6 |
微妙に押すのがめんどくさい配置です。片手だと無理です。どうしても両手を使わないといけないので、右手でマウスを持ちながら、左手でサクッとタイリング…といった使い方ができません。
AHKを使うことで、以下のようにできます。同じキーを連打するだけでタイリングできるので、ちょースピードアップです。片手でできるという点も良いです。
左右に並べて表示 | 右Shift2回押し |
タブのタイリングを解除 | _2回押し |
僕は上記のキー割り当てにしていますが、別のキーにすることも可能です。
僕の場合、単に右Shiftを使ってなかったからという理由で上記の配置になりました。多分、人生で右Shift数回しか押してません。右Shiftの左にある_に、タイリングの解除キーを割り当てることで、解除も素早くできるようにしています。
右Shiftを2回押す度に、タイリング、タイリング解除を切り替えることも可能です。これにより、タイリングと解除のキーを別々で指定する手間が省けます。
イメージしやすいように動画を貼っておきます。タイリングしたいタブを複数選択→AHKで設定したキーを素早く2回押す…の2ステップです。めちゃ便利です。
前提
本記事では、既にVivaldiブラウザ、及びAutoHotkeyを導入している前提で書きます。「まだ導入していない!」、「使い方が分からない!」という方は、下記の2つの記事を参考にしてみてください。
Vivaldiは、標準で広告ブロック機能、メール、フィード、カレンダー、タイリング機能、タブスタックなどブラウザヘビーユーザーにぴったりな機能が満載のChromiumベースのブラウザです。ナポリタン寿司の一押しです。インタビューを受けたくらい使い倒しています。(インタビュー記事はこちら)
AutoHotkeyは、キーやマウスに色々な機能を割り当てることができるWindowsのフリーソフトです。考え方次第で、無限大の可能性が待っています。「こういうことできたらいいなぁ」が見事に解決します。
コード
書き込むコードは、以下になります。右Shiftを素早く2回押すことで、ページを左右に並べてタイリング表示、右Shiftの左にある_記号を素早く2回押すことで、タイリング解除します。
;---------------------
;Vivaldi
;---------------------
#IfWinActive,ahk_exe vivaldi.exe
;右Shift2回押しで左右に並べて表示
RShift::
Keywait, RShift, U
Keywait, RShift, D T0.2
If (ErrorLevel=1) {
Send, {RShift}
}
else {
Send, ^{F9}
}
Return
;「_」2回押しでタイリング解除
sc073::
Keywait, sc073, U
Keywait, sc073, D T0.2
If (ErrorLevel=1) {
Send, {sc073}
}
else {
Send, ^{F6}
}
Return
#IfWinActive
;---------------------
;Vivaldi終了
;---------------------
Vivaldiを起動した状態で発動するようになっています。「#IfWinActive」コマンドを使って、他アプリでは動作しないようにしています。
上記コードは、Vivaldi側で設定しているタイリング関連のショートカットキーを変更していないことが前提です。
例えば、「左右に並べて表示」はデフォルトだとCtrl+F9です。このキーを、別のキーに変更している場合は、上記コードは発動しません。Vivaldi側で元のCtrl+F9に戻すか、AutoHotkey側で変更後のキーを指定する必要があります。
AutoHotkeyはあくまでキーに別のキーを割り当てるソフトなので、元々のキー(Ctrl+F9)があってこそです。右Shiftを2回押した時に、Ctrl+F9を押したことにする=Vivaldiのタイリングが発動するという仕組みになっています。
上記コードを丸々コピペして、AHKファイルに書き込みます。Windows標準のメモ帳、Microsoftが提供しているVisual Studio Codeなどを使いましょう。
詳しくコードの意味を知りたい方・自分の好きなキーに変更したい方は、以下のアコーディオンを展開してみてください。より詳しく解説したコードを貼っておきます。
;---------------------
;Vivaldi
;---------------------
#IfWinActive,ahk_exe vivaldi.exe ;Vivaldiを起動している間だけ発動
;右Shift2回押しで左右に並べて表示
RShift:: ;右シフト
Keywait, RShift, U ;右シフトを押して離されるのを待つ
Keywait, RShift, D T0.2 ;右シフトが0.2秒の間に再び押された場合
If (ErrorLevel=1) { ;条件分岐。1つ前の操作が成功なら1、失敗なら0に分岐する
Send, {RShift} ;失敗(0)=右シフトが2回押されなかった。普通に1回だけ右シフトを入力
}
else {
Send, ^{F9} ;成功(1)=右シフトが2回押された。Ctrl+F9を入力
}
Return ;リターン。以下のコードに影響を及ぼさないために必要なコマンド
;「\」キー2回押しでタイリング解除
sc073:: ;「_」
Keywait, sc073, U ;「_」を押して離されるのを待つ
Keywait, sc073, D T0.2 ;「_」が0.2秒の間に再び押された場合
If (ErrorLevel=1) { ;条件分岐。1つ前の操作が成功なら1、失敗なら0に分岐する
Send, {sc073} ;失敗(0)=「_」が2回押されなかった。普通に1回だけ「_」を入力
}
else {
Send, ^{F6} ;成功(1)=「_」が2回押された。Ctrl+F6を入力
}
Return ;リターン。以下のコードに影響を及ぼさないために必要なコマンド
#IfWinActive ;条件分岐終了
;---------------------
;Vivaldi終了
;---------------------
CtrlやWindowsなどの修飾キーは書き方が特殊なので、以下のサイトを参考にしてみてください。
参考:【AutoHotkey】修飾キーの使い方と使用例 | オカメJP|あるドイツ在住日本語教師のブログ
参考2:【AutoHotkey】スキャンコードリスト【scコード一覧表】 | オカメJP|あるドイツ在住日本語教師のブログ
メモ帳で書き込んだ場合、忘れずにCtrl+Sか、ファイル→上書き保存をクリックします。
AHKファイルをダブルクリックで起動します。既に起動していた場合は、タスクトレイにあるの右クリック→Reload This Scriptをクリックします。
右Shift2回押しでタイリング、解除の切り替え
右Shiftを2回押す度に、動作を切り替えることも可能です。AHKの「Flag」コマンドを使います。1回目の右Shift2回押しで左右に並べてタイリング、2回目の右Shift2回押しでタイリングを解除する…といったことが可能です。
以下のコードになります。
;---------------------
;Vivaldi
;---------------------
#IfWinActive,ahk_exe vivaldi.exe
RShift:: ;右Shift
Flag += 1 ;判定用に変数に加算していく
If Flag = 1 ;1回目の時
{
;【1回目】左右に並べて表示
Keywait, RShift, U
Keywait, RShift, D T0.2
If (ErrorLevel=1) {
Send, {RShift}
}
else {
Send, ^{F9}
}
Return
}
If Flag = 2 ;2回目の時
{
;【2回目】タイリング解除
Keywait, RShift, U
Keywait, RShift, D T0.2
If (ErrorLevel=1) {
Send, {RShift}
}
else {
Send, ^{F6}
}
Return
}
Flag = ;変数を空にして1回目に戻る
Return
#IfWinActive
;---------------------
;Vivaldi終了
;---------------------
上記コードは、左右に並べて表示がCtrl+F9、タブのタイリングを解除がCtrl+F6に設定されている時のみ動作します。それ以外のキーを設定している場合は、動作しないので注意です。
感想
以上、Vivaldiのタイリング機能を、使ってない右Shift2回押しに割り当てるAutoHotkeyのコードについてでした。ただでさえ便利なVivaldiを、より便利に使い倒すことができます。
「右Shift2回じゃなくて、別のキー2回押しに設定してみたいけど、方法が分からない!」といった場合は、コメント欄にて教えていただければなと思います。僕が分かる範囲で教えます。その際、「コメントに返信があった時にメールでお知らせする」にチェックを入れていただくと、僕からの返信メールが届くようになるので、スムーズにやりとりできるかと思います。
例えば、右Ctrl2回押しにしたい場合は、本記事で紹介したコード内にある「RShift」を全て「RCtrl」に置き換えます。