aboutsummaryrefslogtreecommitdiff
path: root/misc/.local/share/applications/emacsclient-mail.desktop
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-08-21 16:56:02 +1000
committerYuchen Pei <id@ypei.org>2023-08-21 16:56:02 +1000
commit2f4b5e011c4345e18a8ad6a9ea968f62e66e08d8 (patch)
treefa5208012c0d394df89265345ecc812c8b682b27 /misc/.local/share/applications/emacsclient-mail.desktop
parentffea78e98b6a9c494c0a52f59e6ad1678a6dc445 (diff)
Adding xdg desktop entries and mimeapp.list
Diffstat (limited to 'misc/.local/share/applications/emacsclient-mail.desktop')
-rw-r--r--misc/.local/share/applications/emacsclient-mail.desktop23
1 files changed, 23 insertions, 0 deletions
diff --git a/misc/.local/share/applications/emacsclient-mail.desktop b/misc/.local/share/applications/emacsclient-mail.desktop
new file mode 100644
index 0000000..12a0100
--- /dev/null
+++ b/misc/.local/share/applications/emacsclient-mail.desktop
@@ -0,0 +1,23 @@
+[Desktop Entry]
+Categories=Network;Email;
+Comment=GNU Emacs is an extensible, customizable text editor - and more
+# We want to pass the following commands to the shell wrapper:
+# u=$(echo "$1" | sed 's/[\"]/\\&/g'); exec emacsclient --alternate-editor= --display="$DISPLAY" --eval "(message-mailto \"$u\")"
+# Special chars '"', '$', and '\' must be escaped as '\\"', '\\$', and '\\\\'.
+Exec=sh -c "u=\\$(echo \\"\\$1\\" | sed 's/[\\\\\\"]/\\\\\\\\&/g'); exec /usr/bin/emacsclient --alternate-editor= --create-frame --eval \\"(message-mailto \\\\\\"\\$u\\\\\\")\\"" sh %u
+Icon=emacs
+Name=Emacs (Mail, Client)
+MimeType=x-scheme-handler/mailto;
+NoDisplay=true
+Terminal=false
+Type=Application
+Keywords=emacsclient;
+Actions=new-window;new-instance;
+
+[Desktop Action new-window]
+Name=New Window
+Exec=sh -c "u=\\$(echo \\"\\$1\\" | sed 's/[\\\\\\"]/\\\\\\\\&/g'); exec /usr/bin/emacsclient --alternate-editor= --create-frame --eval \\"(message-mailto \\\\\\"\\$u\\\\\\")\\"" sh %u
+
+[Desktop Action new-instance]
+Name=New Instance
+Exec=emacs -f message-mailto %u