Utility for opening files within the Windows Subsystem for Linux command line in Windows GUI applications.
Just run wsl-open with the file/directory/URL that you want to open.
wsl-open { FILE | DIRECTORY | URL }
FILE
paths can be relative or absoluteDIRECTORY
paths are the same, with a possible limitation*URL
s must include the protocol (http://
,https://
,ftp://
, etc) or begin withwww
, which is consistent with howxdg-open
handles URLs
*If using a WSL build without the
wslpath
(prior to Build 1803 - released April 2018), only Windows directories can be opened
# Opens in your Windows default image viewer
wsl-open image.png
# Relative and absolute paths work
wsl-open ../Downloads/resume.pdf
wsl-open /home/other/README.txt
# Directories under Windows
wsl-open /mnt/c/Users/4u6u5/Music
# Opens your Windows default browser
wsl-open http://google.com
The real benefit of wsl-open is setting it as the default program in the
Windows Subsystem for a particular filetype. This allow you to use Linux's
standard xdg-open
utility to open files, and wsl-open will handle the rest!
This keeps your scripts platform agnostic.
# Set association for file type
wsl-open -a image.png
# Now, you can open up any PNG with xdg-open, and wsl-open will handle it
xdg-open another_image.png
# Unassociate wsl-open with a file type
wsl-open -d image.png
# Associate wsl-open with links (set wsl-open as your shell's BROWSER)
wsl-open -w
# Now URL's work as well!
xdg-open https://gitlab.com/4U6U57/wsl-open
# And this allows other programs that depend on xdg-open to use it as well!
npm repo wsl-open # Same as the previous command
Protip: I like to furthur generalize my scripts by setting
alias open='xdg-open'
on my Linux machines, which make them behave more like macOS
For full details on how the script operates, feel free to check out the manpage or design specification
The easiest way to get it is to use the Node Package Manager and install it globally.
# Get npm if you don't have it already
sudo apt-get install -yqq npm
# Install
sudo npm install -g wsl-open
wsl-open is actually just a single, self contained bash script, so the bare
minimum installation is simply downloading the script (either by cloning the
repo or via curl
) and then adding it to your path. Here is an example:
# Make a bin folder in your home directory
mkdir ~/bin
# Add the bin folder to your PATH in your bashrc
echo '[[ -e ~/bin ]] && export PATH=$PATH:~/bin' >> ~/.bashrc
# Download the script to a file named 'wsl-open'
curl -o ~/bin/wsl-open https://raw.githubusercontent.com/4U6U57/wsl-open/master/wsl-open.sh