forked from colonelpanic/dotfiles
[Emacs] Add windows toast support to alert.el
This commit is contained in:
17
dotfiles/lib/bin/windows-toast.ps1
Executable file
17
dotfiles/lib/bin/windows-toast.ps1
Executable file
@@ -0,0 +1,17 @@
|
||||
param($Title)
|
||||
$ErrorActionPreference = "Stop"
|
||||
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
|
||||
$Template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)
|
||||
|
||||
$RawXml = [xml] $Template.GetXml()
|
||||
($RawXml.toast.visual.binding.text | Where-Object { $_.id -eq "1" }).AppendChild($RawXml.CreateTextNode($Title)) > $null
|
||||
($RawXml.toast.visual.binding.text | Where-Object { $_.id -eq "2" }).AppendChild($RawXml.CreateTextNode($args[0])) > $null
|
||||
|
||||
$SerializedXml = New-Object Windows.Data.Xml.Dom.XmlDocument
|
||||
$SerializedXml.LoadXml($RawXml.OuterXml)
|
||||
|
||||
$Toast = [Windows.UI.Notifications.ToastNotification]::new($SerializedXml)
|
||||
$Toast.ExpirationTime = [DateTimeOffset]::Now.AddMinutes(30)
|
||||
|
||||
$Notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("Emacs")
|
||||
$Notifier.Show($Toast);
|
7
dotfiles/lib/functions/windows_toast
Executable file
7
dotfiles/lib/functions/windows_toast
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
function windows_toast {
|
||||
powershell.exe -File ~/dotfiles/dotfiles/lib/bin/windows-toast.ps1 -Title "$@" 2>/dev/null
|
||||
}
|
||||
|
||||
windows_toast "$@"
|
Reference in New Issue
Block a user