X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacstips.mdwn;h=91c1cb0938abadad6f1727f69009f57a05b365af;hb=3400946503bcb3831dd0230c97f7a732763b3db1;hp=24ed641be39b9b0375a2957b5f7c14ba27349799;hpb=d8ec2b443ec10acda34c096650317947e2de65c1;p=notmuch-wiki diff --git a/emacstips.mdwn b/emacstips.mdwn index 24ed641..91c1cb0 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -218,7 +218,7 @@ displaying the count for the saved-search. For example (setq notmuch-saved-searches '((:name "inbox" :query "tag:inbox" :count-query "tag:inbox and tag:unread" - :sort-order 'oldest-first))) + :sort-order oldest-first))) specifies a single saved search for inbox, but the number displayed by the search will be the number of unread messages in the inbox, and the @@ -300,7 +300,7 @@ available: git clone https://github.com/aperezdc/notmuch-addrlookup-c cd notmuch-addrlookup-c make - + * The vala-based [addrlookup](http://github.com/spaetz/vala-notmuch) The addrlookup binary needs to be compiled. Grab @@ -318,7 +318,7 @@ available: from notmuch. It also includes a vim plugin. You can perform tab-completion using any of these programs. -Just add the following to your [notmuch init file](#notmuch_init_file): +Just add the following to your [notmuch init file](/notmuch-emacs#notmuch_init_file): (require 'notmuch-address) (setq notmuch-address-command "/path/to/address_fetching_program") @@ -352,7 +352,7 @@ Enter the cloned repository and create a build directory: You will find the akonadimailsearch binary in the build/src directory. Copy it to ~/bin . You can now add the following settings to your -[notmuch init file](#notmuch_init_file): +[notmuch init file](/notmuch-emacs#notmuch_init_file): (require 'notmuch-address) (setq notmuch-address-command "~/bin/akonadimailsearch") @@ -401,6 +401,9 @@ part. installed, it will shadow the fixed version of easypg included with emacs. +- If you wish `mml-secure-encrypt` to encrypt also for the sender, then + `M-x customize-variable mml2015-encrypt-to-self` might suit your need. + ## Reading and verifying encrypted and signed messages Encrypted and signed mime messages can be read and verified with: @@ -481,7 +484,7 @@ See also the **Usage:** section in `gnus-alias.el`. ## Resending (or bouncing) messages -Add the following to your [notmuch init file](#notmuch_init_file) to be able +Add the following to your [notmuch init file](/notmuch-emacs#notmuch_init_file) to be able to resend the current message in show mode. (define-key notmuch-show-mode-map "b" @@ -493,7 +496,7 @@ to resend the current message in show mode. ## `notmuch-hello` refresh status message -Add the following to your [notmuch init file](#notmuch_init_file) to get a +Add the following to your [notmuch init file](/notmuch-emacs#notmuch_init_file) to get a status message about the change in the number of messages in the mail store when refreshing the `notmuch-hello` buffer. @@ -523,7 +526,7 @@ when refreshing the `notmuch-hello` buffer. Mailman mailing list software rewrites and rewraps long message subjects in a way that causes TABs to appear in the middle of the subject and header -lines. Add this to your [notmuch init file](#notmuch_init_file) to replace +lines. Add this to your [notmuch init file](/notmuch-emacs#notmuch_init_file) to replace tabs with spaces in subject lines: (defun notmuch-show-subject-tabs-to-spaces () @@ -643,3 +646,65 @@ refine, next hunk etc all work. and then this function needs to bound into the keymap with something like (define-key 'notmuch-show-mode-map "D" 'my-notmuch-show-view-as-patch) + +## Interfacing with Patchwork + +[Patchwork](http://jk.ozlabs.org/projects/patchwork/) is a web-based system for +tracking patches sent to a mailing list. While the Notmuch project doesn't use +it, many other open source projects do. Having an easy way to get from a patch +email in your favorite mail client to the web page of the patch in the Patchwork +instance is a cool thing to have. Here's how to abuse the notmuch stash feature +to achieve this. (Don't know stash? See `notmuch-show-stash-mlarchive-link`, +bound to `c l` in `notmuch-show`.) + +The trick needed is turning the email Message-ID into a unique Patchwork ID +assigned by Patchwork. We'll use the `pwclient` command-line tool to achieve +this. You'll first need to get that working and configured for the Patchwork +instance you're using. That part is beyond this tip here; please refer to +Patchwork documentation. + +Check your configuration on the command-line, for example: + + /path/to/pwclient -p -n 5 -f "%{id}" + +Note that the -f format argument may require a reasonably new version of the +client. Once you have the above working, you can `M-x customize-variable RET +notmuch-show-stash-mlarchive-link-alist RET`. + +Add a new entry with "Function returning the URL:" set to: + + (lambda (message-id) + (concat "http://patchwork.example.com/patch/" + (nth 0 + (process-lines "/path/to/pwclient" "search" + "-p" "the-project" + "-m" (concat "<" message-id ">") + "-n" "1" + "-f" "%{id}")))) + +Replacing `http://patchwork.example.com/patch/`, `/path/to/pwclient`, and +`the-project` appropiately. You should now be able to stash the Patchwork URL +using `c l`. + +Going further, if the patch has been committed, you can get the commit hash with +this: + + (lambda (message-id) + (nth 0 + (process-lines "/path/to/pwclient" "search" + "-p" "the-project" + "-m" (concat "<" message-id ">") + "-n" "1" + "-f" "%{commit_ref}"))) + +And finally, if the project has a web interface to its source repository, you +can turn the commit hash into a URL pointing there, for example: + + (lambda (message-id) + (concat "http://cgit.example.com/the-project/commit/?id=" + (nth 0 + (process-lines "/path/to/pwclient" "search" + "-p" "the-project" + "-m" (concat "<" message-id ">") + "-n" "1" + "-f" "%{commit_ref}"))))