summaryrefslogtreecommitdiff
path: root/dotfiles/system/.profile.d/emacs.sh
blob: c70d9286ef31a3a0c29dd380c1f8b5397d3300cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh

# emacs.sh
# Craig Jennings <c@cjennings.net>
# Emacs specific settings, sourced by .profile

### INFO FILES
export INFOPATH="$HOME/.config/emacs/info:/usr/share/info:/usr/local/share/info"

### WORKAROUND
# https://unix.stackexchange.com/questions/230238/x-applications-warn-couldnt-connect-to-accessibility-bus-on-stderr
# emacs/gtk interaction bug workaround
export NO_AT_BRIDGE=1

# WAKE UTILITY
# useful when emacs or elisp doesn't timeout. 
alias emacswake='for i in `seq 1 500`; do killall -s USR2 emacs; done'  # wake emacs from a freeze

### VTERM 
# Vterm uses some features (e.g., directory-tracking and prompt-tracking or message passing) that require shell-side configurations.
# This functions enables the shell to send information to vterm via properly escaped sequences.

vterm_printf(){
    if [ -n "$TMUX" ] && ([ "${TERM%%-*}" = "tmux" ] || [ "${TERM%%-*}" = "screen" ] ); then
        # Tell tmux to pass the escape sequences through
        printf "\ePtmux;\e\e]%s\007\e\\" "$1"
    elif [ "${TERM%%-*}" = "screen" ]; then
        # GNU screen (screen, screen-256color, screen-256color-bce)
        printf "\eP\e]%s\007\e\\" "$1"
    else
        printf "\e]%s\e\\" "$1"
    fi
}