VDeskを使って仮想デスクトップごとに特定のアプリケーションを起動


はじめに

新しいLogicoolのMX Ergoのマウスを買いました。

ジェスチャーとしてWindowsの仮想デスクトップ間の移動ショートカットを設定したときに
「PC起動時にいつも使うアプリケーションを仮想デスクトップごとに起動できたらいいなあ」
と思ったのでVDeskを使って実装してみました。

VDeskで一度に複数のアプリケーションを、指定した仮想デスクトップごとに起動する方法を共有します。

環境

OS:Windows10

手順

全体の流れ

1.VDeskについて
2.VDeskのインストール
3.VDeskの使い方
4.バッチファイルの作成

1. VDeskについて

VDeskは仮想デスクトップの生成やアプリケーションの起動をCUIで行うオープンソースソフトウェアです。
C#で開発されたWindows10専用ソフトです。
※仮想デスクトップ機能が確かWindows10からというのが理由だと思います。

2. VDeskのインストール

VDesk:https://github.com/eksime/VDesk
VDeskダウンロードリンク:https://github.com/eksime/VDesk/releases/

githubからVDeskのダウンロード

VDeskSetup.msiをクリックしてインストーラをダウンロードしてください。

インストーラを起動をしてVDeskをインストール

Next>を押して進んで下さい。

保存する場所を聞かれますがどこでも良いのでデフォルト設定(このまま)で次に進みましょう。

インストール完了です。

3. VDeskの使い方

インストールが終わったらコマンドプロンプトを起動してください。
・スタート>コマンドプロンプト(cmd)で検索

基本的なコマンド

基本的に使用するコマンドを3つ記載しておきます。

・新しい仮想デスクトップで引数に与えたパスのプログラムを実行します。
vdesk run:[args]

・n個の仮想デスクトップを生成します
vdesk create:[n]

・n番目のデスクトップでargsのプログラムを実行しn番目のデスクトップに移動します。
vdesk on:n noswitch:true run:[args]

具体例

仮想デスクトップを2つ生成し1つ目にChrome、2つ目にSlack、3つ目にVSCodeを起動するコマンド
VSCodeは直接パスを指定して実行しています。
実行したいアプリケーションのぱすについてはスタートメニューなどから実行したアプリケーションを右クリックすると
>その他>ファイルの場所を開く
からそのファイルが存在するフォルダへ移動できます。
その階層のフォルダ\実行ファイル名がコマンドに記載するパス名になります。

[username]には、あなたのデスクトップのログイン名を記載しましょう。
コマンドプロンプトのデフォルトのカレントディレクトリになります。

vdesk create:3
vdesk on:1 run:Chrome
vdesk on:2 run:Slack
vdesk on:3 run:"C:\Users\[username]\AppData\Local\Programs\Microsoft VS Code\Code.exe"

4. バッチファイルの作成

このままだと一括で複数のアプリケーションを起動してくれません。
そこでバッチファイルの出番です。バッチファイルに複数のコマンドを記載することで逐次処理を行ってくれます。
試しに先程の具体例出した2つのアプリケーションが起動されるか確認してみましょう。
※高確率で最後に記載している注意点に引っかかる可能性があるので、バッチファイルを作成する前に先に最後までざっと読むことを推奨します

まずは、メモ帳で何でも良いのでエディタを開いてください。
開いたらその中に

test.bat
vdesk create:3
vdesk on:1 run:Chrome
vdesk on:2 run:Slack
vdesk on:3 "C:\Users\[username]\AppData\Local\Programs\Microsoft VS Code\Code.exe"

と記載してください。上のコピペで構いません。

コマンドを記載したら新しく保存でとりあえずtest.batという名前でデスクトップ内に保存してみてください。
※メモ帳で開くと.txt形式になっているので拡張子を.batにするのを忘れないように!

デスクトップにtest.batが作成されましたか?

test.batができたらクリックして実行するか
コマンドプロンプトからデスクトップの階層に来て

test

と入力してみください。

一括で仮想デスクトップにそれぞれのアプリケーションが起動されるのを確認できたと思います。

注意点

もしかすると正しく仮想デスクトップに反映さないかもしれません。
異なる仮想デスクトップを指定しているにも関わらず同じ仮想デスクトップで起動されるような問題が起こることがあります。

その場合の原因はコマンド実行の間が少ないために、仮想デスクトップの生成->アプリケーションの実行という手順が正しくなされてない可能性があります。

解決策として各コマンドの間に1秒ほどwaitで時間をおいてあげるとうまくいきます。
n秒間待機するコマンドです。
timeout /t [n] > nul

したがって、先程のバッチファイルを以下のように書き直してください。

test.bat
vdesk create:3
vdesk on:1 run:Chrome
timeout /t 1 > nul
vdesk on:2 run:Slack
timeout /t 1 > nul
vdesk on:3 "C:\Users\[username]\AppData\Local\Programs\Microsoft VS Code\Code.exe"

これでうまくいくはずです。

 まとめ

以上、VDeskを使った仮想デスクトップ上に指定したアプリケーションを起動する方法を説明しました。

あとは、自分なりによく使うアプリケーションなどで試しながら自動化を進めていきましょう。いくつか違うパターンのバッチファイルを作っておくと、副業と本業で分けるとかプライベートと仕事で分けるとか色々作れそうですね。

仮想デスクトップとMX Ergoのショートカットは相性良いのでめっちゃおすすめです。