+++ /dev/null
-# Shell configuration file.
-
-# Copyright (C) 2013 Simon Ruderich
-#
-# This file is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This file is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this file. If not, see <http://www.gnu.org/licenses/>.
-
-
-# Normal umask for root (readable by all users).
-if test "`id -u`" -eq 0; then
- umask 022
-# Restricted umask for normal users (readable only by me).
-else
- umask 077
-fi
-
-# Disable flow control (^s ^q). I use GNU Screen/Tmux which also supports this
-# in a similar way (entering copy mode) and enabling flow control by accident
-# is annoying.
-if test -t 0; then
- stty -ixon -ixoff
-fi
-
-# Auto-logout after timeout on TTYs. It's easy to forget to logout after
-# switching back to X11 from a TTY.
-timeout_setup_screen_lock() {
- echo "Locking GNU screen after $timeout seconds (TTY detected)."
- screen -X idle $timeout lockscreen
- echo
-}
-timeout_setup_tmux_lock() {
- if type vlock >/dev/null; then
- echo "Locking Tmux after $timeout seconds (TTY detected)."
- tmux set-option lock-after-time $timeout
- echo
-
- else
- echo "vlock not found, locking won't work in Tmux!" >&2
- echo "Falling back to shell timeout." >&2
- echo
-
- timeout_setup_shell_logout
- fi
-}
-timeout_setup_shell_logout() {
- echo "Auto-logout after $timeout seconds (TTY detected)."
- TMOUT=$timeout
- echo
-}
-# Timeout in seconds.
-local timeout >/dev/null 2>&1
-timeout=600
-case "$TERM" in
- # `tty` doesn't work inside a pseudo-terminal as provided by GNU
- # Screen/Tmux.
- #
- # The following settings for GNU Screen/Tmux will only auto-lock new
- # sessions, not when attaching to existing sessions!
- screen*)
- if test -n "$STY"; then
- case "$STY" in
- *.tty[0-9]*.*)
- timeout_setup_screen_lock
- ;;
- esac
- elif test -n "$TMUX"; then
- case "`tmux display -p '#{client_tty}'`" in
- /dev/tty[0-9]*)
- timeout_setup_tmux_lock
- ;;
- /dev/*)
- # Not on TTY, nothing to do.
- ;;
- *)
- echo 'Tmux < 1.8 found, TTY check might be incorrect!' >&2
-
- local client >/dev/null 2>&1
- client=`printf '%s' "$TMUX" | sed 's/^.*,\([0-9]*\)$/\1/'`
-
- case "`tmux list-clients \
- | grep -E "^/dev/.*?: $client "`" in
- /dev/tty[0-9]*)
- timeout_setup_tmux_lock
- ;;
- esac
- ;;
- esac
- else
- echo 'TERM=screen but neither $STY nor $TMUX found!' >&2
- timeout_setup_shell_logout
- fi
- ;;
-
- *)
- case `tty` in
- /dev/tty[0-9]*)
- timeout_setup_shell_logout
- ;;
- esac
- ;;
-esac
-unset timeout
-unset timeout_setup_screen_lock
-unset timeout_setup_tmux_lock
-unset timeout_setup_screen_lock
-
-# vim: ft=sh