【お知らせ】


<2018/09/11 追記>
sglstart を使っている場合、内部から呼ばれている winactivate.exe コマンドを更新してください。emacs のタイトルの影響によるウィンドウのアクティベートの誤動作が解消されます。

<2018/01/24 追記>
この設定の Cygwin版 もあります。お試しください。

<2017/09/19 追記>
VolFs ファイルシステム上にあるファイルを起動した際に作成される作業フォルダの消去を支援する機能を追加しました。詳しくは、sglstart コマンドからコールされている wslstart コマンドの初めにあるコメントを参照してください。

<2017/09/15 追記>
本設定で紹介しているコマンドは以下の設定と一緒に使うことを想定しています。Windows 上のドキュメントファイルを emacs の dired から開くことができ、開いたファイルの操作を emacs のキーバインドで行うことができるようになるため、OS 全体を emacs で操作している感覚となります。本設定と併せ、お試しください。

<2017/09/15 追記>
本コマンドから起動したアプリにフォーカスが移らないことがある場合の対策を行いました。本コマンドは「dired を OS と連携して使うための設定」で使うことを目的として作成したものなので、起動したアプリにフォーカスが移らないとマウスの操作が必要となり、とても不便な状況でした。この問題が解決されました。

<2017/09/14 追記>
開くファイルが VolFs ファイルシステム上にある場合でも、そのファイルを DrvFs ファイルシステム上にある TEMP フォルダ配下に複写し、起動できるように対応しました。ただし、VolFs ファイルシステム上にあるフォルダはこれまでどおり開くことはできません。

【本題】


Windows Subsystem for Linux で singleton な動きをする cygstart 的コマンドを使うための設定です。

本コマンドを作成した目的は、「singleton な動きをする cygstart 的コマンドを使うための設定 (Cygwin版)」内の説明を参照ください。この設定の Windows Subsystem for Linux 版 が本コマンドとなります。

1) Windows 10 1803 以降をインストールする。

2) Windows Subsystem for Linux を有効にし、Ubuntu 等の Linux をインストールする。

3) 以下に従い、wslstart コマンドをインストールする。

4) 以下にある sglstart というスクリプトを wslstart をインストールしたパスと同じ場所に格納する。

5) 以下にある winactivate.exe というコマンドを DrvFs ファイルシステム上のフォルダに格納し、そのフォルダもしくはそのフォルダへのシンボリックリンクにコマンドパスを通す。

※ ~/bin を DrvFs ファイルシステム上のフォルダへのシンボリックリンクとして作成してコマンドパスを通せば、Windows のコマンド(exe)と Linux のコマンドを混在して格納することができるようになり、シンプルな構成になるかと思います。

6) コマンドの動作の精度を高めるため、以下に従い「ファイル名の拡張子を表示する」設定を行う。

※ 設定を行わなくてもコマンドは動作しますが、suffix だけが異なる名前をもつ複数のファイルを開いている際などの動作精度が高まりますので、設定することをお薦めします。

7) WSL 上で sglstart <filename> を複数回実行し、singleton な動きをする cygstart 的コマンドとして機能することを確認する。


なお、本設定は emacs の dired-open パッケージや「dired を OS と連携して使うための設定」 と連携することを目的として作成しました。emacs の dired と連携しなければ利用場面が限られ、あまり有効な設定ではないかもしれません。


<変更履歴>
  • 2016/09/21 このページを作成した。
  • 2016/10/08 drvfs_access_only=1 の際に lxss_path の設定等の無駄な処理が行われないように改善した。
  • 2017/05/23 Windows 10 Creators Update 用にスクリプトの見直しを行った。
  • 2017/09/14 開くファイルが VolFs ファイルシステム上にある場合でも、そのファイルを DrvFs ファイルシステム上にあるテンポラリフォルダ配下に複写し、起動できるように対応した。
  • 2017/09/15 本コマンドから起動したアプリにフォーカスが移らないことがある場合の対策を行った。
  • 2017/09/15 空白を含むファイルのオープンに対応した。
  • 2017/09/16 ウィンドウをポップアップする判定条件を見直した。
  • 2017/11/24 ウィンドウをアクティベートする方法を AutoHotKey を使った方法に見直した。
  • 2018/02/28 mount されたネットワークボリュームでもコマンドが正常に実行できるように対応した。
  • 2018/03/23 wsl コマンドの見直しにより、高速化対策を行った。