From: Maximilian Friedersdorff Date: Tue, 16 Jul 2019 13:18:12 +0000 (+0100) Subject: Initial zsh configuration X-Git-Url: https://git.friedersdorff.com/?a=commitdiff_plain;h=dd0b905788ae2041f7eb8d6c18220e59d951c5f7;p=max%2Fsaltfiles.git Initial zsh configuration --- diff --git a/states/zsh/files/zprofile b/states/zsh/files/zprofile new file mode 100644 index 0000000..f182c13 --- /dev/null +++ b/states/zsh/files/zprofile @@ -0,0 +1,12 @@ +# Make XDG_RUNTIME_DIR +if [ -z "${XDG_RUNTIME_DIR}" ]; then + export XDG_RUNTIME_DIR=/tmp/${UID}-runtime-dir + if [ ! -d "${XDG_RUNTIME_DIR}" ]; then + mkdir "${XDG_RUNTIME_DIR}" + chmod 0700 "${XDG_RUNTIME_DIR}" + fi +fi + +# Make temporary directory +mkdir -p "/tmp/${USER}" +chmod 770 "/tmp/${USER}" diff --git a/states/zsh/files/zshenv b/states/zsh/files/zshenv new file mode 100644 index 0000000..c325783 --- /dev/null +++ b/states/zsh/files/zshenv @@ -0,0 +1,16 @@ +typeset -U path +path=(~/.local/bin ~/.cargo/bin $path[@]) + +export QT_QPA_PLATFORM=wayland-egl + +# make less more friendly for non-text input files, see lesspipe(1) +if [ -x /usr/bin/lesspipe ]; then + export LESSOPEN="|lesspipe %s" +elif [ -x /usr/bin/lesspipe.sh ]; then + export LESSOPEN="|lesspipe.sh %s" +fi + +# colored GCC warnings and errors +export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' +export EDITOR="vim" +export TMPDIR="/tmp/${USER}" diff --git a/states/zsh/files/zshrc b/states/zsh/files/zshrc new file mode 100644 index 0000000..6fe4aaf --- /dev/null +++ b/states/zsh/files/zshrc @@ -0,0 +1,68 @@ +# The following lines were added by compinstall + +zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate +zstyle ':completion:*' completions 1 +zstyle ':completion:*' expand suffix +zstyle ':completion:*' glob 1 +zstyle ':completion:*' ignore-parents parent pwd +zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} +zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s +zstyle ':completion:*' list-suffixes true +zstyle ':completion:*' max-errors 2 +zstyle ':completion:*' menu select=1 +zstyle ':completion:*' preserve-prefix '//[^/]##/' +zstyle ':completion:*' prompt 'Corrections with %e differences:' +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' substitute 1 +zstyle :compinstall filename '/home/max/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall +# Lines configured by zsh-newuser-install +HISTFILE=~/.histfile +HISTSIZE=20000 +SAVEHIST=20000 +setopt appendhistory autocd extendedglob nomatch +unsetopt beep notify +bindkey -v +# End of lines configured by zsh-newuser-install + + +git_prompt() { + ref=$(git symbolic-ref HEAD | cut -d'/' -f3-) + echo $ref +} + +NEWLINE=$'\n' +setopt prompt_subst +autoload -Uz vcs_info +zstyle ':vcs_info:*' actionformats \ + "%F{5}[%f%b%F{3}|%F{1}%a%F{5}]%f${NEWLINE}" +zstyle ':vcs_info:*' formats \ + "%F{5}[%f%b%F{5}]%f${NEWLINE}" + +zstyle ':vcs_info:*' enable git + +# or use pre_cmd, see man zshcontrib +precmd() { + echo + vcs_info +} + +prompt='$vcs_info_msg_0_' +prompt+="%(?;%F{green};%F{red})[%h]%f " +prompt+="%F{red}%B%n%b%f@%F{red}%B%m%b%f" +prompt+=":%F{blue}%~%f" +prompt+="${NEWLINE}%(!.#.$) " + +if ! pgrep -x -u "${USER}" gpg-agent >/dev/null 2>&1; then + gpg-connect-agent /bye >/dev/null 2>&1 +fi + +unset SSH_AGENT_PID +if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then + export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) +fi + +gpg-connect-agent updatestartuptty /bye > /dev/null diff --git a/states/zsh/gentoo.sls b/states/zsh/gentoo.sls new file mode 100644 index 0000000..3702623 --- /dev/null +++ b/states/zsh/gentoo.sls @@ -0,0 +1,6 @@ +install zsh: + pkg.installed: + - pkgs: + - app-shells/zsh + - app-shells/zsh-completions + - app-shells/gentoo-zsh-completions diff --git a/states/zsh/init.sls b/states/zsh/init.sls new file mode 100644 index 0000000..c6a6740 --- /dev/null +++ b/states/zsh/init.sls @@ -0,0 +1,26 @@ +include: + - zsh.{{ grains['os'] | lower }} + +install zshrc conf file: + file.managed: + - name: {{ grains['homedir'] }}/.zshrc + - source: salt://zsh/files/zshrc + - mode: 640 + - user: {{ grains['user'] }} + - group: {{ grains['user'] }} + +install zshenv conf file: + file.managed: + - name: {{ grains['homedir'] }}/.zshenv + - source: salt://zsh/files/zshenv + - mode: 640 + - user: {{ grains['user'] }} + - group: {{ grains['user'] }} + +install zprofile conf file: + file.managed: + - name: {{ grains['homedir'] }}/.zprofile + - source: salt://zsh/files/zprofile + - mode: 640 + - user: {{ grains['user'] }} + - group: {{ grains['user'] }}