Various tweaks and improvements.

This commit is contained in:
Sage Vaillancourt 2023-09-27 12:21:12 -04:00
parent 5e2154c35b
commit 6cb7075c12
14 changed files with 658 additions and 52 deletions

View File

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<module type="CPP_MODULE" version="4"> <module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="SonarLintModuleSettings">
<option name="uniqueId" value="96e6e82b-0552-4d26-b2e7-ad0b56757840" />
</component>
</module> </module>

View File

@ -2,6 +2,7 @@
# ~/.bashrc # ~/.bashrc
# #
export PATH=./:~/.bin:~/.local/bin/:$HOME/.platformio/penv/bin:/usr/local/go/bin:$PATH
[[ $- != *i* ]] && return [[ $- != *i* ]] && return
colors() { colors() {

View File

@ -1,15 +1,5 @@
configuration { configuration {
modes: [ combi, emoji ];
sort: true; 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; show-icons: true;
drun { drun {
display-name: ""; display-name: "";
@ -34,16 +24,27 @@ configuration {
display-name: ""; display-name: "";
fallback-icon: "firefox-beta"; 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/gruvbox-dark-hard.rasi"
//@theme "/usr/share/rofi/themes/Arc-Dark.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 { textbox-prompt-sep {
// str: ">"; str: ">";
} }
inputbar { // inputbar {
// children: [ "textbox-prompt-sep","entry","case-indicator" ]; // children: [ "textbox-prompt-sep","entry","case-indicator" ];
} // }

View File

@ -6,6 +6,12 @@ $hostname\
$shlvl\ $shlvl\
$kubernetes\ $kubernetes\
$directory\ $directory\
$git_branch\
$git_commit\
$git_state\
$git_metrics\
$git_status\
$hg_branch\
$vcsh\ $vcsh\
$java\ $java\
$nodejs\ $nodejs\
@ -34,12 +40,6 @@ $terraform\
$vlang\ $vlang\
$vagrant\ $vagrant\
$zig\ $zig\
$git_branch\
$git_commit\
$git_state\
$git_metrics\
$git_status\
$hg_branch\
$docker_context\ $docker_context\
$cmake\ $cmake\
$nix_shell\ $nix_shell\
@ -92,3 +92,17 @@ discharging_symbol = " "
# threshold = 100 # threshold = 100
# style = "green" # style = "green"
# discharging_symbol = " " # 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)'

View File

@ -16,7 +16,7 @@ MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE MiscHighlightUrls=TRUE
ScrollingLines=999999 ScrollingLines=999999
BackgroundDarkness=0.750000 BackgroundDarkness=0.610000
ScrollingOnOutput=FALSE ScrollingOnOutput=FALSE
MiscBellUrgent=TRUE MiscBellUrgent=TRUE
MiscMouseWheelZoom=TRUE MiscMouseWheelZoom=TRUE
@ -33,12 +33,12 @@ ScrollingBar=TERMINAL_SCROLLBAR_NONE
BackgroundImageFile=/home/sage/Pictures/ballpapers/wallhaven-r7vxk1.jpg BackgroundImageFile=/home/sage/Pictures/ballpapers/wallhaven-r7vxk1.jpg
BackgroundImageShading=0.790000 BackgroundImageShading=0.790000
BackgroundImageStyle=TERMINAL_BACKGROUND_STYLE_CENTERED BackgroundImageStyle=TERMINAL_BACKGROUND_STYLE_CENTERED
FontName=FiraCode Nerd Font weight=450 14 FontName=FiraCode Nerd Font weight=453 10
ColorCursor=#f8f8f2 ColorCursor=#f8f8f2
ColorBold=#f8f8f2 ColorBold=#f8f8f2
ColorBoldUseDefault=FALSE 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) 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 ColorBackground=#206d206d206d
CustomCommand=zsh CustomCommand=zsh

View File

@ -5,6 +5,7 @@
[core] [core]
autocrlf = input autocrlf = input
excludesfile = ~/.gitignore excludesfile = ~/.gitignore
hooksPath = ~/.githooks
[credential] [credential]
helper = store helper = store

View File

@ -1,5 +1,7 @@
set nocompatible " be iMproved, required set nocompatible " be iMproved, required
filetype off " required filetype off " required
set visualbell
set noerrorbells
" set the runtime path to include Vundle and initialize " set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim set rtp+=~/.vim/bundle/Vundle.vim
@ -53,9 +55,15 @@ nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L> nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H> nnoremap <C-H> <C-W><C-H>
nnoremap dK <Esc>kdd
nnoremap dJ <Esc>jdd
nnoremap >f viwc<C-O>:set ri<CR><C-R>"<Esc>:set nori<CR> nnoremap >f viwc<C-O>:set ri<CR><C-R>"<Esc>:set nori<CR>
vnoremap \f c<C-O>:set ri<CR><C-R>"<Esc>:set nori<CR> vnoremap \f c<C-O>:set ri<CR><C-R>"<Esc>:set nori<CR>
let mapleader = " "
map <leader>bs :action BuildWholeSolutionAction<CR>
autocmd BufWinLeave *.* mkview autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview autocmd BufWinEnter *.* silent loadview
set viewoptions-=options set viewoptions-=options
@ -63,3 +71,4 @@ set nohlsearch
" Save with sudo " Save with sudo
cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit! cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
set ideajoin

View File

@ -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" PLACES_FILE="$FIREFOX_PROFILE/places.sqlite"
WORKING_PLACES="$FIREFOX_PROFILE/places2.sqlite" WORKING_PLACES="$FIREFOX_PROFILE/places2.sqlite"
CACHE_FILE="$HOME/.rofi-history-cache" CACHE_FILE="$HOME/.rofi-history-cache"

View File

@ -6,9 +6,9 @@ import sys
home = os.environ['HOME'] home = os.environ['HOME']
git_dirs = [ git_dirs = [
home + "/work",
home + "/projects", home + "/projects",
home + "/git", home + "/git",
home + "/git/worktrees",
home + "/WebStormProjects", home + "/WebStormProjects",
home + "/RiderProjects" home + "/RiderProjects"
] ]
@ -58,6 +58,7 @@ def get_icon(project: str) -> str | None:
def open_project(project: str) -> (): def open_project(project: str) -> ():
project = project.replace("~", home)
(project_type, file) = get_project_type(project) (project_type, file) = get_project_type(project)
if project_type is None: if project_type is None:
return return
@ -73,7 +74,9 @@ def print_project_message(project: str) -> ():
if icon is None: if icon is None:
return return
print(f'{project}\0icon\x1f{icon}') project = project.replace(home, "~")
print(f'git {project}')
# print(f'{project}\0icon\x1f{icon}')
if __name__ == '__main__': if __name__ == '__main__':
@ -86,4 +89,4 @@ if __name__ == '__main__':
if os.path.isdir(project): if os.path.isdir(project):
print_project_message(project) print_project_message(project)
else: else:
open_project(sys.argv[1]) open_project(sys.argv[1][4:])

View File

@ -1,5 +1,15 @@
#!/bin/bash #!/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 { function fin {
find -iname "*$@*" 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-) 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' export FZF_DEFAULT_COMMAND='fd --type f'
alias fzf="fzf --preview 'bat --style=numbers --color=always {}'" 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 # 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=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 -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 grepi='grepr -i'
alias apt="sudo apt" alias apt="sudo apt"

View File

@ -10,13 +10,28 @@ FILE_LOCATIONS="$HOME/Documents $HOME/Downloads"
! [[ "$XDG_SESSION_TYPE" = "x11" ]] ! [[ "$XDG_SESSION_TYPE" = "x11" ]]
IS_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 # Open search window or raise existing one
if [[ "$1" == "--launch" ]]; then if [[ "$1" == "--launch" ]]; then
if (($IS_X11)) && existing="$(xdotool search $WINDOW_NAME)"; then if (($IS_X11)) && existing="$(xdotool search $WINDOW_NAME)"; then
xdotool windowraise "$existing" xdotool windowraise "$existing"
else else
# xfce4-terminal --role="$WINDOW_NAME" --title="$WINDOW_NAME" --startup-id="$WINDOW_NAME" -e "bash -c '$HOME/.sofi.sh'" # 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'" # st -e bash -c '$HOME/.sofi.sh'"
fi fi
exit $? exit $?
@ -24,14 +39,17 @@ fi
windows() { windows() {
if ! (($IS_X11)); then 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
fi 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 | xprop -root _NET_CLIENT_LIST |
pcregrep -o1 '# (.*)' | pcregrep -o1 '# (.*)' |
sed 's/, /\n/g' | sed 's/, /\n/g' |
xargs -I {} -n1 xprop -id {} _NET_WM_NAME | xargs -I {} -n1 xprop -id {} _NET_WM_NAME |
grep -v '"Desktop"\|"xfce4-panel"' | grep -v '"Desktop"\|"xfce4-panel"' |
sed 's/_NET_WM_NAME(UTF8_STRING) = "/win /' | sed 's/"$//' sed 's/_NET_WM_NAME(UTF8_STRING) = "/win /' | sed 's/"$//'
fi
} }
read_apps() { read_apps() {
@ -42,6 +60,10 @@ read_apps() {
sed 's/Name=/app /' > "$CACHE_FILE" & sed 's/Name=/app /' > "$CACHE_FILE" &
} }
read_snap_apps() {
snap list | tail -n +2 | awk '{print "snp " $1}'
}
open_app() { open_app() {
app="$(echo "$1" | cut -c 5-)" app="$(echo "$1" | cut -c 5-)"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
@ -69,6 +91,7 @@ if [[ "$1" == "--print-only" ]]; then
<(windows) \ <(windows) \
<($HOME/.rofi-list-git-repos.py --no-icon) \ <($HOME/.rofi-list-git-repos.py --no-icon) \
<(read_apps) \ <(read_apps) \
<(read_snap_apps) \
<(list_files) \ <(list_files) \
$HOME/.emojis $HOME/.emojis
exit 1 exit 1
@ -78,28 +101,97 @@ choice="$(cat \
<(windows) \ <(windows) \
<("$HOME/.rofi-list-git-repos.py") \ <("$HOME/.rofi-list-git-repos.py") \
<(read_apps) \ <(read_apps) \
<(read_snap_apps) \
<(list_files) \ <(list_files) \
"$HOME/.emojis" \ "$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 case $choice in
git*) git*)
setsid "$HOME/.rofi-list-git-repos.py" "$choice" &> /dev/null & setsid "$HOME/.rofi-list-git-repos.py" "$choice" &> /dev/null &
;; ;;
win*) win*)
if (($IS_X11)); then
wmctrl -i -R "$(xwininfo -root -tree | wmctrl -i -R "$(xwininfo -root -tree |
grep "$(echo "$choice" | cut -c 5-)" | grep "$(echo "$choice" | cut -c 5-)" |
awk '{ print $1 }' | awk '{ print $1 }' |
sed 's/0x/0x00/')" 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*) app*)
open_app "$choice" open_app "$choice"
;; ;;
snp*)
app="$(echo "$choice" | cut -c 5-)"
setsid $app >/dev/null 2>&1 </dev/null &
;;
emj*) emj*)
paste_emoji "$choice" paste_emoji "$choice"
;; ;;
fil*) fil*)
setsid xdg-open "$(echo $choice | cut -c 5- | sed "s@~@$HOME@")" &> /dev/null & setsid xdg-open "$(echo $choice | cut -c 5- | sed "s@~@$HOME@")" &> /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 <<EOF
<dependency>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${latestVersion}</version>
</dependency>
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
;;
esac
sleep 0.1 sleep 0.1

