diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml index 14a82e3..7fd2d32 100644 --- a/alacritty/alacritty.toml +++ b/alacritty/alacritty.toml @@ -17,16 +17,16 @@ unfocused_hollow = true size = 12.0 [font.bold] -family = "FiraCode Nerd Font" +family = "DMMono Nerd Font" style = "Bold" [font.italic] -family = "FiraCode Nerd Font" +family = "DMMono Nerd Font" style = "Italic" [font.normal] -family = "FiraCode Nerd Font" -style = "Normal" +family = "DMMono Nerd Font" +style = "Medium" [font.offset] x = 0 @@ -77,36 +77,57 @@ action = "ScrollToBottom" key = "H" mods = "Alt" -# Colors (Gruvbox dark) - -# Default colors +# Colors (Nord Theme) [colors.primary] -# hard contrast background = = '#1d2021' -background = '#282828' -# soft contrast background = = '#32302f' -foreground = '#ebdbb2' +background = "#2e3440" +foreground = "#d8dee9" +dim_foreground = "#a5abb6" + +[colors.cursor] +text = "#2e3440" +cursor = "#d8dee9" + +[colors.vi_mode_cursor] +text = "#2e3440" +cursor = "#d8dee9" + +[colors.selection] +text = "CellForeground" +background = "#4c566a" + +[colors.search.matches] +foreground = "CellBackground" +background = "#88c0d0" -# Normal colors [colors.normal] -black = '#282828' -red = '#cc241d' -green = '#98971a' -yellow = '#d79921' -blue = '#458588' -magenta = '#b16286' -cyan = '#689d6a' -white = '#a89984' +black = "#3b4252" +red = "#bf616a" +green = "#a3be8c" +yellow = "#ebcb8b" +blue = "#81a1c1" +magenta = "#b48ead" +cyan = "#88c0d0" +white = "#e5e9f0" -# Bright colors [colors.bright] -black = '#928374' -red = '#fb4934' -green = '#b8bb26' -yellow = '#fabd2f' -blue = '#83a598' -magenta = '#d3869b' -cyan = '#8ec07c' -white = '#ebdbb2' +black = "#4c566a" +red = "#bf616a" +green = "#a3be8c" +yellow = "#ebcb8b" +blue = "#81a1c1" +magenta = "#b48ead" +cyan = "#8fbcbb" +white = "#eceff4" + +[colors.dim] +black = "#373e4d" +red = "#94545d" +green = "#809575" +yellow = "#b29e75" +blue = "#68809a" +magenta = "#8c738c" +cyan = "#6d96a5" +white = "#aeb3bb" [mouse] hide_when_typing = true diff --git a/deploy.sh b/deploy.sh index c2c57ab..5c15180 100755 --- a/deploy.sh +++ b/deploy.sh @@ -31,6 +31,8 @@ for option in "$@"; do https://raw.githubusercontent.com/zsh-users/zsh-autosuggestions/master/zsh-autosuggestions.zsh git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $HOME/.config/zsh/zsh-syntax-highlighting git clone https://github.com/romkatv/gitstatus.git $HOME/.config/zsh/gitstatus + mv "$HOME/.config/zsh/gitstatus/gitstatus.prompt.zsh" "$HOME/.config/zsh/gitstatus/gitstatus.prompt.zsh.bak" + link "$PWD/zsh/gitstatus.prompt.zsh" "$HOME/.config/zsh/gitstatus/gitstatus.prompt.zsh" ;; nvim) [ ! -d "$HOME/.config/nvim" ] && mkdir -p "$HOME/.config/nvim" diff --git a/scripts/pop-shell-custom-keybinds b/scripts/pop-shell-custom-keybinds index 6a07dfb..80a0980 100755 --- a/scripts/pop-shell-custom-keybinds +++ b/scripts/pop-shell-custom-keybinds @@ -131,11 +131,11 @@ dconf write ${KEYS_POP}/show-title "false" # Various bindings and launchers # Lock screen -dconf write ${KEYS_MEDIA}/screensaver "[';']" +dconf write ${KEYS_MEDIA}/screensaver "['l']" # Open Files dconf write ${KEYS_MEDIA}/home "['f']" # Launch email client -dconf write ${KEYS_MEDIA}/email "['e']" +#dconf write ${KEYS_MEDIA}/email "['e']" # Launch terminal dconf write ${KEYS_MEDIA}/terminal "['Return']" # Launch web browser diff --git a/vim/vimrc b/vim/vimrc index 76b0cc5..b763064 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -40,14 +40,14 @@ Plugin 'jiangmiao/auto-pairs' " Pair completion Plugin 'lervag/vimtex' " LaTeX tools Plugin 'vim-airline/vim-airline' " Nicer info line Plugin 'junegunn/goyo.vim' " Zen Workspace -Plugin 'morhetz/gruvbox' " Color scheme +Plugin 'nordtheme/vim' " Color scheme Plugin 'https://github.com/ap/vim-css-color' " highlight color codes in their color Plugin 'https://github.com/907th/vim-auto-save.git' " auto save Plugin 'https://github.com/github/copilot.vim' " github copilot call vundle#end() -colorscheme gruvbox +colorscheme nord filetype plugin indent on diff --git a/zsh/gitstatus.prompt.zsh b/zsh/gitstatus.prompt.zsh new file mode 100644 index 0000000..35f6805 --- /dev/null +++ b/zsh/gitstatus.prompt.zsh @@ -0,0 +1,111 @@ +# Simple Zsh prompt with Git status. + +# Source gitstatus.plugin.zsh from $GITSTATUS_DIR or from the same directory +# in which the current script resides if the variable isn't set. +source "${GITSTATUS_DIR:-${${(%):-%x}:h}}/gitstatus.plugin.zsh" || return + +# Sets GITSTATUS_PROMPT to reflect the state of the current git repository. Empty if not +# in a git repository. In addition, sets GITSTATUS_PROMPT_LEN to the number of columns +# $GITSTATUS_PROMPT will occupy when printed. +# +# Example: +# +# GITSTATUS_PROMPT='master ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42' +# GITSTATUS_PROMPT_LEN=39 +# +# master current branch +# ⇣42 local branch is 42 commits behind the remote +# ⇡42 local branch is 42 commits ahead of the remote +# ⇠42 local branch is 42 commits behind the push remote +# ⇢42 local branch is 42 commits ahead of the push remote +# *42 42 stashes +# merge merge in progress +# ~42 42 merge conflicts +# +42 42 staged changes +# !42 42 unstaged changes +# ?42 42 untracked files +function gitstatus_prompt_update() { + emulate -L zsh + typeset -g GITSTATUS_PROMPT='' + typeset -gi GITSTATUS_PROMPT_LEN=0 + + # Call gitstatus_query synchronously. Note that gitstatus_query can also be called + # asynchronously; see documentation in gitstatus.plugin.zsh. + gitstatus_query 'MY' || return 1 # error + [[ $VCS_STATUS_RESULT == 'ok-sync' ]] || return 0 # not a git repo + + local clean='%76F' # green foreground + local modified='%178F' # yellow foreground + local untracked='%39F' # blue foreground + local conflicted='%196F' # red foreground + + local p + + local where # branch name, tag or commit + if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then + where=$VCS_STATUS_LOCAL_BRANCH + elif [[ -n $VCS_STATUS_TAG ]]; then + p+='%f#' + where=$VCS_STATUS_TAG + else + p+='%f@' + where=${VCS_STATUS_COMMIT[1,8]} + fi + + (( $#where > 32 )) && where[13,-13]="…" # truncate long branch names and tags + p+="${clean}${where//\%/%%}" # escape % + + # ⇣42 if behind the remote. + (( VCS_STATUS_COMMITS_BEHIND )) && p+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" + # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. + (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && p+=" " + (( VCS_STATUS_COMMITS_AHEAD )) && p+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" + # ⇠42 if behind the push remote. + (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && p+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" + (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && p+=" " + # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. + (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && p+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" + # *42 if have stashes. + (( VCS_STATUS_STASHES )) && p+=" ${clean}*${VCS_STATUS_STASHES}" + # 'merge' if the repo is in an unusual state. + [[ -n $VCS_STATUS_ACTION ]] && p+=" ${conflicted}${VCS_STATUS_ACTION}" + # ~42 if have merge conflicts. + (( VCS_STATUS_NUM_CONFLICTED )) && p+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" + # +42 if have staged changes. + (( VCS_STATUS_NUM_STAGED )) && p+=" ${modified}+${VCS_STATUS_NUM_STAGED}" + # !42 if have unstaged changes. + (( VCS_STATUS_NUM_UNSTAGED )) && p+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" + # ?42 if have untracked files. It's really a question mark, your font isn't broken. + (( VCS_STATUS_NUM_UNTRACKED )) && p+=" ${untracked}?${VCS_STATUS_NUM_UNTRACKED}" + + GITSTATUS_PROMPT="${p}%f" + + # The length of GITSTATUS_PROMPT after removing %f and %F. + GITSTATUS_PROMPT_LEN="${(m)#${${GITSTATUS_PROMPT//\%\%/x}//\%(f|<->F)}}" +} + +# Start gitstatusd instance with name "MY". The same name is passed to +# gitstatus_query in gitstatus_prompt_update. The flags with -1 as values +# enable staged, unstaged, conflicted and untracked counters. +gitstatus_stop 'MY' && gitstatus_start -s -1 -u -1 -c -1 -d -1 'MY' + +# On every prompt, fetch git status and set GITSTATUS_PROMPT. +autoload -Uz add-zsh-hook +add-zsh-hook precmd gitstatus_prompt_update + +# Enable/disable the right prompt options. +setopt no_prompt_bang prompt_percent prompt_subst + +# Customize prompt. Put $GITSTATUS_PROMPT in it to reflect git status. +# +# Example: +# +# user@host ~/projects/skynet master ⇡42 +# % █ +# +# The current directory gets truncated from the left if the whole prompt doesn't fit on the line. +PROMPT='%F{cyan}%n@%m%f ' # green user@host +PROMPT+='%F{blue}%$((-GITSTATUS_PROMPT_LEN-1))<…<%~%<<%f' # blue current working directory +PROMPT+='${GITSTATUS_PROMPT:+ $GITSTATUS_PROMPT}' # git status +PROMPT+=$'\n' # new line +PROMPT+='%F{%(?.green.red)}%#%f ' # %/# (normal/root); green/red (ok/error)