-# Go to the first folder with unread messages
-macro index,pager C <Enter><exit><Home><change-folder><Enter>
-
-# Move current message to inbox
-macro index,pager S <save-message>!<Enter>
-
-macro index,pager <Esc>h ":auto_view text/html<Enter>"
-macro index,pager <Esc>H ":unauto_view text/html<Enter>"
-
-# Pipe spam
-macro index,pager <Esc>s <Enter><exit> \
- "<pipe-message>spamassassin -d | ~/mail/bin/spamcop.py<Enter> \
- <next-undeleted>"
-macro index,pager <Esc>z \
- "<Enter><exit>:set editor='vim -s ~/mail/misc/spamcop.vim'<Enter> \
- r:set editor=vim.sh<Enter><exit><next-undeleted>"
-
-# Go to main mailboxes
-macro index,pager H <Enter><exit><Home><change-folder>!<Enter>
-macro index,pager <Esc>m <Enter><exit><Home><change-folder>=sent-mail<Enter>
+# KP_Enter -> Enter
+#macro generic,pager,editor <F79> <Enter>
+# KP_Home -> Home
+macro generic,pager,editor <F84> <Home>
+# KP_Up -> Up
+macro generic,pager,editor \x20b <Up>
+# KP_Next -> PageUp
+macro generic,pager,editor <F85> <PageUp>
+# KP_Left -> Left
+macro generic,pager,editor \x20c <Left>
+# KP_Right -> Right
+macro generic,pager,editor \x20d <Right>
+# KP_End -> End
+macro generic,pager,editor <F87> <End>
+# KP_Down -> Down
+macro generic,pager,editor \x20e <Down>
+# KP_Prev -> PageDown
+macro generic,pager,editor <F88> <PageDown>
+
+macro index C \
+ <Home><change-folder><Enter> \
+ "Go to the first folder with unread messages"
+macro pager,attach C \
+ <exit><Home><change-folder><Enter> \
+ "Go to the first folder with unread messages"
+
+macro index,pager S \
+ <save-message>!<Enter> \
+ "Move current message to inbox"
+
+macro index,pager <Esc>h \
+ ":auto_view text/html<Enter>" \
+ "View HTML attachments"
+macro index,pager <Esc>H \
+ ":unauto_view text/html<Enter>" \
+ "Don't show HTML attachments"
+
+macro index <Esc>s \
+ "<pipe-message>spamassassin -d | ~/mail/bin/spamcop.py<Enter><next-undeleted>" \
+ "Send spam to SpamCop"
+macro pager <Esc>s \
+ "<exit><pipe-message>spamassassin -d | ~/mail/bin/spamcop.py<Enter><next-undeleted>" \
+ "Send spam to SpamCop"
+macro index <Esc>z \
+ ":set editor='vim -s ~/mail/misc/spamcop.vim'<Enter><reply>:set editor=vim.sh<Enter><exit>n" \
+ "Process message from SpamCop"
+macro pager <Esc>z \
+ "<exit>:set editor='vim -s ~/mail/misc/spamcop.vim'<Enter><reply>:set editor=vim.sh<Enter><exit>n" \
+ "Process message from SpamCop"
+
+macro index H \
+ <Home><change-folder>!<Enter> \
+ "Go to inbox"
+macro pager,attach H \
+ <exit><Home><change-folder>!<Enter> \
+ "Go to inbox"
+macro index M \
+ <Home><change-folder>=sent-mail<Enter> \
+ "Go to sent-mail"
+macro pager,attach M \
+ <exit><Home><change-folder>=sent-mail<Enter> \
+ "Go to sent-mail"
+
+macro attach V "<pipe-message>webstdin<Enter>" \
+ "View html attachment in a web browser"