notify-send replacement for WSL
January 13, 2019
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)
Feel free to contact me for feedback or questions. Find my contacts on About page.