Mercurial > dotfiles
view unixSoft/bin/hg-email-reply-selected-flags @ 266:93a8f55a4e30
xmonad: add takeTopFocus logHook
This is required to make IntelliJ (and supposedly all other Swing
applications) properly notice that they've recieved the
focus. According to [0], the problem is that "xmonad does not follow
ICCCM and ignores WM_TAKE_FOCUS protocol", but the patches on that
ticket haven't yet been accepted, so the function was added to
xmonad-contrib as a workaround until something happens in xmonad
proper.
[0]: http://code.google.com/p/xmonad/issues/detail?id=177
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Wed, 02 Nov 2011 09:53:57 -0500 |
parents | 678ed4e870f1 |
children |
line wrap: on
line source
#!/usr/bin/python # shebang for system python explicitly so we're sure to have pyobjc and # the scripting bridge. """apply-patchbomb: apply selected messages in Mail.app to an hg repo in pwd. This uses the scripting bridge to talk to Mail and subprocess to pass the patch to Mercurial on stdin. """ import cStringIO import email import optparse import subprocess import sys import ScriptingBridge # TODO: use a real shell escape shell_escape = repr def main(argv=sys.argv): p = optparse.OptionParser() p.add_option('--from', '-f', dest='from_', help='From address to use for the message.') options, args = p.parse_args(argv) assert options.from_ mail = ScriptingBridge.SBApplication.applicationWithBundleIdentifier_( 'com.apple.Mail') messages = list(sorted(mail.selection(), cmp=lambda x,y: cmp(x.subject(), y.subject()))) data = str(messages[0].source()) m = email.message_from_string(data) msgid = m['Message-ID'] to = m['To'] cc = m['CC'] from_ = m['From'] response_addrs = from_.split(',') + cc.split(',') + to.split(',') response_addrs = [a for a in response_addrs if options.from_ not in a] print '--in-reply-to', shell_escape(msgid), print '--to', shell_escape(response_addrs[0]), if len(response_addrs) > 1: print '--cc', shell_escape(', '.join(response_addrs[1:])), print '--from', shell_escape(options.from_) if __name__ == '__main__': sys.exit(main())