view unixSoft/bin/em.sh @ 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 c30d68fbd368
children
line wrap: on
line source

#!/usr/bin/env bash

# desc:
#     Allows stdin to be 'piped' to an emacs server.
#
# options:
#     none
#
# usage:
#     $ echo "hello there" | emacsclientw.sh
#     $ cat ~/.emacs | emacsclientw.sh
#     $ emacsclientw.sh ~/.emacs
#
# author:
#     Phil Jackson (phil@shellarchive.co.uk)

unset DISPLAY

tmp_file="$(mktemp /tmp/emacs.tmp.XXXXX)"
lisp_to_accept_file="(~/unixSoft/emacs/fake-stdin-slurp.el \"${tmp_file}\")"

if [ ! -t 0  ]; then
    cat > "${tmp_file}"

    emacsclient -a emacs -e "${lisp_to_accept_file}" ${@}

    if [ ${?} -ne 0 ]; then
        echo "failed: your input was saved in '${tmp_file}'"
    else
        rm -f "${tmp_file}"
    fi
else
    # nothing from stdin
    emacsclient -n -a emacs ${@}
fi