diff options
Diffstat (limited to 'config/essentials')
| -rw-r--r-- | config/essentials/shell/functions.sh | 14 | ||||
| m--------- | config/essentials/vis/plugins/vis-cursors | 0 | ||||
| m--------- | config/essentials/vis/plugins/vis-title | 0 | ||||
| -rw-r--r-- | config/essentials/vis/themes/nord.lua | 123 | ||||
| -rw-r--r-- | config/essentials/vis/visrc.lua | 84 | 
5 files changed, 221 insertions, 0 deletions
diff --git a/config/essentials/shell/functions.sh b/config/essentials/shell/functions.sh index 945b716..976db1e 100644 --- a/config/essentials/shell/functions.sh +++ b/config/essentials/shell/functions.sh @@ -371,3 +371,17 @@ ffconcat () {  	ffmpeg -y -f concat -safe 0 -i $tmp -c copy "$1"  	rm $tmp  } + +# wrap ssh and add key if exists +ssh() { +	if [ "$#" -gt 1 ]  +	then +		/usr/bin/ssh $@ +		return +	fi + +	grep -E "Host\s+$1" $HOME/.ssh/config > /dev/null 2>&1 && +		keyadd "$1" > /dev/null 2>&1 +	/usr/bin/ssh "$1" +} + diff --git a/config/essentials/vis/plugins/vis-cursors b/config/essentials/vis/plugins/vis-cursors new file mode 160000 +Subproject f86c584fc2d4a2bab47df0cd5d187dd81fb7185 diff --git a/config/essentials/vis/plugins/vis-title b/config/essentials/vis/plugins/vis-title new file mode 160000 +Subproject 9c808f7e71b43aca31dee8553dcfce2214d7fc4 diff --git a/config/essentials/vis/themes/nord.lua b/config/essentials/vis/themes/nord.lua new file mode 100644 index 0000000..a21f0fa --- /dev/null +++ b/config/essentials/vis/themes/nord.lua @@ -0,0 +1,123 @@ +-- base16-vis (https://github.com/pshevtsov/base16-vis) +-- by Petr Shevtsov +-- Nord scheme by arcticicestudio + +local lexers = vis.lexers + +local colors = { +	['bg'] = '#2E3440', +	['black'] = '#3B4252', +	['light_black'] = '#434C5E', +	['dark_gray'] = '#4C566A', +	['gray'] = '#D8DEE9', +	['light_gray'] = '#616E88', +	['fg'] = '#E5E9F0', +	['white'] = '#ECEFF4', +	['turquoise'] = '#8FBCBB', +	['light_cyan'] = '#88C0D0', +	['cyan'] = '#81A1C1', +	['blue'] = '#5E81AC', +	['red'] = '#BF616A', +	['orange'] = '#D08770', +	['yellow'] = '#EBCB8B', +	['green'] = '#A3BE8C', +	['magenta'] = '#B48EAD', +} + +lexers.colors = colors + +local fg = 'fore:'..colors.fg +local bg = 'back:'..colors.bg + +lexers.STYLE_DEFAULT = bg..','..fg +lexers.STYLE_NOTHING = bg +lexers.STYLE_CLASS = 'fore:'..colors.blue +lexers.STYLE_COMMENT = 'fore:'..colors.light_gray..',italics' +lexers.STYLE_CONSTANT = 'fore:'..colors.cyan +lexers.STYLE_DEFINITION = 'fore:'..colors.green +lexers.STYLE_ERROR = 'fore:'..colors.light_cyan..',italics' +lexers.STYLE_FUNCTION = 'fore:'..colors.light_cyan..',bold' +lexers.STYLE_HEADING = 'fore:'..colors.bg..',back:'..colors.yellow +lexers.STYLE_KEYWORD = 'fore:'..colors.cyan..',bold' +lexers.STYLE_LABEL = 'fore:'..colors.blue +lexers.STYLE_NUMBER = 'fore:'..colors.magenta +lexers.STYLE_OPERATOR = 'fore:'..colors.light_cyan +lexers.STYLE_REGEX = 'fore:'..colors.orange +lexers.STYLE_STRING = 'fore:'..colors.green +lexers.STYLE_PREPROCESSOR = 'fore:'..colors.blue +lexers.STYLE_TAG = 'fore:'..colors.blue +lexers.STYLE_TYPE = 'fore:'..colors.cyan +lexers.STYLE_VARIABLE = 'fore:'..colors.cyan..',bold' +lexers.STYLE_WHITESPACE = 'fore:'..colors.light_black +lexers.STYLE_EMBEDDED = 'fore:'..colors.magenta +lexers.STYLE_IDENTIFIER = fg..',bold' + +lexers.STYLE_LINENUMBER = 'fore:'..colors.light_black..',back:'..colors.bg +lexers.STYLE_CURSOR = 'fore:'..colors.bg..',back:'..colors.fg +lexers.STYLE_CURSOR_PRIMARY = 'fore:'..colors.bg..',back:'..colors.fg +lexers.STYLE_CURSOR_LINE = 'back:'..colors.black +lexers.STYLE_COLOR_COLUMN = 'back:'..colors.black +lexers.STYLE_SELECTION = 'back:'..colors.light_black +lexers.STYLE_STATUS = 'fore:'..colors.gray..',back:'..colors.black +lexers.STYLE_STATUS_FOCUSED = 'fore:'..colors.cyan..',back:'..colors.black +lexers.STYLE_SEPARATOR = lexers.STYLE_DEFAULT +lexers.STYLE_INFO = 'fore:default,back:default,bold' +lexers.STYLE_EOF = '' + +-- lexer specific styles + +-- Diff +lexers.STYLE_ADDITION = 'back:'..colors.green..',fore:'..colors.bg +lexers.STYLE_DELETION = 'back:'..colors.red..',fore:'..colors.bg +lexers.STYLE_CHANGE = 'back:'..colors.yellow..',fore:'..colors.bg + +-- CSS +lexers.STYLE_PROPERTY = lexers.STYLE_ATTRIBUTE +lexers.STYLE_PSEUDOCLASS = '' +lexers.STYLE_PSEUDOELEMENT = '' + +-- HTML +lexers.STYLE_TAG_UNKNOWN = lexers.STYLE_TAG .. ',italics' +lexers.STYLE_ATTRIBUTE_UNKNOWN = lexers.STYLE_ATTRIBUTE .. ',italics' + +-- Latex, TeX, and Texinfo +lexers.STYLE_COMMAND = lexers.STYLE_KEYWORD +lexers.STYLE_COMMAND_SECTION = lexers.STYLE_CLASS +lexers.STYLE_ENVIRONMENT = lexers.STYLE_TYPE +lexers.STYLE_ENVIRONMENT_MATH = lexers.STYLE_NUMBER + +-- Makefile +lexers.STYLE_TARGET = '' + +-- Markdown +lexers.STYLE_HR = '' +lexers.STYLE_HEADING_H1 = 'fore:'..colors.orange..',bold' +lexers.STYLE_HEADING_H2 = 'fore:'..colors.red..',bold' +for i = 3,6 do lexers['STYLE_HEADING_H'..i] = 'fore:'..colors.magenta..',bold' end +lexers.STYLE_BOLD = 'bold' +lexers.STYLE_ITALIC = 'italics' +lexers.STYLE_LIST = lexers.STYLE_KEYWORD +lexers.STYLE_LINK = 'fore:'..colors.yellow..',italics' +lexers.STYLE_REFERENCE = 'fore:'..colors.blue +lexers.STYLE_CODE = 'back:'..colors.black..',fore:'..colors.turquoise + +-- Output +lexers.STYE_FILENAME = 'bold' +lexers.STYLE_LINE = 'fore:'..colors.green +lexers.STYLE_COLUMN = 'underline' +lexers.STYLE_MESSAGE = '' + +-- Python +lexers.STYLE_KEYWORD_SOFT = '' + +-- YAML +lexers.STYLE_ERROR_INDENT = 'back:'..colors.red + + +-- GO +lexers.STYLE_CONSTANT_BUILTIN = 'fore:'..colors.yellow +lexers.STYLE_FUNCTION_METHOD = 'fore:'..colors.light_cyan +lexers.STYLE_FUNCTION_BUILTIN = 'fore:'..colors.light_cyan..',bold' + +-- Lua +lexers.STYLE_ATTRIBUTE = 'fore:'..colors.yellow..',bold' diff --git a/config/essentials/vis/visrc.lua b/config/essentials/vis/visrc.lua new file mode 100644 index 0000000..a424613 --- /dev/null +++ b/config/essentials/vis/visrc.lua @@ -0,0 +1,84 @@ +------------------------------------ +--- LIBRARIES +------------------------------------ + +require('vis') +require('plugins/vis-cursors') +require('plugins/vis-title') + +------------------------------------ +--- EVENTS +------------------------------------ + +vis.events.subscribe(vis.events.INIT, function() +	vis.options.ignorecase = true +	vis.options.autoindent = true +	vis.options.shell = "/bin/sh" +	theme = "nord" +	vis:command("set theme " .. theme) +end) + +vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- luacheck: no unused args +	win.options.relativenumbers = true +end) + +------------------------------------ +--- FUNCTIONS +------------------------------------ + +function map_cmd(mode, map, command, help) +	vis:map(mode, map, function() +		vis:command(command) +	end, help) +end + +function map_cmd_restore(mode, map, command, help) +	vis:map(mode, map, function() +		if (mode == vis.modes.INSERT) then +			vis:feedkeys("<Escape>") +		end +			 +		vis:feedkeys("m") +		vis:command(command) +		vis:feedkeys("M") + +		if (mode == vis.modes.INSERT) then +			vis:feedkeys("i") +		end  +	end, help) +end + +------------------------------------ +--- VARIABLES +------------------------------------ + +local m = vis.modes + +------------------------------------ +--- COMMANDS +------------------------------------ + +vis:command_register("Q", function(argv, force, win, selection, range) +	vis:command("qa!") +end, "Quit all") + +------------------------------------- +--- MAPPINGS +------------------------------------- + +map_cmd_restore(m.NORMAL, " r", "e $vis_filepath", "Reload active file") + +map_cmd(m.NORMAL, " c", "e ~/.config/vis/visrc.lua", "Edit config file") +map_cmd(m.NORMAL, " q", "q!", "Quit (force)") +map_cmd(m.NORMAL, " s", "!doas vis $vis_filepath", "Edit as superuser") +map_cmd(m.NORMAL, " w", "w", "Write") +map_cmd(m.NORMAL, " x", "!chmod u+x $vis_filepath", "Make active file executable") + +vis:map(m.NORMAL, " eh", function() +	vis:command("!lowdown $vis_filepath > ${vis_filepath%.md}.html") +	vis:info("exported.") +end, "Export markdown to html") +vis:map(m.NORMAL, " nl", function() vis:feedkeys(":<seq -f '%0.0f. ' 1 ") end, "Insert numbered list") + + +-- select markdown list element:	,x/^(\d+\.|[-*])\s+.+\n(^ .+\n)*/  | 
