Why didn't I think of that?
This is one of those solutions where you look at it and think "Why didn't I think of that?". Unfortunately I had to look at many websites with wrong suggestions or over-kill such as "how to use regedit to run shortcut as admin".
Having the right parameters
Right click on your Windows 10 desktop and setup your shortcut to look like this:

The full line for the Target
field should look like this:
C:\Windows\System32\bash.exe -c "cd && DISPLAY=:0 /mnt/e/bin/lock-screen-timer"
NOTE: Most users will use /mnt/c/....
as their path but I'm dual-booting and the same script is shared by WSL and Ubuntu 16.04 so must be on a separate NTFS partition I've called /mnt/e
. WSL cannot write to a Linux ext4
drive and Linux nor Windows Apps can write to a WSL sub-directory. It's complicated...
Also note the DISPLAY=:0
parameter accommodates calling a bash GUI script but the same is likely true if calling gedit
or nautilus
which are my next desktop shortcut projects. If not, I'll revise this answer..
Click the Change Icon
button to get a default list of icons to choose from. This is where the clock icon came from.
wsl.exe
instead ofbash.exe
. The former respects your configured default shell, etc. whereas the latter does not. – Rich Turner Apr 27 '18 at 18:45wsl.exe
going forward (after I reinstall over the broken 16.04). – WinEunuuchs2Unix Oct 24 '18 at 00:34C:\Windows\System32\wsl.exe -c ls
I get/bin/bash: - : invalid option
. It seemswsl.exe
doesn't grok-c
? – Fuhrmanator Feb 28 '19 at 12:35