stuff
This commit is contained in:
parent
b490e0c758
commit
b1f910e0a0
1
browser/.gitkeep
Normal file
1
browser/.gitkeep
Normal file
|
@ -0,0 +1 @@
|
|||
# Coming Soon!
|
47
common/colors/generator/gen.bash
Executable file
47
common/colors/generator/gen.bash
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
v=$(ruby --version)
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
SCHEME="donokai"
|
||||
if [[ -n $1 ]]; then
|
||||
SCHEME=$1
|
||||
fi
|
||||
|
||||
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd)
|
||||
source "$DIR/variables.bash"
|
||||
|
||||
mkdir -p "$DOTFILES_PATH/colors/gen/vendor"
|
||||
|
||||
B16_DIR="$DOTFILES_PATH/colors/gen/vendor/base16-builder"
|
||||
COLORS_PATH="$B16_DIR/output"
|
||||
|
||||
if [ -d "$B16_DIR" ]; then
|
||||
echo "Skipping repo pull down..."
|
||||
rm -rf "$COLORS_PATH"
|
||||
mkdir -p "$COLORS_PATH"
|
||||
else
|
||||
git clone https://github.com/lytedev/base16-builder.git "$DOTFILES_PATH/colors/gen/vendor/base16-builder"
|
||||
fi
|
||||
|
||||
"$DOTFILES_PATH/colors/gen/vendor/base16-builder/base16" -t vim -s "$DOTFILES_PATH/colors/gen/schemes/$SCHEME.yml"
|
||||
"$DOTFILES_PATH/colors/gen/vendor/base16-builder/base16" -t xresources -s "$DOTFILES_PATH/colors/gen/schemes/$SCHEME.yml"
|
||||
"$DOTFILES_PATH/colors/gen/vendor/base16-builder/base16" -t shell -s "$DOTFILES_PATH/colors/gen/schemes/$SCHEME.yml"
|
||||
|
||||
COLORS_PATH=$DOTFILES_PATH/colors/gen/vendor/base16-builder/output
|
||||
|
||||
rm -f "$DOTFILES_PATH/colors/xresources"
|
||||
rm -f "$DOTFILES_PATH/colors/vim"
|
||||
rm -f "$DOTFILES_PATH/colors/shell"
|
||||
cp "$COLORS_PATH/xresources/base16-$SCHEME.dark.xresources" "$DOTFILES_PATH/colors/xresources"
|
||||
cp "$COLORS_PATH/vim/base16-$SCHEME.vim" "$DOTFILES_PATH/colors/vim"
|
||||
cp "$COLORS_PATH/shell/base16-$SCHEME.dark.sh" "$DOTFILES_PATH/colors/shell"
|
||||
chmod +x "$DOTFILES_PATH/colors/shell"
|
||||
|
||||
xrdb -merge "$DOTFILES_PATH/colors/xresources"
|
||||
source "$DOTFILES_PATH/scripts/reload_xresources.sh"
|
||||
source "$DOTFILES_PATH/env/wm/bspwm_config" > /dev/null
|
||||
# kill -SIGUSR1 $(cat "$BAR_PID_FILE")
|
||||
else
|
||||
echo "Ruby isn't installed."
|
||||
fi
|
18
common/colors/generator/schemes/bright.yml
Normal file
18
common/colors/generator/schemes/bright.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
scheme: "Bright"
|
||||
author: "Chris Kempson (http://chriskempson.com)"
|
||||
base00: "111111"
|
||||
base01: "303030"
|
||||
base02: "505050"
|
||||
base03: "b0b0b0"
|
||||
base04: "d0d0d0"
|
||||
base05: "e0e0e0"
|
||||
base06: "f5f5f5"
|
||||
base07: "ffffff"
|
||||
base08: "fb0120"
|
||||
base09: "fc6d24"
|
||||
base0A: "fda331"
|
||||
base0B: "a1c659"
|
||||
base0C: "76c7b7"
|
||||
base0D: "6fb3d2"
|
||||
base0E: "d381c3"
|
||||
base0F: "be643c"
|
18
common/colors/generator/schemes/donokai.yml
Normal file
18
common/colors/generator/schemes/donokai.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
scheme: "Donokai"
|
||||
author: "Wimer Hazenberg (http://www.monokai.nl)"
|
||||
base00: "111111" # background, dark grey
|
||||
base01: "383830" # lighter grey
|
||||
base02: "49483e" # lighter grey
|
||||
base03: "75715e" # greyish yellow (peuce)
|
||||
base04: "a59f85" # lighter peuce
|
||||
base05: "f8f8f2" # foreground white
|
||||
base06: "f5f4f1" # foreground 2 white
|
||||
base07: "f9f8f5" # foreground 3 white
|
||||
base08: "f92672" # magenta
|
||||
base09: "fd971f" # orange
|
||||
base0A: "f4bf75" # yellow
|
||||
base0B: "a6e22e" # green
|
||||
base0C: "a1efe4" # cyan
|
||||
base0D: "66d9ef" # blue
|
||||
base0E: "ae81ff" # purple
|
||||
base0F: "cc6633" # pale orange
|
1
common/colors/generator/vendor/base16-builder
vendored
Submodule
1
common/colors/generator/vendor/base16-builder
vendored
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 944e88a10bc145f56ead1d6d82a06f252c92adc1
|
14
common/colors/link.bash
Executable file
14
common/colors/link.bash
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd)
|
||||
source "$DIR/variables.bash"
|
||||
|
||||
mkdir -p "$DOTFILES_PATH/editor/nvim/config/colors"
|
||||
|
||||
rm -f ~/.Xresources.colors
|
||||
rm -f "$DOTFILES_PATH/editor/nvim/config/colors/current.vim"
|
||||
ln -s "$DOTFILES_PATH/colors/xresources" "$HOME/.Xresources.colors"
|
||||
ln -s "$DOTFILES_PATH/colors/vim" "$DOTFILES_PATH/editor/nvim/config/colors/current.vim"
|
||||
|
||||
source "$DOTFILES_PATH/env/x/xloadresources"
|
||||
|
125
common/colors/shell
Executable file
125
common/colors/shell
Executable file
|
@ -0,0 +1,125 @@
|
|||
#!/bin/sh
|
||||
# Base16 Donokai - Shell color setup script
|
||||
# Wimer Hazenberg (http://www.monokai.nl)
|
||||
|
||||
if [ "${TERM%%-*}" = 'linux' ]; then
|
||||
# This script doesn't support linux console (use 'vconsole' template instead)
|
||||
return 2>/dev/null || exit 0
|
||||
fi
|
||||
|
||||
color00="11/11/11" # Base 00 - Black
|
||||
color01="f9/26/72" # Base 08 - Red
|
||||
color02="a6/e2/2e" # Base 0B - Green
|
||||
color03="f4/bf/75" # Base 0A - Yellow
|
||||
color04="66/d9/ef" # Base 0D - Blue
|
||||
color05="ae/81/ff" # Base 0E - Magenta
|
||||
color06="a1/ef/e4" # Base 0C - Cyan
|
||||
color07="f8/f8/f2" # Base 05 - White
|
||||
color08="75/71/5e" # Base 03 - Bright Black
|
||||
color09=$color01 # Base 08 - Bright Red
|
||||
color10=$color02 # Base 0B - Bright Green
|
||||
color11=$color03 # Base 0A - Bright Yellow
|
||||
color12=$color04 # Base 0D - Bright Blue
|
||||
color13=$color05 # Base 0E - Bright Magenta
|
||||
color14=$color06 # Base 0C - Bright Cyan
|
||||
color15="f9/f8/f5" # Base 07 - Bright White
|
||||
color16="fd/97/1f" # Base 09
|
||||
color17="cc/66/33" # Base 0F
|
||||
color18="38/38/30" # Base 01
|
||||
color19="49/48/3e" # Base 02
|
||||
color20="a5/9f/85" # Base 04
|
||||
color21="f5/f4/f1" # Base 06
|
||||
color_foreground="f8/f8/f2" # Base 05
|
||||
color_background="11/11/11" # Base 00
|
||||
color_cursor="f8/f8/f2" # Base 05
|
||||
|
||||
if [ -n "$TMUX" ]; then
|
||||
# tell tmux to pass the escape sequences through
|
||||
# (Source: http://permalink.gmane.org/gmane.comp.terminal-emulators.tmux.user/1324)
|
||||
printf_template="\033Ptmux;\033\033]4;%d;rgb:%s\007\033\\"
|
||||
printf_template_var="\033Ptmux;\033\033]%d;rgb:%s\007\033\\"
|
||||
printf_template_custom="\033Ptmux;\033\033]%s%s\007\033\\"
|
||||
elif [ "${TERM%%-*}" = "screen" ]; then
|
||||
# GNU screen (screen, screen-256color, screen-256color-bce)
|
||||
printf_template="\033P\033]4;%d;rgb:%s\007\033\\"
|
||||
printf_template_var="\033P\033]%d;rgb:%s\007\033\\"
|
||||
printf_template_custom="\033P\033]%s%s\007\033\\"
|
||||
elif [[ $- != *i* ]]; then
|
||||
# non-interactive
|
||||
alias printf=/bin/false
|
||||
else
|
||||
printf_template="\033]4;%d;rgb:%s\033\\"
|
||||
printf_template_var="\033]%d;rgb:%s\033\\"
|
||||
printf_template_custom="\033]%s%s\033\\"
|
||||
fi
|
||||
|
||||
# 16 color space
|
||||
printf $printf_template 0 $color00
|
||||
printf $printf_template 1 $color01
|
||||
printf $printf_template 2 $color02
|
||||
printf $printf_template 3 $color03
|
||||
printf $printf_template 4 $color04
|
||||
printf $printf_template 5 $color05
|
||||
printf $printf_template 6 $color06
|
||||
printf $printf_template 7 $color07
|
||||
printf $printf_template 8 $color08
|
||||
printf $printf_template 9 $color09
|
||||
printf $printf_template 10 $color10
|
||||
printf $printf_template 11 $color11
|
||||
printf $printf_template 12 $color12
|
||||
printf $printf_template 13 $color13
|
||||
printf $printf_template 14 $color14
|
||||
printf $printf_template 15 $color15
|
||||
|
||||
# 256 color space
|
||||
printf $printf_template 16 $color16
|
||||
printf $printf_template 17 $color17
|
||||
printf $printf_template 18 $color18
|
||||
printf $printf_template 19 $color19
|
||||
printf $printf_template 20 $color20
|
||||
printf $printf_template 21 $color21
|
||||
|
||||
# foreground / background / cursor color
|
||||
if [ -n "$ITERM_SESSION_ID" ]; then
|
||||
# iTerm2 proprietary escape codes
|
||||
printf $printf_template_custom Pg f8f8f2 # forground
|
||||
printf $printf_template_custom Ph 111111 # background
|
||||
printf $printf_template_custom Pi f8f8f2 # bold color
|
||||
printf $printf_template_custom Pj 49483e # selection color
|
||||
printf $printf_template_custom Pk f8f8f2 # selected text color
|
||||
printf $printf_template_custom Pl f8f8f2 # cursor
|
||||
printf $printf_template_custom Pm 111111 # cursor text
|
||||
else
|
||||
printf $printf_template_var 10 $color_foreground
|
||||
printf $printf_template_var 11 $color_background
|
||||
printf $printf_template_custom 12 ";7" # cursor (reverse video)
|
||||
fi
|
||||
|
||||
# clean up
|
||||
unset printf_template
|
||||
unset printf_template_var
|
||||
unset color00
|
||||
unset color01
|
||||
unset color02
|
||||
unset color03
|
||||
unset color04
|
||||
unset color05
|
||||
unset color06
|
||||
unset color07
|
||||
unset color08
|
||||
unset color09
|
||||
unset color10
|
||||
unset color11
|
||||
unset color12
|
||||
unset color13
|
||||
unset color14
|
||||
unset color15
|
||||
unset color16
|
||||
unset color17
|
||||
unset color18
|
||||
unset color19
|
||||
unset color20
|
||||
unset color21
|
||||
unset color_foreground
|
||||
unset color_background
|
||||
unset color_cursor
|
316
common/colors/vim
Normal file
316
common/colors/vim
Normal file
|
@ -0,0 +1,316 @@
|
|||
" Base16 Donokai (https://github.com/chriskempson/base16)
|
||||
" Scheme: Wimer Hazenberg (http://www.monokai.nl)
|
||||
|
||||
" This enables the coresponding base16-shell script to run so that
|
||||
" :colorscheme works in terminals supported by base16-shell scripts
|
||||
" User must set this variable in .vimrc
|
||||
" let g:base16_shell_path=base16-builder/output/shell/
|
||||
if !has('gui_running')
|
||||
if exists("g:base16_shell_path")
|
||||
execute "silent !/bin/sh ".g:base16_shell_path."/base16-donokai.".&background.".sh"
|
||||
endif
|
||||
endif
|
||||
|
||||
" GUI color definitions
|
||||
let s:gui00 = "111111"
|
||||
let s:gui01 = "383830"
|
||||
let s:gui02 = "49483e"
|
||||
let s:gui03 = "75715e"
|
||||
let s:gui04 = "a59f85"
|
||||
let s:gui05 = "f8f8f2"
|
||||
let s:gui06 = "f5f4f1"
|
||||
let s:gui07 = "f9f8f5"
|
||||
let s:gui08 = "f92672"
|
||||
let s:gui09 = "fd971f"
|
||||
let s:gui0A = "f4bf75"
|
||||
let s:gui0B = "a6e22e"
|
||||
let s:gui0C = "a1efe4"
|
||||
let s:gui0D = "66d9ef"
|
||||
let s:gui0E = "ae81ff"
|
||||
let s:gui0F = "cc6633"
|
||||
|
||||
" Terminal color definitions
|
||||
let s:cterm00 = "00"
|
||||
let s:cterm03 = "08"
|
||||
let s:cterm05 = "07"
|
||||
let s:cterm07 = "15"
|
||||
let s:cterm08 = "01"
|
||||
let s:cterm0A = "03"
|
||||
let s:cterm0B = "02"
|
||||
let s:cterm0C = "06"
|
||||
let s:cterm0D = "04"
|
||||
let s:cterm0E = "05"
|
||||
if exists('base16colorspace') && base16colorspace == "256"
|
||||
let s:cterm01 = "18"
|
||||
let s:cterm02 = "19"
|
||||
let s:cterm04 = "20"
|
||||
let s:cterm06 = "21"
|
||||
let s:cterm09 = "16"
|
||||
let s:cterm0F = "17"
|
||||
else
|
||||
let s:cterm01 = "10"
|
||||
let s:cterm02 = "11"
|
||||
let s:cterm04 = "12"
|
||||
let s:cterm06 = "13"
|
||||
let s:cterm09 = "09"
|
||||
let s:cterm0F = "14"
|
||||
endif
|
||||
|
||||
" Theme setup
|
||||
hi clear
|
||||
syntax reset
|
||||
let g:colors_name = "base16-donokai"
|
||||
|
||||
" Highlighting function
|
||||
fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp)
|
||||
if a:guifg != ""
|
||||
exec "hi " . a:group . " guifg=#" . s:gui(a:guifg)
|
||||
endif
|
||||
if a:guibg != ""
|
||||
exec "hi " . a:group . " guibg=#" . s:gui(a:guibg)
|
||||
endif
|
||||
if a:ctermfg != ""
|
||||
exec "hi " . a:group . " ctermfg=" . s:cterm(a:ctermfg)
|
||||
endif
|
||||
if a:ctermbg != ""
|
||||
exec "hi " . a:group . " ctermbg=" . s:cterm(a:ctermbg)
|
||||
endif
|
||||
if a:attr != ""
|
||||
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
|
||||
endif
|
||||
if a:guisp != ""
|
||||
exec "hi " . a:group . " guisp=#" . a:guisp
|
||||
endif
|
||||
endfun
|
||||
|
||||
" Return GUI color for light/dark variants
|
||||
fun s:gui(color)
|
||||
if &background == "dark"
|
||||
return a:color
|
||||
endif
|
||||
|
||||
if a:color == s:gui00
|
||||
return s:gui07
|
||||
elseif a:color == s:gui01
|
||||
return s:gui06
|
||||
elseif a:color == s:gui02
|
||||
return s:gui05
|
||||
elseif a:color == s:gui03
|
||||
return s:gui04
|
||||
elseif a:color == s:gui04
|
||||
return s:gui03
|
||||
elseif a:color == s:gui05
|
||||
return s:gui02
|
||||
elseif a:color == s:gui06
|
||||
return s:gui01
|
||||
elseif a:color == s:gui07
|
||||
return s:gui00
|
||||
endif
|
||||
|
||||
return a:color
|
||||
endfun
|
||||
|
||||
" Return terminal color for light/dark variants
|
||||
fun s:cterm(color)
|
||||
if &background == "dark"
|
||||
return a:color
|
||||
endif
|
||||
|
||||
if a:color == s:cterm00
|
||||
return s:cterm07
|
||||
elseif a:color == s:cterm01
|
||||
return s:cterm06
|
||||
elseif a:color == s:cterm02
|
||||
return s:cterm05
|
||||
elseif a:color == s:cterm03
|
||||
return s:cterm04
|
||||
elseif a:color == s:cterm04
|
||||
return s:cterm03
|
||||
elseif a:color == s:cterm05
|
||||
return s:cterm02
|
||||
elseif a:color == s:cterm06
|
||||
return s:cterm01
|
||||
elseif a:color == s:cterm07
|
||||
return s:cterm00
|
||||
endif
|
||||
|
||||
return a:color
|
||||
endfun
|
||||
|
||||
" Vim editor colors
|
||||
call <sid>hi("Bold", "", "", "", "", "bold", "")
|
||||
call <sid>hi("Debug", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("Directory", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
call <sid>hi("Error", s:gui00, s:gui08, s:cterm00, s:cterm08, "", "")
|
||||
call <sid>hi("ErrorMsg", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "")
|
||||
call <sid>hi("Exception", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("FoldColumn", s:gui0C, s:gui01, s:cterm0C, s:cterm01, "", "")
|
||||
call <sid>hi("Folded", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "")
|
||||
call <sid>hi("IncSearch", s:gui01, s:gui09, s:cterm01, s:cterm09, "none", "")
|
||||
call <sid>hi("Italic", "", "", "", "", "none", "")
|
||||
call <sid>hi("Macro", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("MatchParen", s:gui00, s:gui03, s:cterm00, s:cterm03, "", "")
|
||||
call <sid>hi("ModeMsg", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
call <sid>hi("MoreMsg", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
call <sid>hi("Question", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
call <sid>hi("Search", s:gui03, s:gui0A, s:cterm03, s:cterm0A, "", "")
|
||||
call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "", "")
|
||||
call <sid>hi("TooLong", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("Underlined", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("Visual", "", s:gui02, "", s:cterm02, "", "")
|
||||
call <sid>hi("VisualNOS", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("WarningMsg", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("WildMenu", s:gui08, s:gui0A, s:cterm08, "", "", "")
|
||||
call <sid>hi("Title", s:gui0D, "", s:cterm0D, "", "none", "")
|
||||
call <sid>hi("Conceal", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "", "")
|
||||
call <sid>hi("Cursor", s:gui00, s:gui05, s:cterm00, s:cterm05, "", "")
|
||||
call <sid>hi("NonText", s:gui03, "", s:cterm03, "", "", "")
|
||||
call <sid>hi("Normal", s:gui05, s:gui00, s:cterm05, s:cterm00, "", "")
|
||||
call <sid>hi("LineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "")
|
||||
call <sid>hi("SignColumn", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "")
|
||||
call <sid>hi("StatusLine", s:gui04, s:gui02, s:cterm04, s:cterm02, "none", "")
|
||||
call <sid>hi("StatusLineNC", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "")
|
||||
call <sid>hi("VertSplit", s:gui02, s:gui02, s:cterm02, s:cterm02, "none", "")
|
||||
call <sid>hi("ColorColumn", "", s:gui01, "", s:cterm01, "none", "")
|
||||
call <sid>hi("CursorColumn", "", s:gui01, "", s:cterm01, "none", "")
|
||||
call <sid>hi("CursorLine", "", s:gui01, "", s:cterm01, "none", "")
|
||||
call <sid>hi("CursorLineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "")
|
||||
call <sid>hi("PMenu", s:gui04, s:gui01, s:cterm04, s:cterm01, "none", "")
|
||||
call <sid>hi("PMenuSel", s:gui01, s:gui04, s:cterm01, s:cterm04, "", "")
|
||||
call <sid>hi("TabLine", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "")
|
||||
call <sid>hi("TabLineFill", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "")
|
||||
call <sid>hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "none", "")
|
||||
|
||||
" Standard syntax highlighting
|
||||
call <sid>hi("Boolean", s:gui09, "", s:cterm09, "", "", "")
|
||||
call <sid>hi("Character", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("Comment", s:gui03, "", s:cterm03, "", "", "")
|
||||
call <sid>hi("Conditional", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("Constant", s:gui09, "", s:cterm09, "", "", "")
|
||||
call <sid>hi("Define", s:gui0E, "", s:cterm0E, "", "none", "")
|
||||
call <sid>hi("Delimiter", s:gui0F, "", s:cterm0F, "", "", "")
|
||||
call <sid>hi("Float", s:gui09, "", s:cterm09, "", "", "")
|
||||
call <sid>hi("Function", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
call <sid>hi("Identifier", s:gui08, "", s:cterm08, "", "none", "")
|
||||
call <sid>hi("Include", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
call <sid>hi("Keyword", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("Label", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("Number", s:gui09, "", s:cterm09, "", "", "")
|
||||
call <sid>hi("Operator", s:gui05, "", s:cterm05, "", "none", "")
|
||||
call <sid>hi("PreProc", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("Repeat", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("Special", s:gui0C, "", s:cterm0C, "", "", "")
|
||||
call <sid>hi("SpecialChar", s:gui0F, "", s:cterm0F, "", "", "")
|
||||
call <sid>hi("Statement", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("StorageClass", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("String", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
call <sid>hi("Structure", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("Tag", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("Todo", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "", "")
|
||||
call <sid>hi("Type", s:gui0A, "", s:cterm0A, "", "none", "")
|
||||
call <sid>hi("Typedef", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
|
||||
" C highlighting
|
||||
call <sid>hi("cOperator", s:gui0C, "", s:cterm0C, "", "", "")
|
||||
call <sid>hi("cPreCondit", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
|
||||
" C# highlighting
|
||||
call <sid>hi("csClass", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("csAttribute", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("csModifier", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("csType", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("csUnspecifiedStatement", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
call <sid>hi("csContextualStatement", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("csNewDecleration", s:gui08, "", s:cterm08, "", "", "")
|
||||
|
||||
" CSS highlighting
|
||||
call <sid>hi("cssBraces", s:gui05, "", s:cterm05, "", "", "")
|
||||
call <sid>hi("cssClassName", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("cssColor", s:gui0C, "", s:cterm0C, "", "", "")
|
||||
|
||||
" Diff highlighting
|
||||
call <sid>hi("DiffAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "")
|
||||
call <sid>hi("DiffChange", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "")
|
||||
call <sid>hi("DiffDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "")
|
||||
call <sid>hi("DiffText", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "")
|
||||
call <sid>hi("DiffAdded", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "", "")
|
||||
call <sid>hi("DiffFile", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "")
|
||||
call <sid>hi("DiffNewFile", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "", "")
|
||||
call <sid>hi("DiffLine", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "", "")
|
||||
call <sid>hi("DiffRemoved", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "")
|
||||
|
||||
" Git highlighting
|
||||
call <sid>hi("gitCommitOverflow", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("gitCommitSummary", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
|
||||
" GitGutter highlighting
|
||||
call <sid>hi("GitGutterAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "")
|
||||
call <sid>hi("GitGutterChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "")
|
||||
call <sid>hi("GitGutterDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "")
|
||||
call <sid>hi("GitGutterChangeDelete", s:gui0E, s:gui01, s:cterm0E, s:cterm01, "", "")
|
||||
|
||||
" HTML highlighting
|
||||
call <sid>hi("htmlBold", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("htmlItalic", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("htmlEndTag", s:gui05, "", s:cterm05, "", "", "")
|
||||
call <sid>hi("htmlTag", s:gui05, "", s:cterm05, "", "", "")
|
||||
|
||||
" JavaScript highlighting
|
||||
call <sid>hi("javaScript", s:gui05, "", s:cterm05, "", "", "")
|
||||
call <sid>hi("javaScriptBraces", s:gui05, "", s:cterm05, "", "", "")
|
||||
call <sid>hi("javaScriptNumber", s:gui09, "", s:cterm09, "", "", "")
|
||||
|
||||
" Markdown highlighting
|
||||
call <sid>hi("markdownCode", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
call <sid>hi("markdownError", s:gui05, s:gui00, s:cterm05, s:cterm00, "", "")
|
||||
call <sid>hi("markdownCodeBlock", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
call <sid>hi("markdownHeadingDelimiter", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
|
||||
" NERDTree highlighting
|
||||
call <sid>hi("NERDTreeDirSlash", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
call <sid>hi("NERDTreeExecFile", s:gui05, "", s:cterm05, "", "", "")
|
||||
|
||||
" PHP highlighting
|
||||
call <sid>hi("phpMemberSelector", s:gui05, "", s:cterm05, "", "", "")
|
||||
call <sid>hi("phpComparison", s:gui05, "", s:cterm05, "", "", "")
|
||||
call <sid>hi("phpParent", s:gui05, "", s:cterm05, "", "", "")
|
||||
|
||||
" Python highlighting
|
||||
call <sid>hi("pythonOperator", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("pythonRepeat", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
|
||||
" Ruby highlighting
|
||||
call <sid>hi("rubyAttribute", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
call <sid>hi("rubyConstant", s:gui0A, "", s:cterm0A, "", "", "")
|
||||
call <sid>hi("rubyInterpolation", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
call <sid>hi("rubyInterpolationDelimiter", s:gui0F, "", s:cterm0F, "", "", "")
|
||||
call <sid>hi("rubyRegexp", s:gui0C, "", s:cterm0C, "", "", "")
|
||||
call <sid>hi("rubySymbol", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
call <sid>hi("rubyStringDelimiter", s:gui0B, "", s:cterm0B, "", "", "")
|
||||
|
||||
" SASS highlighting
|
||||
call <sid>hi("sassidChar", s:gui08, "", s:cterm08, "", "", "")
|
||||
call <sid>hi("sassClassChar", s:gui09, "", s:cterm09, "", "", "")
|
||||
call <sid>hi("sassInclude", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("sassMixing", s:gui0E, "", s:cterm0E, "", "", "")
|
||||
call <sid>hi("sassMixinName", s:gui0D, "", s:cterm0D, "", "", "")
|
||||
|
||||
" Signify highlighting
|
||||
call <sid>hi("SignifySignAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "")
|
||||
call <sid>hi("SignifySignChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "")
|
||||
call <sid>hi("SignifySignDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "")
|
||||
|
||||
" Spelling highlighting
|
||||
call <sid>hi("SpellBad", "", s:gui00, "", s:cterm00, "undercurl", s:gui08)
|
||||
call <sid>hi("SpellLocal", "", s:gui00, "", s:cterm00, "undercurl", s:gui0C)
|
||||
call <sid>hi("SpellCap", "", s:gui00, "", s:cterm00, "undercurl", s:gui0D)
|
||||
call <sid>hi("SpellRare", "", s:gui00, "", s:cterm00, "undercurl", s:gui0E)
|
||||
|
||||
" Remove functions
|
||||
delf <sid>hi
|
||||
delf <sid>gui
|
||||
delf <sid>cterm
|
||||
|
||||
" Remove color variables
|
||||
unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F
|
||||
unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F
|
41
common/colors/xresources
Normal file
41
common/colors/xresources
Normal file
|
@ -0,0 +1,41 @@
|
|||
! Base16 Donokai
|
||||
! Scheme: Wimer Hazenberg (http://www.monokai.nl)
|
||||
|
||||
#define base00 #111111
|
||||
#define base01 #383830
|
||||
#define base02 #49483e
|
||||
#define base03 #75715e
|
||||
#define base04 #a59f85
|
||||
#define base05 #f8f8f2
|
||||
#define base06 #f5f4f1
|
||||
#define base07 #f9f8f5
|
||||
#define base08 #f92672
|
||||
#define base09 #fd971f
|
||||
#define base0A #f4bf75
|
||||
#define base0B #a6e22e
|
||||
#define base0C #a1efe4
|
||||
#define base0D #66d9ef
|
||||
#define base0E #ae81ff
|
||||
#define base0F #cc6633
|
||||
|
||||
*foreground: base05
|
||||
*background: base00
|
||||
*cursorColor: base05
|
||||
|
||||
*color0: base00
|
||||
*color1: base08
|
||||
*color2: base0B
|
||||
*color3: base0A
|
||||
*color4: base0D
|
||||
*color5: base0E
|
||||
*color6: base0C
|
||||
*color7: base05
|
||||
|
||||
*color8: base03
|
||||
*color9: base09
|
||||
*color10: base01
|
||||
*color11: base02
|
||||
*color12: base04
|
||||
*color13: base06
|
||||
*color14: base0F
|
||||
*color15: base07
|
52
de/bspwm_config
Executable file
52
de/bspwm_config
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
BORDER_WIDTH=0
|
||||
WINDOW_GAP=25
|
||||
DESKTOPS=(dev web misc env play out main srv daem util)
|
||||
|
||||
BSPWM_MONITORS=$(bspc query -M | tac)
|
||||
MONITOR_COUNT=$(echo "${BSPWM_MONITORS}" | wc -w | awk '{ printf $1 }')
|
||||
NUM_DESKTOPS=${#DESKTOPS[@]}
|
||||
PER_MONITOR=$((NUM_DESKTOPS / MONITOR_COUNT))
|
||||
|
||||
source "$DOTFILES_PATH/scripts/get_color.sh"
|
||||
source "$DOTFILES_PATH/scripts/get_x_fonts.sh"
|
||||
|
||||
# allow a per-device config to override options
|
||||
if [ -f "$HOME/.env_bspwm" ]; then
|
||||
source "$HOME/.env_bspwm"
|
||||
fi
|
||||
|
||||
# old colors
|
||||
# bspc config normal_border_color "#$(get_color 05)"
|
||||
# bspc config focused_border_color "#$(get_color 0D)"
|
||||
# bspc config active_border_color "#$(get_color 0D)"
|
||||
# bspc config presel_feedback_color "#$(get_color 0D)"
|
||||
|
||||
bspc config normal_border_color "#$(get_color 01)"
|
||||
bspc config focused_border_color "#$(get_color 0D)"
|
||||
bspc config active_border_color "#$(get_color 09)"
|
||||
bspc config presel_feedback_color "#$(get_color 04)"
|
||||
bspc config border_width "$BORDER_WIDTH"
|
||||
bspc config split_ratio 0.50
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle true
|
||||
|
||||
bspc config window_gap "$WINDOW_GAP"
|
||||
|
||||
i=1
|
||||
for mon in ${BSPWM_MONITORS}; do
|
||||
max=$((i + PER_MONITOR - 1))
|
||||
screens=
|
||||
for j in $(seq $i $max); do
|
||||
ind=${DESKTOPS[$((j - 1))]}
|
||||
screens="$screens$ind "
|
||||
done
|
||||
bspc monitor "$mon" -d $screens
|
||||
i=$((max + 1))
|
||||
done
|
||||
|
||||
# allow a per-device config to override options
|
||||
if [ -f "$HOME/.env_bspwm_after" ]; then
|
||||
source "$HOME/.env_bspwm_after"
|
||||
fi
|
27
de/bspwmrc
Executable file
27
de/bspwmrc
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [[ -z "$XDG_CONFIG_HOME" ]]; then
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
fi
|
||||
if [[ -z "$DOTFILES_PATH" ]]; then
|
||||
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
fi
|
||||
|
||||
BSPWM_STATE_FILE="$HOME/.bspwm_state"
|
||||
|
||||
if [ -e "$BSPWM_STATE" ] ; then
|
||||
bspc wm -l "$BSPWM_STATE"
|
||||
rm "$BSPWM_STATE"
|
||||
fi
|
||||
|
||||
source "$DOTFILES_PATH/de/bspwm_config"
|
||||
|
||||
if command -v urxvtd >/dev/null 2>&1; then
|
||||
urxvtd &
|
||||
fi
|
||||
|
||||
if command -v sxhkd >/dev/null 2>&1; then
|
||||
sxhkd &
|
||||
fi
|
||||
|
||||
bspc wm -o
|
53
de/compton.conf
Normal file
53
de/compton.conf
Normal file
|
@ -0,0 +1,53 @@
|
|||
shadow = true;
|
||||
no-dnd-shadow = true;
|
||||
no-dock-shadow = false;
|
||||
clearshadow = true;
|
||||
shadow-radius = 7;
|
||||
shadow-offset-x = -12;
|
||||
shadow-offset-y = -7;
|
||||
shadow-opacity = 1.0;
|
||||
shadow-red = 0.0;
|
||||
shadow-green = 0.0;
|
||||
shadow-blue = 0.0;
|
||||
shadow-exclude = [ "class_g = ''" ];
|
||||
shadow-ignore-shaped = true;
|
||||
menu-opacity = 1.0;
|
||||
inactive-opacity = 1.0;
|
||||
active-opacity = 1.0;
|
||||
frame-opacity = 1.0;
|
||||
inactive-opacity-override = false;
|
||||
alpha-step = 0.1;
|
||||
inactive-dim = 0.1;
|
||||
blur-kern = "3x3box";
|
||||
blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
|
||||
fading = true;
|
||||
fade-in-step = 0.06;
|
||||
fade-out-step = 0.06;
|
||||
fade-exclude = [ ];
|
||||
backend = "xrender";
|
||||
mark-wmwin-focused = true;
|
||||
mark-ovredir-focused = true;
|
||||
detect-rounded-corners = true;
|
||||
detect-client-opacity = true;
|
||||
refresh-rate = 0;
|
||||
vsync = "none";
|
||||
dbe = false;
|
||||
paint-on-overlay = true;
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
detect-transient = true;
|
||||
detect-client-leader = true;
|
||||
invert-color-include = [ ];
|
||||
glx-copy-from-front = false;
|
||||
glx-swap-method = "undefined";
|
||||
wintypes :
|
||||
{
|
||||
tooltip :
|
||||
{
|
||||
fade = true;
|
||||
shadow = false;
|
||||
opacity = 0.75;
|
||||
focus = true;
|
||||
};
|
||||
};
|
||||
blur-background = true;
|
||||
blur-background-frame = true;
|
3
de/gtk2rc
Normal file
3
de/gtk2rc
Normal file
|
@ -0,0 +1,3 @@
|
|||
gtk-icon-theme-name = "elementary"
|
||||
gtk-theme-name = "Arc-Dark"
|
||||
gtk-font-name = "Monaco 9"
|
4
de/gtk3settings.ini
Normal file
4
de/gtk3settings.ini
Normal file
|
@ -0,0 +1,4 @@
|
|||
[Settings]
|
||||
gtk-icon-theme-name = elementary
|
||||
gtk-theme-name = Arc-Dark
|
||||
gtk-font-name = Monaco 9
|
35
de/link.bash
Executable file
35
de/link.bash
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd)
|
||||
source "$DIR/variables.bash"
|
||||
|
||||
MODULE_PATH="$DOTFILES_PATH/env/x"
|
||||
|
||||
mkdir -p "$HOME/.config/gtk-3.0"
|
||||
rm -f "$HOME/.xinitrc"
|
||||
rm -f "$HOME/.Xresources"
|
||||
rm -f "$HOME/.gtkrc-2.0"
|
||||
rm -f "$HOME/.config/gtk-3.0/settings.ini"
|
||||
rm -f "$HOME/.config/compton.conf"
|
||||
rm -f "$HOME/.xprofile"
|
||||
ln -s "$MODULE_PATH/xinitrc" "$HOME/.xinitrc"
|
||||
ln -s "$MODULE_PATH/xresources" "$HOME/.Xresources"
|
||||
ln -s "$MODULE_PATH/gtk3settings.ini" "$HOME/.config/gtk-3.0/settings.ini"
|
||||
ln -s "$MODULE_PATH/gtk2rc" "$HOME/.gtkrc-2.0"
|
||||
ln -s "$MODULE_PATH/compton.conf" "$HOME/.config/compton.conf"
|
||||
ln -s "$MODULE_PATH/xprofile" "$HOME/.xprofile"
|
||||
|
||||
sudo mkdir -p /root/.gtk-3.0/
|
||||
sudo mkdir -p /root/.config/gtk-3.0/
|
||||
sudo rm -f "/root/.gtkrc-2.0"
|
||||
sudo rm -f "/root/.gtk-3.0/settings.ini"
|
||||
sudo rm -f "/root/.config/gtk-3.0/settings.ini"
|
||||
sudo ln -s "$MODULE_PATH/gtk2rc" "/root/.gtkrc-2.0"
|
||||
sudo ln -s "$MODULE_PATH/gtk3settings.ini" "/root/.gtk-3.0/settings.ini"
|
||||
sudo ln -s "$MODULE_PATH/gtk3settings.ini" "/root/.config/gtk-3.0/settings.ini"
|
||||
|
||||
sudo rm -f "/etc/udev/rules.d/90-usb-device-plugin.rules"
|
||||
sudo ln -s "$MODULE_PATH/udev_rules/90-usb-device-plugin.rules" "/etc/udev/rules.d/90-usb-device-plugin.rules"
|
||||
|
||||
source "$MODULE_PATH/xloadresources"
|
||||
|
231
de/sxhkdrc
Executable file
231
de/sxhkdrc
Executable file
|
@ -0,0 +1,231 @@
|
|||
# node manager shortcuts
|
||||
|
||||
# focus the node for the given path jump
|
||||
super + {p,b,comma,period}
|
||||
bspc node -f @{parent,brother,first,second}
|
||||
|
||||
# set modes to tiled/floating for current node
|
||||
super + {s,f}
|
||||
bspc node -t {tiled,floating}
|
||||
|
||||
# set modes to pseudo_tiled/fullscreen for current node
|
||||
super + shift + {s,f}
|
||||
bspc node -t {pseudo_tiled,fullscreen -l above}
|
||||
|
||||
# focus the last node/desktop
|
||||
super + {grave,Tab}
|
||||
bspc {node,desktop} -f last
|
||||
|
||||
# focus the next floating node
|
||||
super + ctrl + f
|
||||
bspc node -f next.floating
|
||||
|
||||
# swap positions with the previous node
|
||||
super + apostrophe
|
||||
bspc node -s last
|
||||
|
||||
# swap the current node with the biggest node on the current desktop
|
||||
super + m
|
||||
bspc node -s biggest
|
||||
|
||||
# move/swap between nodes using vim-style arrows
|
||||
super + {_,shift + }{h,j,k,l}
|
||||
bspc node -{f,s} {west,south,north,east}
|
||||
|
||||
# swap previous/next desktops
|
||||
super + bracket{left,right}
|
||||
bspc desktop -f {prev,next}
|
||||
|
||||
# preselect the splitting area for the current node
|
||||
super + ctrl + {h,j,k,l}
|
||||
bspc node -p {west,south,north,east}
|
||||
|
||||
# clear the splitting area
|
||||
super + ctrl + {_,shift + }space
|
||||
bspc {node -p cancel,desktop -c}
|
||||
|
||||
# expand the current node
|
||||
super + alt + {h,j,k,l}
|
||||
bspc node {@west -r -10,@south -r +10,@north -r -10,@east -r +10}
|
||||
|
||||
# shrink the current node
|
||||
super + alt + shift + {h,j,k,l}
|
||||
bspc node {@east -r -10,@north -r +10,@south -r -10,@west -r +10}
|
||||
|
||||
# set node split ratio
|
||||
super + ctrl + {1-9,0}
|
||||
bspc node -r 0.{1-9,10}
|
||||
|
||||
# move a floating window very slowly
|
||||
super + shift + {Left,Down,Up,Right}
|
||||
xdo move {-x -1,-y +1,-y -1,-x +1}
|
||||
|
||||
# move a floating window
|
||||
super + {Left,Down,Up,Right}
|
||||
xdo move {-x -20,-y +20,-y -20,-x +20}
|
||||
|
||||
# focus/move node to the selected desktop
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} ^{1-9,10}
|
||||
|
||||
# focus clicked node
|
||||
~button1
|
||||
bspc node -f pointed
|
||||
|
||||
# mouse controls for node movement and resizing
|
||||
super + button{1-3}
|
||||
bspc pointer -g {move,resize_side,resize_corner}
|
||||
|
||||
# simulate mouse2
|
||||
shift + super + button1
|
||||
bspc pointer -g resize_corner
|
||||
|
||||
# ???
|
||||
super + !button{1-3}
|
||||
bspc pointer -t %i %i
|
||||
|
||||
# ???
|
||||
super + @button{1-3}
|
||||
bspc pointer -u
|
||||
|
||||
# change node gap and desktop padding
|
||||
super + plus
|
||||
bspc config -d focused window_gap $((`bspc config -d focused window_gap` + 5 ))
|
||||
|
||||
super + equal
|
||||
bspc config -m $(bspc query -M | head -n 1) top_padding $TOP_BAR_PADDING; bspc config -m $(bspc query -M | head -n 1) bottom_padding $BOTTOM_BAR_PADDING; bspc config -d focused window_gap $WINDOW_GAP
|
||||
|
||||
super + minus
|
||||
bspc config -d focused window_gap $((`bspc config -d focused window_gap` - 5 ))
|
||||
|
||||
super + alt + r
|
||||
bspc config -m $(bspc query -M | head -n 1) bottom_padding $BOTTOM_BAR_PADDING; bspc config -m $(bspc query -M | head -n 1) top_padding $TOP_BAR_PADDING; bspc config -d focused window_gap $WINDOW_GAP
|
||||
|
||||
super + alt + equal
|
||||
bspc config -d focused bottom_padding 0; bspc config -d focused top_padding 0; bspc config -d focused left_padding 0; bspc config -d focused right_padding 0
|
||||
|
||||
super + alt + plus
|
||||
bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) + 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) + 5); bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) + 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) + 5)
|
||||
|
||||
super + ctrl + alt + k
|
||||
bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) - 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) - 5)
|
||||
|
||||
super + ctrl + alt + j
|
||||
bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) + 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) + 5)
|
||||
|
||||
super + ctrl + alt + h
|
||||
bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) - 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) - 5)
|
||||
|
||||
super + ctrl + alt + l
|
||||
bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) + 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) + 5)
|
||||
|
||||
super + alt + plus
|
||||
bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) + 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) + 5); bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) + 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) + 5)
|
||||
|
||||
super + ctrl + alt + space
|
||||
bspc config -d focused bottom_padding 200; bspc config -d focused top_padding 200; bspc config -d focused left_padding 400; bspc config -d focused right_padding 400
|
||||
|
||||
|
||||
|
||||
super + alt + minus
|
||||
bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) - 5)
|
||||
|
||||
# wm-independant shortcuts
|
||||
|
||||
# spawn a transparent node
|
||||
super + alt + t
|
||||
urxvtc && compton-trans -c -o 0
|
||||
|
||||
# rotate the current node
|
||||
super + r
|
||||
bspc node -R 90
|
||||
|
||||
# balance the current node
|
||||
super + shift + b
|
||||
bspc node -B
|
||||
|
||||
# make current node transparent
|
||||
super + t
|
||||
compton-trans -c -o 0
|
||||
|
||||
# make current node fully opaque
|
||||
super + shift + t
|
||||
compton-trans -c -o 100
|
||||
|
||||
# swap sxhkx config with an alternate file and reload the new one
|
||||
# super + shift + alt + ctrl + r
|
||||
# if [ -e ~/.config/sxhkd/altsxhkdrc ]; then mv ~/.config/sxhkd/sxhkdrc ~/.config/sxhkd/origsxhkdrc && mv ~/.config/sxhkd/altsxhkdrc ~/.config/sxhkd/sxhkdrc && pkill -USR1 -x sxhkd; fi
|
||||
|
||||
# spawn a terminal
|
||||
super + Return
|
||||
urxvtc
|
||||
|
||||
super + shift + Return
|
||||
urxvtc -geometry 80x24; \
|
||||
bspc node -t floating
|
||||
|
||||
# spawn the app launcher
|
||||
super + space
|
||||
rofi -show run -font "$PRIMARY_FONT_FAMILY $PRIMARY_FONT_SIZE" -lines 16 -width 10 -padding 8 -fuzzy -bw "$BORDER_WIDTH" -color-enabled -color-window "#$(get_color 00)","#$(get_color 0D)","#$(get_color 0D)","#$(get_color 00)" -color-normal "#$(get_color 00)","#$(get_color 06)","#$(get_color 00)","#$(get_color 0D)","#$(get_color 00)" -separator-style none -hide-scrollbar
|
||||
|
||||
# lock the desktop
|
||||
super + ctrl + shift + l
|
||||
dm-tool lock
|
||||
# $SHELL -c '$DOTFILES_PATH/env/x/screensaver/lock.sh'
|
||||
|
||||
# spawn gui file explorer
|
||||
super + e
|
||||
thunar
|
||||
|
||||
# volumes controls and media navigation for media keys
|
||||
{_,shift + }XF86AudioLowerVolume
|
||||
amixer -D pulse sset Master 5%-
|
||||
|
||||
# pulseaudio-ctl lower
|
||||
# ADJ={10,1} && amixer -c 1 sset Speaker $ADJ%- && amixer -c 1 sset Headphone $ADJ%- && amixer -c 1 sset Master $ADJ%- && update_bar_MasterVolume
|
||||
|
||||
{_,shift + }XF86AudioRaiseVolume
|
||||
amixer -D pulse sset Master 5%+
|
||||
|
||||
# pulseaudio-ctl raise
|
||||
# ADJ={10,1} && amixer -c 1 sset Speaker $ADJ%+ && amixer -c 1 sset Headphone $ADJ%+ && amixer -c 1 sset Master $ADJ%+ && update_bar_MasterVolume
|
||||
|
||||
XF86AudioMute
|
||||
amixer -D pulse sset Master toggle
|
||||
|
||||
# pulseaudio-ctl mute
|
||||
# amixer -c 1 sset Master toggle && update_bar_MasterVolume
|
||||
|
||||
XF86AudioPlay
|
||||
mpc toggle
|
||||
|
||||
XF86AudioNext
|
||||
mpc next
|
||||
|
||||
XF86AudioPrev
|
||||
mpc prev
|
||||
|
||||
# monitor brightness controls for monitor birghtness keys
|
||||
{_,shift + }XF86MonBrightnessUp
|
||||
add_percent_brightness {0.1,0.01} && update_bar_DisplayBrightness
|
||||
|
||||
{_,shift + }XF86MonBrightnessDown
|
||||
sub_percent_brightness {0.1,0.01} && update_bar_DisplayBrightness
|
||||
|
||||
# close the current application
|
||||
super + c
|
||||
bspc node -c
|
||||
|
||||
# kill the current application
|
||||
super + shift + c
|
||||
bspc node -k
|
||||
|
||||
# kill the wm, if alt is held, it will reload instead of truly quitting...
|
||||
# I think?
|
||||
super + ctrl + {alt +,_} Escape
|
||||
{bspc wm -d > "$BSPWM_STATE_FILE" && bspc quit, \
|
||||
bspc quit 1}
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd
|
1
de/udev-rules/90-usb-device-plugin.rules
Normal file
1
de/udev-rules/90-usb-device-plugin.rules
Normal file
|
@ -0,0 +1 @@
|
|||
ACTION=="add", SUBSYSTEM=="usb_device", RUN+="xset r rate 300 80"
|
6
de/wmstart
Executable file
6
de/wmstart
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# allows bspwm to reload when killed
|
||||
while true; do
|
||||
bspwm || break
|
||||
done
|
30
de/xinitrc
Normal file
30
de/xinitrc
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/sh
|
||||
|
||||
# as far as I can tell, this file is only executed when you run startx from the
|
||||
# TTY
|
||||
|
||||
# load our xprofile
|
||||
if [ -f "$HOME/.xprofile" ]; then
|
||||
source "$HOME/.xprofile"
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.fehbg" ]; then
|
||||
"$HOME/.fehbg" &
|
||||
fi
|
||||
|
||||
# allow a per-device config to override options
|
||||
if [ -f "$HOME/.env_xinitrc" ]; then
|
||||
source "$HOME/.env_xinitrc"
|
||||
fi
|
||||
|
||||
# launch optional and helpful apps
|
||||
if command -v unclutter >/dev/null 2>&1; then
|
||||
unclutter &
|
||||
fi
|
||||
|
||||
if command -v compton >/dev/null 2>&1; then
|
||||
compton &
|
||||
fi
|
||||
|
||||
# fire up wm
|
||||
exec "$DOTFILES_PATH/env/wm/wmstart"
|
42
de/xloadresources
Normal file
42
de/xloadresources
Normal file
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
userresources="$HOME/.Xresources"
|
||||
usercolors="$HOME/.Xresources.colors"
|
||||
userenv="$HOME/.Xresources.env"
|
||||
usermodmap="$HOME/.Xmodmap"
|
||||
sysresources="/etc/X11/xinit/.Xresources"
|
||||
sysmodmap="/etc/X11/xinit/.Xmodmap"
|
||||
|
||||
echo "xstartup: resources $userresources $userenv" >> "$HOME/.xstartup_log"
|
||||
|
||||
if [ -f "$sysresources" ]; then
|
||||
xrdb -merge "$sysresources" >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -f "$sysmodmap" ]; then
|
||||
xmodmap "$sysmodmap" >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -f "$userresources" ]; then
|
||||
xrdb -merge "$userresources" >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -f "$usercolors" ]; then
|
||||
xrdb -merge "$usercolors" >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -f "$userenv" ]; then
|
||||
xrdb -merge "$userenv" >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -f "$usermodmap" ]; then
|
||||
xmodmap "$usermodmap" >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -d "/etc/X11/xinit/xinitrc.d" ] ; then
|
||||
for f in "/etc/X11/xinit/xinitrc.d/?*.sh" ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
|
32
de/xprofile
Normal file
32
de/xprofile
Normal file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [[ -z "$XDG_CONFIG_HOME" ]]; then
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
fi
|
||||
if [[ -z "$DOTFILES_PATH" ]]; then
|
||||
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
fi
|
||||
|
||||
if [ -f "$DOTFILES_PATH/env/x/xloadresources" ]; then
|
||||
source "$DOTFILES_PATH/env/x/xloadresources"
|
||||
fi
|
||||
|
||||
if [ -f "$DOTFILES_PATH/variables.bash" ]; then
|
||||
source "$DOTFILES_PATH/variables.bash"
|
||||
fi
|
||||
|
||||
# keyrepeat settings
|
||||
xset r rate 250 80 &
|
||||
|
||||
# no screen blanking
|
||||
# xset -dpms &
|
||||
# xset s noblank &
|
||||
# xset s off &
|
||||
|
||||
if [ -d "/usr/lib/nvidia" ]; then
|
||||
export LD_LIBRARY_PATH=/usr/lib/nvidia
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.env_xprofile" ]; then
|
||||
source "$HOME/.env_xprofile"
|
||||
fi
|
23
de/xresources
Executable file
23
de/xresources
Executable file
|
@ -0,0 +1,23 @@
|
|||
*font: xft:xos4 Terminus-10
|
||||
*faceName: xft:xos4 Terminus-10
|
||||
*boldFont: xft:xos4 Terminus-10
|
||||
*letterSpace: 0
|
||||
*scrollBar: false
|
||||
*cursorUnderline: true
|
||||
*cursorBlink: true
|
||||
*termName: rxvt-unicode
|
||||
*intensityStyles: true
|
||||
*utf8: 2
|
||||
*scaleHeight: 1
|
||||
|
||||
*depth: 32
|
||||
|
||||
URxvt.internalBorder: 24
|
||||
|
||||
Xcursor.theme: human
|
||||
|
||||
URxvt.perl-ext-common: default,matcher,keyboard-select
|
||||
URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
||||
URxvt.url-launcher: /usr/bin/xdg-open
|
||||
URxvt.matcher.button: 1
|
||||
URxvt*iso14755: False
|
|
@ -25,6 +25,7 @@ out in order of priority here:
|
|||
multiple machines with specific use-cases. For example, a shared laptop should
|
||||
allow for other non-technical users ease-of-access, while my workstation
|
||||
should focus on being quick, powerful, and highly usable for me alone.
|
||||
* The only dependencies should be `git` and `bash` for the very basics.
|
||||
|
||||
## Applications
|
||||
|
||||
|
|
65
setup
Executable file
65
setup
Executable file
|
@ -0,0 +1,65 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [[ -z "$XDG_CONFIG_HOME" ]]; then
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
fi
|
||||
|
||||
dfp=$(cd "$(dirname "${BASH_SOURCE[0]}" )/" && pwd)
|
||||
|
||||
ALERT_AGREEMENT_FILE="$dfp/.agreed-to-erasing-files.lock"
|
||||
|
||||
# Let user know that this script will delete their current configuration and
|
||||
# that they should read this script before running. We'll use a lock file so
|
||||
# the user only needs to agree once.
|
||||
if [ -f "$ALERT_AGREEMENT_FILE" ]; then
|
||||
# User agreed already - do nothing
|
||||
echo "Linking..."
|
||||
else
|
||||
echo "Running this script may delete existing personal configuration files."
|
||||
echo "Please view this script's source, fully understand it, and backup any"
|
||||
echo "files before continuing."
|
||||
echo "Seriously. Like... entire directories. Just gone."
|
||||
read -r -p "Are you sure you want to continue? [y/N] " response
|
||||
response=${response,,} # to lower case
|
||||
if [[ $response =~ ^(yes|y)$ ]]; then
|
||||
echo "agreed" > "$ALERT_AGREEMENT_FILE"
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
links=(
|
||||
# desktop environment files
|
||||
"$dfp/de/bspwmrc" "$XDG_CONFIG_HOME/bspwm/bspwmrc"
|
||||
"$dfp/de/sxhkdrc" "$XDG_CONFIG_HOME/sxhkd/sxhkdrc"
|
||||
|
||||
# shell files
|
||||
"$dfp/shell/bashrc" "$HOME/.bashrc"
|
||||
"$dfp/shell/bash_profile" "$HOME/.bash_profile"
|
||||
"$dfp/shell/tmux.conf" "$HOME/.tmux.conf"
|
||||
"$dfp/shell/tmux-layouts" "$HOME/.tmux/layouts"
|
||||
)
|
||||
|
||||
source=""
|
||||
for i in "${links[@]}"; do
|
||||
# ls -la --color=auto "$i"
|
||||
if [ -n "$source" ]; then
|
||||
if [ -L "$i" ]; then # if symlink exists, delete it
|
||||
rm -rf "$i"
|
||||
fi
|
||||
if [ -f "$i" ]; then # if file exists, delete it
|
||||
rm -rf "$i"
|
||||
fi
|
||||
# NOTE: maybe warn user again?
|
||||
if [ -d "$i" ]; then # if directory exists, delete it
|
||||
rm -rf "$i"
|
||||
fi
|
||||
ln -s "$source" "$i"
|
||||
echo "Linked $source to $i."
|
||||
source=""
|
||||
else
|
||||
source="$i"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Done."
|
109
shell/aliases
Normal file
109
shell/aliases
Normal file
|
@ -0,0 +1,109 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# set our needed variables if we don't already have them
|
||||
if [[ -z "$XDG_CONFIG_HOME" ]]; then
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
fi
|
||||
if [[ -z "$DOTFILES_PATH" ]]; then
|
||||
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
fi
|
||||
|
||||
# filesystem aliases
|
||||
alias lx='ls -lXB' # order by filetype
|
||||
alias lk='ls -lSr' # order by filesize reversed
|
||||
alias lt='ls -ltr' # order by file modified time
|
||||
alias lc='ls -ltcr' # order by filectime
|
||||
alias lu='ls -ltur' # order by file access time
|
||||
alias ls='ls -h --color --group-directories-first' # flat view w/ directories first
|
||||
alias l='ls -h --color --group-directories-first' # same as above
|
||||
alias ll='ls -lv --group-directories-first' # non-flat view
|
||||
alias lm='ll | more'
|
||||
alias lr='ll -R' # please don't - why is this even here...?
|
||||
alias la='ll -A' # show all
|
||||
alias tree='tree -Csuh'
|
||||
|
||||
# navigation aliases
|
||||
alias c="cd $HOME/.."
|
||||
alias cd..="cd .."
|
||||
alias cdd="cd \"$DOTFILES_PATH\"" # go to dotfiles
|
||||
alias cdc="cd \"$XDG_CONFIG_HOME\"" # go to
|
||||
|
||||
# quick parent-directory aliases
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias ....="cd ../../.."
|
||||
alias .....="cd ../../../.."
|
||||
alias ......="cd ../../../../.."
|
||||
alias .......="cd ../../../../../.."
|
||||
alias ........="cd ../../../../../../.."
|
||||
alias .........="cd ../../../../../../../.."
|
||||
|
||||
# tmux aliases
|
||||
# TODO: see if this can be worked around?
|
||||
alias tmux='TERM=screen-256color-bce tmux' # syntax higlighting for vim in tmux
|
||||
alias tmnew="tmux new -s"
|
||||
alias tmls="tmux list-sessions"
|
||||
alias tmatt="tmux attach -t"
|
||||
alias tu="tmux attach -t utils || tmux new -s utils"
|
||||
alias tdf="tmux attach -t df || tmux new -s df -c \"$DOTFILES_PATH\""
|
||||
|
||||
# git aliases
|
||||
alias gs="git status"
|
||||
alias gl="git log"
|
||||
alias gpl="git pull"
|
||||
alias gp="git push"
|
||||
alias gac="git add -A && git commit -m"
|
||||
|
||||
# browser aliases
|
||||
alias qute="qutebrowser --backend webengine"
|
||||
|
||||
# networking aliases
|
||||
alias p="ping 8.8.8.8"
|
||||
|
||||
# start netctl using any available profile on the first wireless network
|
||||
# interface
|
||||
# TODO: flesh this out into a function that lets the user know what's going on.
|
||||
alias wifi="sudo systemctl start netctl-auto@$(for wli in /sys/class/net/wl*; do echo $(basename $wli); break; done)"
|
||||
|
||||
# misc aliases
|
||||
alias setbg="feh --bg-fill"
|
||||
alias C="clear"
|
||||
alias keyrepeat="xset r rate 250 80"
|
||||
|
||||
# games aliases
|
||||
# this sometimes fixes steam dynamic library issues?
|
||||
# alias steam="LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1 /usr/$LIB/libgpg-error.so' steam"
|
||||
|
||||
# text editor aliases
|
||||
|
||||
# man pages with vim
|
||||
vman() {
|
||||
# our vim config is setup to not auto-load sessions if we set the
|
||||
# `asmanviewer` variable, so launch vim that way when using vim as our man
|
||||
# page viewer
|
||||
if command -v nvim >/dev/null 2>&1; then
|
||||
nvim --cmd "let asmanviewer=1" -c "SuperMan $*"
|
||||
else
|
||||
vim --cmd "let asmanviewer=1" -c "SuperMan $*"
|
||||
fi
|
||||
|
||||
# proper error handling
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "No manual entry for $*"
|
||||
fi
|
||||
}
|
||||
# override the man commands
|
||||
alias _man="\\man"
|
||||
alias man="vman"
|
||||
|
||||
# set our EDITOR to neovim if we've got it
|
||||
export EDITOR="vim"
|
||||
if command -v nvim >/dev/null 2>&1; then
|
||||
alias vim="nvim"
|
||||
alias ovim="\\vim"
|
||||
export EDITOR="nvim"
|
||||
fi
|
||||
|
||||
# arch aliases
|
||||
# TODO: load os-specific aliases based on running OS
|
||||
alias archupdate="pacaur -Syyu --noconfirm --noedit"
|
5
shell/autocompletions
Normal file
5
shell/autocompletions
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# autocompletions
|
||||
complete -cf sudo
|
||||
complete -cf man
|
7
shell/bash_profile
Normal file
7
shell/bash_profile
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# bash_profile is executed immediately after logging in
|
||||
|
||||
if [ -f ~/.bashrc ]; then
|
||||
source ~/.bashrc
|
||||
fi
|
54
shell/bashrc
Normal file
54
shell/bashrc
Normal file
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# bashrc is executed when a bash process starts
|
||||
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
export NICE_HOME="$HOME/.."
|
||||
|
||||
# load our terminal colors
|
||||
# TODO: update with new system
|
||||
BASE16_SHELL="$DOTFILES_PATH/common/colors/shell"
|
||||
[[ -s "$BASE16_SHELL" ]] && source "$BASE16_SHELL"
|
||||
|
||||
# stop parsing on a non-interactive shell
|
||||
[ -z "$PS1" ] && return
|
||||
|
||||
# disable ctrl-s terminal freeze
|
||||
[[ $- == *i* ]] && stty -ixon
|
||||
|
||||
# import our aliases
|
||||
source "$DOTFILES_PATH/shell/aliases"
|
||||
|
||||
# import our global shell functions
|
||||
source "$DOTFILES_PATH/shell/shell_funcs"
|
||||
|
||||
# import our prompt
|
||||
source "$DOTFILES_PATH/shell/prompt"
|
||||
|
||||
# import our autocompletions
|
||||
source "$DOTFILES_PATH/shell/autocompletions"
|
||||
|
||||
# load our key binds
|
||||
bind -f "$DOTFILES_PATH/shell/inputrc"
|
||||
|
||||
# prevents binds or commands pulling from history from insta-sending, and
|
||||
# instead places them in the readline for editing
|
||||
shopt -s histverify
|
||||
|
||||
# prevents some Java GUI apps from not working or rendering properly due to
|
||||
# using bspwm
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
|
||||
# load a per-device config last so anything can be overridden
|
||||
if [ -a "$HOME/.env_bashrc" ]; then
|
||||
source "$HOME/.env_bashrc"
|
||||
fi
|
||||
|
||||
# we assume the user uses "$HOME" to just store their mess of dotfiles and other
|
||||
# nonsense that clutters it up and that they have a preferred starting
|
||||
# directory where they keep the stuff they actually care about
|
||||
# we only do this if the user is opening a shell at $HOME
|
||||
if [ "$PWD" = "$HOME" ]; then
|
||||
cd "$NICE_HOME"
|
||||
fi
|
7
shell/inputrc
Normal file
7
shell/inputrc
Normal file
|
@ -0,0 +1,7 @@
|
|||
"\eOd": backward-word
|
||||
"\eOc": forward-word
|
||||
"\C-p": history-search-backward
|
||||
"\C-n": history-search-forward
|
||||
"\C-a": beginning-of-line
|
||||
"\C-e": end-of-line
|
||||
"\C-d": delete-char
|
26
shell/link.bash
Executable file
26
shell/link.bash
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: all symlinks in one place?
|
||||
|
||||
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd)
|
||||
source $DIR/variables.bash
|
||||
|
||||
mkdir -p "$HOME/.tmux/layouts"
|
||||
|
||||
MODULE_PATH="$DOTFILES_PATH/env/sh"
|
||||
|
||||
rm -f "$HOME/.bashrc"
|
||||
rm -f "$HOME/.bash_profile"
|
||||
rm -f "$HOME/.tmux.conf"
|
||||
rm -f "$HOME/.tmux/layouts/dev.tmux"
|
||||
# rm -f "$HOME/.inputrc" # now loaded separately
|
||||
ln -s "$MODULE_PATH/bashrc" "$HOME/.bashrc"
|
||||
ln -s "$MODULE_PATH/bash_profile" "$HOME/.bash_profile"
|
||||
ln -s "$MODULE_PATH/tmux.conf" "$HOME/.tmux.conf"
|
||||
ln -s "$MODULE_PATH/tmux-layouts/" "$HOME/.tmux/layouts/"
|
||||
# ln -s "$MODULE_PATH/inputrc" "$HOME/.inputrc" # now loaded by bashrc
|
||||
# separately
|
||||
|
||||
sed -i "/export DOTFILES_PATH/c export DOTFILES_PATH=\"$DIR\"" "$HOME/.bashrc"
|
||||
|
||||
echo "You should re-source ~/.bashrc ;)"
|
41
shell/prompt
Normal file
41
shell/prompt
Normal file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
COLOR_RESET='\[\e[0m\]'
|
||||
PROMPT_SUCCESS_COLOR='\[\e[0;34m\]'
|
||||
PROMPT_FAILURE_COLOR='\[\e[0;31m\]'
|
||||
DIR_COLOR='\[\e[0;33m\]'
|
||||
|
||||
# prompt rendering functions
|
||||
preprocess_pwd() {
|
||||
name="$PWD"
|
||||
# if we're in the home directory, replace it with tilde
|
||||
[[ "$name" =~ ^"$NICE_HOME"(/|$) ]] && name="~${name#$NICE_HOME}"
|
||||
|
||||
# replace all non-basename parts of the PWD with only the first two letters
|
||||
curdir=$(echo "$PWD" | sed -r 's|.*/(.+)$|\1|g')
|
||||
name=$(echo "$name" | sed -r 's|/(..)[^/]*|/\1|g' | sed -r 's|(.*/)(.+)$|\1|g')
|
||||
|
||||
# if we're just in the home directory, don't show any path stuff
|
||||
[[ "$name" == "~" ]] && curdir=""
|
||||
|
||||
# return our transformed PWD
|
||||
echo "$name$curdir"
|
||||
}
|
||||
export -f "preprocess_pwd"
|
||||
|
||||
prompt_command_func()
|
||||
{
|
||||
RET=$?
|
||||
# set the color of the user and host based on the result of the previous
|
||||
# command
|
||||
if [ $RET -eq 0 ]; then
|
||||
STATUS_COLOR=$PROMPT_SUCCESS_COLOR
|
||||
else
|
||||
STATUS_COLOR=$PROMPT_FAILURE_COLOR
|
||||
fi;
|
||||
PS1="$STATUS_COLOR\u@\h$COLOR_RESET $DIR_COLOR$(eval "preprocess_pwd")$COLOR_RESET "
|
||||
}
|
||||
export -f "prompt_command_func"
|
||||
export PROMPT_COMMAND="prompt_command_func"
|
||||
|
||||
|
74
shell/shell_funcs
Normal file
74
shell/shell_funcs
Normal file
|
@ -0,0 +1,74 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
calc() {
|
||||
tp="$@"
|
||||
python -c "print($tp)"
|
||||
}
|
||||
export -f calc
|
||||
|
||||
stopbar() {
|
||||
if [[ -f "$BAR_PID_FILE" ]]; then
|
||||
kill -SIGTERM $(cat "$BAR_PID_FILE")
|
||||
kill -SIGTERM $(cat "$BAR_PID_FILE"*.pid)
|
||||
kill -SIGTERM $(cat "$BAR_PATH"/modules/*.pid)
|
||||
rm -f "$BAR_PID_FILE"
|
||||
rm "$BAR_PID_FILE"*.pid
|
||||
rm "$BAR_PATH"/modules/*.pid
|
||||
else
|
||||
echo "Bar is not running."
|
||||
fi
|
||||
}
|
||||
export -f stopbar
|
||||
|
||||
# wm aliases
|
||||
startbar() {
|
||||
if [[ -f "$BAR_PID_FILE" ]]; then
|
||||
stopbar
|
||||
fi
|
||||
"$BAR_PATH/start.bash" &
|
||||
BAR_PID=$!
|
||||
echo "$BAR_PID" > "$BAR_PID_FILE"
|
||||
kill -CONT "$BAR_PID"
|
||||
# bg
|
||||
# disown
|
||||
|
||||
# lower the bar's layer so fullscreen windows cover it
|
||||
wid=$(xdo id -a "$BAR_WID")
|
||||
tries=20
|
||||
while [ -z "$wid" -a "$tries" -gt 0 ]; do
|
||||
sleep 0.1
|
||||
wid=$(xdo id -a "$BAR_WID")
|
||||
tries=$((tries - 1))
|
||||
echo "WID $wid"
|
||||
done
|
||||
[ -n "$wid" ] && xdo above -t "$(xdo id -N Bspwm -n root | sort | head -n 1)" "$wid"
|
||||
|
||||
fg
|
||||
}
|
||||
export -f startbar
|
||||
|
||||
# save the current directory for later retrieval
|
||||
scwd() {
|
||||
addon=""
|
||||
if [[ -n $1 ]]; then
|
||||
addon="-$1"
|
||||
fi
|
||||
echo "$PWD" > "$DOTFILES_PATH/env/sh/cwd$addon.tmp"
|
||||
}
|
||||
export -f scwd
|
||||
bind '"\C-s"':"\"scwd\C-m\""
|
||||
|
||||
# go to the saved current directory
|
||||
gcwd() {
|
||||
addon=""
|
||||
if [[ -n $1 ]]; then
|
||||
addon="-$1"
|
||||
fi
|
||||
cd "$(cat "$DOTFILES_PATH/env/sh/cwd$addon.tmp")"
|
||||
}
|
||||
export -f gcwd
|
||||
bind '"\C-g"':"\"gcwd\C-m\""
|
||||
|
||||
# close a terminal with Ctrl-Shift-D (in theory)
|
||||
bind '"\C-D"':"\"\C-c\C-d\""
|
||||
|
5
shell/tmux-layouts/dev.tmux
Normal file
5
shell/tmux-layouts/dev.tmux
Normal file
|
@ -0,0 +1,5 @@
|
|||
splitw -h -p 50
|
||||
splitw -v -p 67
|
||||
splitw -v -p 50
|
||||
resize-pane -x 100
|
||||
selectp -L
|
76
shell/tmux.conf
Normal file
76
shell/tmux.conf
Normal file
|
@ -0,0 +1,76 @@
|
|||
# ^s as prefix
|
||||
unbind C-b
|
||||
set -g prefix C-s
|
||||
bind-key s send-prefix
|
||||
|
||||
# statusbar on bottom
|
||||
set-option -g status-position bottom
|
||||
|
||||
# honestly not sure
|
||||
set -g escape-time 10
|
||||
setw -g monitor-activity on
|
||||
|
||||
# hide tmux status bar by default (prefix H toggles)
|
||||
set -g status off
|
||||
|
||||
bind-key W resize-pane -x 100
|
||||
|
||||
# splitting
|
||||
bind-key v split-window -h
|
||||
bind-key b split-window
|
||||
|
||||
# be xterm
|
||||
set -g default-terminal "xterm"
|
||||
|
||||
# iterating
|
||||
bind r source-file ~/.tmux.conf
|
||||
|
||||
# toggle status bar
|
||||
bind-key H set status
|
||||
|
||||
# vim copying
|
||||
setw -g mode-keys vi
|
||||
bind-key -t vi-copy 'v' begin-selection
|
||||
bind-key -t vi-copy 'y' copy-selection
|
||||
|
||||
# 1-based indexing for keystroke simplicity
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
|
||||
# custom predefined layouts
|
||||
bind M-l source-file ~/.tmux/layouts/dev.tmux
|
||||
|
||||
# mimic pane switching in and out of vim
|
||||
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'
|
||||
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
||||
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
||||
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
||||
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||
bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
||||
|
||||
# present a menu of urls to open from the visible pane
|
||||
bind-key u capture-pane \;\
|
||||
save-buffer /tmp/tmux-buffer \;\
|
||||
split-window -l 10 "urlview /tmp/tmux-buffer"
|
||||
|
||||
# list of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
set -g @plugin 'tmux-plugins/tmux-copycat'
|
||||
set -g @plugin 'tmux-plugins/tmux-sessionist'
|
||||
|
||||
# plugin options
|
||||
|
||||
# enable continuum
|
||||
set -g @continuum-restore 'off'
|
||||
|
||||
# let continuum startup on boot
|
||||
set -g @continuum-boot 'on'
|
||||
|
||||
# initialize tmux plugin manager
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
|
||||
unbind-key C-p
|
Reference in a new issue