diff --git a/shell/.aliases b/shell/.aliases new file mode 100644 index 0000000..aaec458 --- /dev/null +++ b/shell/.aliases @@ -0,0 +1,42 @@ +# Unix + +# Detect which `ls` flavor is in use +if ls --color > /dev/null 2>&1; then # GNU `ls` + ls_colorflag="--color" +else # BSD like `ls` + ls_colorflag="-G" +fi + +alias ...="cd ../.." +alias ...="cd ../../.." +alias ....="cd ../../../.." +alias vim="nvim" +alias ls="ls ${ls_colorflag}" +alias ll="ls -al" +alias ff="find . -name" +alias ln="ln -v" +alias mkdir="mkdir -p" +alias e="$EDITOR" +alias _="sudo" +alias nohist="unset HISTFILE" + +alias jest-debug="node --inspect-brk node_modules/.bin/jest $@" + +alias ta="tmux attach -t" +alias ts="tmux new-session -s" +alias tl="tmux list-sessions" + +alias did="vim +"normal Go" +"r\!date" ~/did.txt" + +alias k="kubectl" + +if [[ $OSTYPE == "linux-gnu" ]] +then + alias o="xdg-open" +fi + +# Pretty print the path +alias path='echo $PATH | tr -s ":" "\n"' + +# Include custom aliases +[[ -f ~/.aliases.local ]] && source ~/.aliases.local diff --git a/shell/.tmux.conf b/shell/.tmux.conf new file mode 100644 index 0000000..51af411 --- /dev/null +++ b/shell/.tmux.conf @@ -0,0 +1,41 @@ +# can't like ctrl-a +unbind C-b +set-option -g prefix C-a +bind-key C-a send-prefix + +set-option -g history-limit 25000 +set -g mouse on + +# for neovim +set -sg escape-time 10 + +# vi for copy mode +setw -g mode-keys vi + +# status bar +set -g status-style "fg=#665c54" +set -g status-left-style "fg=#928374" + +set -g status-bg default +set -g status-position top +set -g status-interval 1 +set -g status-left "" + +# disable status +# set -g status off +# set -g status on + +# count the panes from 1 +set -g base-index 1 +setw -g pane-base-index 1 + +# reload configuration +bind-key -r r source-file ~/.tmux.conf + +# next/prev window (with repeat) +bind-key -r j next-window +bind-key -r k previous-window + +# term colors, these are the correct ones according to neovim checkhealth + +set-option -g default-terminal "screen-256color" diff --git a/shell/.zshrc b/shell/.zshrc new file mode 100644 index 0000000..b496dfd --- /dev/null +++ b/shell/.zshrc @@ -0,0 +1,113 @@ +export ZSH="$HOME/.oh-my-zsh" + +# install oh-mh-zsh if missig +if [[ ! -d "$ZSH" ]] +then + sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --keep-zshrc +fi + +# install startship +if ! command -v starship &> /dev/null +then + cargo install starship --locked +fi + +# install fnm +if ! command -v fnm &> /dev/null +then + cargo install fnm --locked +fi + +# install zoxide +if ! command -v zoxide &> /dev/null +then + cargo install zoxide --locked +fi + +ZSH_THEME="" + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(vi-mode gnu-utils starship ripgrep fzf fd gpg-agent ssh-agent fnm zoxide rust git gh) + +# personal configuration +zstyle :omz:plugins:ssh-agent lazy yes + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# You may need to manually set your language environment +export PATH="$HOME/bin:$HOME/.local/bin:$PATH" +export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vim' +else + export EDITOR='nvim' + export PAGER='nvimpager' +fi + +export TERMINAL='kitty' + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +[[ -s $HOME/.aliases ]] && source $HOME/.aliases + +# shutup +unsetopt BEEP +