Compare commits

...

14 Commits

Author SHA1 Message Date
Sage Vaillancourt 8449e511d1 Add .Xresources with xterm monokai colors 2023-12-13 12:07:49 -05:00
Sage Vaillancourt 6cb7075c12 Various tweaks and improvements. 2023-09-27 12:21:12 -04:00
Sage Vaillancourt 5e2154c35b Merge branch 'master' of https://gitlab.com/sagev9000/dotfiles 2023-09-27 12:14:06 -04:00
Sage Vaillancourt 589ebcfca6 Add modules to copy.sh
Add tpm to tmux
2023-09-27 12:12:29 -04:00
Sage Vaillancourt f1a710fe5f Add fzf-already-installed message 2023-08-26 00:45:26 -04:00
Sage Vaillancourt 6f76070a02 Clean up install output 2023-08-26 00:44:39 -04:00
Sage Vaillancourt 081998a894 Add JetBrains toolbox to copy.sh 2023-08-26 00:41:41 -04:00
Sage Vaillancourt 599937b806 Copy and install unless --files-only specified 2023-08-26 00:31:52 -04:00
Sage Vaillancourt 242089bb2c Check before installing starship. A bit o refactor 2023-08-26 00:28:19 -04:00
Sage Vaillancourt 2360b3ec5e Add empty files.vim for local-only config 2023-08-26 00:25:06 -04:00
Sage Vaillancourt 0edc06024a Add ~/.dotnet to .zshrc PATH 2023-08-26 00:23:53 -04:00
Sage Vaillancourt 166bcf6c4d Tweak bat and nvm install conditions 2023-08-26 00:19:20 -04:00
Sage Vaillancourt 01e599b4c0 Add nvm and dotnet to copy.sh --install 2023-08-26 00:17:02 -04:00
Sage Vaillancourt d1824a3ece Add a few extra aliases 2023-08-26 00:09:09 -04:00
20 changed files with 813 additions and 88 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "fake_home/.tmux/plugins/tpm"]
path = fake_home/.tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm.git

View File

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

106
copy.sh
View File

