]> git.phdru.name Git - dotfiles.git/blob - .shellrc
.shellrc: Unset `$MAILCHECK` in non-login shells
[dotfiles.git] / .shellrc
1 #
2 # $HOME/.shellrc
3 #
4
5 # If not running interactively, don't do anything
6 case $- in
7     *i*) ;;
8       *) return ;;
9 esac
10
11 # Stop if non-interactive shell
12 [ -z "$PS1" ] && return
13
14 #if [ -x /usr/bin/dircolors ]; then
15 #   # I don't like these aliases - they work only in command line
16 #   # but not in scripts I run from command line.
17 #   # Color parameters must be passed via environment.
18 #   # So instead I put them in shell scripts in ~/bin.
19 #   alias ls='ls --color=auto'
20 #   alias dir='dir --color=auto'
21 #   alias vdir='vdir --color=auto'
22 #
23 #   alias grep='grep --color=auto'
24 #   alias fgrep='fgrep --color=auto'
25 #   alias egrep='egrep --color=auto'
26 #
27 #   alias dmesg='dmesg --human'
28 #fi
29
30
31 case "$HOME" in
32     /home/*)
33         if [ -L /home ]; then
34             START_DIR="`pwd`" &&
35             cd "$HOME" &&
36             HOME="`pwd`" &&
37             cd "$START_DIR"
38         fi
39     ;;
40 esac
41
42 if test -n "$KSH_VERSION" -o -n "$FCEDIT"; then
43     back() { cd - "$@"; }
44     j() { jobs; }
45 fi
46
47 # clear screen and history, logout
48 chlo() { clear; cd; >$HISTFILE; unset HISTFILE; history -c; logout || exit; }
49
50 if [ -n "$STY" -a "$WINDOW" != 0 ]; then
51     #unset MAILCHECK everywhere except for the 1st GNU screen window
52     unset MAILCHECK
53 fi
54
55 include() {
56     cfg="$1"
57     shift
58     if [ -f "./$cfg" -a -r "./$cfg" ]; then
59         echo "Reading config file \`$cfg'" 1>&2
60         . "./$cfg" "$@"
61     elif [ -f "$HOME/lib/config/$cfg" -a -r "$HOME/lib/config/$cfg" ]; then
62         echo "Reading config file \`$HOME/lib/config/$cfg'" 1>&2
63         . "$HOME/lib/config/$cfg" "$@"
64     else
65         echo "Cannot find config file \`$cfg'" 1>&2
66     fi
67 }
68
69
70 [ "`type -t mc`" = alias ] && unalias mc
71 mc() {
72     if [ -n "$SLOWTERM" ]; then
73         MC_SLOW="--slow"
74     fi
75
76     case "$TERM" in
77         screen*) # screen, screen.rxvt
78             MC_XTERM="-x"
79         ;;
80     esac
81
82     #TMPDIR="$HOME"/tmp
83     #export TMPDIR
84
85     MC_FOUND=NO
86
87     for wrapper in \
88             /usr/local/share/mc/bin/mc-wrapper.sh \
89             /usr/local/libexec/mc/mc-wrapper.sh \
90             /usr/share/mc/bin/mc-wrapper.sh; do
91         if [ -r $wrapper ]; then
92             . $wrapper $MC_SLOW $MC_XTERM "$@"
93             rc=$?
94             MC_FOUND=YES
95             break
96         fi
97     done
98
99     if [ $MC_FOUND = NO ]; then
100         for mc in /usr/local/bin/mc /usr/bin/mc; do
101             if [ -x $mc ]; then
102                 MC_TMP_DIR="${TMPDIR-/tmp}/mc-$USER"
103                 if [ ! -d MC_TMP_DIR="${TMPDIR-/tmp}/mc-$USER" ]; then
104                     MC_TMP_DIR="${TMPDIR-/tmp}"
105                 fi
106                 MC_PWD_FILE="$MC_TMP_DIR/mc.pwd.$$"
107                 mc_type="`mc_type.py $mc`"
108                 if [ "$mc_type" = old ]; then
109                     $mc -P $MC_SLOW $MC_XTERM "$@" > "$MC_PWD_FILE"
110                 elif [ "$mc_type" = new ]; then
111                     $mc -P "$MC_PWD_FILE" $MC_SLOW $MC_XTERM "$@"
112                 else
113                     continue
114                 fi
115                 rc=$?
116                 MC_FOUND=YES
117                 cd "`cat \"$MC_PWD_FILE\"`" && /bin/rm "$MC_PWD_FILE"
118                 break
119             fi
120         done
121     fi
122
123     if [ $MC_FOUND = NO ]; then
124         echo "Cannot find mc-wrapper.sh or mc" >&2
125         rc=1
126     fi
127
128     unset MC_FOUND MC_PWD_FILE MC_SLOW MC_TMP_DIR MC_XTERM
129
130     return $rc
131 }
132
133
134 mkcd() {
135     if [ $# -ne 1 ]; then
136         echo "Usage: mkcd directory_name" >&2
137     elif [ -d "$1" ]; then
138         cd "$1"
139     elif [ -e "$1" ]; then
140         echo "Error: $1 is a file" >&2
141     else
142         mkdir -p "$1" && cd "$1"
143     fi
144 }
145
146
147 if which tmux >/dev/null 2>&1; then
148     tmux() {
149         case "$TERM" in
150             rxvt)
151                 TERM=rxvt-unicode command tmux "$@"
152             ;;
153
154             *)
155                 command tmux "$@"
156             ;;
157         esac
158     }
159 fi
160
161
162 vim() {
163     command vim "$@"
164     rc=$?
165     cd "`cat \"$HOME/tmp/vim/cwd\"`" && /bin/rm "$HOME/tmp/vim/cwd" &&
166     return $rc
167 }
168
169
170 if [ "$SHLVL" -eq 1 ] && which startx >/dev/null 2>&1; then
171     X() { startx >> .Xserver.log 2>&1; cyr; /bin/rm -f .Xauthority; }
172 fi
173
174 x() { exit; }