X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=869167906cdc85b64131a945a2ffe38a65eb55cd;hb=17a3d6bf1dc5001799987d03b0e890f84a373ac9;hp=7429b9b6f8e7baf2619c5086617af27ec672ce63;hpb=202cacb4e429c5c65ae95fe15e23a0e0da606971;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index 7429b9b..8691679 100644 --- a/zsh/rc +++ b/zsh/rc @@ -50,10 +50,11 @@ zshrc_resolve_fg_to_resumed_job_name() { # MISCELLANEOUS SETTINGS -# Be paranoid, new files are readable/writable by me only, but not as root. -if [[ $UID -ne 0 ]]; then - umask 077 -fi +# Prevent warnings. +typeset -g TMOUT +# Load general shell setup commands. NOTE: Expand this when publishing the +# config. +source_config ~/.shell/rc # Disable beeps. setopt nobeep @@ -220,8 +221,8 @@ if [[ $ZSH_VERSION == (4.3.<9->*|4.<4->*|<5->*) || # Load vcs_info to display information about version control repositories. autoload -Uz vcs_info - # Only look for git and mercurial repositories; the only I use. - zstyle ':vcs_info:*' enable git hg + # Only look for certain VCS. + zstyle ':vcs_info:*' enable git # Check the repository for changes so they can be used in %u/%c (see # below). This comes with a speed penalty for bigger repositories. zstyle ':vcs_info:*' check-for-changes yes @@ -418,6 +419,8 @@ zshrc_prompt_precmd() { local background="%(1j.${yellow}%j${default}.)" # Exit code in bright red in parentheses if not zero. local exitcode="%(?..(${red}%B%?%b${default}%) )" + # Prompt symbol, % for normal users, # in red for root. + local symbol="%(!.${red}#${default}.%%)" # Prefix characters in first and second line. local top_prefix="${blue}%B.-%b${default}" @@ -452,7 +455,7 @@ zshrc_prompt_precmd() { local top_separator="%B${blue}${(l:${width}::-:)}%b${default}" PROMPT="${top_prefix}${top_left}${top_separator}${top_right} -${bottom_prefix}${user}@${host} ${background}%# ${exitcode}" +${bottom_prefix}${user}@${host} ${background}${symbol} ${exitcode}" } precmd_functions+=(zshrc_prompt_precmd) @@ -561,7 +564,7 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then name=.zsh fi - # Prepend prefixes like in window_preexec(). + # Prepend prefixes like in zshrc_window_preexec(). if [[ $UID -eq 0 ]]; then name="!$name" fi @@ -844,15 +847,28 @@ fi # LOAD ADDITIONAL CONFIGURATION FILES -# Configuration option for rc.local to use GNU screen/tmux. By default GNU -# screen is used. Possible values: screen, tmux and empty (no value). +# Configuration options for rc.local. + +# Multiplexer to use. By default GNU screen is used. Possible values: screen, +# tmux and empty (no multiplexer). zshrc_use_multiplexer=screen +# Additional arguments for fortune. +zshrc_fortune_arguments=() source_config ~/.zsh/rc.local # RUN COMMANDS +# Make sure the multiplexer is available. Otherwise the exec terminates our +# session. +if [[ -n $zshrc_use_multiplexer ]]; then + if ! (( $+commands[$zshrc_use_multiplexer] )); then + echo "Multiplexer '$zshrc_use_multiplexer' not found." >&2 + zshrc_use_multiplexer= + fi +fi + # If not already in screen or tmux, reattach to a running session or create a # new one. This also starts screen/tmux on a remote server when connecting # through ssh. @@ -889,7 +905,7 @@ if [[ $TERM != dumb && $TERM != linux && -z $STY && -z $TMUX ]]; then fi fi -# Colorize stderr in red. Very useful when looking for errors. Thanks to +# Colorize stderr in bold red. Very useful when looking for errors. Thanks to # http://gentoo-wiki.com/wiki/Zsh for the basic script and Mikachu in #zsh on # Freenode (2010-03-07 04:03 CET) for some improvements (-r, printf). It's not # yet perfect and doesn't work with su and git for example, but it can handle @@ -918,7 +934,7 @@ fi PERIOD=14400 periodic() { # Display fortunes. - (( $+commands[fortune] )) && fortune -ac + (( $+commands[fortune] )) && fortune -ac "${zshrc_fortune_arguments[@]}" # Display reminders. (( $+commands[rem] )) && [[ -f ~/.reminders ]] && rem -h }