Merge branch 'master' into the-merge
This commit is contained in:
commit
b411f2599e
47 changed files with 4006 additions and 0 deletions
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
colors/gen/vendor
|
||||
colors/gen/tmp
|
||||
*.lock
|
||||
*.log
|
||||
*.pid
|
||||
*.tmp
|
||||
*.secret
|
1
browser/.gitkeep
Normal file
1
browser/.gitkeep
Normal file
|
@ -0,0 +1 @@
|
|||
# Coming Soon!
|
1
common/colors/generator/.gitignore
vendored
Normal file
1
common/colors/generator/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
vendor
|
43
common/colors/generator/gen.bash
Executable file
43
common/colors/generator/gen.bash
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SCHEME="donokai"
|
||||
|
||||
v=$(ruby --version)
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
if [[ -n $1 ]]; then
|
||||
SCHEME=$1
|
||||
fi
|
||||
|
||||
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)
|
||||
|
||||
mkdir -p "$DIR/vendor"
|
||||
|
||||
B16_DIR="$DIR/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 "$DIR/vendor/base16-builder"
|
||||
fi
|
||||
|
||||
"$DIR/vendor/base16-builder/base16" -t vim -s "$DIR/schemes/$SCHEME.yml"
|
||||
"$DIR/vendor/base16-builder/base16" -t xresources -s "$DIR/schemes/$SCHEME.yml"
|
||||
"$DIR/vendor/base16-builder/base16" -t shell -s "$DIR/schemes/$SCHEME.yml"
|
||||
|
||||
# replace existing color files
|
||||
rm -f "$DIR/../shell"
|
||||
rm -f "$DIR/../vim"
|
||||
rm -f "$DIR/../xresources"
|
||||
cp "$COLORS_PATH/xresources/base16-$SCHEME.dark.xresources" "$DIR/../xresources"
|
||||
cp "$COLORS_PATH/vim/base16-$SCHEME.vim" "$DIR/../vim"
|
||||
cp "$COLORS_PATH/shell/base16-$SCHEME.dark.sh" "$DIR/../shell"
|
||||
chmod +x "$DIR/../shell"
|
||||
|
||||
echo "Colors have been regenerated. You will need to re-link them."
|
||||
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
|
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
|
35
de/bar/bar.bash
Executable file
35
de/bar/bar.bash
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
export BAR_MONITOR="DVI-I-2"
|
||||
export BAR_HEIGHT=25
|
||||
export BAR_ON_TOP=0
|
||||
export BAR_SIDE_MARGIN=200
|
||||
|
||||
export GAP=$(bspc wm -d | grep -Po '(windowGap.*?,)' | grep -Po '\d*' | head -n 1)
|
||||
MONITOR_WIDTH=$(xrandr | grep DVI-I-2 | grep -Po ' \d+' | head -n 1)
|
||||
export BAR_WIDTH=$((MONITOR_WIDTH - GAP - GAP - BAR_SIDE_MARGIN - BAR_SIDE_MARGIN))
|
||||
export BAR_FONT=$(xrdb -query | sed -ne 's/.*font:\s*xft:\(.*\)\-.*$/\1/p' | head -n 1)
|
||||
export BAR_FONT_SIZE=$(xrdb -query | sed -ne 's/.*font:\s*xft:.*\-\(.*\)$/\1/p' | head -n 1)
|
||||
export POS_X=$((GAP + BAR_SIDE_MARGIN))
|
||||
|
||||
export BAR_FONT_DECLARATION="${BAR_FONT}:pixelsize=${BAR_FONT_SIZE};1"
|
||||
|
||||
EHEIGHT=$((BAR_HEIGHT + GAP))
|
||||
|
||||
export BAR_BOTTOM="true"
|
||||
export POS_Y=0
|
||||
if [ $BAR_ON_TOP -eq 1 ]; then
|
||||
export BAR_BOTTOM="false"
|
||||
export POS_Y=$GAP
|
||||
bspc config -m ${BAR_MONITOR} top_padding "$EHEIGHT"
|
||||
bspc config -m ${BAR_MONITOR} bottom_padding "0"
|
||||
else
|
||||
export POS_Y=$GAP
|
||||
bspc config -m ${BAR_MONITOR} top_padding "0"
|
||||
bspc config -m ${BAR_MONITOR} bottom_padding "$EHEIGHT"
|
||||
fi
|
||||
|
||||
|
||||
bspc
|
||||
|
||||
polybar lytedev
|
366
de/bar/polybar-config
Normal file
366
de/bar/polybar-config
Normal file
|
@ -0,0 +1,366 @@
|
|||
;=====================================================
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/jaagr/polybar
|
||||
;
|
||||
; The README contains alot of information
|
||||
;
|
||||
;=====================================================
|
||||
|
||||
[colors]
|
||||
background = ${xrdb:color0:#111}
|
||||
background-alt = ${xrdb:color2:#333}
|
||||
foreground = ${xrdb:color7:#222}
|
||||
foreground-alt = #555
|
||||
primary = ${xrdb:color1:#222}
|
||||
secondary = ${xrdb:color3:#222}
|
||||
alert = #bd2c40
|
||||
|
||||
[bar/lytedev]
|
||||
monitor = ${env:BAR_MONITOR:HDMI-1}
|
||||
width = ${env:BAR_WIDTH:HDMI-1}
|
||||
height = ${env:BAR_HEIGHT:30}
|
||||
offset-x = ${env:POS_X:30}
|
||||
offset-y = ${env:POS_Y:30}
|
||||
radius = 0.0
|
||||
fixed-center = false
|
||||
bottom = ${env:BAR_BOTTOM:true}
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3
|
||||
line-color = #f00
|
||||
|
||||
border-size = 0
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 0
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 2
|
||||
|
||||
font-0 = ${env:BAR_FONT_DECLARATION}
|
||||
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
||||
font-2 = siji:pixelsize=10;1
|
||||
|
||||
modules-left = bspwm
|
||||
modules-center = mpd
|
||||
modules-right = filesystem xbacklight volume xkeyboard memory cpu battery temperature date powermenu
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
;tray-transparent = true
|
||||
;tray-background = #0063ff
|
||||
|
||||
;wm-restack = bspwm
|
||||
;wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:30:...%
|
||||
|
||||
; [module/xkeyboard]
|
||||
; type = internal/xkeyboard
|
||||
; blacklist-0 = num lock
|
||||
;
|
||||
; format-prefix = ""
|
||||
; format-prefix-foreground = ${colors.foreground-alt}
|
||||
; format-prefix-underline = ${colors.secondary}
|
||||
;
|
||||
; label-layout = %layout%
|
||||
; label-layout-underline = ${colors.secondary}
|
||||
;
|
||||
; label-indicator-padding = 2
|
||||
; label-indicator-margin = 1
|
||||
; label-indicator-background = ${colors.secondary}
|
||||
; label-indicator-underline = ${colors.secondary}
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
|
||||
mount-0 = /home
|
||||
|
||||
label-mounted = %mountpoint%: %percentage_used%%
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
label-focused = %index%
|
||||
label-focused-background = ${xrdb:color1}
|
||||
; label-focused-underline= ${colors.primary}
|
||||
label-focused-padding = 2
|
||||
|
||||
label-occupied = %index%
|
||||
label-occupied-padding = 2
|
||||
|
||||
label-urgent = %index%!
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 2
|
||||
|
||||
label-empty = %index%
|
||||
label-empty-foreground = ${colors.foreground-alt}
|
||||
label-empty-padding = 2
|
||||
|
||||
; [module/i3]
|
||||
; type = internal/i3
|
||||
; format = <label-state> <label-mode>
|
||||
; index-sort = true
|
||||
; wrapping-scroll = false
|
||||
;
|
||||
; ; Only show workspaces on the same output as the bar
|
||||
; ;pin-workspaces = true
|
||||
;
|
||||
; label-mode-padding = 2
|
||||
; label-mode-foreground = #000
|
||||
; label-mode-background = ${colors.primary}
|
||||
;
|
||||
; ; focused = Active workspace on focused monitor
|
||||
; label-focused = %index%
|
||||
; label-focused-background = ${module/bspwm.label-focused-background}
|
||||
; label-focused-underline = ${module/bspwm.label-focused-underline}
|
||||
; label-focused-padding = ${module/bspwm.label-focused-padding}
|
||||
;
|
||||
; ; unfocused = Inactive workspace on any monitor
|
||||
; label-unfocused = %index%
|
||||
; label-unfocused-padding = ${module/bspwm.label-occupied-padding}
|
||||
;
|
||||
; ; visible = Active workspace on unfocused monitor
|
||||
; label-visible = %index%
|
||||
; label-visible-background = ${self.label-focused-background}
|
||||
; label-visible-underline = ${self.label-focused-underline}
|
||||
; label-visible-padding = ${self.label-focused-padding}
|
||||
;
|
||||
; ; urgent = Workspace with urgency hint set
|
||||
; label-urgent = %index%
|
||||
; label-urgent-background = ${module/bspwm.label-urgent-background}
|
||||
; label-urgent-padding = ${module/bspwm.label-urgent-padding}
|
||||
|
||||
[module/mpd]
|
||||
type = internal/mpd
|
||||
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
|
||||
|
||||
icon-prev =
|
||||
icon-stop =
|
||||
icon-play =
|
||||
icon-pause =
|
||||
icon-next =
|
||||
|
||||
label-song-maxlen = 25
|
||||
label-song-ellipsis = true
|
||||
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
|
||||
format = <label> <bar>
|
||||
label = BL
|
||||
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-indicator-foreground = #ff
|
||||
bar-indicator-font = 2
|
||||
bar-fill = ─
|
||||
bar-fill-font = 2
|
||||
bar-fill-foreground = #9f78e1
|
||||
bar-empty = ─
|
||||
bar-empty-font = 2
|
||||
bar-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/backlight-acpi]
|
||||
inherit = module/xbacklight
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = "cpu "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
; format-underline = #f90000
|
||||
label = %percentage%%
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = "mem "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
; format-underline = #4bffdc
|
||||
label = %percentage_used%%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface =
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <ramp-signal> <label-connected>
|
||||
; format-connected-underline = #9f78e1
|
||||
label-connected = %essid%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
ramp-signal-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface =
|
||||
interval = 3.0
|
||||
|
||||
; format-connected-underline = #55aa55
|
||||
format-connected-prefix = "net "
|
||||
format-connected-prefix-foreground = ${colors.foreground-alt}
|
||||
label-connected = %local_ip%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = "%Y-%m-%d"
|
||||
date-alt =
|
||||
|
||||
time = %H:%M:%S
|
||||
time-alt = %H:%M
|
||||
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
; format-underline = #0a6cf5
|
||||
|
||||
label = %date% %time%
|
||||
|
||||
[module/volume]
|
||||
type = internal/volume
|
||||
|
||||
format-volume = <label-volume> <bar-volume>
|
||||
label-volume = VOL
|
||||
label-volume-foreground = ${root.foreground}
|
||||
|
||||
format-muted-prefix =
|
||||
format-muted-foreground = ${colors.foreground-alt}
|
||||
label-muted = sound muted
|
||||
|
||||
bar-volume-width = 5
|
||||
bar-volume-foreground-0 = #888888
|
||||
bar-volume-foreground-1 = #888888
|
||||
bar-volume-foreground-2 = #888888
|
||||
bar-volume-foreground-3 = #888888
|
||||
bar-volume-foreground-4 = #888888
|
||||
bar-volume-foreground-5 = #888888
|
||||
bar-volume-foreground-6 = #888888
|
||||
bar-volume-gradient = false
|
||||
bar-volume-indicator = |
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
adapter = ADP1
|
||||
full-at = 98
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
; format-charging-underline = #ffb52a
|
||||
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
; format-discharging-underline = ${self.format-charging-underline}
|
||||
|
||||
format-full-prefix = "bat "
|
||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
; format-full-underline = ${self.format-charging-underline}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
thermal-zone = 0
|
||||
warn-temperature = 60
|
||||
|
||||
format = <ramp><label>
|
||||
; format-underline = #f50a4d
|
||||
format-warn = <ramp> <label-warn>
|
||||
; format-warn-underline = ${self.format-underline}
|
||||
|
||||
label = %temperature%
|
||||
label-warn = %temperature%
|
||||
label-warn-foreground = ${colors.secondary}
|
||||
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
ramp-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/powermenu]
|
||||
type = custom/menu
|
||||
|
||||
format-spacing = 1
|
||||
|
||||
label-open =
|
||||
label-open-foreground = ${colors.secondary}
|
||||
label-close = cancel
|
||||
label-close-foreground = ${colors.secondary}
|
||||
label-separator = |
|
||||
label-separator-foreground = ${colors.foreground-alt}
|
||||
|
||||
menu-0-0 = reboot
|
||||
menu-0-0-exec = menu-open-1
|
||||
menu-0-1 = power off
|
||||
menu-0-1-exec = menu-open-2
|
||||
|
||||
menu-1-0 = cancel
|
||||
menu-1-0-exec = menu-open-0
|
||||
menu-1-1 = reboot
|
||||
menu-1-1-exec = sudo reboot
|
||||
|
||||
menu-2-0 = power off
|
||||
menu-2-0-exec = sudo poweroff
|
||||
menu-2-1 = cancel
|
||||
menu-2-1-exec = menu-open-0
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
;compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
|
||||
[global/wm]
|
||||
margin-top = 25
|
||||
margin-bottom = 25
|
52
de/bspwm_config
Executable file
52
de/bspwm_config
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
BORDER_WIDTH=0 # change in bspwmrc
|
||||
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
|
41
de/bspwmrc
Executable file
41
de/bspwmrc
Executable file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
BORDER_WIDTH=0 # change in bspwm_config, here for launcher
|
||||
START_BAR=1
|
||||
BAR_COMMAND="$DOTFILES_PATH/de/bar/bar.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
|
||||
export LAUNCHER_FONT=$(xrdb -query | sed -ne 's/.*font:\s*xft:\(.*\)\-.*$/\1/p' | head -n 1)
|
||||
export LAUNCHER_FONT_SIZE=$(xrdb -query | sed -ne 's/.*font:\s*xft:.*\-\(.*\)$/\1/p' | head -n 1)
|
||||
export HIGHLIGHT_COLOR=$(xrdb -query | sed -ne 's/.*color1*:\s*\(.*\)$/\1/p' | head -n 1)
|
||||
export BACKGROUND_COLOR=$(xrdb -query | sed -ne 's/.*background:\s*\(.*\)$/\1/p' | head -n 1)
|
||||
export FOREGROUND_COLOR=$(xrdb -query | sed -ne 's/.*foreground:\s*\(.*\)$/\1/p' | head -n 1)
|
||||
# export HIGHLIGHT_COLOR=$(xrdb -query | sed -ne 's/.*font:\s*xft:.*\-\(.*\)$/\1/p' | head -n 1)
|
||||
sxhkd &
|
||||
fi
|
||||
|
||||
if [[ $START_BAR -eq 1 ]]; then
|
||||
${BAR_COMMAND} &
|
||||
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
|
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 "$LAUNCHER_FONT $LAUNCHER_FONT_SIZE" -lines 16 -width 10 -padding 8 -fuzzy -bw "$BORDER_WIDTH" -color-enabled -color-window "$BACKGROUND_COLOR","$HIGHLIGHT_COLOR","$HIGHLIGHT_COLOR","$BACKGROUND_COLOR" -color-normal "$BACKGROUND_COLOR","$FOREGROUND_COLOR","$BACKGROUND_COLOR","$HIGHLIGHT_COLOR","$FOREGROUND_COLOR" -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
|
33
de/xinitrc
Normal file
33
de/xinitrc
Normal file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/sh
|
||||
|
||||
# as far as I can tell, this file is only executed when you run startx from the
|
||||
# TTY
|
||||
|
||||
echo '' > "$HOME/.xstartup_log"
|
||||
echo "xinitrc" >> "$HOME/.xstartup_log"
|
||||
|
||||
# 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/de/wmstart"
|
42
de/xloadresources
Executable file
42
de/xloadresources
Executable file
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
echo "xloadresources" >> "$HOME/.xstartup_log"
|
||||
|
||||
sysresources="/etc/X11/xinit/.Xresources"
|
||||
sysmodmap="/etc/X11/xinit/.Xmodmap"
|
||||
userresources="$HOME/.Xresources"
|
||||
usercolors="$HOME/.Xresources.colors"
|
||||
userenv="$HOME/.Xresources.env"
|
||||
usermodmap="$HOME/.Xmodmap"
|
||||
|
||||
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
|
||||
|
30
de/xprofile
Normal file
30
de/xprofile
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/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
|
||||
|
||||
echo "xprofile ($DOTFILES_PATH)" >> "$HOME/.xstartup_log"
|
||||
|
||||
if [ -f "$DOTFILES_PATH/de/xloadresources" ]; then
|
||||
source "$DOTFILES_PATH/de/xloadresources"
|
||||
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:artwiz lemon-10
|
||||
*faceName: xft:artwiz lemon-10
|
||||
*boldFont: xft:artwiz lemon-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
|
281
misc/irssi/config
Normal file
281
misc/irssi/config
Normal file
|
@ -0,0 +1,281 @@
|
|||
servers = (
|
||||
{
|
||||
address = "lytedev.io";
|
||||
# password = "lytedev/nixers:${IRC_PASS}";
|
||||
chatnet = "lytedev";
|
||||
port = "6667";
|
||||
use_ssl = "yes";
|
||||
ssl_verify = "no";
|
||||
autoconnect = "yes";
|
||||
}
|
||||
);
|
||||
|
||||
chatnets = {
|
||||
lytedev = {
|
||||
type = "IRC";
|
||||
autosendcmd = "/quote pass lytedev:${IRC_PASS}";
|
||||
};
|
||||
};
|
||||
|
||||
channels = ( );
|
||||
|
||||
aliases = {
|
||||
ATAG = "WINDOW SERVER";
|
||||
ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
|
||||
B = "BAN";
|
||||
BACK = "AWAY";
|
||||
BANS = "BAN";
|
||||
BYE = "QUIT";
|
||||
C = "CLEAR";
|
||||
CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi";
|
||||
CHAT = "DCC CHAT";
|
||||
CUBES = "SCRIPT EXEC Irssi::active_win->print(\"%_bases\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x0\\${_}0\\$_\" } '0'..'9','A'..'F' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_cubes\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { my \\$y = \\$_*6 \\; join '', map { my \\$x = \\$_ \\; map { \"%x\\$x\\$_\\$x\\$_\" } @{['0'..'9','A'..'Z']}[\\$y .. \\$y+5] } 1..6 }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) for 0..5 \\; Irssi::active_win->print(\"%_grays\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x7\\${_}7\\$_\" } 'A'..'X' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_mIRC extended colours\", MSGLEVEL_CLIENTCRAP) \\; my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 0..15 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; for my \\$z (0..6) { my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 16+(\\$z*12)..16+(\\$z*12)+11 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) }";
|
||||
DATE = "TIME";
|
||||
DEHIGHLIGHT = "DEHILIGHT";
|
||||
DESCRIBE = "ACTION";
|
||||
DHL = "DEHILIGHT";
|
||||
EXEMPTLIST = "MODE $C +e";
|
||||
EXIT = "QUIT";
|
||||
GOTO = "SCROLLBACK GOTO";
|
||||
HIGHLIGHT = "HILIGHT";
|
||||
HL = "HILIGHT";
|
||||
HOST = "USERHOST";
|
||||
INVITELIST = "MODE $C +I";
|
||||
J = "JOIN";
|
||||
K = "KICK";
|
||||
KB = "KICKBAN";
|
||||
KN = "KNOCKOUT";
|
||||
LAST = "LASTLOG";
|
||||
LEAVE = "PART";
|
||||
M = "MSG";
|
||||
MUB = "UNBAN *";
|
||||
N = "NAMES";
|
||||
NMSG = "^MSG";
|
||||
P = "PART";
|
||||
Q = "QUERY";
|
||||
RESET = "SET -default";
|
||||
RUN = "SCRIPT LOAD";
|
||||
SAY = "MSG *";
|
||||
SB = "SCROLLBACK";
|
||||
SBAR = "STATUSBAR";
|
||||
SIGNOFF = "QUIT";
|
||||
SV = "MSG * Irssi $J ($V) - http://www.irssi.org";
|
||||
T = "TOPIC";
|
||||
UB = "UNBAN";
|
||||
UMODE = "MODE $N";
|
||||
UNSET = "SET -clear";
|
||||
W = "WHO";
|
||||
WC = "WINDOW CLOSE";
|
||||
WG = "WINDOW GOTO";
|
||||
WJOIN = "JOIN -window";
|
||||
WI = "WHOIS";
|
||||
WII = "WHOIS $0 $0";
|
||||
WL = "WINDOW LIST";
|
||||
WN = "WINDOW NEW HIDDEN";
|
||||
WQUERY = "QUERY -window";
|
||||
WW = "WHOWAS";
|
||||
1 = "WINDOW GOTO 1";
|
||||
2 = "WINDOW GOTO 2";
|
||||
3 = "WINDOW GOTO 3";
|
||||
4 = "WINDOW GOTO 4";
|
||||
5 = "WINDOW GOTO 5";
|
||||
6 = "WINDOW GOTO 6";
|
||||
7 = "WINDOW GOTO 7";
|
||||
8 = "WINDOW GOTO 8";
|
||||
9 = "WINDOW GOTO 9";
|
||||
10 = "WINDOW GOTO 10";
|
||||
11 = "WINDOW GOTO 11";
|
||||
12 = "WINDOW GOTO 12";
|
||||
13 = "WINDOW GOTO 13";
|
||||
14 = "WINDOW GOTO 14";
|
||||
15 = "WINDOW GOTO 15";
|
||||
16 = "WINDOW GOTO 16";
|
||||
17 = "WINDOW GOTO 17";
|
||||
18 = "WINDOW GOTO 18";
|
||||
19 = "WINDOW GOTO 19";
|
||||
20 = "WINDOW GOTO 20";
|
||||
21 = "WINDOW GOTO 21";
|
||||
22 = "WINDOW GOTO 22";
|
||||
23 = "WINDOW GOTO 23";
|
||||
24 = "WINDOW GOTO 24";
|
||||
25 = "WINDOW GOTO 25";
|
||||
26 = "WINDOW GOTO 26";
|
||||
27 = "WINDOW GOTO 27";
|
||||
28 = "WINDOW GOTO 28";
|
||||
29 = "WINDOW GOTO 29";
|
||||
30 = "WINDOW GOTO 30";
|
||||
31 = "WINDOW GOTO 31";
|
||||
32 = "WINDOW GOTO 32";
|
||||
33 = "WINDOW GOTO 33";
|
||||
34 = "WINDOW GOTO 34";
|
||||
35 = "WINDOW GOTO 35";
|
||||
36 = "WINDOW GOTO 36";
|
||||
37 = "WINDOW GOTO 37";
|
||||
38 = "WINDOW GOTO 38";
|
||||
39 = "WINDOW GOTO 39";
|
||||
40 = "WINDOW GOTO 40";
|
||||
41 = "WINDOW GOTO 41";
|
||||
42 = "WINDOW GOTO 42";
|
||||
43 = "WINDOW GOTO 43";
|
||||
44 = "WINDOW GOTO 44";
|
||||
45 = "WINDOW GOTO 45";
|
||||
46 = "WINDOW GOTO 46";
|
||||
47 = "WINDOW GOTO 47";
|
||||
48 = "WINDOW GOTO 48";
|
||||
49 = "WINDOW GOTO 49";
|
||||
50 = "WINDOW GOTO 50";
|
||||
51 = "WINDOW GOTO 51";
|
||||
52 = "WINDOW GOTO 52";
|
||||
53 = "WINDOW GOTO 53";
|
||||
54 = "WINDOW GOTO 54";
|
||||
55 = "WINDOW GOTO 55";
|
||||
56 = "WINDOW GOTO 56";
|
||||
57 = "WINDOW GOTO 57";
|
||||
58 = "WINDOW GOTO 58";
|
||||
59 = "WINDOW GOTO 59";
|
||||
60 = "WINDOW GOTO 60";
|
||||
61 = "WINDOW GOTO 61";
|
||||
62 = "WINDOW GOTO 62";
|
||||
63 = "WINDOW GOTO 63";
|
||||
64 = "WINDOW GOTO 64";
|
||||
65 = "WINDOW GOTO 65";
|
||||
66 = "WINDOW GOTO 66";
|
||||
67 = "WINDOW GOTO 67";
|
||||
68 = "WINDOW GOTO 68";
|
||||
69 = "WINDOW GOTO 69";
|
||||
70 = "WINDOW GOTO 70";
|
||||
71 = "WINDOW GOTO 71";
|
||||
72 = "WINDOW GOTO 72";
|
||||
73 = "WINDOW GOTO 73";
|
||||
74 = "WINDOW GOTO 74";
|
||||
75 = "WINDOW GOTO 75";
|
||||
76 = "WINDOW GOTO 76";
|
||||
77 = "WINDOW GOTO 77";
|
||||
78 = "WINDOW GOTO 78";
|
||||
79 = "WINDOW GOTO 79";
|
||||
80 = "WINDOW GOTO 80";
|
||||
81 = "WINDOW GOTO 81";
|
||||
82 = "WINDOW GOTO 82";
|
||||
83 = "WINDOW GOTO 83";
|
||||
84 = "WINDOW GOTO 84";
|
||||
85 = "WINDOW GOTO 85";
|
||||
86 = "WINDOW GOTO 86";
|
||||
87 = "WINDOW GOTO 87";
|
||||
88 = "WINDOW GOTO 88";
|
||||
89 = "WINDOW GOTO 89";
|
||||
90 = "WINDOW GOTO 90";
|
||||
91 = "WINDOW GOTO 91";
|
||||
92 = "WINDOW GOTO 92";
|
||||
93 = "WINDOW GOTO 93";
|
||||
94 = "WINDOW GOTO 94";
|
||||
95 = "WINDOW GOTO 95";
|
||||
96 = "WINDOW GOTO 96";
|
||||
97 = "WINDOW GOTO 97";
|
||||
98 = "WINDOW GOTO 98";
|
||||
99 = "WINDOW GOTO 99";
|
||||
znc = "msg *status";
|
||||
};
|
||||
|
||||
settings = {
|
||||
core = {
|
||||
real_name = "daniel";
|
||||
user_name = "lytedev";
|
||||
nick = "lytedev";
|
||||
use_proxy = "yes";
|
||||
proxy_address = "lytedev.io";
|
||||
proxy_port = "6667";
|
||||
# proxy_password = "${IRC_PASS}";
|
||||
proxy_string = "";
|
||||
proxy_string_after = "conn %s %d";
|
||||
};
|
||||
"fe-text" = { actlist_sort = "refnum"; };
|
||||
"fe-common/core" = { theme = "lytedev"; };
|
||||
};
|
||||
hilights = (
|
||||
{ text = "wraith"; nick = "yes"; word = "yes"; },
|
||||
{ text = "lytedev"; nick = "yes"; word = "yes"; }
|
||||
);
|
||||
statusbar = {
|
||||
# formats:
|
||||
# when using {templates}, the template is shown only if it's argument isn't
|
||||
# empty unless no argument is given. for example {sb} is printed always,
|
||||
# but {sb $T} is printed only if $T isn't empty.
|
||||
|
||||
items = {
|
||||
# start/end text in statusbars
|
||||
barstart = "{sbstart}";
|
||||
barend = "{sbend}";
|
||||
|
||||
topicbarstart = "{topicsbstart}";
|
||||
topicbarend = "{topicsbend}";
|
||||
|
||||
time = "";
|
||||
user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
|
||||
|
||||
# window_empty is printed with empty windows
|
||||
window = "{sb $winref:$tag/$itemname{sbmode $M}}";
|
||||
window_empty = "{sb $winref{sbservertag $tag}}";
|
||||
prompt = "{prompt $[.15]itemname}";
|
||||
prompt_empty = "{prompt $winname}";
|
||||
topic = " $topic";
|
||||
topic_empty = " Empty Topic";
|
||||
|
||||
# all of these treated specially, they're only displayed when needed
|
||||
lag = "{sb $0-}";
|
||||
act = "{sb $0-}";
|
||||
more = "... ";
|
||||
};
|
||||
|
||||
# there's two type of statusbars. root statusbars are either at the top
|
||||
# of the screen or at the bottom of the screen. window statusbars are at
|
||||
# the top/bottom of each split window in screen.
|
||||
default = {
|
||||
# the "default statusbar" to be displayed at the bottom of the window.
|
||||
# contains all the normal items.
|
||||
|
||||
# statusbar to use in inactive split windows
|
||||
window_inact = {
|
||||
type = "window";
|
||||
placement = "bottom";
|
||||
position = "-1";
|
||||
visible = "inactive";
|
||||
items = {
|
||||
barstart = { priority = "100"; };
|
||||
window = { };
|
||||
window_empty = { };
|
||||
more = { priority = "-1"; alignment = "right"; };
|
||||
barend = { priority = "100"; alignment = "right"; };
|
||||
};
|
||||
};
|
||||
|
||||
# we treat input line as yet another statusbar :) It's possible to
|
||||
# add other items before or after the input line item.
|
||||
prompt = {
|
||||
type = "root";
|
||||
placement = "bottom";
|
||||
# we want to be at the bottom always
|
||||
position = "100";
|
||||
visible = "always";
|
||||
items = {
|
||||
prompt = { priority = "-1"; };
|
||||
prompt_empty = { priority = "-1"; };
|
||||
# treated specially, this is the real input line.
|
||||
input = { priority = "10"; };
|
||||
};
|
||||
};
|
||||
|
||||
# topicbar
|
||||
topic = {
|
||||
type = "root";
|
||||
placement = "top";
|
||||
position = "1";
|
||||
visible = "active";
|
||||
items = {
|
||||
topicbarstart = { priority = "100"; };
|
||||
topic = { };
|
||||
topic_empty = { };
|
||||
topicbarend = { priority = "100"; alignment = "right"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
294
misc/irssi/default.theme
Normal file
294
misc/irssi/default.theme
Normal file
|
@ -0,0 +1,294 @@
|
|||
# When testing changes, the easiest way to reload the theme is with /RELOAD.
|
||||
# This reloads the configuration file too, so if you did any changes remember
|
||||
# to /SAVE it first. Remember also that /SAVE overwrites the theme file with
|
||||
# old data so keep backups :)
|
||||
|
||||
# TEMPLATES:
|
||||
|
||||
# The real text formats that irssi uses are the ones you can find with
|
||||
# /FORMAT command. Back in the old days all the colors and texts were mixed
|
||||
# up in those formats, and it was really hard to change the colors since you
|
||||
# might have had to change them in tens of different places. So, then came
|
||||
# this templating system.
|
||||
|
||||
# Now the /FORMATs don't have any colors in them, and they also have very
|
||||
# little other styling. Most of the stuff you need to change is in this
|
||||
# theme file. If you can't change something here, you can always go back
|
||||
# to change the /FORMATs directly, they're also saved in these .theme files.
|
||||
|
||||
# So .. the templates. They're those {blahblah} parts you see all over the
|
||||
# /FORMATs and here. Their usage is simply {name parameter1 parameter2}.
|
||||
# When irssi sees this kind of text, it goes to find "name" from abstracts
|
||||
# block below and sets "parameter1" into $0 and "parameter2" into $1 (you
|
||||
# can have more parameters of course). Templates can have subtemplates.
|
||||
# Here's a small example:
|
||||
# /FORMAT format hello {colorify {underline world}}
|
||||
# abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; }
|
||||
# When irssi expands the templates in "format", the final string would be:
|
||||
# hello %G%Uworld%U%n
|
||||
# ie. underlined bright green "world" text.
|
||||
# and why "$0-", why not "$0"? $0 would only mean the first parameter,
|
||||
# $0- means all the parameters. With {underline hello world} you'd really
|
||||
# want to underline both of the words, not just the hello (and world would
|
||||
# actually be removed entirely).
|
||||
|
||||
# COLORS:
|
||||
|
||||
# You can find definitions for the color format codes in docs/formats.txt.
|
||||
|
||||
# There's one difference here though. %n format. Normally it means the
|
||||
# default color of the terminal (white mostly), but here it means the
|
||||
# "reset color back to the one it was in higher template". For example
|
||||
# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would
|
||||
# print yellow "foo" (as set with %Y) but "bar" would be green, which was
|
||||
# set at the beginning before the {foo} template. If there wasn't the %g
|
||||
# at start, the normal behaviour of %n would occur. If you _really_ want
|
||||
# to use the terminal's default color, use %N.
|
||||
|
||||
#############################################################################
|
||||
|
||||
# default foreground color (%N) - -1 is the "default terminal color"
|
||||
default_color = "-1";
|
||||
|
||||
# print timestamp/servertag at the end of line, not at beginning
|
||||
info_eol = "false";
|
||||
|
||||
# these characters are automatically replaced with specified color
|
||||
# (dark grey by default)
|
||||
replaces = { "[]=" = "%K$*%n"; };
|
||||
|
||||
abstracts = {
|
||||
##
|
||||
## generic
|
||||
##
|
||||
|
||||
# text to insert at the beginning of each non-message line
|
||||
line_start = "%B-%n!%B-%n ";
|
||||
|
||||
# timestamp styling, nothing by default
|
||||
timestamp = "$*";
|
||||
|
||||
# any kind of text that needs hilighting, default is to bold
|
||||
hilight = "%_$*%_";
|
||||
|
||||
# any kind of error message, default is bright red
|
||||
error = "%R$*%n";
|
||||
|
||||
# channel name is printed
|
||||
channel = "%_$*%_";
|
||||
|
||||
# nick is printed
|
||||
nick = "%_$*%_";
|
||||
|
||||
# nick host is printed
|
||||
nickhost = "[$*]";
|
||||
|
||||
# server name is printed
|
||||
server = "%_$*%_";
|
||||
|
||||
# some kind of comment is printed
|
||||
comment = "[$*]";
|
||||
|
||||
# reason for something is printed (part, quit, kick, ..)
|
||||
reason = "{comment $*}";
|
||||
|
||||
# mode change is printed ([+o nick])
|
||||
mode = "{comment $*}";
|
||||
|
||||
##
|
||||
## channel specific messages
|
||||
##
|
||||
|
||||
# highlighted nick/host is printed (joins)
|
||||
channick_hilight = "%C$*%n";
|
||||
chanhost_hilight = "{nickhost %c$*%n}";
|
||||
|
||||
# nick/host is printed (parts, quits, etc.)
|
||||
channick = "%c$*%n";
|
||||
chanhost = "{nickhost $*}";
|
||||
|
||||
# highlighted channel name is printed
|
||||
channelhilight = "%c$*%n";
|
||||
|
||||
# ban/ban exception/invite list mask is printed
|
||||
ban = "%c$*%n";
|
||||
|
||||
##
|
||||
## messages
|
||||
##
|
||||
|
||||
# the basic styling of how to print message, $0 = nick mode, $1 = nick
|
||||
msgnick = "%K<%n$0$1-%K>%n %|";
|
||||
|
||||
# message from you is printed. "ownnick" specifies the styling of the
|
||||
# nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
|
||||
# whole line.
|
||||
|
||||
# Example1: You want the message text to be green:
|
||||
# ownmsgnick = "{msgnick $0 $1-}%g";
|
||||
# Example2.1: You want < and > chars to be yellow:
|
||||
# ownmsgnick = "%Y{msgnick $0 $1-%Y}%n";
|
||||
# (you'll also have to remove <> from replaces list above)
|
||||
# Example2.2: But you still want to keep <> grey for other messages:
|
||||
# pubmsgnick = "%K{msgnick $0 $1-%K}%n";
|
||||
# pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
|
||||
# pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
|
||||
# ownprivmsgnick = "%K{msgnick $*%K}%n";
|
||||
# privmsgnick = "%K{msgnick %R$*%K}%n";
|
||||
|
||||
# $0 = nick mode, $1 = nick
|
||||
ownmsgnick = "{msgnick $0 $1-}";
|
||||
ownnick = "%_$*%n";
|
||||
|
||||
# public message in channel, $0 = nick mode, $1 = nick
|
||||
pubmsgnick = "{msgnick $0 $1-}";
|
||||
pubnick = "%N$*%n";
|
||||
|
||||
# public message in channel meant for me, $0 = nick mode, $1 = nick
|
||||
pubmsgmenick = "{msgnick $0 $1-}";
|
||||
menick = "%Y$*%n";
|
||||
|
||||
# public highlighted message in channel
|
||||
# $0 = highlight color, $1 = nick mode, $2 = nick
|
||||
pubmsghinick = "{msgnick $1 $0$2-%n}";
|
||||
|
||||
# channel name is printed with message
|
||||
msgchannel = "%K:%c$*%n";
|
||||
|
||||
# private message, $0 = nick, $1 = host
|
||||
privmsg = "[%R$0%K(%r$1-%K)%n] ";
|
||||
|
||||
# private message from you, $0 = "msg", $1 = target nick
|
||||
ownprivmsg = "[%r$0%K(%R$1-%K)%n] ";
|
||||
|
||||
# own private message in query
|
||||
ownprivmsgnick = "{msgnick $*}";
|
||||
ownprivnick = "%_$*%n";
|
||||
|
||||
# private message in query
|
||||
privmsgnick = "{msgnick %R$*%n}";
|
||||
|
||||
##
|
||||
## Actions (/ME stuff)
|
||||
##
|
||||
|
||||
# used internally by this theme
|
||||
action_core = "%_ * $*%n";
|
||||
|
||||
# generic one that's used by most actions
|
||||
action = "{action_core $*} ";
|
||||
|
||||
# own action, both private/public
|
||||
ownaction = "{action $*}";
|
||||
|
||||
# own action with target, both private/public
|
||||
ownaction_target = "{action_core $0}%K:%c$1%n ";
|
||||
|
||||
# private action sent by others
|
||||
pvtaction = "%_ (*) $*%n ";
|
||||
pvtaction_query = "{action $*}";
|
||||
|
||||
# public action sent by others
|
||||
pubaction = "{action $*}";
|
||||
|
||||
|
||||
##
|
||||
## other IRC events
|
||||
##
|
||||
|
||||
# whois
|
||||
whois = "%# $[8]0 : $1-";
|
||||
|
||||
# notices
|
||||
ownnotice = "[%r$0%K(%R$1-%K)]%n ";
|
||||
notice = "%K-%M$*%K-%n ";
|
||||
pubnotice_channel = "%K:%m$*";
|
||||
pvtnotice_host = "%K(%m$*%K)";
|
||||
servernotice = "%g!$*%n ";
|
||||
|
||||
# CTCPs
|
||||
ownctcp = "[%r$0%K(%R$1-%K)] ";
|
||||
ctcp = "%g$*%n";
|
||||
|
||||
# wallops
|
||||
wallop = "%_$*%n: ";
|
||||
wallop_nick = "%n$*";
|
||||
wallop_action = "%_ * $*%n ";
|
||||
|
||||
# netsplits
|
||||
netsplit = "%R$*%n";
|
||||
netjoin = "%C$*%n";
|
||||
|
||||
# /names list
|
||||
names_prefix = "";
|
||||
names_nick = "[%_$0%_$1-] ";
|
||||
names_nick_op = "{names_nick $*}";
|
||||
names_nick_halfop = "{names_nick $*}";
|
||||
names_nick_voice = "{names_nick $*}";
|
||||
names_users = "[%g$*%n]";
|
||||
names_channel = "%G$*%n";
|
||||
|
||||
# DCC
|
||||
dcc = "%g$*%n";
|
||||
dccfile = "%_$*%_";
|
||||
|
||||
# DCC chat, own msg/action
|
||||
dccownmsg = "[%r$0%K($1-%K)%n] ";
|
||||
dccownnick = "%R$*%n";
|
||||
dccownquerynick = "%_$*%n";
|
||||
dccownaction = "{action $*}";
|
||||
dccownaction_target = "{action_core $0}%K:%c$1%n ";
|
||||
|
||||
# DCC chat, others
|
||||
dccmsg = "[%G$1-%K(%g$0%K)%n] ";
|
||||
dccquerynick = "%G$*%n";
|
||||
dccaction = "%_ (*dcc*) $*%n %|";
|
||||
|
||||
##
|
||||
## statusbar
|
||||
##
|
||||
|
||||
# default background for all statusbars. You can also give
|
||||
# the default foreground color for statusbar items.
|
||||
sb_background = "%4%w";
|
||||
|
||||
# default backround for "default" statusbar group
|
||||
#sb_default_bg = "%4";
|
||||
# background for prompt / input line
|
||||
sb_prompt_bg = "%n";
|
||||
# background for info statusbar
|
||||
sb_info_bg = "%8";
|
||||
# background for topicbar (same default)
|
||||
#sb_topic_bg = "%4";
|
||||
|
||||
# text at the beginning of statusbars. sb-item already puts
|
||||
# space there,so we don't use anything by default.
|
||||
sbstart = "";
|
||||
# text at the end of statusbars. Use space so that it's never
|
||||
# used for anything.
|
||||
sbend = " ";
|
||||
|
||||
topicsbstart = "{sbstart $*}";
|
||||
topicsbend = "{sbend $*}";
|
||||
|
||||
prompt = "[$*] ";
|
||||
|
||||
sb = " %c[%n$*%c]%n";
|
||||
sbmode = "(%c+%n$*)";
|
||||
sbaway = " (%GzZzZ%n)";
|
||||
sbservertag = ":$0 (change with ^X)";
|
||||
sbnickmode = "$0";
|
||||
|
||||
# activity in statusbar
|
||||
|
||||
# ',' separator
|
||||
sb_act_sep = "%c$*";
|
||||
# normal text
|
||||
sb_act_text = "%c$*";
|
||||
# public message
|
||||
sb_act_msg = "%W$*";
|
||||
# hilight
|
||||
sb_act_hilight = "%M$*";
|
||||
# hilight with specified color, $0 = color, $1 = text
|
||||
sb_act_hilight_color = "$0$1-%n";
|
||||
};
|
182
misc/irssi/lytedev.theme
Normal file
182
misc/irssi/lytedev.theme
Normal file
|
@ -0,0 +1,182 @@
|
|||
# Based on neongold by xero @ xero.nu
|
||||
|
||||
default_color = "-1";
|
||||
|
||||
info_eol = "false";
|
||||
|
||||
replaces = { "[]" = "%w$*%n"; };
|
||||
|
||||
abstracts = {
|
||||
indent_default = " + %Y│%n ";
|
||||
line_start = "";
|
||||
timestamp = "";
|
||||
hilight = "%_$*%_";
|
||||
error = "%r$*%n";
|
||||
channel = "%w$*%n";
|
||||
nick = "%_$*%_";
|
||||
nickhost = "%g$*";
|
||||
server = "%_$*%_";
|
||||
comment = "%n(%w$*%n)";
|
||||
reason = "{comment $*}";
|
||||
mode = "{comment $*}";
|
||||
|
||||
channick_hilight = "%g$*%N";
|
||||
chanhost_hilight = "{nickhost $*}";
|
||||
|
||||
channick = "$*";
|
||||
chanhost = "{nickhost $*}";
|
||||
|
||||
channelhilight = "%g$*%n";
|
||||
|
||||
ban = "$*";
|
||||
|
||||
msgnick = "%Y$0%w$1 %Y│ %N";
|
||||
ownmsgnick = "%Y$0%w$1 %Y│ ";
|
||||
ownnick = "%W$*%n";
|
||||
pubnick = "%N$*%n";
|
||||
menick = "%y$*%y";
|
||||
|
||||
# generic one that's used by most actions
|
||||
action = "%b$* %Y│%b";
|
||||
|
||||
# own action, both private/public
|
||||
ownaction = "%b$* %Y│%b";
|
||||
|
||||
# own action with target, both private/public
|
||||
ownaction_target = "{action $*}";
|
||||
|
||||
# private action sent by others
|
||||
pvtaction = "{action $*}";
|
||||
pvtaction_query = "{action $*}";
|
||||
|
||||
# public action sent by others
|
||||
pubaction = "{action $*}";
|
||||
|
||||
whois = "%w │ %n$1-";
|
||||
|
||||
ownnotice = "%NNote n = %Mnew%n $0 ($1-) ";
|
||||
notice = "%M$*%n ";
|
||||
pubnotice_channel = " %N($*)";
|
||||
pvtnotice_host = " %N($*)";
|
||||
servernotice = " %N($*)";
|
||||
|
||||
ownctcp = "%N$0 (%w$1-%N) ";
|
||||
ctcp = "%N$*%n";
|
||||
|
||||
wallop = "%w$*%n: ";
|
||||
wallop_nick = "%n$*";
|
||||
wallop_action = "%w * $*%n ";
|
||||
|
||||
#netsplit = "%w$*%n";
|
||||
#netjoin = "%w$*%n";
|
||||
|
||||
names_users = "%Y┌─┄┄─┄┄──┘ %nusers in %b$1";
|
||||
names_nick = "$2$0%n$1 ";
|
||||
names_nick_op = "{names_nick $* %w}";
|
||||
names_nick_halfop = "{names_nick $* %w}";
|
||||
names_nick_voice = "{names_nick $* %w}";
|
||||
names_prefix = "%Y│ %n$1";
|
||||
names_channel = "%W$*%n";
|
||||
|
||||
dcc = "%g$*%n";
|
||||
dccfile = "%_$*%_";
|
||||
|
||||
dccownmsg = "%g /* $0 ($1-) */";
|
||||
dccownnick = "$*%n";
|
||||
dccownquerynick = "$*%n";
|
||||
dccownaction = "{action $*}";
|
||||
dccownaction_target = "{action $*}";
|
||||
|
||||
dccmsg = "%g/* $1- ($0) */";
|
||||
dccquerynick = "%g$*%n";
|
||||
dccaction = "{action $*}";
|
||||
|
||||
sb_background = "%N%N";
|
||||
|
||||
sb_prompt_bg = "%n";
|
||||
|
||||
sbstart = " %Y┌─┄┄─────┘ %w";
|
||||
sbend = "";
|
||||
|
||||
topicsbstart = "%w$C %Y┄─┄$*";
|
||||
topicsbend = "$*";
|
||||
|
||||
prompt = " %Y└──┄┄%n ";
|
||||
|
||||
sb = "%N$*%N ";
|
||||
#sb = "";
|
||||
sbmode = "%b(%w+%N$*%b)%n";
|
||||
sbaway = "%b(%Naway%b)%N";
|
||||
sbservertag = "%b:%N$0%b(%N^X%b)";
|
||||
#sbservertag = "";
|
||||
sbnickmode = "%w$0%N$1";
|
||||
|
||||
#sb_usercount = "{sb %_$0%_ nicks ($1-)}";
|
||||
#sb_uc_ircops = "%_*%_$*";
|
||||
#sb_uc_ops = "%_@%r$*%n";
|
||||
#sb_uc_halfops = "%_%%%g$*%n";
|
||||
#sb_uc_voices = "%_+%y$*%n";
|
||||
#sb_uc_normal = "%w$*%n";
|
||||
#sb_uc_space = " ";
|
||||
|
||||
#sb_act_sep = "%b$*";
|
||||
#sb_act_text = "%N$*";
|
||||
#sb_act_msg = "%b$*";
|
||||
#sb_act_hilight = "%R%9$*%n";
|
||||
#sb_act_hilight_color = "%R%9$1-%n";
|
||||
};
|
||||
|
||||
formats = {
|
||||
"fe-common/core" = {
|
||||
#line_start = "{line_start}";
|
||||
line_start_irssi = "{line_start}";
|
||||
join = "%n join %Y┄┄─┤ %n{channick $0} %w(%n{nickhost %w$1}%w)%n joined %w$2";
|
||||
part = "%n part %Y┄┄─┤ %n{channick $0} %w(%n{nickhost %w$1}%w)%n left %w$2 {reason %b$3}";
|
||||
quit = "%n quit %Y┄┄─┤ %nsignoff%w: %n{channick $0}%w {reason %b$2}";
|
||||
kick = "%r kick %Y┄┄─┤ %n{channick $0} was kicked by $2 %w{reason %b$3}";
|
||||
nick_changed = " %Y┄┼┄%w %n{channick $0} %Y>> %W{channick $1}";
|
||||
your_nick_changed = " %Y┄┼┄%w %n{channick $0} %Y>> %W{channick $1}";
|
||||
new_topic = "%Y┌─┄┄─────┘%n\012%Y│ %wtopic %b'$2' %Nset by%b $0\012%Y└─┄┄─┄┄──┐ ";
|
||||
endofnames = "%Y└─┄┄─┄┄──┐ %btotal: {hilight $2} ops, {hilight $3} halfops, {hilight $4} voices, {hilight $5} normies%n";
|
||||
#nick padding
|
||||
pubmsg = "{pubmsgnick $2 {pubnick \00312$[-7]0}}$1";
|
||||
own_msg = "{ownmsgnick $2 {ownnick $[-7]0}}$1";
|
||||
own_msg_channel = "{ownmsgnick $3 {ownnick $[-7]0}{msgchannel $1}}$2";
|
||||
own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-7]2}}$1";
|
||||
pubmsg_me = "{pubmsghinick $[-7]0 {menick $2}}%y$1";
|
||||
pubmsg_me_channel = "{pubmsghinick $3 {menick $[-7]0}{msgchannel $1}}$2";
|
||||
pubmsg_hilight_channel = "{pubmsghinick $0 $[-7]1$4{msgchannel $2}}$3";
|
||||
pubmsg_hilight = "{pubmsghinick $3 {menick $[-7]1}}$2";
|
||||
pubmsg_channel = "{pubmsgnick {pubnick %G$[-7]0}$2}$1";
|
||||
msg_private_query = "{privmsgnick $[-7]0}$2";
|
||||
};
|
||||
"fe-common/irc" = {
|
||||
chanmode_change = "%n mode %Y┄┄─┤ %w(%B{channick $1}%w) %nby %B$2";
|
||||
server_chanmode_change = "%n mode %Y┄┄─┤ %w{channick $1} %n(%w$2%n)";
|
||||
whois = "%Y┌─┄┄ %n\012%Y│ %wuser %b$0 %w(%n$1%b@%n$2%w) %n\012%Y│ %wname %n$3%n";
|
||||
whois_idle = "%Y│ %widle%b %|$1d $2h $3m $4s";
|
||||
whois_idle_signon = "%Y│ %widle%b %|$1d $2h $3m $4s {comment signon: $5}";
|
||||
whois_server = "%Y│ %wserv%b %|$1 {comment $2}";
|
||||
whois_oper = "%Y│ %woper%b {hilight $1}";
|
||||
whois_registered = "%Y│ %wrgis%n yes";
|
||||
whois_help = "%Y│ %whelp%b available for help";
|
||||
whois_modes = "%Y│ %wmode%b $1";
|
||||
whois_realhost = "%Y│ %wreal%b $1-";
|
||||
whois_usermode = "%Y│ %wumod%b $1";
|
||||
whois_channels = "%Y│ %wchan%b %|$1";
|
||||
whois_away = "%Y│ %waway%b %|$1";
|
||||
whois_special = "%Y│ %winfo%b {comment %|$1}";
|
||||
whois_extra = "%Y│ %wextr%b %|$1";
|
||||
end_of_whois = "%Y└─┄┄ ";
|
||||
whois_not_found = "%Y──┄┄ %wthere is no such nick %b$0";
|
||||
topic = "%ntopic %Y┄┄─┤ %B$0 %b$1";
|
||||
topic_info = " %Y┄┄─┤ %wset by %b$0 %B(%w$1%B)";
|
||||
channel_synced = "%n sync %Y┄┄─┤ %nin {hilight $1} secs";
|
||||
channel_created = "%n %Y┄┄─┤ %ncreated $1";
|
||||
action_core = "%b$[-8]0 %Y│ %b$1";
|
||||
own_action = "{ownaction $[-8]0} $1";
|
||||
action_private = "{pvtaction $[-8]0}$1";
|
||||
action_private_query = "{pvtaction_query $[-8} $2";
|
||||
action_public = "{pubaction $[-8]0}$1";
|
||||
};
|
||||
};
|
49
misc/weechat/alias.conf
Normal file
49
misc/weechat/alias.conf
Normal file
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# weechat -- alias.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[cmd]
|
||||
AAWAY = "allserv /away"
|
||||
AME = "allchan /me"
|
||||
AMSG = "allchan /msg *"
|
||||
ANICK = "allserv /nick"
|
||||
BEEP = "print -beep"
|
||||
BYE = "quit"
|
||||
C = "buffer clear"
|
||||
CHAT = "dcc chat"
|
||||
CL = "buffer clear"
|
||||
clear = "/buffer clear"
|
||||
CLOSE = "buffer close"
|
||||
EXIT = "quit"
|
||||
IG = "ignore"
|
||||
J = "join"
|
||||
K = "kick"
|
||||
KB = "kickban"
|
||||
LEAVE = "part"
|
||||
M = "msg"
|
||||
MSGBUF = "command -buffer $1 * /input send $2-"
|
||||
MUB = "unban *"
|
||||
N = "names"
|
||||
Q = "query"
|
||||
REDRAW = "window refresh"
|
||||
SAY = "msg *"
|
||||
SIGNOFF = "quit"
|
||||
T = "topic"
|
||||
UB = "unban"
|
||||
UMODE = "mode $nick"
|
||||
V = "command core version"
|
||||
W = "who"
|
||||
WC = "window merge"
|
||||
WI = "whois"
|
||||
WII = "whois $1 $1"
|
||||
WW = "whowas"
|
||||
|
||||
[completion]
|
||||
MSGBUF = "%(buffers_plugins_names)"
|
602
misc/weechat/weechat.conf
Normal file
602
misc/weechat/weechat.conf
Normal file
|
@ -0,0 +1,602 @@
|
|||
#
|
||||
# weechat -- weechat.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[debug]
|
||||
|
||||
[startup]
|
||||
command_after_plugins = ""
|
||||
command_before_plugins = ""
|
||||
display_logo = on
|
||||
display_version = on
|
||||
sys_rlimit = ""
|
||||
|
||||
[look]
|
||||
align_end_of_lines = message
|
||||
align_multiline_words = on
|
||||
bar_more_down = "++"
|
||||
bar_more_left = "<<"
|
||||
bar_more_right = ">>"
|
||||
bar_more_up = "--"
|
||||
bare_display_exit_on_input = on
|
||||
bare_display_time_format = "%H:%M"
|
||||
buffer_auto_renumber = on
|
||||
buffer_notify_default = all
|
||||
buffer_position = end
|
||||
buffer_search_case_sensitive = off
|
||||
buffer_search_force_default = off
|
||||
buffer_search_regex = off
|
||||
buffer_search_where = prefix_message
|
||||
buffer_time_format = ""
|
||||
color_basic_force_bold = off
|
||||
color_inactive_buffer = on
|
||||
color_inactive_message = on
|
||||
color_inactive_prefix = on
|
||||
color_inactive_prefix_buffer = on
|
||||
color_inactive_time = off
|
||||
color_inactive_window = on
|
||||
color_nick_offline = off
|
||||
color_pairs_auto_reset = 5
|
||||
color_real_white = off
|
||||
command_chars = ""
|
||||
command_incomplete = off
|
||||
confirm_quit = off
|
||||
confirm_upgrade = off
|
||||
day_change = on
|
||||
day_change_message_1date = "-- %a, %d %b %Y --"
|
||||
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
|
||||
eat_newline_glitch = off
|
||||
emphasized_attributes = ""
|
||||
highlight = ""
|
||||
highlight_regex = ""
|
||||
highlight_tags = ""
|
||||
hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0"
|
||||
hotlist_buffer_separator = ", "
|
||||
hotlist_count_max = 2
|
||||
hotlist_count_min_msg = 2
|
||||
hotlist_names_count = 3
|
||||
hotlist_names_length = 0
|
||||
hotlist_names_level = 12
|
||||
hotlist_names_merged_buffers = off
|
||||
hotlist_prefix = "H: "
|
||||
hotlist_remove = merged
|
||||
hotlist_short_names = on
|
||||
hotlist_sort = group_time_asc
|
||||
hotlist_suffix = ""
|
||||
hotlist_unique_numbers = on
|
||||
input_cursor_scroll = 20
|
||||
input_share = none
|
||||
input_share_overwrite = off
|
||||
input_undo_max = 32
|
||||
item_away_message = on
|
||||
item_buffer_filter = "*"
|
||||
item_buffer_zoom = "!"
|
||||
item_mouse_status = "M"
|
||||
item_time_format = "%H:%M"
|
||||
jump_current_to_previous_buffer = on
|
||||
jump_previous_buffer_when_closing = on
|
||||
jump_smart_back_to_buffer = on
|
||||
key_bind_safe = on
|
||||
key_grab_delay = 800
|
||||
mouse = off
|
||||
mouse_timer_delay = 100
|
||||
nick_color_force = ""
|
||||
nick_color_hash = djb2
|
||||
nick_color_stop_chars = "_|["
|
||||
nick_prefix = ""
|
||||
nick_suffix = ""
|
||||
paste_auto_add_newline = on
|
||||
paste_bracketed = on
|
||||
paste_bracketed_timer_delay = 10
|
||||
paste_max_lines = 1
|
||||
prefix_action = " *"
|
||||
prefix_align = right
|
||||
prefix_align_max = 0
|
||||
prefix_align_min = 0
|
||||
prefix_align_more = "+"
|
||||
prefix_align_more_after = on
|
||||
prefix_buffer_align = right
|
||||
prefix_buffer_align_max = 0
|
||||
prefix_buffer_align_more = "+"
|
||||
prefix_buffer_align_more_after = on
|
||||
prefix_error = "=!="
|
||||
prefix_join = ">"
|
||||
prefix_network = "--"
|
||||
prefix_quit = "<"
|
||||
prefix_same_nick = ""
|
||||
prefix_suffix = "│"
|
||||
quote_nick_prefix = "<"
|
||||
quote_nick_suffix = ">"
|
||||
quote_time_format = "%H:%M:%S"
|
||||
read_marker = line
|
||||
read_marker_always_show = off
|
||||
read_marker_string = "─"
|
||||
save_config_on_exit = on
|
||||
save_layout_on_exit = none
|
||||
scroll_amount = 3
|
||||
scroll_bottom_after_switch = off
|
||||
scroll_page_percent = 100
|
||||
search_text_not_found_alert = on
|
||||
separator_horizontal = "-"
|
||||
separator_vertical = ""
|
||||
tab_width = 1
|
||||
time_format = "%a, %d %b %Y %T"
|
||||
window_auto_zoom = off
|
||||
window_separator_horizontal = on
|
||||
window_separator_vertical = on
|
||||
window_title = "WeeChat ${info:version}"
|
||||
word_chars_highlight = "!\u00A0,-,_,|,alnum"
|
||||
word_chars_input = "!\u00A0,-,_,|,alnum"
|
||||
|
||||
[palette]
|
||||
|
||||
[color]
|
||||
bar_more = lightmagenta
|
||||
chat = default
|
||||
chat_bg = default
|
||||
chat_buffer = white
|
||||
chat_channel = white
|
||||
chat_day_change = cyan
|
||||
chat_delimiters = green
|
||||
chat_highlight = yellow
|
||||
chat_highlight_bg = magenta
|
||||
chat_host = cyan
|
||||
chat_inactive_buffer = default
|
||||
chat_inactive_window = default
|
||||
chat_nick = lightcyan
|
||||
chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"
|
||||
chat_nick_offline = default
|
||||
chat_nick_offline_highlight = default
|
||||
chat_nick_offline_highlight_bg = blue
|
||||
chat_nick_other = cyan
|
||||
chat_nick_prefix = green
|
||||
chat_nick_self = white
|
||||
chat_nick_suffix = green
|
||||
chat_prefix_action = white
|
||||
chat_prefix_buffer = brown
|
||||
chat_prefix_buffer_inactive_buffer = default
|
||||
chat_prefix_error = yellow
|
||||
chat_prefix_join = lightgreen
|
||||
chat_prefix_more = lightmagenta
|
||||
chat_prefix_network = magenta
|
||||
chat_prefix_quit = lightred
|
||||
chat_prefix_suffix = green
|
||||
chat_read_marker = magenta
|
||||
chat_read_marker_bg = default
|
||||
chat_server = brown
|
||||
chat_tags = red
|
||||
chat_text_found = yellow
|
||||
chat_text_found_bg = lightmagenta
|
||||
chat_time = default
|
||||
chat_time_delimiters = brown
|
||||
chat_value = cyan
|
||||
chat_value_null = blue
|
||||
emphasized = yellow
|
||||
emphasized_bg = magenta
|
||||
input_actions = lightgreen
|
||||
input_text_not_found = red
|
||||
item_away = yellow
|
||||
nicklist_away = cyan
|
||||
nicklist_group = green
|
||||
separator = blue
|
||||
status_count_highlight = magenta
|
||||
status_count_msg = brown
|
||||
status_count_other = default
|
||||
status_count_private = green
|
||||
status_data_highlight = lightmagenta
|
||||
status_data_msg = yellow
|
||||
status_data_other = default
|
||||
status_data_private = lightgreen
|
||||
status_filter = green
|
||||
status_more = yellow
|
||||
status_mouse = green
|
||||
status_name = white
|
||||
status_name_ssl = lightgreen
|
||||
status_nicklist_count = default
|
||||
status_number = yellow
|
||||
status_time = default
|
||||
|
||||
[completion]
|
||||
base_word_until_cursor = on
|
||||
command_inline = on
|
||||
default_template = "%(nicks)|%(irc_channels)"
|
||||
nick_add_space = on
|
||||
nick_completer = ":"
|
||||
nick_first_only = off
|
||||
nick_ignore_chars = "[]`_-^"
|
||||
partial_completion_alert = on
|
||||
partial_completion_command = off
|
||||
partial_completion_command_arg = off
|
||||
partial_completion_count = on
|
||||
partial_completion_other = off
|
||||
|
||||
[history]
|
||||
display_default = 5
|
||||
max_buffer_lines_minutes = 0
|
||||
max_buffer_lines_number = 4096
|
||||
max_commands = 100
|
||||
max_visited_buffers = 50
|
||||
|
||||
[proxy]
|
||||
|
||||
[network]
|
||||
connection_timeout = 60
|
||||
gnutls_ca_file = "/etc/ssl/certs/ca-certificates.crt"
|
||||
gnutls_handshake_timeout = 30
|
||||
proxy_curl = ""
|
||||
|
||||
[plugin]
|
||||
autoload = "*"
|
||||
debug = off
|
||||
extension = ".so,.dll"
|
||||
path = "%h/plugins"
|
||||
save_config_on_unload = on
|
||||
|
||||
[bar]
|
||||
input.color_bg = default
|
||||
input.color_delim = cyan
|
||||
input.color_fg = default
|
||||
input.conditions = ""
|
||||
input.filling_left_right = vertical
|
||||
input.filling_top_bottom = horizontal
|
||||
input.hidden = off
|
||||
input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text"
|
||||
input.position = bottom
|
||||
input.priority = 1000
|
||||
input.separator = off
|
||||
input.size = 1
|
||||
input.size_max = 0
|
||||
input.type = window
|
||||
nicklist.color_bg = default
|
||||
nicklist.color_delim = cyan
|
||||
nicklist.color_fg = default
|
||||
nicklist.conditions = "${nicklist}"
|
||||
nicklist.filling_left_right = vertical
|
||||
nicklist.filling_top_bottom = columns_vertical
|
||||
nicklist.hidden = on
|
||||
nicklist.items = "buffer_nicklist"
|
||||
nicklist.position = right
|
||||
nicklist.priority = 200
|
||||
nicklist.separator = on
|
||||
nicklist.size = 0
|
||||
nicklist.size_max = 0
|
||||
nicklist.type = window
|
||||
status.color_bg = 0
|
||||
status.color_delim = cyan
|
||||
status.color_fg = default
|
||||
status.conditions = ""
|
||||
status.filling_left_right = vertical
|
||||
status.filling_top_bottom = horizontal
|
||||
status.hidden = off
|
||||
status.items = "buffer_last_number,buffer_plugin,buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,scroll,[lag],[hotlist],completion"
|
||||
status.position = bottom
|
||||
status.priority = 500
|
||||
status.separator = off
|
||||
status.size = 1
|
||||
status.size_max = 0
|
||||
status.type = window
|
||||
title.color_bg = blue
|
||||
title.color_delim = cyan
|
||||
title.color_fg = default
|
||||
title.conditions = ""
|
||||
title.filling_left_right = vertical
|
||||
title.filling_top_bottom = horizontal
|
||||
title.hidden = on
|
||||
title.items = "buffer_title"
|
||||
title.position = top
|
||||
title.priority = 500
|
||||
title.separator = off
|
||||
title.size = 1
|
||||
title.size_max = 0
|
||||
title.type = window
|
||||
|
||||
[layout]
|
||||
|
||||
[notify]
|
||||
|
||||
[filter]
|
||||
|
||||
[key]
|
||||
ctrl-? = "/input delete_previous_char"
|
||||
ctrl-A = "/input move_beginning_of_line"
|
||||
ctrl-B = "/input move_previous_char"
|
||||
ctrl-C_ = "/input insert \x1F"
|
||||
ctrl-Cb = "/input insert \x02"
|
||||
ctrl-Cc = "/input insert \x03"
|
||||
ctrl-Ci = "/input insert \x1D"
|
||||
ctrl-Co = "/input insert \x0F"
|
||||
ctrl-Cv = "/input insert \x16"
|
||||
ctrl-D = "/input delete_next_char"
|
||||
ctrl-E = "/input move_end_of_line"
|
||||
ctrl-F = "/input move_next_char"
|
||||
ctrl-H = "/input delete_previous_char"
|
||||
ctrl-I = "/input complete_next"
|
||||
ctrl-J = "/input return"
|
||||
ctrl-K = "/input delete_end_of_line"
|
||||
ctrl-L = "/window refresh"
|
||||
ctrl-M = "/input return"
|
||||
ctrl-N = "/buffer +1"
|
||||
ctrl-P = "/buffer -1"
|
||||
ctrl-R = "/input search_text"
|
||||
ctrl-Sctrl-U = "/input set_unread"
|
||||
ctrl-T = "/input transpose_chars"
|
||||
ctrl-U = "/input delete_beginning_of_line"
|
||||
ctrl-W = "/input delete_previous_word"
|
||||
ctrl-X = "/input switch_active_buffer"
|
||||
ctrl-Y = "/input clipboard_paste"
|
||||
meta-meta2-1~ = "/window scroll_top"
|
||||
meta-meta2-23~ = "/bar scroll nicklist * b"
|
||||
meta-meta2-24~ = "/bar scroll nicklist * e"
|
||||
meta-meta2-4~ = "/window scroll_bottom"
|
||||
meta-meta2-5~ = "/window scroll_up"
|
||||
meta-meta2-6~ = "/window scroll_down"
|
||||
meta-meta2-7~ = "/window scroll_top"
|
||||
meta-meta2-8~ = "/window scroll_bottom"
|
||||
meta-meta2-A = "/buffer -1"
|
||||
meta-meta2-B = "/buffer +1"
|
||||
meta-meta2-C = "/buffer +1"
|
||||
meta-meta2-D = "/buffer -1"
|
||||
meta-- = "/filter toggle @"
|
||||
meta-/ = "/input jump_last_buffer_displayed"
|
||||
meta-0 = "/buffer *10"
|
||||
meta-1 = "/buffer *1"
|
||||
meta-2 = "/buffer *2"
|
||||
meta-3 = "/buffer *3"
|
||||
meta-4 = "/buffer *4"
|
||||
meta-5 = "/buffer *5"
|
||||
meta-6 = "/buffer *6"
|
||||
meta-7 = "/buffer *7"
|
||||
meta-8 = "/buffer *8"
|
||||
meta-9 = "/buffer *9"
|
||||
meta-< = "/input jump_previously_visited_buffer"
|
||||
meta-= = "/filter toggle"
|
||||
meta-> = "/input jump_next_visited_buffer"
|
||||
meta-OA = "/input history_global_previous"
|
||||
meta-OB = "/input history_global_next"
|
||||
meta-OC = "/input move_next_word"
|
||||
meta-OD = "/input move_previous_word"
|
||||
meta-OF = "/input move_end_of_line"
|
||||
meta-OH = "/input move_beginning_of_line"
|
||||
meta-Oa = "/input history_global_previous"
|
||||
meta-Ob = "/input history_global_next"
|
||||
meta-Oc = "/input move_next_word"
|
||||
meta-Od = "/input move_previous_word"
|
||||
meta2-15~ = "/buffer -1"
|
||||
meta2-17~ = "/buffer +1"
|
||||
meta2-18~ = "/window -1"
|
||||
meta2-19~ = "/window +1"
|
||||
meta2-1;3A = "/buffer -1"
|
||||
meta2-1;3B = "/buffer +1"
|
||||
meta2-1;3C = "/buffer +1"
|
||||
meta2-1;3D = "/buffer -1"
|
||||
meta2-1;3F = "/window scroll_bottom"
|
||||
meta2-1;3H = "/window scroll_top"
|
||||
meta2-1;5A = "/input history_global_previous"
|
||||
meta2-1;5B = "/input history_global_next"
|
||||
meta2-1;5C = "/input move_next_word"
|
||||
meta2-1;5D = "/input move_previous_word"
|
||||
meta2-1~ = "/input move_beginning_of_line"
|
||||
meta2-200~ = "/input paste_start"
|
||||
meta2-201~ = "/input paste_stop"
|
||||
meta2-20~ = "/bar scroll title * -30%"
|
||||
meta2-21~ = "/bar scroll title * +30%"
|
||||
meta2-23;3~ = "/bar scroll nicklist * b"
|
||||
meta2-23~ = "/bar scroll nicklist * -100%"
|
||||
meta2-24;3~ = "/bar scroll nicklist * e"
|
||||
meta2-24~ = "/bar scroll nicklist * +100%"
|
||||
meta2-3~ = "/input delete_next_char"
|
||||
meta2-4~ = "/input move_end_of_line"
|
||||
meta2-5;3~ = "/window scroll_up"
|
||||
meta2-5~ = "/window page_up"
|
||||
meta2-6;3~ = "/window scroll_down"
|
||||
meta2-6~ = "/window page_down"
|
||||
meta2-7~ = "/input move_beginning_of_line"
|
||||
meta2-8~ = "/input move_end_of_line"
|
||||
meta2-A = "/input history_previous"
|
||||
meta2-B = "/input history_next"
|
||||
meta2-C = "/input move_next_char"
|
||||
meta2-D = "/input move_previous_char"
|
||||
meta2-F = "/input move_end_of_line"
|
||||
meta2-G = "/window page_down"
|
||||
meta2-H = "/input move_beginning_of_line"
|
||||
meta2-I = "/window page_up"
|
||||
meta2-Z = "/input complete_previous"
|
||||
meta2-[E = "/buffer -1"
|
||||
meta-_ = "/input redo"
|
||||
meta-a = "/input jump_smart"
|
||||
meta-b = "/input move_previous_word"
|
||||
meta-d = "/input delete_next_word"
|
||||
meta-f = "/input move_next_word"
|
||||
meta-h = "/input hotlist_clear"
|
||||
meta-jmeta-f = "/buffer -"
|
||||
meta-jmeta-l = "/buffer +"
|
||||
meta-jmeta-r = "/server raw"
|
||||
meta-jmeta-s = "/server jump"
|
||||
meta-j01 = "/buffer 1"
|
||||
meta-j02 = "/buffer 2"
|
||||
meta-j03 = "/buffer 3"
|
||||
meta-j04 = "/buffer 4"
|
||||
meta-j05 = "/buffer 5"
|
||||
meta-j06 = "/buffer 6"
|
||||
meta-j07 = "/buffer 7"
|
||||
meta-j08 = "/buffer 8"
|
||||
meta-j09 = "/buffer 9"
|
||||
meta-j10 = "/buffer 10"
|
||||
meta-j11 = "/buffer 11"
|
||||
meta-j12 = "/buffer 12"
|
||||
meta-j13 = "/buffer 13"
|
||||
meta-j14 = "/buffer 14"
|
||||
meta-j15 = "/buffer 15"
|
||||
meta-j16 = "/buffer 16"
|
||||
meta-j17 = "/buffer 17"
|
||||
meta-j18 = "/buffer 18"
|
||||
meta-j19 = "/buffer 19"
|
||||
meta-j20 = "/buffer 20"
|
||||
meta-j21 = "/buffer 21"
|
||||
meta-j22 = "/buffer 22"
|
||||
meta-j23 = "/buffer 23"
|
||||
meta-j24 = "/buffer 24"
|
||||
meta-j25 = "/buffer 25"
|
||||
meta-j26 = "/buffer 26"
|
||||
meta-j27 = "/buffer 27"
|
||||
meta-j28 = "/buffer 28"
|
||||
meta-j29 = "/buffer 29"
|
||||
meta-j30 = "/buffer 30"
|
||||
meta-j31 = "/buffer 31"
|
||||
meta-j32 = "/buffer 32"
|
||||
meta-j33 = "/buffer 33"
|
||||
meta-j34 = "/buffer 34"
|
||||
meta-j35 = "/buffer 35"
|
||||
meta-j36 = "/buffer 36"
|
||||
meta-j37 = "/buffer 37"
|
||||
meta-j38 = "/buffer 38"
|
||||
meta-j39 = "/buffer 39"
|
||||
meta-j40 = "/buffer 40"
|
||||
meta-j41 = "/buffer 41"
|
||||
meta-j42 = "/buffer 42"
|
||||
meta-j43 = "/buffer 43"
|
||||
meta-j44 = "/buffer 44"
|
||||
meta-j45 = "/buffer 45"
|
||||
meta-j46 = "/buffer 46"
|
||||
meta-j47 = "/buffer 47"
|
||||
meta-j48 = "/buffer 48"
|
||||
meta-j49 = "/buffer 49"
|
||||
meta-j50 = "/buffer 50"
|
||||
meta-j51 = "/buffer 51"
|
||||
meta-j52 = "/buffer 52"
|
||||
meta-j53 = "/buffer 53"
|
||||
meta-j54 = "/buffer 54"
|
||||
meta-j55 = "/buffer 55"
|
||||
meta-j56 = "/buffer 56"
|
||||
meta-j57 = "/buffer 57"
|
||||
meta-j58 = "/buffer 58"
|
||||
meta-j59 = "/buffer 59"
|
||||
meta-j60 = "/buffer 60"
|
||||
meta-j61 = "/buffer 61"
|
||||
meta-j62 = "/buffer 62"
|
||||
meta-j63 = "/buffer 63"
|
||||
meta-j64 = "/buffer 64"
|
||||
meta-j65 = "/buffer 65"
|
||||
meta-j66 = "/buffer 66"
|
||||
meta-j67 = "/buffer 67"
|
||||
meta-j68 = "/buffer 68"
|
||||
meta-j69 = "/buffer 69"
|
||||
meta-j70 = "/buffer 70"
|
||||
meta-j71 = "/buffer 71"
|
||||
meta-j72 = "/buffer 72"
|
||||
meta-j73 = "/buffer 73"
|
||||
meta-j74 = "/buffer 74"
|
||||
meta-j75 = "/buffer 75"
|
||||
meta-j76 = "/buffer 76"
|
||||
meta-j77 = "/buffer 77"
|
||||
meta-j78 = "/buffer 78"
|
||||
meta-j79 = "/buffer 79"
|
||||
meta-j80 = "/buffer 80"
|
||||
meta-j81 = "/buffer 81"
|
||||
meta-j82 = "/buffer 82"
|
||||
meta-j83 = "/buffer 83"
|
||||
meta-j84 = "/buffer 84"
|
||||
meta-j85 = "/buffer 85"
|
||||
meta-j86 = "/buffer 86"
|
||||
meta-j87 = "/buffer 87"
|
||||
meta-j88 = "/buffer 88"
|
||||
meta-j89 = "/buffer 89"
|
||||
meta-j90 = "/buffer 90"
|
||||
meta-j91 = "/buffer 91"
|
||||
meta-j92 = "/buffer 92"
|
||||
meta-j93 = "/buffer 93"
|
||||
meta-j94 = "/buffer 94"
|
||||
meta-j95 = "/buffer 95"
|
||||
meta-j96 = "/buffer 96"
|
||||
meta-j97 = "/buffer 97"
|
||||
meta-j98 = "/buffer 98"
|
||||
meta-j99 = "/buffer 99"
|
||||
meta-k = "/input grab_key_command"
|
||||
meta-l = "/window bare"
|
||||
meta-m = "/mute mouse toggle"
|
||||
meta-n = "/window scroll_next_highlight"
|
||||
meta-p = "/window scroll_previous_highlight"
|
||||
meta-r = "/input delete_line"
|
||||
meta-s = "/mute aspell toggle"
|
||||
meta-u = "/window scroll_unread"
|
||||
meta-wmeta-meta2-A = "/window up"
|
||||
meta-wmeta-meta2-B = "/window down"
|
||||
meta-wmeta-meta2-C = "/window right"
|
||||
meta-wmeta-meta2-D = "/window left"
|
||||
meta-wmeta2-1;3A = "/window up"
|
||||
meta-wmeta2-1;3B = "/window down"
|
||||
meta-wmeta2-1;3C = "/window right"
|
||||
meta-wmeta2-1;3D = "/window left"
|
||||
meta-wmeta-b = "/window balance"
|
||||
meta-wmeta-s = "/window swap"
|
||||
meta-x = "/input zoom_merged_buffer"
|
||||
meta-z = "/window zoom"
|
||||
ctrl-_ = "/input undo"
|
||||
|
||||
[key_search]
|
||||
ctrl-I = "/input search_switch_where"
|
||||
ctrl-J = "/input search_stop"
|
||||
ctrl-M = "/input search_stop"
|
||||
ctrl-R = "/input search_switch_regex"
|
||||
meta2-A = "/input search_previous"
|
||||
meta2-B = "/input search_next"
|
||||
meta-c = "/input search_switch_case"
|
||||
|
||||
[key_cursor]
|
||||
ctrl-J = "/cursor stop"
|
||||
ctrl-M = "/cursor stop"
|
||||
meta-meta2-A = "/cursor move area_up"
|
||||
meta-meta2-B = "/cursor move area_down"
|
||||
meta-meta2-C = "/cursor move area_right"
|
||||
meta-meta2-D = "/cursor move area_left"
|
||||
meta2-1;3A = "/cursor move area_up"
|
||||
meta2-1;3B = "/cursor move area_down"
|
||||
meta2-1;3C = "/cursor move area_right"
|
||||
meta2-1;3D = "/cursor move area_left"
|
||||
meta2-A = "/cursor move up"
|
||||
meta2-B = "/cursor move down"
|
||||
meta2-C = "/cursor move right"
|
||||
meta2-D = "/cursor move left"
|
||||
@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
|
||||
@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
|
||||
@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
|
||||
@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
|
||||
@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
|
||||
@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
|
||||
@chat:m = "hsignal:chat_quote_message;/cursor stop"
|
||||
@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
|
||||
|
||||
[key_mouse]
|
||||
@bar(input):button2 = "/input grab_mouse_area"
|
||||
@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
|
||||
@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
|
||||
@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
|
||||
@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
|
||||
@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}"
|
||||
@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}"
|
||||
@chat(script.scripts):wheeldown = "/script down 5"
|
||||
@chat(script.scripts):wheelup = "/script up 5"
|
||||
@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
|
||||
@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
|
||||
@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
|
||||
@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
|
||||
@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
|
||||
@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
|
||||
@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
|
||||
@chat:button1 = "/window ${_window_number}"
|
||||
@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
|
||||
@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
|
||||
@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
|
||||
@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer"
|
||||
@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%"
|
||||
@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%"
|
||||
@chat:wheeldown = "/window scroll_down -window ${_window_number}"
|
||||
@chat:wheelup = "/window scroll_up -window ${_window_number}"
|
||||
@*:button3 = "/cursor go ${_x},${_y}"
|
10
os-specific/arch-linux/provisioning/0-adduser.bash
Executable file
10
os-specific/arch-linux/provisioning/0-adduser.bash
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
USERNAME=daniel
|
||||
|
||||
groupadd admin 2>/dev/null
|
||||
mkdir -p "/home/$USERNAME/usr"
|
||||
useradd -m -d "/home/$USERNAME/usr" -G admin,users,wheel -s "/usr/bin/bash" "$USERNAME"
|
||||
chown -R "$USERNAME:$USERNAME" "/home/$USERNAME"
|
||||
echo "Setting password for user '$USERNAME'"
|
||||
passwd "$USERNAME"
|
29
os-specific/arch-linux/provisioning/1-pacaur.bash
Executable file
29
os-specific/arch-linux/provisioning/1-pacaur.bash
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# install the dependencies
|
||||
sudo pacman -S git curl openssl perl expac yajl --noconfirm
|
||||
|
||||
# receive cower's gpg key
|
||||
gpg --recv-keys 1EB2638FF56C0C53
|
||||
|
||||
# setup a temporary place to install the packages from
|
||||
REPOSITORY_PATH="/tmp/provisioning"
|
||||
mkdir -p "$REPOSITORY_PATH"
|
||||
|
||||
# clone the repositories
|
||||
git clone https://aur.archlinux.org/cower.git "$REPOSITORY_PATH/cower"
|
||||
git clone https://aur.archlinux.org/pacaur.git "$REPOSITORY_PATH/pacaur"
|
||||
|
||||
# build and install cower
|
||||
cd "$REPOSITORY_PATH/cower"
|
||||
makepkg -i --noconfirm --noedit
|
||||
cd -
|
||||
|
||||
# build and install pacaur
|
||||
cd "$REPOSITORY_PATH/pacaur"
|
||||
makepkg -i --noconfirm --noedit
|
||||
cd -
|
||||
|
||||
# once installed, let the package manager manage itself and its dependencies
|
||||
pacaur -S cower pacaur --noconfirm --noedit
|
||||
|
43
os-specific/arch-linux/provisioning/2-essentials.bash
Executable file
43
os-specific/arch-linux/provisioning/2-essentials.bash
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
sudo pacman -S \
|
||||
tree \
|
||||
rofi \
|
||||
slock \
|
||||
the_silver_searcher \
|
||||
alsa-utils \
|
||||
htop \
|
||||
openssh \
|
||||
openssl \
|
||||
ruby \
|
||||
python python-pip \
|
||||
pass \
|
||||
qutebrowser \
|
||||
bash-completion \
|
||||
fzf \
|
||||
rsync \
|
||||
pavucontrol \
|
||||
neovim \
|
||||
vim \
|
||||
unzip \
|
||||
xsel \
|
||||
xclip \
|
||||
tmux \
|
||||
rxvt-unicode \
|
||||
xorg-xinit xorg-server xorg-xrdb \
|
||||
xcb-util xcb-util-keysyms xcb-util-wm xorg-xrandr xdotool feh \
|
||||
irssi \
|
||||
--noconfirm
|
||||
|
||||
pacaur -S \
|
||||
urxvt-perls-git \
|
||||
samba \
|
||||
pulseaudio-ctl \
|
||||
alsa-plugins \
|
||||
unclutter-xfixes-git gtk-theme-arc gtk-engine-murrine xorg-server-devel \
|
||||
bspwm-git sxhkd-git xdo-git \
|
||||
siji-git terminus-font ttf-monaco gohufont artwiz-fonts phallus-fonts-git \
|
||||
--noconfirm --noedit
|
||||
|
||||
# sudo ln -s /usr/bin/google-chrome-unstable /usr/bin/chrome
|
||||
|
19
os-specific/arch-linux/provisioning/3-extras.bash
Executable file
19
os-specific/arch-linux/provisioning/3-extras.bash
Executable file
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
pacaur -S \
|
||||
gtk-theme-arc \
|
||||
elementary-icon-theme \
|
||||
lemonbar-xft-git \
|
||||
thunar thunar-volman gvfs \
|
||||
thunar-shares-plugin \
|
||||
gvfs-smb \
|
||||
ttf-opensans ttf-dejavu \
|
||||
avr-libc avr-gcc dfu-programmer dfu-util \
|
||||
xorg-xbacklight \
|
||||
gimp \
|
||||
audacity \
|
||||
reptyr \
|
||||
cmake python2 python2-pip \
|
||||
lightdm \
|
||||
polybar-git \
|
||||
--noconfirm --noedit
|
5
os-specific/arch-linux/provisioning/nvidia.bash
Executable file
5
os-specific/arch-linux/provisioning/nvidia.bash
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
pacaur -S \
|
||||
nvidia-beta lib32-nvidia-beta \
|
||||
--noconfirm --noedit
|
8
os-specific/arch-linux/provisioning/tmux-plugins.bash
Executable file
8
os-specific/arch-linux/provisioning/tmux-plugins.bash
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# tmux plugin manager
|
||||
git clone https://github.com/tmux-plugins/tpm "$HOME/.tmux/plugins/tpm"
|
||||
tmux source "$HOME/.tmux.conf"
|
||||
bash "$HOME/.tmux/plugins/tpm/bindings/clean_plugins"
|
||||
bash "$HOME/.tmux/plugins/tpm/bindings/install_plugins"
|
||||
bash "$HOME/.tmux/plugins/tpm/bindings/update_plugins"
|
0
os-specific/arch-linux/scripts/.gitkeep
Normal file
0
os-specific/arch-linux/scripts/.gitkeep
Normal file
73
readme.md
Normal file
73
readme.md
Normal file
|
@ -0,0 +1,73 @@
|
|||
# My Dotfiles
|
||||
|
||||
This repository contains the majority of application or OS configuration files
|
||||
I use on a daily basis. I keep the here and public in an effort to inform others
|
||||
who may not know either how to go about organizing such files or to learn how to
|
||||
achieve certain behavior in their software and to have quick and easy access for
|
||||
myself when setting up a new machine.
|
||||
|
||||
## Priorities
|
||||
|
||||
I have specific needs and desires (as does any developer) and I will lay those
|
||||
out in order of priority here:
|
||||
|
||||
* These files are primarily configured for Linux, (specifically, Arch Linux) but
|
||||
I try to keep the OS-specific stuff in the `os-specific` directory.
|
||||
* I am also primarily a Web Developer, so my configuration will reflect that.
|
||||
* I rely heavily on Google's products and services. I know some are eager to
|
||||
avoid that.
|
||||
* I also prefer apps in my terminal. If I could, I would do everything that
|
||||
makes sense to do so in a terminal using only my keyboard. **So if you know
|
||||
about really cool and usable terminal-based software, let me know!**
|
||||
* I prefer keeping my dotfiles as portable as possible (within reason).
|
||||
* These dotfiles should be very quick to setup and get going.
|
||||
* I aim to keep the dotfiles flexible and extendible, as I usually use them on
|
||||
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
|
||||
|
||||
There are several types of applications I use every day, some more than others,
|
||||
and sometimes different applications that have the same purpose. Here are the
|
||||
applications I use (the primary one is *italicized*, the one I would like to
|
||||
become my primary or am very interested in using in more depth is in **bold**)
|
||||
for various tasks:
|
||||
|
||||
* **Terminal Emulators**: *rxvt-unicode*
|
||||
* **Text Editors**: **vim/Neovim**, Sublime Text, Kakoune
|
||||
* **Terminal Multiplexers**: *tmux*
|
||||
* **Web Browser**: *Google Chrome*, **qutebrowser**, luakit
|
||||
* **Music**: *Google Play Music*
|
||||
* **Email**: *Google Inbox*, Gmail, **mutt**
|
||||
* **Image Editing**: *GIMP*, *Inkscape*, **Krita**
|
||||
* **Documents**: *Google Drive*, though Dropbox's Paper looks neat and I've
|
||||
heard too many good things about LaTeX.
|
||||
* **Gaming**: *Steam*, *various emulators*
|
||||
|
||||
## Workflow
|
||||
|
||||
Here are some bullet points on my workflow as a Web Developer:
|
||||
|
||||
* **Text Editing**: I use `vim`/`Neovim` in my terminal as my primary text
|
||||
editor. I usually run it in a `tmux` session alongside a few terminals to have
|
||||
a very flexible IDE-like development environment. More on that in other bullet
|
||||
points.
|
||||
* **Version Control**: I use `git` in the terminal (sometimes I pop into
|
||||
GitKraken if I need to do anything crazy) and commit often. I work in a branch
|
||||
named "dev" until it's time to go live, then I merge into master. Other
|
||||
branches beyond "dev" are used for trying crazy things or during large
|
||||
refactors so I can very quickly jump back if needed.
|
||||
* **Compiler/Debugging**: I rely heavily on auto-reloading and
|
||||
watch-and-test-and-compile features during development to iterate quickly.
|
||||
Tools such as `webpack` and `webpack-dev-server` are amazing. If you try to do
|
||||
anything to weird or crazy, though, configuring webpack properly can be
|
||||
hazardous to the mind. Or I'm just doing things very wrong. Chrome's dev tools
|
||||
are also killer in this department.
|
||||
* **Testing**: I don't do much testing. This is bad and I'm working on it!
|
||||
|
||||
## To Do and Improvements
|
||||
|
||||
* Add a file containing common variables in `common/`.
|
||||
* Add more content to the other sections?
|
88
setup
Executable file
88
setup
Executable file
|
@ -0,0 +1,88 @@
|
|||
#!/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
|
||||
|
||||
# TODO: make sure we have an even number, here
|
||||
links=(
|
||||
# desktop environment files
|
||||
"$dfp/de/bspwmrc" "$XDG_CONFIG_HOME/bspwm/bspwmrc"
|
||||
"$dfp/de/sxhkdrc" "$XDG_CONFIG_HOME/sxhkd/sxhkdrc"
|
||||
"$dfp/de/xresources" "$HOME/.Xresources"
|
||||
"$dfp/de/xinitrc" "$HOME/.xinitrc"
|
||||
"$dfp/de/xprofile" "$HOME/.xprofile"
|
||||
"$dfp/common/colors/xresources" "$HOME/.Xresources.colors"
|
||||
|
||||
# bar files
|
||||
"$dfp/de/bar/polybar-config" "$XDG_CONFIG_HOME/polybar/config"
|
||||
|
||||
# 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"
|
||||
|
||||
# text editor files
|
||||
"$dfp/text-editor/neovim/" "$XDG_CONFIG_HOME/nvim"
|
||||
"$dfp/text-editor/neovim/" "$HOME/.vim"
|
||||
"$dfp/text-editor/neovim/init.vim" "$HOME/.vimrc"
|
||||
"$dfp/common/colors/vim" "$XDG_CONFIG_HOME/nvim/colors/base16-donokai.vim"
|
||||
|
||||
# irc files
|
||||
"$dfp/misc/irssi/" "$HOME/.irssi"
|
||||
"$dfp/misc/weechat/" "$HOME/.weechat"
|
||||
)
|
||||
|
||||
source=""
|
||||
for i in "${links[@]}"; do
|
||||
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
|
||||
if [ -d "$i" ]; then # if directory exists, delete it
|
||||
rm -rf "$i"
|
||||
fi
|
||||
# check if the directory that will contain the link exists
|
||||
DIR_TO_LINK=$(dirname "$i")
|
||||
if [ -d "$DIR_TO_LINK" ]; then
|
||||
:
|
||||
else
|
||||
mkdir -p "$DIR_TO_LINK"
|
||||
fi
|
||||
ln -s "$source" "$i"
|
||||
echo "Linked $(basename $source) to $i."
|
||||
source=""
|
||||
else
|
||||
source="$i"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Done."
|
112
shell/aliases
Normal file
112
shell/aliases
Normal file
|
@ -0,0 +1,112 @@
|
|||
#!/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"
|
||||
|
||||
# TODO: use chrome-beta, then chrome, then chromium
|
||||
alias chrome="google-chrome-beta"
|
||||
|
||||
# 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
|
9
shell/inputrc
Normal file
9
shell/inputrc
Normal file
|
@ -0,0 +1,9 @@
|
|||
"\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
|
||||
"\C-D": "\C-c\C-d"
|
||||
|
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"
|
||||
|
||||
|
44
shell/shell_funcs
Normal file
44
shell/shell_funcs
Normal file
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
calc() {
|
||||
tp="$@"
|
||||
python -c "print($tp)"
|
||||
}
|
||||
export -f calc
|
||||
|
||||
stopbar() {
|
||||
# TODO: properly kill the polybar
|
||||
killall -q polybar
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
||||
}
|
||||
export -f stopbar
|
||||
|
||||
# wm aliases
|
||||
startbar() {
|
||||
bash "$DOTFILES_PATH/de/bar/bar.bash" &
|
||||
bg
|
||||
disown
|
||||
}
|
||||
export -f startbar
|
||||
|
||||
# save the current directory for later retrieval
|
||||
scwd() {
|
||||
addon=""
|
||||
if [[ -n $1 ]]; then
|
||||
addon="-$1"
|
||||
fi
|
||||
echo "$PWD" > "$DOTFILES_PATH/.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/.cwd$addon.tmp")"
|
||||
}
|
||||
export -f gcwd
|
||||
bind '"\C-g"':"\"gcwd\C-m\""
|
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
|
480
text-editor/neovim/init.vim
Normal file
480
text-editor/neovim/init.vim
Normal file
|
@ -0,0 +1,480 @@
|
|||
" initial plugin manager installation
|
||||
if has('nvim')
|
||||
if empty(glob('~/.config/nvim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
autocmd VimEnter * PlugInstall
|
||||
endif
|
||||
else
|
||||
if empty(glob('~/.vim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
autocmd VimEnter * PlugInstall
|
||||
endif
|
||||
end
|
||||
|
||||
" tell vim to reload the init.vim file when it saves it
|
||||
autocmd! BufWritePost init.vim source %
|
||||
|
||||
" plugin build functions
|
||||
function! BuildComposer(info)
|
||||
if a:info.status != 'unchanged' || a:info.force
|
||||
!cargo build --release
|
||||
UpdateRemotePlugins
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! DoRemote(arg)
|
||||
UpdateRemotePlugins
|
||||
endfunction
|
||||
|
||||
" Initialize plugin manager
|
||||
if has('nvim')
|
||||
call plug#begin('~/.config/nvim/bundle')
|
||||
else
|
||||
call plug#begin('~/.vim/bundle')
|
||||
endif
|
||||
|
||||
|
||||
" let plugin manager manage itself
|
||||
Plug 'junegunn/vim-plug'
|
||||
|
||||
|
||||
" plugins
|
||||
|
||||
" if vim is being launched to view man pages, don't do our magical session
|
||||
" stuff!
|
||||
if exists('asmanviewer')
|
||||
let g:prosession_dir = '/dev/null'
|
||||
else
|
||||
Plug 'tpope/vim-obsession' " session ease-of-use
|
||||
Plug 'dhruvasagar/vim-prosession' " more session ease-of-use
|
||||
let g:prosession_dir = '~/.config/nvim/session/'
|
||||
endif
|
||||
Plug 'vim-airline/vim-airline' " statusline
|
||||
" let g:airline_powerline_fonts = 0
|
||||
let g:airline#extensions#tabline#enabled = 1 " automatically displays all buffers when there's only one tab open
|
||||
let g:airline#extensions#tabline#fnamemod = ':t'
|
||||
" set laststatus=2 " always show statusline
|
||||
" set noshowmode " hides default mode
|
||||
let g:airline#extensions#tabline#left_sep = ''
|
||||
let g:airline#extensions#tabline#left_alt_sep = ''
|
||||
let g:airline_right_alt_sep = ''
|
||||
let g:airline_right_sep = ''
|
||||
let g:airline_left_alt_sep= ''
|
||||
let g:airline_left_sep = ''
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
|
||||
Plug 'scrooloose/nerdtree', {'on': ['NERDTreeToggle', 'NERDTree']} " nice sidebar for files
|
||||
let g:NERDTreeDirArrowExpandable = ' '
|
||||
let g:NERDTreeDirArrowCollapsible = ' '
|
||||
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif " close vim if last buffer is a NERD buffer
|
||||
|
||||
Plug 'nathanaelkane/vim-indent-guides' " indentation guides (NOTE: doesn't seem to work with my colorscheme)
|
||||
let g:indent_guides_start_level = 0
|
||||
let g:indent_guides_auto_color = 1
|
||||
|
||||
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } " autocomplete
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
|
||||
Plug 'scrooloose/syntastic' " syntax checker
|
||||
Plug 'freitass/todo.txt-vim' " syntax checker
|
||||
Plug 'bkad/CamelCaseMotion' " camel case and underscore word movements
|
||||
Plug 'LargeFile' " gracefully handle very large files
|
||||
Plug 'tpope/vim-commentary' " toggle comments in code easily
|
||||
Plug 'tmux-plugins/vim-tmux-focus-events' " allow transitions within tmux
|
||||
Plug 'christoomey/vim-tmux-navigator' " allow transitions within tmux
|
||||
Plug 'tasklist.vim' " show tasks with leader,t
|
||||
Plug 'godlygeek/tabular' " align text lines together
|
||||
Plug 'dhruvasagar/vim-table-mode' " for creating and editing character tables
|
||||
Plug 'lytedev/vim-superman' " view man pages with vim
|
||||
Plug 'tpope/vim-surround' " quickly modify text surrounding objects
|
||||
Plug 'tpope/vim-speeddating' " vim knows about date-like text objects
|
||||
Plug 'michaeljsmith/vim-indent-object' " adds an indentation level text object
|
||||
Plug 'wellle/targets.vim' " adds some more handy text objects
|
||||
Plug 'ternjs/tern_for_vim', { 'do': 'npm install' }
|
||||
Plug 'mikewest/vimroom'
|
||||
Plug 'editorconfig/editorconfig-vim' " loads project-specific editor settings
|
||||
let g:vimroom_sidebar_height = 0
|
||||
|
||||
Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} " fuzzy file finding
|
||||
Plug 'junegunn/fzf.vim' " helpers for using fzf in vim
|
||||
let g:fzf_layout = { 'window': 'enew' }
|
||||
|
||||
" plugins for specific file types
|
||||
Plug 'kchmck/vim-coffee-script', {'for': ['coffee', 'coffeescript', 'vue']}
|
||||
Plug 'posva/vim-vue', {'for': ['vue']}
|
||||
Plug 'elixir-lang/vim-elixir', {'for': ['elixir']}
|
||||
Plug 'wavded/vim-stylus', {'for': ['styl', 'stylus', 'vue']}
|
||||
Plug 'rust-lang/rust.vim', {'for': ['rs', 'rust']}
|
||||
" Plug 'plasticboy/vim-markdown', {'for': ['md', 'markdown']}
|
||||
" Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer'), 'for': ['md', 'markdown'] }
|
||||
Plug 'digitaltoad/vim-jade', {'for': ['pug', 'jade', 'vue']}
|
||||
Plug 'freitass/todo.txt-vim', {'for': ['todo']}
|
||||
Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']}
|
||||
Plug 'evidens/vim-twig'
|
||||
Plug 'leafgarland/typescript-vim', {'for': ['ts', 'typescript']}
|
||||
Plug 'jwalton512/vim-blade', {'for': ['blade', 'blade.php']}
|
||||
|
||||
call plug#end()
|
||||
|
||||
filetype on
|
||||
filetype indent on
|
||||
filetype plugin on
|
||||
|
||||
" language specific configuration
|
||||
|
||||
" C
|
||||
let c_space_errors = 1
|
||||
let c_comment_strings = 0 " dont highlight strings inside C comments
|
||||
|
||||
" Python
|
||||
let python_space_errors = 1
|
||||
" autocmd FileType python setl tabstop=4 expandtab shiftwidth=4 softtabstop=4
|
||||
" autocmd FileType js setl tabstop=2 expandtab shiftwidth=2 softtabstop=2
|
||||
" autocmd FileType vue setl tabstop=2 expandtab shiftwidth=2 softtabstop=2
|
||||
autocmd FileType php setl tabstop=4 expandtab shiftwidth=4 softtabstop=4
|
||||
|
||||
" Markdown
|
||||
" autocmd BufNewFile,BufReadPost *.md setl filetype=markdown spell textwidth=0 wrapmargin=0
|
||||
|
||||
" Text
|
||||
autocmd BufNewFile,BufReadPost *.txt setl spell textwidth=0 wrapmargin=0
|
||||
|
||||
" whitespace
|
||||
set tabstop=2
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set noexpandtab
|
||||
set autoindent smartindent
|
||||
set list
|
||||
set nostartofline
|
||||
set listchars=trail:·,tab:\ \ ,trail:~
|
||||
" set listchars=eol:\ ,tab:>-,trail:~,extends:>,precedes:<,space:·
|
||||
|
||||
" look and feel
|
||||
|
||||
set wrap
|
||||
set linebreak
|
||||
set breakindent
|
||||
set textwidth=80
|
||||
set formatoptions=crql1j
|
||||
" t autowrap to textwidth
|
||||
" c autowrap comments to textwidth
|
||||
" r autoinsert comment leader with <enter>
|
||||
" q allow formatting of comments with gq
|
||||
" l lines longer than 'textwidth' on insert do not get formatted
|
||||
" 1 don't break a line after a one-letter word - break it before
|
||||
" j where it makes sense, remove a comment leader when joining lines
|
||||
|
||||
set title " handle window title
|
||||
set synmaxcol=2048
|
||||
if exists('asmanviewer')
|
||||
set nonumber " no line numbers when viewing a man page
|
||||
else
|
||||
set number " line numbers
|
||||
endif
|
||||
" set relativenumber
|
||||
set cursorline " highlight the current line
|
||||
" set cursorcolumn " highlight the current column
|
||||
" let &colorcolumn=join(range(81,400),",") " colors columns past 80
|
||||
set showcmd
|
||||
set nowildmenu
|
||||
set wildmode=longest,list,full
|
||||
set cpoptions-=$
|
||||
set showmatch
|
||||
set mouse=a
|
||||
set mousehide
|
||||
set backspace=indent,eol,start
|
||||
set ruler
|
||||
set lazyredraw
|
||||
set scrolloff=8
|
||||
set sidescrolloff=8
|
||||
set splitright
|
||||
set splitbelow
|
||||
set noerrorbells
|
||||
set visualbell
|
||||
set nobackup
|
||||
set nowritebackup
|
||||
set noswapfile
|
||||
set timeout
|
||||
set ttimeoutlen=200
|
||||
set isfname+=32
|
||||
|
||||
set vb t_vb=
|
||||
if has('autocmd')
|
||||
autocmd GUIEnter * set visualbell t_vb=
|
||||
endif
|
||||
|
||||
let base16colorspace=256
|
||||
set background=dark
|
||||
colorscheme base16-donokai
|
||||
|
||||
fun! ShowSpaceIndentation()
|
||||
hi WhiteSpaces ctermfg=black ctermbg=8
|
||||
match WhiteSpaces /^ \+/
|
||||
endfunction
|
||||
|
||||
" a toggle-able minimalistic "distraction-free" text editing mode
|
||||
let s:distractionFreeMode = 0
|
||||
fun! DistractionFreeModeFunc()
|
||||
AirlineToggle
|
||||
VimroomToggle
|
||||
if s:distractionFreeMode == 0
|
||||
let s:distractionFreeMode = 1
|
||||
set nocursorline
|
||||
set laststatus=0
|
||||
set noshowmode
|
||||
set noruler
|
||||
set noshowcmd
|
||||
set nonumber
|
||||
hi NonText ctermfg=black guifg=black
|
||||
else
|
||||
let s:distractionFreeMode = 0
|
||||
set cursorline
|
||||
set showmode
|
||||
set ruler
|
||||
set laststatus=2
|
||||
set showcmd
|
||||
set number
|
||||
hi NonText ctermfg=gray guifg=gray
|
||||
colorscheme base16-donokai
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" prevents normal window navigation and closing while in DistractionFreeMode
|
||||
fun! CheckCloseDistractionFreeMode()
|
||||
if s:distractionFreeMode == 1
|
||||
call DistractionFreeModeFunc()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" run the check function every time we leave a window
|
||||
if has('autocmd')
|
||||
autocmd WinLeave * call CheckCloseDistractionFreeMode()
|
||||
endif
|
||||
|
||||
nnoremap <silent> <Leader>mz :DistractionFreeMode<CR>
|
||||
|
||||
:command! SpaceIndents call ShowSpaceIndentation()
|
||||
:command! ShowSpaceIndents call ShowSpaceIndentation()
|
||||
:command! DistractionFreeMode call DistractionFreeModeFunc()
|
||||
|
||||
let $vimdir = $HOME.'/.vim'
|
||||
if has('nvim')
|
||||
let $vimdir = $HOME.'/.config/nvim'
|
||||
endif
|
||||
|
||||
set hidden " allows buffer switching without saving
|
||||
set shortmess=I
|
||||
set history=1000
|
||||
set undofile
|
||||
set undodir=$vimdir/undo
|
||||
set undolevels=1000
|
||||
set undoreload=10000
|
||||
|
||||
set backupdir=$vimdir/backup
|
||||
set directory=$vimdir/backup
|
||||
set spellfile=$vimdir/spell/en.utf-8.add
|
||||
|
||||
set ignorecase
|
||||
set smartcase
|
||||
set incsearch
|
||||
set hlsearch
|
||||
set wrapscan
|
||||
|
||||
set foldmethod=syntax
|
||||
set foldlevel=99
|
||||
set foldnestmax=10
|
||||
set nofoldenable
|
||||
set foldlevelstart=1
|
||||
|
||||
if has('vim_starting')
|
||||
set encoding=utf8
|
||||
endif
|
||||
set autowrite
|
||||
set autochdir
|
||||
set autoread
|
||||
set nomodeline
|
||||
|
||||
" yank to OS clipboard
|
||||
set clipboard+=unnamed
|
||||
|
||||
" allows for manual and syntax folding... supposedly
|
||||
augroup vimrc
|
||||
au BufReadPre * setlocal foldmethod=indent
|
||||
au BufWinEnter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
|
||||
augroup END
|
||||
|
||||
" jump to last opened position in file
|
||||
if has("autocmd")
|
||||
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
||||
endif
|
||||
|
||||
" no empty buffer on startup
|
||||
autocmd VimEnter * nested if bufname('')=='' && line('$') == 1 && col('$')==1 && !&modified | bd % | endif
|
||||
|
||||
if has('nvim')
|
||||
function! TerminalSplit()
|
||||
let current_file = @%
|
||||
echo current_file
|
||||
if match(current_file, "term://*") != -1
|
||||
split
|
||||
terminal
|
||||
else
|
||||
vsplit
|
||||
vertical resize 80
|
||||
terminal
|
||||
endif
|
||||
endfunction
|
||||
endif
|
||||
|
||||
" bindings
|
||||
|
||||
" common typo fixes
|
||||
command! WQ wq
|
||||
command! Wq wq
|
||||
command! Wqa wqa
|
||||
command! W w
|
||||
command! Q q
|
||||
|
||||
" best leader
|
||||
let mapleader = "\<Space>"
|
||||
|
||||
if has('nvim')
|
||||
" terminal mappings
|
||||
" open a terminal split at 80 columns
|
||||
nnoremap <C-t> :call TerminalSplit()<CR>
|
||||
tnoremap <C-t> <C-\><C-n>:call TerminalSplit()<CR>
|
||||
|
||||
" close the terminal
|
||||
tnoremap <C-w> <C-\><C-n>:q!<CR>
|
||||
|
||||
" moving between terminal splits
|
||||
tnoremap <C-h> <C-\><C-n><C-w>h
|
||||
tnoremap <C-j> <C-\><C-n><C-w>j
|
||||
tnoremap <C-k> <C-\><C-n><C-w>k
|
||||
tnoremap <C-l> <C-\><C-n><C-w>l
|
||||
endif
|
||||
|
||||
" enter insert mode when entering a terminal buffer
|
||||
autocmd BufWinEnter,WinEnter term://* startinsert
|
||||
|
||||
" change buffers with leader,tab
|
||||
nnoremap <leader><Tab> :bnext<CR>
|
||||
nnoremap <leader><S-Tab> :bprevious<CR>
|
||||
|
||||
" don't kill vim
|
||||
nnoremap <leader>K <Nop>
|
||||
nnoremap <S-K> <NOP>
|
||||
|
||||
" nerdtree
|
||||
nnoremap <C-n> :NERDTree<CR>
|
||||
|
||||
" run macro across visually selected lines
|
||||
xnoremap @ :<C-u>call ExecuteMacroOverVisualRange()<CR>
|
||||
function! ExecuteMacroOverVisualRange()
|
||||
echo "@".getcmdline()
|
||||
execute ":'<,'>normal @".nr2char(getchar())
|
||||
endfunction
|
||||
|
||||
" quick paragraph formatting
|
||||
vmap Q gq
|
||||
nmap Q gqap
|
||||
|
||||
" launch fzf for the current git repo
|
||||
nnoremap <C-p> :GitFiles<CR>
|
||||
|
||||
" launch fzf for files in the current directory
|
||||
nnoremap <C-o> :Files<CR>
|
||||
|
||||
" launch fzf for files modified or not in git
|
||||
nnoremap <C-u> :GFiles?<CR>
|
||||
|
||||
" launch fzf for open buffers (files)
|
||||
nnoremap <leader>l :Buffers<CR>
|
||||
|
||||
" switch to previous buffer
|
||||
nnoremap <leader>h :b#<CR>
|
||||
|
||||
" use leader j and k to switch buffers as well
|
||||
nnoremap <leader>k :bnext<CR>
|
||||
nnoremap <leader>j :bprevious<CR>
|
||||
nnoremap <C-k> :bnext<CR>
|
||||
nnoremap <C-j> :bprevious<CR>
|
||||
|
||||
" fast word change
|
||||
nnoremap <leader>c ciw
|
||||
nnoremap <leader>C ciW
|
||||
|
||||
" bash-like deletion
|
||||
inoremap <C-BS> <C-w>
|
||||
inoremap <A-BS> <C-w>
|
||||
|
||||
" clear search higlight
|
||||
nnoremap <leader>/ :let @/ = ""<CR>
|
||||
|
||||
" remap jk and kj to escape in insert mode
|
||||
inoremap jj <Esc>
|
||||
inoremap Jj <Esc>
|
||||
inoremap Jj <Esc>
|
||||
inoremap JJ <Esc>
|
||||
inoremap jk <Esc>
|
||||
inoremap Jk <Esc>
|
||||
inoremap jK <Esc>
|
||||
inoremap JK <Esc>
|
||||
|
||||
" use hjkl-movement between rows when soft wrapping:
|
||||
nnoremap j gj
|
||||
nnoremap k gk
|
||||
vnoremap j gj
|
||||
vnoremap k gk
|
||||
|
||||
" camel case movements
|
||||
map <silent> ,w <Plug>CamelCaseMotion_w
|
||||
map <silent> ,b <Plug>CamelCaseMotion_b
|
||||
map <silent> ,e <Plug>CamelCaseMotion_e
|
||||
map <silent> ,ge <Plug>CamelCaseMotion_ge
|
||||
|
||||
" inner _ objects
|
||||
omap <silent> ib <Plug>CamelCaseMotion_ib
|
||||
xmap <silent> ib <Plug>CamelCaseMotion_ib
|
||||
omap <silent> ie <Plug>CamelCaseMotion_ie
|
||||
xmap <silent> ie <Plug>CamelCaseMotion_ie
|
||||
|
||||
" a _ objects
|
||||
omap <silent> aw <Plug>CamelCaseMotion_aw
|
||||
xmap <silent> aw <Plug>CamelCaseMotion_aw
|
||||
omap <silent> ab <Plug>CamelCaseMotion_ab
|
||||
xmap <silent> ab <Plug>CamelCaseMotion_ab
|
||||
omap <silent> ae <Plug>CamelCaseMotion_ae
|
||||
xmap <silent> ae <Plug>CamelCaseMotion_ae
|
||||
|
||||
" remove trailing whitespace:
|
||||
map <F3> mw:%s/\s\+$//<CR>:let @/ = ""<CR>'w
|
||||
|
||||
" close buffer:
|
||||
nnoremap <silent> <leader>w :bd<CR>
|
||||
|
||||
" toggle spell checking:
|
||||
map <F5> :setlocal spell!<CR>
|
||||
|
||||
" open urls, files, etc. example: http://google.com:
|
||||
noremap <leader>o :!xdg-open <cfile><CR><CR>
|
||||
|
||||
" keep that dumb window from popping up
|
||||
map q: :q
|
||||
noremap qqq: q:
|
||||
|
||||
" sane n/N behavior
|
||||
nnoremap <expr> n 'Nn'[v:searchforward]
|
||||
nnoremap <expr> N 'nN'[v:searchforward]
|
||||
|
||||
" better command history navigation
|
||||
cnoremap <c-n> <down>
|
||||
cnoremap <c-p> <up>
|
||||
|
||||
" keep selection after indenting visual selection
|
||||
xnoremap < <gv
|
||||
xnoremap > >gv
|
||||
|
||||
" modify higlight colors
|
||||
hi Search cterm=NONE ctermbg=blue ctermfg=black
|
Reference in a new issue