@ -1,41 +1,99 @@
#!/bin/bash
# Install required packages
if [[ "$1" != "--install" ]]; then
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
FAKE_HOME="$SCRIPT_DIR/fake_home"
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
FAKE_HOME="$SCRIPT_DIR/fake_home"
dotdirs="$(find $FAKE_HOME -mindepth 1 -type d)"
git submodule init
git submodule update
echo "$dotdirs" | while read -r dotdir; do
dotdirs="$(find $FAKE_HOME -mindepth 1 -type d)"
echo "$dotdirs" | while read -r dotdir; do
new="$HOME${dotdir:${#FAKE_HOME}}"
echo "mkdir -p $new"
mkdir -p $new
done
done
dotfiles="$(find $FAKE_HOME -mindepth 1 -type f)"
dotfiles="$(find $FAKE_HOME -mindepth 1 -type f)"
echo "$dotfiles" | while read -r dotfile; do
echo "$dotfiles" | while read -r dotfile; do
new="$HOME${dotfile:${#FAKE_HOME}}"
echo "$dotfile => $new"
ln -sf "$dotfile" "$new"
done
done
touch "$HOME/.zsh_local"
else
echo -n "Rust is "
if ! command -v cargo; then
touch "$HOME/.zsh_local"
if [[ "$1" == "--files-only" ]]; then
exit 0
fi
echo
echo "Installing required packages..."
echo -n "Rust is "
if ! command -v cargo &> /dev/null; then
echo "not installed. Installing..."
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
else
echo "installed."
fi
. "$HOME/.cargo/env"
if command -v cargo; then
cargo install bat
fi
curl -sS https://starship.rs/install.sh | sh
echo "Starship requires an NFont: https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/FiraCode.zip"
echo "You may wish to install fzf"
else
echo "already installed."
fi
. "$HOME/.cargo/env"
if command -v cargo &> /dev/null && ! command -v bat &> /dev/null; then
cargo install bat
fi
echo -n "nvm is "
if ! test -d "$HOME/.nvm"; then
echo "not installed. Installing..."
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
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
nvm install 14
nvm install 18
nvm install node
nvm use node
else
echo "already installed."
fi
echo -n "dotnet is "
if ! command -v dotnet &> /dev/null; then
echo "not installed. Installing..."
wget https://dot.net/v1/dotnet-install.sh -O /tmp/dotnet-install.sh
chmod +x /tmp/dotnet-install.sh
/tmp/dotnet-install.sh --version latest
rm /tmp/dotnet-install.sh
else
echo "already installed."
fi
echo -n "starship is "
if ! command -v starship &> /dev/null; then
echo "not installed. Installing..."
curl -sS https://starship.rs/install.sh | sh
echo "Starship requires an NFont: https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/FiraCode.zip"
else
echo "already installed."
fi
echo -n "JetBrains toolbox is "
if ! test -d $HOME/.config/JetBrains/; then
echo "not installed. Installing..."
ARCHIVE_URL="$(curl -s 'https://data.services.jetbrains.com/products/releases?code=TBA&latest=true&type=release' | grep -Po '"linux":.*?[^\\]",' | awk -F ':' '{print $3,":"$4}'| sed 's/[", ]//g')"
wget -q --show-progress -cO "/tmp/jetbrains-toolbox-latest.tar.gz" "$ARCHIVE_URL"
cd /tmp/
tar -xvf jetbrains-toolbox-latest.tar.gz --strip-components=1
chmod +x jetbrains-toolbox
./jetbrains-toolbox
else
echo "already installed."
fi
if ! command -v fzf &> /dev/null; then
echo "You may wish to install fzf for sofi and other search"
else
echo "fzf is already installed"
fi

33
fake_home/.Xresources Normal file
View File

@ -0,0 +1,33 @@
xterm*font: *-fixed-*-*-*-26-*
! terminal colours
xterm*foreground:#FFFFFF
xterm*background:#202020
!black darkgray
*color0: #1B1D1E
*color8: #808080
!darkred red
*color1: #FF0044
*color9: #F92672
!darkgreen green
*color2: #82B414
*color10: #A6E22E
!darkyellow yellow
*color3: #FD971F
*color11: #E6DB74
!darkblue blue
*color4: #266C98
*color12: #7070F0
!darkmagenta magenta
*color5: #AC0CB1
*color13: #D63AE1
!darkcyan cyan
*color6: #AE81FF
*color14: #66D9EF
!gray white
*color7: #CCCCCC
*color15: #F8F8F2
xterm*faceName: Envy Code R
xterm*faceNameDoublesize: Droid Sans Fallback
xterm*faceSize: 12

View File

@ -2,6 +2,7 @@
# ~/.bashrc
#
export PATH=./:~/.bin:~/.local/bin/:$HOME/.platformio/penv/bin:/usr/local/go/bin:$PATH
[[ $- != *i* ]] && return
colors() {
@ -139,3 +140,4 @@ ex ()
}
source ~/.shell_aliases
. "$HOME/.cargo/env"

View File

@ -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" ];
// }

View File

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

View File

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

View File

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

View File

@ -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 <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
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>
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 BufWinEnter *.* silent loadview
set viewoptions-=options
@ -63,3 +71,4 @@ set nohlsearch
" Save with sudo
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"
WORKING_PLACES="$FIREFOX_PROFILE/places2.sqlite"
CACHE_FILE="$HOME/.rofi-history-cache"

View File

@ -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:])

View File

@ -1,9 +1,31 @@
#!/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 "*$@*"
}
function gamp {
git add * && git commit -am "$1" && git push
}
function gap {
git add * && git commit -a && git push
}
function gd {
git add * && git diff --cached --word-diff=porcelain
}
function wf {
if [[ "$@" != "" ]]; then
local fzf_args="-q $@"
@ -22,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 {}'"
@ -45,6 +64,11 @@ function vo {
echo $f
}
alias yt='yt-dlp'
function y {
cd ~/.ytdl; yt-dlp $@; cd -
}
# Mkdir should remind you to use git
alias mkdir="echo 'Maybe use git init if this is a new project' && mkdir"
@ -72,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"

View File

@ -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
fi
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
}
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*)
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 &
;;
emj*)
paste_emoji "$choice"
;;
fil*)
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
sleep 0.1

View File

@ -1,15 +1,19 @@
# set -g default-terminal "screen-255color"
set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
set -g default-shell /usr/bin/zsh
set-option -g default-terminal "screen-256color"
set -g status-right "# %A, %d %b %Y - %I:%M %p "
set -g status-bg blue
set -g status-fg black
set -g status-bg black
set -g status-fg blue
# Smart pane switching with awareness of Vim splits.
# See: https://github.com/christoomey/vim-tmux-navigator
@ -34,3 +38,5 @@ bind-key -T copy-mode-vi 'C-\' select-pane -l
setw -g window-status-current-style fg=blue,bg=black
setw -g window-status-current-format ' #I #{s|/home/sagevaillancourt|~|:pane_current_path} #W#F '
setw -g window-status-format ' #I #{s|/home/sagevaillancourt|~|:pane_current_path} #W#F '
run '~/.tmux/plugins/tpm/tpm'

@ -0,0 +1 @@
Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946

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

View File

@ -19,10 +19,10 @@ else
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
syntax enable
colorscheme jellybeans
colorscheme monokai
endif
let mapleader=" "
" let mapleader=" "
"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>
" 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

View File

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