lass 2: use zsh as defaultShell
This commit is contained in:
parent
1c6d6918d7
commit
db75ef768b
|
@ -5,6 +5,7 @@ with lib;
|
|||
imports = [
|
||||
../3modules/iptables.nix
|
||||
../2configs/vim.nix
|
||||
../2configs/zsh.nix
|
||||
{
|
||||
users.extraUsers =
|
||||
mapAttrs (_: h: { hashedPassword = h; })
|
||||
|
|
126
lass/2configs/zsh.nix
Normal file
126
lass/2configs/zsh.nix
Normal file
|
@ -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";
|
||||
}
|
Loading…
Reference in a new issue