diff options
author | Jacob Janzen <jjanzenn@proton.me> | 2024-08-10 11:44:42 -0500 |
---|---|---|
committer | Jacob Janzen <jjanzenn@proton.me> | 2024-08-10 11:44:42 -0500 |
commit | ed9c225ebeccc2ae47e3298865d2ed67d3ebc105 (patch) | |
tree | 16753a1673df86545228d3dbce76710f4f692866 | |
parent | 35f4e161d5ba2c2757dd3d8f2c38c0380d004b2f (diff) |
symlinks for .profile and .zshrc
-rw-r--r-- | common/profile.org | 18 | ||||
-rw-r--r-- | common/zshrc.org | 113 | ||||
l---------[-rw-r--r--] | gentoo/profile.org | 17 | ||||
l---------[-rw-r--r--] | gentoo/zshrc.org | 112 | ||||
l---------[-rw-r--r--] | macos/profile.org | 8 | ||||
l---------[-rw-r--r--] | macos/zshrc.org | 107 |
6 files changed, 135 insertions, 240 deletions
diff --git a/common/profile.org b/common/profile.org new file mode 100644 index 0000000..87bbbaa --- /dev/null +++ b/common/profile.org @@ -0,0 +1,18 @@ +#+TITLE: =.profile= Settings +* Path +Add items to the path. +#+begin_src sh :tangle ~/.profile +export PATH="$HOME/.local/share/fzf-zsh-plugin/bin:$HOME/node_modules/.bin:$HOME/.emacs.d/bin:$HOME/bin:$HOME/gems/bin:$HOME/.local/bin:$HOME/go/bin:$PATH" +#+end_src + +* SSH Agent +Run =ssh-agent= if =ssh-agent= is not already running on my Gentoo system. Ensure that the authorization socket is available in the shell. +#+begin_src sh :tangle ~/.profile + if [ "$(uname)" = 'Linux' ] && grep 'ID=gentoo' /etc/os-release; then + if [ ! -S ~/.ssh/ssh_auth_sock ]; then + eval `ssh-agent` > /dev/null + ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock + fi + export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock + fi +#+end_src diff --git a/common/zshrc.org b/common/zshrc.org new file mode 100644 index 0000000..4ff5524 --- /dev/null +++ b/common/zshrc.org @@ -0,0 +1,113 @@ +#+title: ZSH Configuration +Set up completions. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + zstyle ':completion:*' completer _expand _complete _ignored _approximate + zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' + zstyle :compinstall filename '/home/jjanzen/.zshrc' + autoload -U compinit promptinit + compinit + promptinit +#+end_src + +Enable Gentoo completions on my Gentoo system. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + if [ "$(uname)" = 'Linux' ] && grep 'ID=gentoo' /etc/os-release; then + prompt gentoo + fi +#+end_src + +Set up the history with 1000 entries and ignored duplicate commands. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + HISTFILE=~/.histfile + HISTSIZE=1000 + SAVEHIST=1000 + setopt hist_ignore_all_dups +#+end_src + +Enable automatic =cd=. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt autocd +#+end_src + +Enable extended glob. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt extendedglob +#+end_src + +If a glob returns nothing, don't keep the =*=. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt nullglob +#+end_src + +Report the status of background jobs immediately. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt notify +#+end_src + +Disable the beep. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + unsetopt beep +#+end_src + +Use =vi= keybindings. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + bindkey -v +#+end_src + +Use =lesspipe= back end for =less= if it is installed. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" +#+end_src + +Use =eza= as my =ls= command if it is installed. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which eza &> /dev/null && alias ls=eza +#+end_src + +Use Neovim as my =vi= and =vim= application if it is installed. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which nvim &> /dev/null && alias vi=nvim && alias vim=nvim +#+end_src + +If the Firefox binary is called =firefox-bin=, let =firefox= also run =firefox-bin=. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which firefox-bin &> /dev/null && alias firefox=firefox-bin +#+end_src + +Lazy =ls= shortcuts. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + alias ll='ls -alF' + alias la='ls -a' + alias l='ls -F' + alias sl='ls' +#+end_src + +*** Prompt +Define function to write out icons for the git status. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + parse_git_dirty() { + git_status="$(git status 2> /dev/null)" + [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" + [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" + [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" + [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" + } +#+end_src + +Enable git status in the prompt. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt prompt_subst + autoload -Uz vcs_info + precmd () { vcs_info } + zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) +#+end_src + +Define the prompt as follows: +- Error code (if applicable) +- Path using =~= for the home directory and truncating if too long +- Git branch +- Git status +- =$= to mark the start of the prompt +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' +#+end_src diff --git a/gentoo/profile.org b/gentoo/profile.org index 7ff69db..7db75e0 100644..120000 --- a/gentoo/profile.org +++ b/gentoo/profile.org @@ -1,16 +1 @@ -#+TITLE: =.profile= Settings -* Path -Add items to the path. -#+begin_src sh :tangle ~/.profile -export PATH="$HOME/.local/share/fzf-zsh-plugin/bin:$HOME/node_modules/.bin:$HOME/.emacs.d/bin:$HOME/bin:$HOME/gems/bin:$HOME/.local/bin:$HOME/go/bin:$PATH" -#+end_src - -* SSH Agent -Run =ssh-agent= if =ssh-agent= is not already running. Ensure that the authorization socket is available in the shell. -#+begin_src sh :tangle ~/.profile -if [ ! -S ~/.ssh/ssh_auth_sock ]; then - eval `ssh-agent` > /dev/null - ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock -fi -export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock -#+end_src +../common/profile.org
\ No newline at end of file diff --git a/gentoo/zshrc.org b/gentoo/zshrc.org index d6cdeb7..8a52724 100644..120000 --- a/gentoo/zshrc.org +++ b/gentoo/zshrc.org @@ -1,111 +1 @@ -#+title: ZSH Configuration -Set up completions. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - zstyle ':completion:*' completer _expand _complete _ignored _approximate - zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' - zstyle :compinstall filename '/home/jjanzen/.zshrc' - autoload -U compinit promptinit - compinit - promptinit -#+end_src - -Enable gentoo completions on Linux. -#+begin_src sh :tangle (cond ((eq system-type 'gnu/linux) "~/.zshrc") (t "no")) :mkdirp yes - prompt gentoo -#+end_src - -Set up the history with 1000 entries and ignored duplicate commands. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - HISTFILE=~/.histfile - HISTSIZE=1000 - SAVEHIST=1000 - setopt hist_ignore_all_dups -#+end_src - -Enable automatic =cd=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt autocd -#+end_src - -Enable extended glob. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt extendedglob -#+end_src - -If a glob returns nothing, don't keep the =*=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt nullglob -#+end_src - -Report the status of background jobs immediately. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt notify -#+end_src - -Disable the beep. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - unsetopt beep -#+end_src - -Use =vi= keybindings. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - bindkey -v -#+end_src - -Use =lesspipe= back end for =less= if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" -#+end_src - -Use =eza= as my =ls= command if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which eza &> /dev/null && alias ls=eza -#+end_src - -Use Neovim as my =vi= and =vim= application if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which nvim &> /dev/null && alias vi=nvim && alias vim=nvim -#+end_src - -If the Firefox binary is called =firefox-bin=, let =firefox= also run =firefox-bin=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which firefox-bin &> /dev/null && alias firefox=firefox-bin -#+end_src - -Lazy =ls= shortcuts. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - alias ll='ls -alF' - alias la='ls -a' - alias l='ls -F' - alias sl='ls' -#+end_src - -*** Prompt -Define function to write out icons for the git status. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - parse_git_dirty() { - git_status="$(git status 2> /dev/null)" - [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" - [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" - [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" - [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" - } -#+end_src - -Enable git status in the prompt. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt prompt_subst - autoload -Uz vcs_info - precmd () { vcs_info } - zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) -#+end_src - -Define the prompt as follows: -- Error code (if applicable) -- Path using =~= for the home directory and truncating if too long -- Git branch -- Git status -- =$= to mark the start of the prompt -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' -#+end_src +../common/zshrc.org
\ No newline at end of file diff --git a/macos/profile.org b/macos/profile.org index 2827dd8..7db75e0 100644..120000 --- a/macos/profile.org +++ b/macos/profile.org @@ -1,7 +1 @@ -#+TITLE: =.profile= Settings -* Path -Add items to the path. -#+begin_src sh :tangle ~/.profile - export PATH="$HOME/.local/share/fzf-zsh-plugin/bin:$HOME/node_modules/.bin:$HOME/gems/bin:$HOME/.local/bin:$HOME/go/bin:$PATH" - export PATH="/Users/jjanzen/Library/Python/3.12/bin:/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH" -#+end_src +../common/profile.org
\ No newline at end of file diff --git a/macos/zshrc.org b/macos/zshrc.org index fc261f5..8a52724 100644..120000 --- a/macos/zshrc.org +++ b/macos/zshrc.org @@ -1,106 +1 @@ -#+title: ZSH Configuration -Set up completions. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - zstyle ':completion:*' completer _expand _complete _ignored _approximate - zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' - zstyle :compinstall filename '/home/jjanzen/.zshrc' - autoload -U compinit promptinit - compinit - promptinit -#+end_src - -Set up the history with 1000 entries and ignored duplicate commands. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - HISTFILE=~/.histfile - HISTSIZE=1000 - SAVEHIST=1000 - setopt hist_ignore_all_dups -#+end_src - -Enable automatic =cd=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt autocd -#+end_src - -Enable extended glob. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt extendedglob -#+end_src - -If a glob returns nothing, don't keep the =*=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt nullglob -#+end_src - -Report the status of background jobs immediately. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt notify -#+end_src - -Disable the beep. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - unsetopt beep -#+end_src - -Use =vi= keybindings. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - bindkey -v -#+end_src - -Use =lesspipe= back end for =less= if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" -#+end_src - -Use =eza= as my =ls= command if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which eza &> /dev/null && alias ls=eza -#+end_src - -Use Neovim as my =vi= and =vim= application if it is installed. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which nvim &> /dev/null && alias vi=nvim && alias vim=nvim -#+end_src - -If the Firefox binary is called =firefox-bin=, let =firefox= also run =firefox-bin=. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - which firefox-bin &> /dev/null && alias firefox=firefox-bin -#+end_src - -Lazy =ls= shortcuts. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - alias ll='ls -alF' - alias la='ls -a' - alias l='ls -F' - alias sl='ls' -#+end_src - -*** Prompt -Define function to write out icons for the git status. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - parse_git_dirty() { - git_status="$(git status 2> /dev/null)" - [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" - [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" - [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" - [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" - } -#+end_src - -Enable git status in the prompt. -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - setopt prompt_subst - autoload -Uz vcs_info - precmd () { vcs_info } - zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) -#+end_src - -Define the prompt as follows: -- Error code (if applicable) -- Path using =~= for the home directory and truncating if too long -- Git branch -- Git status -- =$= to mark the start of the prompt -#+begin_src sh :tangle ~/.zshrc :mkdirp yes - PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' -#+end_src +../common/zshrc.org
\ No newline at end of file |