マクロ機能が搭載される周辺機器をコレクトしはじめた筆者は、早速Web巡回フローを実行するPowerShellファイル(PS1ファイル)をマクロキーに割り当てたいと思った。筆者のキーボードマクロにはファイルの実行を簡単に行えそうな機能が搭載されていなかったのだがエレコムの大型トラックボールマウスには、これが備わっていた。割り当て可能なボタンは8つ、ホイールの4つを入れると12という充実したマクロ機能を持つ。プロフィール機能やジェスチャー割り付け可能な上、お目当ての「ファイルを指定して実行機能」が搭載されている。スクリプトファイルを割り当てるとさらに自由度が高まる。

  • 8ボタン搭載のエレコムのマウス「M-HT1DRXBK」

  • アシスタントソフトの設定画面

スクリプトをマウスボタンに割り当てる

以前作成したPowerAutomateでのWeb巡回を自動化するためのスクリプトのループを外し、

$data = Get-Date
Write-Output $data
Start-Process -FilePath "ms-powerautomate://"

# System.Windows.Forms名前空間の読み込み
Add-Type -AssemblyName System.Windows.Forms

# 10秒スリープ
Start-Sleep 10

# キー操作で「Alt+A」と入力する
[Windows.Forms.SendKeys]::SendWait("%{a}")

設定画面からトラックボール左に位置するボタンに設定すると、その都度巡回するという仕様になる。同様にGitHub APIとPersonal access tokens (classic)が必要になるがGitHubのスター1000個以上のリポジトリの更新を200取得するPS1ファイルを作成し、

$token = "ghp_●●●●●●●●●●●●";
$apiUrl = "https://api.github.com/search/repositories?q=stars:>=1000&sort=updated&order=desc&per_page=200";
$response = Invoke-WebRequest -Uri $apiUrl -Headers @{ Authorization = "token $token"; "User-Agent" = "PowerShell" } -Method GET;
$data = $response.Content | ConvertFrom-Json;

# 結果を表示
foreach ($item in $data.items) {
    Write-Host "リポジトリ名: $($item.full_name)"
    Write-Host "スター: $($item.stargazers_count)"
    Write-Host "作成日: $($item.created_at)"
    Write-Host "説明: $($item.description)"
    Write-Host "主な使用言語・技術: $($item.language)"
    Write-Host "URL: $($item.html_url)"
    $commitsResponse = Invoke-WebRequest -Uri "https://api.github.com/repos/$($item.full_name)/commits" -Headers @{ Authorization = "token $token"; "User-Agent" = "PowerShell" } -Method GET
    $commitsData = $commitsResponse.Content | ConvertFrom-Json
    Write-Host "Updated at: $($commitsData[0].commit.committer.date)"
    Write-Host "--------------------"
};

Read-Host "Enterを押して終了";

隣にあるボタン7に設定するとPS1ファイルによる巡回系セットでまとめられる。

ほかにもAPIで取得できるものは、たくさんあるので小っちゃなスニペットをたくさん作っておいてボタンに割り当てていくのも楽しそうだ。

アドオンや拡張機能をマウスボタンに割り当てる

さて、筆者が購入したエレコムのマウス「M-HT1DRXBK」には、クリックを行う主ボタン、副ボタン以外に第三のクリックである「8」ボタンがある。ここによく使う半角/全角を割り当てようかと思ったが、他にもマクロ機能搭載のテンキーを導入してしまった筆者は、「戻る」や「進む」などのブラウザ制御の機能を搭載するマウスはWeb機能で統一したほうがいいと考えた。

夜間などの作業などや暗い環境でのモニターの凝視は疲れるものだ。背景色を黒系にするダークモードが好まれる所以であるが、ブラウザの拡張機能やアドオンにもそのような機能を持つものがある。主要ブラウザにはショートカットキー割り当ての機能があるので、これを割り当てると簡単に切り替えられる。音声リーダーや翻訳などWebブラウザ拡張機能をこの第三のクリックに割り当てるとWebブラウジングもより快適になる。

  • Firefoxアドオンの拡張機能のキーボードショートカット設定画面

  • 第三のクリックによるダークモードのオン・オフ切り替えは、なかなかのグッドチョイス

ほかにもWin+Rの「ファイル名を指定して実行」などキーでアクションを広げられるものを割り当てるなど効率性を考慮した配置も可能だ。いずれにしても自身がカスタマイズし、与えた機能をキーボードやマウスで使いこなせるようになると、考えようによってはコックピットを整備する整備士や操作するパイロットのような気分で楽しめる。"好きこそものの上手なれ" なにごとも楽しみながらやると良さそうだ。