From 6cb7075c12271b8dbb4db1076ef6b16d8b963162 Mon Sep 17 00:00:00 2001 From: Sage Vaillancourt Date: Wed, 27 Sep 2023 12:21:12 -0400 Subject: [PATCH] Various tweaks and improvements. --- .idea/.dotfiles.iml | 8 +- fake_home/.bashrc | 1 + fake_home/.config/rofi/config.rasi | 31 +- fake_home/.config/starship.toml | 26 +- fake_home/.config/xfce4/terminal/terminalrc | 6 +- fake_home/.gitconfig | 1 + fake_home/.ideavimrc | 9 + fake_home/.rofi-history-search.sh | 4 +- fake_home/.rofi-list-git-repos.py | 9 +- fake_home/.shell_aliases | 15 +- fake_home/.sofi.sh | 118 ++++- fake_home/.vim/colors/monokai.vim | 467 ++++++++++++++++++++ fake_home/.vimrc | 9 +- fake_home/.zshrc | 6 +- 14 files changed, 658 insertions(+), 52 deletions(-) create mode 100644 fake_home/.vim/colors/monokai.vim diff --git a/.idea/.dotfiles.iml b/.idea/.dotfiles.iml index bc2cd87..da80146 100644 --- a/.idea/.dotfiles.iml +++ b/.idea/.dotfiles.iml @@ -1,8 +1,12 @@ - - + + + + + \ No newline at end of file diff --git a/fake_home/.bashrc b/fake_home/.bashrc index 6a82646..b3d18fc 100644 --- a/fake_home/.bashrc +++ b/fake_home/.bashrc @@ -2,6 +2,7 @@ # ~/.bashrc # +export PATH=./:~/.bin:~/.local/bin/:$HOME/.platformio/penv/bin:/usr/local/go/bin:$PATH [[ $- != *i* ]] && return colors() { diff --git a/fake_home/.config/rofi/config.rasi b/fake_home/.config/rofi/config.rasi index 8c96b2b..60b6c06 100644 --- a/fake_home/.config/rofi/config.rasi +++ b/fake_home/.config/rofi/config.rasi @@ -1,15 +1,5 @@ configuration { - modes: [ combi, emoji ]; sort: true; - combi-modes: [ - window, - drun, - emoji, - "tabs:/home/sage/.rofi-tabs.sh", - // "history:/home/sage/.rofi-history-search.sh", - "projects:/home/sage/.rofi-list-git-repos.py", - "suspend:/home/sage/.rofi-suspend.sh" - ]; show-icons: true; drun { display-name: ""; @@ -34,16 +24,27 @@ configuration { display-name: ""; fallback-icon: "firefox-beta"; } + modes: [ combi, "mvn:/home/sagevaillancourt/.rofi-mvn-search.py" ]; + combi-modes: [ + window, + drun, + emoji, + "mvn:/home/sagevaillancourt/.rofi-mvn-search.py", + "tabs:/home/sagevaillancourt/.rofi-tabs.sh", + // "history:/home/sage/.rofi-history-search.sh", + "projects:/home/sagevaillancourt/.rofi-list-git-repos.py", + "suspend:/home/sagevaillancourt/.rofi-suspend.sh" + ]; } //@theme "/usr/share/rofi/themes/gruvbox-dark-hard.rasi" //@theme "/usr/share/rofi/themes/Arc-Dark.rasi" -@theme "/usr/share/rofi/themes/android_notification.rasi" +@theme "/usr/local/share/rofi/themes/android_notification.rasi" textbox-prompt-sep { - // str: ">"; + str: ">"; } -inputbar { - // children: [ "textbox-prompt-sep","entry","case-indicator" ]; -} +// inputbar { +// children: [ "textbox-prompt-sep","entry","case-indicator" ]; +// } diff --git a/fake_home/.config/starship.toml b/fake_home/.config/starship.toml index 504031d..95967c3 100644 --- a/fake_home/.config/starship.toml +++ b/fake_home/.config/starship.toml @@ -6,6 +6,12 @@ $hostname\ $shlvl\ $kubernetes\ $directory\ +$git_branch\ +$git_commit\ +$git_state\ +$git_metrics\ +$git_status\ +$hg_branch\ $vcsh\ $java\ $nodejs\ @@ -34,12 +40,6 @@ $terraform\ $vlang\ $vagrant\ $zig\ -$git_branch\ -$git_commit\ -$git_state\ -$git_metrics\ -$git_status\ -$hg_branch\ $docker_context\ $cmake\ $nix_shell\ @@ -92,3 +92,17 @@ discharging_symbol = " " # threshold = 100 # style = "green" # discharging_symbol = " " + +# [git_branch] +# format = "\n on [$symbol$branch(:$remote_branch)]($style) " + +[directory.substitutions] +'~/git/' = '' + +[custom.in-project-dir] +command = '/home/sagevaillancourt/.in_project_dir.sh' +when = true +style = 'bold red' + +[dotnet] +format = 'via [$symbol($version) (◎ $tfm )]($style)' diff --git a/fake_home/.config/xfce4/terminal/terminalrc b/fake_home/.config/xfce4/terminal/terminalrc index da24c57..c7ca1a8 100644 --- a/fake_home/.config/xfce4/terminal/terminalrc +++ b/fake_home/.config/xfce4/terminal/terminalrc @@ -16,7 +16,7 @@ MiscTabCloseMiddleClick=TRUE MiscTabPosition=GTK_POS_TOP MiscHighlightUrls=TRUE ScrollingLines=999999 -BackgroundDarkness=0.750000 +BackgroundDarkness=0.610000 ScrollingOnOutput=FALSE MiscBellUrgent=TRUE MiscMouseWheelZoom=TRUE @@ -33,12 +33,12 @@ ScrollingBar=TERMINAL_SCROLLBAR_NONE BackgroundImageFile=/home/sage/Pictures/ballpapers/wallhaven-r7vxk1.jpg BackgroundImageShading=0.790000 BackgroundImageStyle=TERMINAL_BACKGROUND_STYLE_CENTERED -FontName=FiraCode Nerd Font weight=450 14 +FontName=FiraCode Nerd Font weight=453 10 ColorCursor=#f8f8f2 ColorBold=#f8f8f2 ColorBoldUseDefault=FALSE ColorPalette=rgb(39,40,34);rgb(249,38,114);rgb(146,198,42);rgb(244,191,117);rgb(102,217,239);rgb(174,129,255);rgb(161,239,228);rgb(248,248,242);rgb(117,113,94);rgb(249,38,114);rgb(166,226,46);rgb(244,191,117);rgb(102,217,239);rgb(174,129,255);rgb(161,239,228);rgb(249,248,245) -ColorForeground=#f8f8f2 +ColorForeground=#ffffffffffff ColorBackground=#206d206d206d CustomCommand=zsh diff --git a/fake_home/.gitconfig b/fake_home/.gitconfig index 3510408..3515826 100644 --- a/fake_home/.gitconfig +++ b/fake_home/.gitconfig @@ -5,6 +5,7 @@ [core] autocrlf = input excludesfile = ~/.gitignore + hooksPath = ~/.githooks [credential] helper = store diff --git a/fake_home/.ideavimrc b/fake_home/.ideavimrc index 36630d9..b1bd1e8 100644 --- a/fake_home/.ideavimrc +++ b/fake_home/.ideavimrc @@ -1,5 +1,7 @@ set nocompatible " be iMproved, required filetype off " required +set visualbell +set noerrorbells " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim @@ -53,9 +55,15 @@ nnoremap nnoremap nnoremap +nnoremap dK kdd +nnoremap dJ jdd + nnoremap >f viwc:set ri":set nori vnoremap \f c:set ri":set nori +let mapleader = " " +map bs :action BuildWholeSolutionAction + autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview set viewoptions-=options @@ -63,3 +71,4 @@ set nohlsearch " Save with sudo cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! +set ideajoin \ No newline at end of file diff --git a/fake_home/.rofi-history-search.sh b/fake_home/.rofi-history-search.sh index 76d625f..b83d511 100755 --- a/fake_home/.rofi-history-search.sh +++ b/fake_home/.rofi-history-search.sh @@ -1,4 +1,6 @@ -FIREFOX_PROFILE="$HOME/.mozilla/firefox/qzw6ae3r.default-beta" +#!/bin/bash + +FIREFOX_PROFILE="$HOME/.mozilla/firefox/7sxxu758.dev-edition-default" PLACES_FILE="$FIREFOX_PROFILE/places.sqlite" WORKING_PLACES="$FIREFOX_PROFILE/places2.sqlite" CACHE_FILE="$HOME/.rofi-history-cache" diff --git a/fake_home/.rofi-list-git-repos.py b/fake_home/.rofi-list-git-repos.py index bb8a7cb..bb25b60 100755 --- a/fake_home/.rofi-list-git-repos.py +++ b/fake_home/.rofi-list-git-repos.py @@ -6,9 +6,9 @@ import sys home = os.environ['HOME'] git_dirs = [ - home + "/work", home + "/projects", home + "/git", + home + "/git/worktrees", home + "/WebStormProjects", home + "/RiderProjects" ] @@ -58,6 +58,7 @@ def get_icon(project: str) -> str | None: def open_project(project: str) -> (): + project = project.replace("~", home) (project_type, file) = get_project_type(project) if project_type is None: return @@ -73,7 +74,9 @@ def print_project_message(project: str) -> (): if icon is None: return - print(f'{project}\0icon\x1f{icon}') + project = project.replace(home, "~") + print(f'git {project}') + # print(f'{project}\0icon\x1f{icon}') if __name__ == '__main__': @@ -86,4 +89,4 @@ if __name__ == '__main__': if os.path.isdir(project): print_project_message(project) else: - open_project(sys.argv[1]) + open_project(sys.argv[1][4:]) diff --git a/fake_home/.shell_aliases b/fake_home/.shell_aliases index f922434..8be6707 100755 --- a/fake_home/.shell_aliases +++ b/fake_home/.shell_aliases @@ -1,5 +1,15 @@ #!/bin/bash +function uvim { + vim "scp://undercover.cafe:64522//data/data/com.termux/files/home/$@" +} + +function hearch { + history 0 | sed 's/[0-9 ]*//' | grep "$@" +} + +alias hsearch='hearch' + function fin { find -iname "*$@*" } @@ -34,9 +44,6 @@ function ww { ws $(rg --no-line-number --no-filename . ~/wiki | sed 's/[^a-zA-Z0-9]\+/\n/g' | grep -v "^$" | sort -f | uniq -ci | sort -hr | fzf -i | cut -c 9-) } -if command -v bat; then - alias cat="bat" -fi export FZF_DEFAULT_COMMAND='fd --type f' alias fzf="fzf --preview 'bat --style=numbers --color=always {}'" @@ -89,7 +96,7 @@ alias termrc='vim ~/.config/xfce4/terminal/terminalrc' # Use `grepr` for a recursive, case-insensitive, and filtered grep # alias grepr="grep -RInsi --color=auto --exclude-dir=.git --exclude=tags" # alias grepr='grep -RInsi --color=auto --exclude-dir=.git --exclude-dir=banana_pi_kernel --exclude-dir={bpi_build_scripts, storm_dox, sam_dox} --exclude=tags --exclude=\*.{ko, o}' -alias grepr='grep -RIns --color=auto --exclude-dir=.git --exclude-dir=venv --exclude-dir=node_modules --exclude=tags --exclude-dir=build' +alias grepr='grep -RIns --color=auto --exclude-dir=.git --exclude-dir=venv --exclude-dir=node_modules --exclude=tags --exclude-dir=build --exclude-dir=.idea' alias grepi='grepr -i' alias apt="sudo apt" diff --git a/fake_home/.sofi.sh b/fake_home/.sofi.sh index e884a28..b1e09d4 100755 --- a/fake_home/.sofi.sh +++ b/fake_home/.sofi.sh @@ -10,13 +10,28 @@ FILE_LOCATIONS="$HOME/Documents $HOME/Downloads" ! [[ "$XDG_SESSION_TYPE" = "x11" ]] IS_X11="$?" +sofi_id() { + gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell/Extensions/Windows --method org.gnome.Shell.Extensions.Windows.List | cut -c 3- | rev | cut -c4- | rev | jq '.[] | .id' | while read id; do + if gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell/Extensions/Windows --method org.gnome.Shell.Extensions.Windows.GetTitle $id | grep "SOFI" &> /dev/null; then + echo $id + fi + done +} + # Open search window or raise existing one if [[ "$1" == "--launch" ]]; then if (($IS_X11)) && existing="$(xdotool search $WINDOW_NAME)"; then xdotool windowraise "$existing" else # xfce4-terminal --role="$WINDOW_NAME" --title="$WINDOW_NAME" --startup-id="$WINDOW_NAME" -e "bash -c '$HOME/.sofi.sh'" - xterm -fa 'Monospaced' -fs 10 -e "bash -c '$HOME/.sofi.sh'" + + + id="$(sofi_id)" + if [[ "$id" != "" ]]; then + gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell/Extensions/Windows --method org.gnome.Shell.Extensions.Windows.Activate $id + else + xterm -geometry 120x40 -fa 'Monospaced' -fs 10 -T "SOFI" -e "bash -c '$HOME/.sofi.sh'" + fi # st -e bash -c '$HOME/.sofi.sh'" fi exit $? @@ -24,14 +39,17 @@ fi windows() { if ! (($IS_X11)); then - return + gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell/Extensions/Windows --method org.gnome.Shell.Extensions.Windows.List | cut -c 3- | rev | cut -c4- | rev | jq '.[] | .id' | while read id; do + echo "win" "$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell/Extensions/Windows --method org.gnome.Shell.Extensions.Windows.GetTitle $id | cut -c 3- | rev | cut -c4- | rev)" "|" $id + done + else + xprop -root _NET_CLIENT_LIST | + pcregrep -o1 '# (.*)' | + sed 's/, /\n/g' | + xargs -I {} -n1 xprop -id {} _NET_WM_NAME | + grep -v '"Desktop"\|"xfce4-panel"' | + sed 's/_NET_WM_NAME(UTF8_STRING) = "/win /' | sed 's/"$//' fi - xprop -root _NET_CLIENT_LIST | - pcregrep -o1 '# (.*)' | - sed 's/, /\n/g' | - xargs -I {} -n1 xprop -id {} _NET_WM_NAME | - grep -v '"Desktop"\|"xfce4-panel"' | - sed 's/_NET_WM_NAME(UTF8_STRING) = "/win /' | sed 's/"$//' } read_apps() { @@ -42,6 +60,10 @@ read_apps() { sed 's/Name=/app /' > "$CACHE_FILE" & } +read_snap_apps() { + snap list | tail -n +2 | awk '{print "snp " $1}' +} + open_app() { app="$(echo "$1" | cut -c 5-)" # shellcheck disable=SC2086 @@ -69,6 +91,7 @@ if [[ "$1" == "--print-only" ]]; then <(windows) \ <($HOME/.rofi-list-git-repos.py --no-icon) \ <(read_apps) \ + <(read_snap_apps) \ <(list_files) \ $HOME/.emojis exit 1 @@ -78,28 +101,97 @@ choice="$(cat \ <(windows) \ <("$HOME/.rofi-list-git-repos.py") \ <(read_apps) \ + <(read_snap_apps) \ <(list_files) \ "$HOME/.emojis" \ - | fzf)" + | fzf --print-query --preview="$HOME/.sofi-preview.sh {} {q}")" +echo +qstring="$(echo "$choice" | head -n 1)" +choice="$(echo "$choice" | tail -n 1)" + +mvn_handler() { + qarg="$(echo "$1" | cut -c 5-)" + row_count=10 + arr_result="$(curl -s "https://search.maven.org/solrsearch/select?q=$qarg&rows=$row_count&wt=json" | jq '[.response.docs[] | { g, a, latestVersion } ]')" + + for i in 0 1 2 3 4 5 6 7 8 9; do + groupId="$(echo -n "$arr_result" | jq -r ".[$i].g")" + artifactId="$(echo -n "$arr_result" | jq -r ".[$i].a")" + latestVersion="$(echo -n "$arr_result" | jq -r ".[$i].latestVersion")" + echo "mvr $groupId:$artifactId $latestVersion" + done | fzf --print-query --preview="$HOME/.sofi-preview.sh {} {q}" +} + +npm_handler() { + qarg="$(echo "$1" | cut -c 5-)" + NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm + [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + package="$(npm search $qarg | tail -n +2 | fzf | sed 's/ .*//')" + setsid xdg-open "https://npmjs.com/package/$package" &> /dev/null & +} case $choice in git*) setsid "$HOME/.rofi-list-git-repos.py" "$choice" &> /dev/null & ;; win*) - wmctrl -i -R "$(xwininfo -root -tree | - grep "$(echo "$choice" | cut -c 5-)" | - awk '{ print $1 }' | - sed 's/0x/0x00/')" + if (($IS_X11)); then + wmctrl -i -R "$(xwininfo -root -tree | + grep "$(echo "$choice" | cut -c 5-)" | + awk '{ print $1 }' | + sed 's/0x/0x00/')" + else + gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell/Extensions/Windows --method org.gnome.Shell.Extensions.Windows.Activate "$(echo "$choice" | sed 's/.* \([0-9]\+\)$/\1/')" + fi ;; app*) open_app "$choice" ;; + snp*) + app="$(echo "$choice" | cut -c 5-)" + setsid $app >/dev/null 2>&1 /dev/null & ;; + + *) + case $qstring in + mvn*) + lib="$(mvn_handler "$qstring")" + lib="$(echo "$lib" | cut -c 5-)" + groupId="$(echo -n "${lib//[$'\t\r\n']}" | sed 's/\(.*\):.*/\1/')" + artifactId="$(echo -n "${lib//[$'\t\r\n']}" | sed 's/.*:\(.*\) .*/\1/')" + latestVersion="$(echo -n "${lib//[$'\t\r\n']}" | sed 's/.* \(.*\)/\1/')" + + xml="$(cat < + ${groupId} + ${artifactId} + ${latestVersion} + +EOF +)" + if (($IS_X11)); then + nohup xclip -selection clipboard <(echo -n "$xml") &> /dev/null & + else + wl-copy "$xml" + fi + echo "Copied to clipboard!" + sleep 0.5 + ;; + + npm*) + lib="$(npm_handler "$qstring")" + lib="$(echo "$lib" | cut -c 5-)" + ;; + + esac + ;; esac + sleep 0.1 diff --git a/fake_home/.vim/colors/monokai.vim b/fake_home/.vim/colors/monokai.vim new file mode 100644 index 0000000..ee5158a --- /dev/null +++ b/fake_home/.vim/colors/monokai.vim @@ -0,0 +1,467 @@ +" File: monokai.vim +" Maintainer: Crusoe Xia (crusoexia) +" URL: https://github.com/crusoexia/vim-monokai +" License: MIT +" +" The colour palette is from http://www.colourlovers.com/ + +" Initialisation +" -------------- + +if !has("gui_running") && &t_Co < 256 + finish +endif + +if ! exists("g:monokai_gui_italic") + let g:monokai_gui_italic = 0 +endif + +if ! exists("g:monokai_term_italic") + let g:monokai_term_italic = 0 +endif + +let g:monokai_termcolors = 256 " does not support 16 color term right now. + +set background=dark +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "monokai" + +function! s:h(group, style) + let s:ctermformat = "NONE" + let s:guiformat = "NONE" + if has_key(a:style, "format") + let s:ctermformat = a:style.format + let s:guiformat = a:style.format + endif + if g:monokai_term_italic == 0 + let s:ctermformat = substitute(s:ctermformat, ",italic", "", "") + let s:ctermformat = substitute(s:ctermformat, "italic,", "", "") + let s:ctermformat = substitute(s:ctermformat, "italic", "", "") + endif + if g:monokai_gui_italic == 0 + let s:guiformat = substitute(s:guiformat, ",italic", "", "") + let s:guiformat = substitute(s:guiformat, "italic,", "", "") + let s:guiformat = substitute(s:guiformat, "italic", "", "") + endif + if g:monokai_termcolors == 16 + let l:ctermfg = (has_key(a:style, "fg") ? a:style.fg.cterm16 : "NONE") + let l:ctermbg = (has_key(a:style, "bg") ? a:style.bg.cterm16 : "NONE") + else + let l:ctermfg = (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE") + let l:ctermbg = (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE") + end + execute "highlight" a:group + \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE") + \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE") + \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE") + \ "gui=" (!empty(s:guiformat) ? s:guiformat : "NONE") + \ "ctermfg=" . l:ctermfg + \ "ctermbg=" . l:ctermbg + \ "cterm=" (!empty(s:ctermformat) ? s:ctermformat : "NONE") +endfunction + +" Palettes +" -------- + +let s:white = { "gui": "#E8E8E3", "cterm": "252" } +let s:white2 = { "gui": "#d8d8d3", "cterm": "250" } +let s:black = { "gui": "#272822", "cterm": "234" } +let s:lightblack = { "gui": "#2D2E27", "cterm": "235" } +let s:lightblack2 = { "gui": "#383a3e", "cterm": "236" } +let s:lightblack3 = { "gui": "#3f4145", "cterm": "237" } +let s:darkblack = { "gui": "#211F1C", "cterm": "233" } +let s:grey = { "gui": "#8F908A", "cterm": "243" } +let s:lightgrey = { "gui": "#575b61", "cterm": "237" } +let s:darkgrey = { "gui": "#64645e", "cterm": "239" } +let s:warmgrey = { "gui": "#75715E", "cterm": "59" } + +let s:pink = { "gui": "#F92772", "cterm": "197" } +let s:green = { "gui": "#A6E22D", "cterm": "148" } +let s:aqua = { "gui": "#66d9ef", "cterm": "81" } +let s:yellow = { "gui": "#E6DB74", "cterm": "186" } +let s:orange = { "gui": "#FD9720", "cterm": "208" } +let s:purple = { "gui": "#ae81ff", "cterm": "141" } +let s:red = { "gui": "#e73c50", "cterm": "196" } +let s:purered = { "gui": "#ff0000", "cterm": "52" } +let s:darkred = { "gui": "#5f0000", "cterm": "52" } + +let s:addfg = { "gui": "#d7ffaf", "cterm": "193" } +let s:addbg = { "gui": "#5f875f", "cterm": "65" } +let s:delfg = { "gui": "#ff8b8b", "cterm": "210" } +let s:delbg = { "gui": "#f75f5f", "cterm": "124" } +let s:changefg = { "gui": "#d7d7ff", "cterm": "189" } +let s:changebg = { "gui": "#5f5f87", "cterm": "60" } + +let s:cyan = { "gui": "#A1EFE4" } +let s:br_green = { "gui": "#9EC400" } +let s:br_yellow = { "gui": "#E7C547" } +let s:br_blue = { "gui": "#7AA6DA" } +let s:br_purple = { "gui": "#B77EE0" } +let s:br_cyan = { "gui": "#54CED6" } +let s:br_white = { "gui": "#FFFFFF" } + +" Highlighting +" ------------ + +" editor +call s:h("Normal", { "fg": s:white, "bg": s:black }) +call s:h("ColorColumn", { "bg": s:lightblack }) +call s:h("Cursor", { "fg": s:black, "bg": s:white }) +call s:h("CursorColumn", { "bg": s:lightblack2 }) +call s:h("CursorLine", { "bg": s:lightblack2 }) +call s:h("NonText", { "fg": s:lightgrey }) +call s:h("Visual", { "bg": s:lightgrey }) +call s:h("Search", { "fg": s:black, "bg": s:yellow }) +call s:h("MatchParen", { "fg": s:purple, "format": "underline,bold" }) +call s:h("Question", { "fg": s:yellow }) +call s:h("ModeMsg", { "fg": s:yellow }) +call s:h("MoreMsg", { "fg": s:yellow }) +call s:h("ErrorMsg", { "fg": s:black, "bg": s:red, "format": "standout" }) +call s:h("WarningMsg", { "fg": s:red }) +call s:h("VertSplit", { "fg": s:darkgrey, "bg": s:darkblack }) +call s:h("LineNr", { "fg": s:grey, "bg": s:lightblack }) +call s:h("CursorLineNr", { "fg": s:orange, "bg": s:lightblack }) +call s:h("SignColumn", { "bg": s:lightblack }) + +" statusline +call s:h("StatusLine", { "fg": s:black, "bg": s:lightgrey }) +call s:h("StatusLineNC", { "fg": s:lightgrey, "bg": s:black }) +call s:h("TabLine", { "fg": s:lightgrey, "bg": s:lightblack }) +call s:h("TabLineSel", { "fg": s:darkblack, "bg": s:warmgrey, "format": "bold" }) +call s:h("TabLineFill", { "bg": s:lightblack }) +call s:h("User1", { "fg": s:yellow, "bg": s:lightgrey, "format": "bold" }) +call s:h("User2", { "fg": s:orange, "bg": s:lightgrey, "format": "bold" }) +call s:h("User3", { "fg": s:purple, "bg": s:lightgrey, "format": "bold" }) +call s:h("User4", { "fg": s:aqua, "bg": s:lightgrey, "format": "bold" }) + +" spell +call s:h("SpellBad", { "fg": s:red, "format": "underline" }) +call s:h("SpellCap", { "fg": s:purple, "format": "underline" }) +call s:h("SpellRare", { "fg": s:aqua, "format": "underline" }) +call s:h("SpellLocal", { "fg": s:pink, "format": "underline" }) + +" misc +call s:h("SpecialKey", { "fg": s:pink }) +call s:h("Title", { "fg": s:yellow }) +call s:h("Directory", { "fg": s:aqua }) + +" diff +call s:h("DiffAdd", { "fg": s:addfg, "bg": s:addbg }) +call s:h("DiffDelete", { "fg": s:delfg, "bg": s:delbg }) +call s:h("DiffChange", { "fg": s:changefg, "bg": s:changebg }) +call s:h("DiffText", { "fg": s:black, "bg": s:aqua }) + +" fold +call s:h("Folded", { "fg": s:warmgrey, "bg": s:darkblack }) +call s:h("FoldColumn", { "bg": s:darkblack }) +" Incsearch" + +" popup menu +call s:h("Pmenu", { "fg": s:white2, "bg": s:lightblack3 }) +call s:h("PmenuSel", { "fg": s:aqua, "bg": s:lightblack3, "format": "reverse,bold" }) +call s:h("PmenuThumb", { "fg": s:lightblack, "bg": s:grey }) +" PmenuSbar" + +" Generic Syntax Highlighting +" --------------------------- + +call s:h("Constant", { "fg": s:purple }) +call s:h("Number", { "fg": s:purple }) +call s:h("Float", { "fg": s:purple }) +call s:h("Boolean", { "fg": s:purple }) +call s:h("Character", { "fg": s:yellow }) +call s:h("String", { "fg": s:yellow }) + +call s:h("Type", { "fg": s:aqua }) +call s:h("Structure", { "fg": s:aqua }) +call s:h("StorageClass", { "fg": s:aqua }) +call s:h("Typedef", { "fg": s:aqua }) + +call s:h("Identifier", { "fg": s:green }) +call s:h("Function", { "fg": s:green }) + +call s:h("Statement", { "fg": s:pink }) +call s:h("Operator", { "fg": s:pink }) +call s:h("Label", { "fg": s:pink }) +call s:h("Keyword", { "fg": s:pink }) +" Conditional" +" Repeat" +" Exception" + +call s:h("PreProc", { "fg": s:green }) +call s:h("Include", { "fg": s:pink }) +call s:h("Define", { "fg": s:pink }) +call s:h("Macro", { "fg": s:green }) +call s:h("PreCondit", { "fg": s:green }) + +call s:h("Special", { "fg": s:purple }) +call s:h("SpecialChar", { "fg": s:pink }) +call s:h("Delimiter", { "fg": s:pink }) +call s:h("SpecialComment",{ "fg": s:aqua }) +call s:h("Tag", { "fg": s:pink }) +" Debug" + +call s:h("Todo", { "fg": s:orange, "format": "bold,italic" }) +call s:h("Comment", { "fg": s:warmgrey, "format": "italic" }) + +call s:h("Underlined", { "fg": s:green }) +call s:h("Ignore", {}) +call s:h("Error", { "fg": s:red, "bg": s:darkred }) + +" NerdTree +" -------- + +call s:h("NERDTreeOpenable", { "fg": s:yellow }) +call s:h("NERDTreeClosable", { "fg": s:yellow }) +call s:h("NERDTreeHelp", { "fg": s:yellow }) +call s:h("NERDTreeBookmarksHeader", { "fg": s:pink }) +call s:h("NERDTreeBookmarksLeader", { "fg": s:black }) +call s:h("NERDTreeBookmarkName", { "fg": s:yellow }) +call s:h("NERDTreeCWD", { "fg": s:pink }) +call s:h("NERDTreeUp", { "fg": s:white }) +call s:h("NERDTreeDirSlash", { "fg": s:grey }) +call s:h("NERDTreeDir", { "fg": s:grey }) + +" Syntastic +" --------- + +hi! link SyntasticErrorSign Error +call s:h("SyntasticWarningSign", { "fg": s:lightblack, "bg": s:orange }) + +" coc +" --- + +hi! link CocErrorSign Error +call s:h("CocErrorHighlight", { "fg": s:red, "format": "underline" }) +call s:h("CocErrorFloat", { "fg": s:purered, "bg": s:lightblack3 }) + +call s:h("CocWarningSign", { "fg": s:orange, "bg": s:lightblack }) +call s:h("CocWarningHighlight", { "format": "underline" }) +call s:h("CocWarningFloat", { "fg": s:orange, "bg": s:lightblack3 }) + +call s:h("CocInfoSign", { "fg": s:yellow, "bg": s:lightblack3 }) +call s:h("CocInfoHighlight", { "format": "underline" }) + +call s:h("CocHintSign", { "fg": s:white, "bg": s:lightblack3 }) +call s:h("CocHintHighlight", { "format": "underline" }) + +" Language highlight +" ------------------ + +" Java properties +call s:h("jpropertiesIdentifier", { "fg": s:pink }) + +" Vim command +call s:h("vimCommand", { "fg": s:pink }) + +" Javascript +call s:h("jsClassKeyword", { "fg": s:aqua, "format": "italic" }) +call s:h("jsGlobalObjects", { "fg": s:aqua, "format": "italic" }) +call s:h("jsFuncName", { "fg": s:green }) +call s:h("jsThis", { "fg": s:orange, "format": "italic" }) +call s:h("jsObjectKey", { "fg": s:white }) +call s:h("jsFunctionKey", { "fg": s:green }) +call s:h("jsPrototype", { "fg": s:aqua }) +call s:h("jsExceptions", { "fg": s:aqua }) +call s:h("jsFutureKeys", { "fg": s:aqua }) +call s:h("jsBuiltins", { "fg": s:aqua }) +call s:h("jsStatic", { "fg": s:aqua }) +call s:h("jsSuper", { "fg": s:orange, "format": "italic" }) +call s:h("jsFuncArgRest", { "fg": s:purple, "format": "italic" }) +call s:h("jsFuncArgs", { "fg": s:orange, "format": "italic" }) +call s:h("jsStorageClass", { "fg": s:aqua, "format": "italic" }) +call s:h("jsDocTags", { "fg": s:aqua, "format": "italic" }) +call s:h("jsFunction", { "fg": s:aqua, "format": "italic" }) + +" Typescript +call s:h("typescriptBraces", { "fg": s:white }) +call s:h("typescriptParens", { "fg": s:white }) +call s:h("typescriptOperator", { "fg": s:pink }) +call s:h("typescriptEndColons", { "fg": s:white }) +call s:h("typescriptModule", { "fg": s:aqua }) +call s:h("typescriptPredefinedType", { "fg": s:aqua }) +call s:h("typescriptImport", { "fg": s:pink }) +call s:h("typescriptExport", { "fg": s:pink }) +call s:h("typescriptIdentifier", { "fg": s:orange, "format": "italic" }) +call s:h("typescriptVariable", { "fg": s:aqua }) +call s:h("typescriptCastKeyword", { "fg": s:pink }) +call s:h("typescriptAmbientDeclaration", { "fg": s:pink }) +call s:h("typescriptTestGlobal", { "fg": s:pink }) +call s:h("typescriptFuncKeyword", { "fg": s:aqua }) +call s:h("typescriptFuncTypeArrow", { "fg": s:aqua }) +call s:h("typescriptFuncType", { "fg": s:orange, "format": "italic" }) +call s:h("typescriptFuncName", { "fg": s:green }) +call s:h("typescriptArrowFuncArg", { "fg": s:orange, "format": "italic" }) +call s:h("typescriptCall", { "fg": s:orange, "format": "italic" }) +call s:h("typescriptClassKeyword", { "fg": s:aqua, "format": "italic" }) +call s:h("typescriptClassName", { "fg": s:white }) +call s:h("typescriptClassHeritage", { "fg": s:white }) +call s:h("typescriptInterfaceKeyword", { "fg": s:aqua, "format": "italic" }) +call s:h("typescriptInterfaceName", { "fg": s:white }) +call s:h("typescriptObjectLabel", { "fg": s:green }) +call s:h("typescriptMember", { "fg": s:green }) +call s:h("typescriptTypeReference", { "fg": s:purple, "format": "italic" }) +call s:h("typescriptTypeParameter", { "fg": s:purple, "format": "italic" }) +call s:h("typescriptOptionalMark", { "fg": s:pink }) +call s:h("tsxAttrib", { "fg": s:green }) +call s:h("tsxTagName", { "fg": s:pink }) + +" Dart +call s:h("dartStorageClass", { "fg": s:pink }) +call s:h("dartExceptions", { "fg": s:pink }) +call s:h("dartConditional", { "fg": s:pink }) +call s:h("dartRepeat", { "fg": s:pink }) +call s:h("dartTypedef", { "fg": s:pink }) +call s:h("dartKeyword", { "fg": s:pink }) +call s:h("dartConstant", { "fg": s:purple }) +call s:h("dartBoolean", { "fg": s:purple }) +call s:h("dartCoreType", { "fg": s:aqua }) +call s:h("dartType", { "fg": s:aqua }) + +" HTML +call s:h("htmlTag", { "fg": s:white }) +call s:h("htmlEndTag", { "fg": s:white }) +call s:h("htmlTagName", { "fg": s:pink }) +call s:h("htmlArg", { "fg": s:green }) +call s:h("htmlSpecialChar", { "fg": s:purple }) + +" XML +call s:h("xmlTag", { "fg": s:pink }) +call s:h("xmlEndTag", { "fg": s:pink }) +call s:h("xmlTagName", { "fg": s:orange }) +call s:h("xmlAttrib", { "fg": s:green }) + +" JSX +call s:h("jsxTag", { "fg": s:white }) +call s:h("jsxCloseTag", { "fg": s:white }) +call s:h("jsxCloseString", { "fg": s:white }) +call s:h("jsxPunct", { "fg": s:white }) +call s:h("jsxClosePunct", { "fg": s:white }) +call s:h("jsxTagName", { "fg": s:pink }) +call s:h("jsxComponentName", { "fg": s:pink }) +call s:h("jsxAttrib", { "fg": s:green }) +call s:h("jsxEqual", { "fg": s:white }) +call s:h("jsxBraces", { "fg": s:white }) + +" CSS +call s:h("cssProp", { "fg": s:yellow }) +call s:h("cssUIAttr", { "fg": s:yellow }) +call s:h("cssFunctionName", { "fg": s:aqua }) +call s:h("cssColor", { "fg": s:purple }) +call s:h("cssPseudoClassId", { "fg": s:purple }) +call s:h("cssClassName", { "fg": s:green }) +call s:h("cssValueLength", { "fg": s:purple }) +call s:h("cssCommonAttr", { "fg": s:pink }) +call s:h("cssBraces" , { "fg": s:white }) +call s:h("cssClassNameDot", { "fg": s:pink }) +call s:h("cssURL", { "fg": s:orange, "format": "underline,italic" }) + +" LESS +call s:h("lessVariable", { "fg": s:green }) + +" SASS +call s:h("sassMixing", { "fg": s:aqua }) +call s:h("sassMixin", { "fg": s:aqua }) +call s:h("sassFunctionDecl", { "fg": s:aqua }) +call s:h("sassReturn", { "fg": s:aqua }) +call s:h("sassClass", { "fg": s:green }) +call s:h("sassClassChar", { "fg": s:pink }) +call s:h("sassIdChar", { "fg": s:pink }) +call s:h("sassControl", { "fg": s:aqua }) +call s:h("sassFor", { "fg": s:aqua }) + +" ruby +call s:h("rubyInterpolationDelimiter", {}) +call s:h("rubyInstanceVariable", {}) +call s:h("rubyGlobalVariable", {}) +call s:h("rubyClassVariable", {}) +call s:h("rubyPseudoVariable", {}) +call s:h("rubyFunction", { "fg": s:green }) +call s:h("rubyStringDelimiter", { "fg": s:yellow }) +call s:h("rubyRegexp", { "fg": s:yellow }) +call s:h("rubyRegexpDelimiter", { "fg": s:yellow }) +call s:h("rubySymbol", { "fg": s:purple }) +call s:h("rubyEscape", { "fg": s:purple }) +call s:h("rubyInclude", { "fg": s:pink }) +call s:h("rubyOperator", { "fg": s:pink }) +call s:h("rubyControl", { "fg": s:pink }) +call s:h("rubyClass", { "fg": s:pink }) +call s:h("rubyDefine", { "fg": s:pink }) +call s:h("rubyException", { "fg": s:pink }) +call s:h("rubyRailsARAssociationMethod",{ "fg": s:orange }) +call s:h("rubyRailsARMethod", { "fg": s:orange }) +call s:h("rubyRailsRenderMethod", { "fg": s:orange }) +call s:h("rubyRailsMethod", { "fg": s:orange }) +call s:h("rubyConstant", { "fg": s:aqua }) +call s:h("rubyBlockArgument", { "fg": s:orange }) +call s:h("rubyBlockParameter", { "fg": s:orange }) + +" eruby +call s:h("erubyDelimiter", {}) +call s:h("erubyRailsMethod", { "fg": s:aqua }) + +" c +call s:h("cLabel", { "fg": s:pink }) +call s:h("cStructure", { "fg": s:aqua }) +call s:h("cStorageClass", { "fg": s:pink }) +call s:h("cInclude", { "fg": s:pink }) +call s:h("cDefine", { "fg": s:pink }) +call s:h("cSpecial", { "fg": s:purple }) + +" Markdown +call s:h("markdownCode", { "fg": s:purple, "format": "italic" } ) +call s:h("markdownListMarker", { "fg": s:purple } ) + +" vim-notes +call s:h("notesTitle", { "fg": s:aqua, "format": "bold" } ) +call s:h("notesAtxMarker", { "fg": s:pink, "format": "italic,bold" } ) +call s:h("notesShortHeading", { "fg": s:white, "format": "bold" } ) +call s:h("notesListBullet", { "fg": s:purple } ) +call s:h("notesListNumber", { "fg": s:purple, "format": "italic" } ) +call s:h("notesBold", { "format": "bold" } ) +call s:h("notesDoneMarker", { "fg": s:green } ) + +" Terminal Colors +" --------------- +if has('nvim') + let g:terminal_color_0 = s:black.gui + let g:terminal_color_1 = s:red.gui + let g:terminal_color_2 = s:green.gui + let g:terminal_color_3 = s:yellow.gui + let g:terminal_color_4 = s:aqua.gui + let g:terminal_color_5 = s:purple.gui + let g:terminal_color_6 = s:cyan.gui + let g:terminal_color_7 = s:white.gui + let g:terminal_color_8 = s:darkgrey.gui + let g:terminal_color_9 = s:pink.gui + let g:terminal_color_10 = s:br_green.gui + let g:terminal_color_11 = s:br_yellow.gui + let g:terminal_color_12 = s:br_blue.gui + let g:terminal_color_13 = s:br_purple.gui + let g:terminal_color_14 = s:br_cyan.gui + let g:terminal_color_15 = s:br_white.gui +else + let g:terminal_ansi_colors = [ + \ s:black.gui, + \ s:red.gui, + \ s:green.gui, + \ s:yellow.gui, + \ s:aqua.gui, + \ s:purple.gui, + \ s:cyan.gui, + \ s:white.gui, + \ s:darkgrey.gui, + \ s:pink.gui, + \ s:br_green.gui, + \ s:br_yellow.gui, + \ s:br_blue.gui, + \ s:br_purple.gui, + \ s:br_cyan.gui, + \ s:br_white.gui] +endif + diff --git a/fake_home/.vimrc b/fake_home/.vimrc index e3f66d2..e8b69a9 100644 --- a/fake_home/.vimrc +++ b/fake_home/.vimrc @@ -19,10 +19,10 @@ else let &t_8b = "\[48:2:%lu:%lu:%lum" syntax enable - colorscheme jellybeans + colorscheme monokai endif -let mapleader=" " +" let mapleader=" " "nnoremap w yiwq:PIe `~/.shell_aliases ws "nnoremap w yiw:let srr_back = &srr set srr=>q:PIr! /home/sage/.shell_aliases wf " TODO Check if file needs saving @@ -177,6 +177,9 @@ iab reteun return iab reutner return " Keep same gutter color when errored -highlight! link SignColumn LineNr +" highlight! link SignColumn LineNr + +" Include hyphens in words +set iskeyword+=- so ~/.vim/user/files.vim diff --git a/fake_home/.zshrc b/fake_home/.zshrc index 7c39b7c..a8914cd 100644 --- a/fake_home/.zshrc +++ b/fake_home/.zshrc @@ -1,4 +1,3 @@ -source ~/.zsh_local if test -f /usr/share/doc/fzf/examples/completion.zsh &> /dev/null; then source /usr/share/doc/fzf/examples/completion.zsh fi @@ -38,7 +37,7 @@ if [ -x /usr/bin/dircolors ]; then alias egrep='egrep --color=auto' fi -export PATH=./:~/.bin:$HOME/.dotnet:$HOME/.platformio/penv/bin:/usr/local/go/bin:$PATH +export PATH=~/.bin:$HOME/.dotnet:~/.local/bin:$HOME/.platformio/penv/bin:/usr/local/go/bin:$PATH fignore=(o) @@ -91,7 +90,10 @@ if test -f ~/.cargo/env; then fi source ~/.shell_aliases +source ~/.zsh_local export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + +source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh