<-- back

notify-send replacement for WSL

Hi,

Unfortunately there is no way currently to make brilliant notify-send work on WSL.

Solution

The workaround is to install BurntToast which is powershell module (or command) that allows you to show native notifications. After it’s installed we can write a script that can execute PowerShell “cmdlet” from within WSL.

Details

So when BurntToast is installed let’s create a super simple bash script (name it like wsl-notify)

#!/usr/bin/env -bash

powershell.exe "New-BurntToastNotification -Text \"$1\""

Give our wsl-notify execution rights (with chmod +x wsl-notify) and move it to /usr/bin folder with mv wsl-notify /usr/bin/

That’s it, now we can call wsl-notify 'The Notification Text' and we will get native notification in Windows. Make sure to wrap all the text into single or double quotes to make all the text to be considered as a first argument to our wsl-notify script.

Troubleshooting

When BurntToast is installed you have to make sure it works, just fire up your PowerShell and type New-BurntToastNotification.

If you see error saying something about import module, then you have to import the module. Just type Import-Module BurntToast.

In case you’ve got error during the import process, it’s probably because third-party scripts execution is not allowed on your system which can be fix with this command:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - (checkout more about it here)