diff options
author | makefu <github@syntax-fehler.de> | 2015-09-23 11:57:27 +0200 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2015-09-23 11:57:27 +0200 |
commit | b88363ce1a4ecc420f2c7684c9c74949cd2b5db4 (patch) | |
tree | 2da33dd2e421d498b3172e46234242e1c76370a1 /lass/2configs/zsh.nix | |
parent | bb0ec5e74b6ca0737bc49408f00f8918710872a6 (diff) | |
parent | e3222a7e7096d155da507ef41bbb2002ff4aed89 (diff) |
Merge remote-tracking branch 'cloudkrebs/master' into pre-merge
Diffstat (limited to 'lass/2configs/zsh.nix')
-rw-r--r-- | lass/2configs/zsh.nix | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/lass/2configs/zsh.nix b/lass/2configs/zsh.nix new file mode 100644 index 000000000..646e816fd --- /dev/null +++ b/lass/2configs/zsh.nix @@ -0,0 +1,126 @@ +{ config, lib, pkgs, ... }: +{ + programs.zsh = { + enable = true; + shellInit = '' + #disable config wizard + zsh-newuser-install() { :; } + ''; + interactiveShellInit = '' + HISTFILE=~/.histfile + HISTSIZE=1000000 + SAVEHIST=100000 + #unsetopt nomatch + setopt autocd extendedglob + bindkey -e + zstyle :compinstall filename '/home/lass/.zshrc' + + #history magic + bindkey "[A" up-line-or-local-history + bindkey "[B" down-line-or-local-history + + up-line-or-local-history() { + zle set-local-history 1 + zle up-line-or-history + zle set-local-history 0 + } + zle -N up-line-or-local-history + down-line-or-local-history() { + zle set-local-history 1 + zle down-line-or-history + zle set-local-history 0 + } + zle -N down-line-or-local-history + + setopt share_history + setopt hist_ignore_dups + # setopt inc_append_history + bindkey '^R' history-incremental-search-backward + + #C-x C-e open line in editor + autoload -z edit-command-line + zle -N edit-command-line + bindkey "^X^E" edit-command-line + + #completion magic + fpath=(~/.zsh/completions $fpath) + autoload -Uz compinit + compinit + zstyle ':completion:*' menu select + + #enable automatic rehashing of $PATH + zstyle ':completion:*' rehash true + + + #eval $( dircolors -b ~/.LS_COLORS ) + + #exports + export EDITOR='vim' + export MANPAGER='most' + export PAGER='vim -' + # export MANPAGER='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | vim -R -c "set ft=man nonu nomod nolist" -' + + #beautiful colors + alias ls='ls --color' + zstyle ':completion:*:default' list-colors ''${(s.:.)LS_COLORS} + + #emacs bindings + bindkey "[7~" beginning-of-line + bindkey "[8~" end-of-line + bindkey "Oc" emacs-forward-word + bindkey "Od" emacs-backward-word + + #aliases + alias ll='ls -l' + alias la='ls -la' + alias pinginet='ping 8.8.8.8' + alias du='du -hd1' + alias qiv="qiv -f -m" + alias zshres="source ~/.zshrc" + + #fancy window title magic + case $TERM in + (*xterm* | *rxvt*) + + # Write some info to terminal title. + # This is seen when the shell prompts for input. + function precmd { + print -Pn "\e]0;%(1j,%j job%(2j|s|); ,)%~\a" + } + # Write command and args to terminal title. + # This is seen while the shell waits for a command to complete. + function preexec { + printf "\033]0;%s\a" "$1" + } + ;; + esac + ''; + promptInit = '' + autoload -U promptinit + promptinit + + error='%(?..%F{red}%?%f )' + + case $UID in + 0) + username='%F{red}root%f' + ;; + 1337) + username="" + ;; + *) + username='%F{blue}%n%f' + ;; + esac + + if test -n "$SSH_CLIENT"; then + PROMPT="$error$username@%F{magenta}%M%f %~ " + else + PROMPT="$error$username %~ " + fi + + + ''; + }; + users.defaultUserShell = "/run/current-system/sw/bin/zsh"; +} |