View File

@ -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

View File

@ -19,10 +19,10 @@ else
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum" let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
syntax enable syntax enable
colorscheme jellybeans colorscheme monokai
endif endif
let mapleader=" " " let mapleader=" "
"nnoremap <Leader>w yiwq:PIe `~/.shell_aliases ws <Esc> "nnoremap <Leader>w yiwq:PIe `~/.shell_aliases ws <Esc>
"nnoremap <Leader>w yiw:let srr_back = &srr <BAR> set srr=><CR>q:PIr! /home/sage/.shell_aliases wf <Esc> "nnoremap <Leader>w yiw:let srr_back = &srr <BAR> set srr=><CR>q:PIr! /home/sage/.shell_aliases wf <Esc>
" TODO Check if file needs saving " TODO Check if file needs saving
@ -177,6 +177,9 @@ iab reteun return
iab reutner return iab reutner return
" Keep same gutter color when errored " 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 so ~/.vim/user/files.vim

View File

@ -1,4 +1,3 @@
source ~/.zsh_local
if test -f /usr/share/doc/fzf/examples/completion.zsh &> /dev/null; then if test -f /usr/share/doc/fzf/examples/completion.zsh &> /dev/null; then
source /usr/share/doc/fzf/examples/completion.zsh source /usr/share/doc/fzf/examples/completion.zsh
fi fi
@ -38,7 +37,7 @@ if [ -x /usr/bin/dircolors ]; then
alias egrep='egrep --color=auto' alias egrep='egrep --color=auto'
fi 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) fignore=(o)
@ -91,7 +90,10 @@ if test -f ~/.cargo/env; then
fi fi
source ~/.shell_aliases source ~/.shell_aliases
source ~/.zsh_local
export NVM_DIR="$HOME/.nvm" export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads 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 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh