【Vivaldi】AHKを使ってタイリングを右Shift2回押しに割り当てる方法

2021年10月28日AutoHotkey

Vivaldiのアイコン

この記事では、Vivaldiの独自機能「ページのタイリング」を、右Shift2回に割り当てる方法について書きます。

キーに別の機能を割り当てるWindowsソフト「AutoHotkey」を使うことで、自由に設定できます。

【Vivaldi】AHKを使ってタイリングを右Shift2回押しに割り当てる方法

キーに別の機能を割り当てるWindowsのフリーソフト「AutoHotkey」を使うことで、ウェブブラウザVivaldiの独自機能であるページのタイリングを、好きなキー2回押しに割り当てることができます。

Vivaldi側でキーを変更することは可能ですが、同じキー2回押しといった高度な設定はできません。あくまで単一キー、複数キーの組み合わせのみです。AutoHotkey(以下、略してAHK)を使うことで、好きなキーに割り当てられます。左右、上下、タイリング解除のキーを別々に設定できます。

本記事は、Windows10、またはWindows11をお使いの方で、なおかつVivaldiブラウザを利用している方向けです。MacではAHKがリリースされていないので注意です。

皆さん、Vivaldiのページのタイリング機能って使ってますか?僕はしょっちゅう利用しています。

同一タブ内で、2つ以上のページを並べて表示する機能です。1つのウィンドウでサクッとページを比較して閲覧できる、とても便利な機能です。Vivaldiを使ったら、ぜひとも触ってみたい機能の1つです。並べたいページを新しいウィンドウで開いて、上手に並べる~といった手間が省けます。

デフォルトだと、ショートカットキーが以下のように割り当てられています。

アクションショートカットキー
左右に並べて表示CtrlF9
上下に並べて表示CtrlF8
タイル状に並べて表示CtrlF7
タブのタイリングを解除CtrlF6

微妙に押すのがめんどくさい配置です。片手だと無理です。どうしても両手を使わないといけないので、右手でマウスを持ちながら、左手でサクッとタイリング…といった使い方ができません。

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側で設定しているタイリング関連のショートカットキーを変更していないことが前提です。

例えば、「左右に並べて表示」はデフォルトだとCtrlF9です。このキーを、別のキーに変更している場合は、上記コードは発動しません。Vivaldi側で元のCtrlF9に戻すか、AutoHotkey側で変更後のキーを指定する必要があります。

Vivaldi設定:キーボード デフォルトのタイリング関連のショートカットキーは変更しない

AutoHotkeyはあくまでキーに別のキーを割り当てるソフトなので、元々のキー(CtrlF9)があってこそです。右Shiftを2回押した時に、CtrlF9を押したことにする=Vivaldiのタイリングが発動するという仕組みになっています。

上記コードを丸々コピペして、AHKファイルに書き込みます。Windows標準のメモ帳、Microsoftが提供しているVisual Studio Codeなどを使いましょう。

Vivaldiのタイリング機能を、右Shift2回押しに割り当てるAutoHotkeyコード 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終了
;---------------------

CtrlWindowsなどの修飾キーは書き方が特殊なので、以下のサイトを参考にしてみてください。

参考:【AutoHotkey】修飾キーの使い方と使用例 | オカメJP|あるドイツ在住日本語教師のブログ
参考2:【AutoHotkey】スキャンコードリスト【scコード一覧表】 | オカメJP|あるドイツ在住日本語教師のブログ

メモ帳で書き込んだ場合、忘れずにCtrlSか、ファイル→上書き保存をクリックします。

メモ帳で書き込んだ場合は、ファイル→上書き保存をクリック

AHKファイルをダブルクリックで起動します。既に起動していた場合は、タスクトレイにあるAutoHotkeyのアイコンの右クリック→Reload This Scriptをクリックします。

タスクトレイのAutoHotkeyアイコンの右クリック 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終了
;---------------------
ポイント

上記コードは、左右に並べて表示がCtrlF9、タブのタイリングを解除がCtrlF6に設定されている時のみ動作します。それ以外のキーを設定している場合は、動作しないので注意です。

Vivaldi設定:キーボード デフォルトのタイリング関連のショートカットキーは変更しない

感想

以上、Vivaldiのタイリング機能を、使ってない右Shift2回押しに割り当てるAutoHotkeyのコードについてでした。ただでさえ便利なVivaldiを、より便利に使い倒すことができます。

右Shift2回じゃなくて、別のキー2回押しに設定してみたいけど、方法が分からない!」といった場合は、コメント欄にて教えていただければなと思います。僕が分かる範囲で教えます。その際、「コメントに返信があった時にメールでお知らせする」にチェックを入れていただくと、僕からの返信メールが届くようになるので、スムーズにやりとりできるかと思います。

例えば、右Ctrl2回押しにしたい場合は、本記事で紹介したコード内にある「RShift」を全て「RCtrl」に置き換えます。

Posted by ナポリタン寿司