【お知らせ】


<2021/08/11 追記>
次のリポジトリのコマンドに Windows 11 の対応を行いました。

<2021/02/05 追記>
本ページの内容は WSL2 でも動作します。DrvFs や VolFs の記載がある場合には、Windows 側のファイルシステム、WSL2 側のファイルシステムと読み替えてください。

<2020/09/10 追記>
<2020/08/24 追記> の問題に対応する wslpath コマンドを wslpath2 コマンドとして追加しました。また、Windows ショットカットファイル(lnk ファイル)のリンク先を表示する lnkpath コマンドを追加しました。

<2020/08/24 追記>
WSL2 の wslpath は、UNC パスをマウントしているマウントポイント配下の Linux パスを UNC パスに正しく変換してくれません。(\\wsl$ で始まるパスに変換されてします。)この対策を行いました。

<2019/02/17 追記>
Windows 10 1903 では WSL がさらに使いやすくなりそうです。

<2018/04/17 追記>
WSL から直接 Cygwin の cygstart を利用する方法を次のページで紹介しています。cygstart 以外の Cygwin コマンドも利用できるなど汎用性がある方法です。お試しください。

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

<2016/10/11 追記>
本設定と似たようなものとして次のものも作成しています。singleton な動きをする cygstart 的コマンドとして動作しますので、お試しください。

<2016/10/01 追記>
wslstart は VirtualBox 上の Ubuntu からも利用できます。次の設定をお試しください。

【本題】


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

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

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

3) 次のリポジトリにある wslstart、wslcommon の2つのスクリプトをコマンドパスが通ったフォルダ(/usr/local/bin や ~/bin 等)に作成し、chmod +x wslstart することにより実行可能とする。

引数を一つしか指定できない以外は、cygstart と同様の利用方法となります。
$ cd /mnt/c/foo
$ wslstart .
$ wslstart bar.pdf

$ cd
$ wslstart /mnt/c/foo
$ wslstart /mnt/c/foo/bar.pdf

$ wslstart cmd
$ wslstart notepad
$ wslstart https://w.atwiki.jp/ntemacs
$ wslstart shell:Desktop # https://www.atmarkit.co.jp/ait/articles/1401/24/news036.html

なお、本設定は dired-open パッケージや「dired を OS と連携して使うための設定」 と連携することを目的として作成しました。WSL 上で Emacs を利用されている方はお試しください。Emacs の dired が Windows のファイラー兼ランチャーとして使えるようになると思います。

これから WSL 上 Emacs の環境を構築しようとしている場合は、次の設定を参考としてください。


<変更履歴>
  • 2016/09/15 このページを作成した。
  • 2016/09/16 スクリプトの見直しを行った。
  • 2016/09/17 DrvFs ファイルシステムへのアクセスのみをデフォルトで許可するするようにスクリプトを見なおした。
  • 2016/09/17 指定するファイル名にスペースが入っている時も正常に動作するように対応した。
  • 2016/10/08 drvfs_access_only=1 の際に lxss_path の設定等の無駄な処理が行われないように改善した。
  • 2017/05/23 Windows 10 1703 用にスクリプトの見直しを行った。
  • 2017/09/14 開くファイルが VolFs ファイルシステム上にある場合でも、そのファイルを DrvFs ファイルシステム上にあるテンポラリフォルダ配下に複写し、起動できるように対応した。
  • 2017/09/15 本コマンドから起動したアプリにフォーカスが移らないことがある場合の対策を行った。
  • 2017/09/15 空白を含むファイルのオープンに対応に対応した。
  • 2018/02/28 mount されたネットワークボリュームでもコマンドが正常に実行できるように対応した。
  • 2018/03/23 wsl コマンドの見直しにより、高速化対策を行った。
  • 2019/09/01 wslstart コマンドがスペースで終わるディレクトリ配下で動作していませんでしたので、その対策を行った。


最終更新:2021年08月12日 09:19