This commit is contained in:
Steve 2022-12-03 20:51:19 -05:00
commit e25cf3edec
34 changed files with 3718 additions and 0 deletions

View file

@ -0,0 +1,38 @@
shell:
program: /usr/bin/zsh
import:
- ~/.config/alacritty/themes/dracula.yml
- ~/.config/alacritty/bindings.yml
cursor:
style: Block
hints:
enabled:
- regex: "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\u0000-\u001F\u007F-\u009F<>\" {-}\\^⟨⟩`]+"
command: xdg-open
post_processing: true
mouse:
mods: Control|Shift
window:
opacity: 0.9
padding:
x: 5
y: 5
scrolling:
history: 100000
multiplier: 3
font:
normal:
family: "FuraMono Nerd Font Mono"
style: Regular
bold:
family: "FuraMono Nerd Font Mono"
style: Bold
italic:
family: "FuraMono Nerd Font Mono"
style: Bold

View file

@ -0,0 +1,2 @@
mouse_bindings:
- { mouse: Right, action: CopySelection }

View file

@ -0,0 +1,61 @@
# Dracula theme for Alacritty
# https://draculatheme.com/alacritty
#
# Color palette
# https://spec.draculatheme.com
#
# Template
# https://github.com/alacritty/alacritty/blob/master/alacritty.yml
colors:
primary:
background: '#282a36'
foreground: '#f8f8f2'
bright_foreground: '#ffffff'
cursor:
text: CellBackground
cursor: CellForeground
vi_mode_cursor:
text: CellBackground
cursor: CellForeground
search:
matches:
foreground: '#44475a'
background: '#50fa7b'
focused_match:
foreground: '#44475a'
background: '#ffb86c'
footer_bar:
background: '#282a36'
foreground: '#f8f8f2'
hints:
start:
foreground: '#282a36'
background: '#f1fa8c'
end:
foreground: '#f1fa8c'
background: '#282a36'
line_indicator:
foreground: None
background: None
selection:
text: CellForeground
background: '#44475a'
normal:
black: '#21222c'
red: '#ff5555'
green: '#50fa7b'
yellow: '#f1fa8c'
blue: '#bd93f9'
magenta: '#ff79c6'
cyan: '#8be9fd'
white: '#f8f8f2'
bright:
black: '#6272a4'
red: '#ff6e6e'
green: '#69ff94'
yellow: '#ffffa5'
blue: '#d6acff'
magenta: '#ff92df'
cyan: '#a4ffff'
white: '#ffffff'

23
.config/monitors.xml Normal file
View file

@ -0,0 +1,23 @@
<monitors version="2">
<configuration>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>DP-2</connector>
<vendor>SAM</vendor>
<product>LC49G95T</product>
<serial>H4ZNB01043</serial>
</monitorspec>
<mode>
<width>5120</width>
<height>1440</height>
<rate>119.999</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
</monitors>

159
.config/nvim/init.lua Normal file
View file

@ -0,0 +1,159 @@
local api = vim.api
local g = vim.g
local opt = vim.opt
local BUFFER = vim.bo
local GLOBAL = vim.o
local WINDOW = vim.wo
local function set_all(option, scope, value)
scope[option] = value
end
api.nvim_set_keymap("", "<Space>", "<Nop>", { noremap = true, silent = true })
require('plugins')
require('config.colors')
require('key_bindings')
diagnostics = require('diag')
vim.cmd[[
autocmd CursorMoved * :lua diagnostics.echo_diagnostic()
]]
local options = {
{option='loaded', scope=g, value=1},
{option='mapleader', scope=g, value=" "},
{option='maplocalleader', scope=g, value = " "},
{option='loaded_netrwPlugin', scope=g, value=1},
{option='indentLine_fileTypeExclude', scope=g, value = {'dashboard'}},
--tabs,spacing & formatting
{option='tabstop', scope=GLOBAL, value=2},
{option='shiftwidth', scope=GLOBAL, value=2},
{option='expandtab', scope=GLOBAL, value=true},
{option='smartcase', scope=GLOBAL, value=true},
{option='shiftround', scope=GLOBAL, value=true},
{option='ignorecase', scope=GLOBAL, value=true},
-- display options
{option='number', scope=GLOBAL, value=true},
{option='hlsearch', scope=GLOBAL, value=true},
{option='timeoutlen', scope=GLOBAL, value=300}, -- Time in milliseconds to wait for mapped seq to complete.
{option='updatetime', scope=GLOBAL, value=250}, -- Decrease update time
{option='cursorline', scope=GLOBAL, value=true},
{option='signcolumn', scope=GLOBAL, value='yes'},
{option='breakindent', scope=GLOBAL, value=true},
{option='termguicolors', scope=GLOBAL, value=true},
{option='relativenumber', scope=GLOBAL, value=true},
{option='guicursor', scope=GLOBAL, value="n-v:block,i-c-ci-ve:ver25,r-cr:hor20,o:hor50,i:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor,sm:block-blinkwait175-blinkoff150-blinkon175"},
-- undo, history, etc
{option='mouse', scope=GLOBAL, value='a'},
{option='undofile', scope=GLOBAL, value=true},
{option='undodir', scope=GLOBAL, value=vim.fn.stdpath('config') .. '/undodir'},
-- misc
{option='clipboard', scope=GLOBAL, value='unnamedplus'},
}
for _, args in pairs(options) do
set_all(args.option, args.scope, args.value)
end
-- highlight selection on yank
vim.cmd [[
augroup YankHighlight
autocmd!
autocmd TextYankPost * silent! lua vim.highlight.on_yank()
augroup end
]]
vim.cmd[[colorscheme dracula]]
require('aerial').setup({
backends = { "lsp", "treesitter", "markdown" },
show_guides = true,
border = "double",
filter_kind = {
"Array",
"Boolean",
"Class",
"Constant",
"Constructor",
"Enum",
"EnumMember",
"Event",
"Field",
"File",
"Function",
"Interface",
"Key",
"Method",
"Module",
"Namespace",
"Null",
"Number",
"Object",
"Operator",
"Package",
"Property",
"String",
"Struct",
"TypeParameter",
"Variable",
},
icons = {
Array = "",
Boolean = "",
Class = "",
Constant = "",
Constructor = "",
Key = "",
Function = "",
Method = "ƒ",
Namespace = "",
Null = "NULL",
Number = "#",
Object = "⦿",
Property = "",
TypeParameter = "𝙏",
Variable = "",
Enum = "",
Package = "",
EnumMember = "",
File = "",
Module = "",
Field = "",
Interface = "",
String = "𝓐",
Struct = "𝓢",
Event = "",
Operator = "+",
},
guides = {
mid_item = "",
last_item = "",
nested_top = "",
whitespace = " ",
},
attach_mode = "global",
close_automatic_events = {"switch_buffer"},
float = {
relative = "editor",
override = function(conf)
local padding = 1
conf.anchor = 'NE'
conf.row = padding
conf.col = vim.api.nvim_win_get_width(0) - padding
return conf
end,
},
on_attach = function(bufnr)
-- Jump forwards/backwards with '{' and '}'
vim.keymap.set("n", "{", "<cmd>AerialPrev<cr>", { buffer = bufnr, desc = "Jump backwards in Aerial" })
vim.keymap.set("n", "}", "<cmd>AerialNext<cr>", { buffer = bufnr, desc = "Jump forwards in Aerial" })
-- Jump up the tree with '[[' or ']]'
vim.keymap.set("n", "[[", "<cmd>AerialPrevUp<cr>", { buffer = bufnr, desc = "Jump up and backwards in Aerial" })
vim.keymap.set("n", "]]", "<cmd>AerialNextUp<cr>", { buffer = bufnr, desc = "Jump up and forwards in Aerial" })
end,
})
vim.api.nvim_exec(
[[
au! WinLeave *.rs AerialCloseAll
]], false)

View file

@ -0,0 +1,12 @@
local M = {}
function M.setup()
local {PLUGIN} = require({PLUGIN})
local conf = {
conf = {
}
}
{PLUGIN}.setup(conf)
end
return M

View file

@ -0,0 +1,261 @@
local M = {}
function M.setup()
local aerial = require("aerial")
local conf = {
backends = { "treesitter", "lsp", "markdown", "man" },
float = {
relative = "editor",
override = function(conf)
local padding = 4
conf.anchor = 'NE'
conf.row = padding
conf.col = vim.o.columns - padding
return conf
end,
},
layout = {
-- These control the width of the aerial window.
-- They can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
-- min_width and max_width can be a list of mixed types.
-- max_width = {40, 0.2} means "the lesser of 40 columns or 20% of total"
max_width = { 80, 0.2 },
width = nil,
min_width = 40,
-- key-value pairs of window-local options for aerial window (e.g. winhl)
win_opts = {},
-- Determines the default direction to open the aerial window. The 'prefer'
-- options will open the window in the other direction *if* there is a
-- different buffer in the way of the preferred direction
-- Enum: prefer_right, prefer_left, right, left, float
default_direction = "right",
-- Determines where the aerial window will be opened
-- edge - open aerial at the far right/left of the editor
-- window - open aerial to the right/left of the current window
placement = "edge",
},
-- Determines how the aerial window decides which buffer to display symbols for
-- window - aerial window will display symbols for the buffer in the window from which it was opened
-- global - aerial window will display symbols for the current window
attach_mode = "global",
-- List of enum values that configure when to auto-close the aerial window
-- unfocus - close aerial when you leave the original source window
-- switch_buffer - close aerial when you change buffers in the source window
-- unsupported - close aerial when attaching to a buffer that has no symbol source
close_automatic_events = {},
-- Keymaps in aerial window. Can be any value that `vim.keymap.set` accepts OR a table of keymap
-- options with a `callback` (e.g. { callback = function() ... end, desc = "", nowait = true })
-- Additionally, if it is a string that matches "aerial.<name>",
-- it will use the mapping at require("aerial.action").<name>
-- Set to `false` to remove a keymap
keymaps = {
["?"] = "actions.show_help",
["g?"] = "actions.show_help",
["<CR>"] = "actions.jump",
["<2-LeftMouse>"] = "actions.jump",
["<C-v>"] = "actions.jump_vsplit",
["<C-s>"] = "actions.jump_split",
["p"] = "actions.scroll",
["<C-j>"] = "actions.down_and_scroll",
["<C-k>"] = "actions.up_and_scroll",
["{"] = "actions.prev",
["}"] = "actions.next",
["[["] = "actions.prev_up",
["]]"] = "actions.next_up",
["q"] = "actions.close",
["o"] = "actions.tree_toggle",
["za"] = "actions.tree_toggle",
["O"] = "actions.tree_toggle_recursive",
["zA"] = "actions.tree_toggle_recursive",
["l"] = "actions.tree_open",
["zo"] = "actions.tree_open",
["L"] = "actions.tree_open_recursive",
["zO"] = "actions.tree_open_recursive",
["h"] = "actions.tree_close",
["zc"] = "actions.tree_close",
["H"] = "actions.tree_close_recursive",
["zC"] = "actions.tree_close_recursive",
["zr"] = "actions.tree_increase_fold_level",
["zR"] = "actions.tree_open_all",
["zm"] = "actions.tree_decrease_fold_level",
["zM"] = "actions.tree_close_all",
["zx"] = "actions.tree_sync_folds",
["zX"] = "actions.tree_sync_folds",
},
-- When true, don't load aerial until a command or function is called
-- Defaults to true, unless `on_attach` is provided, then it defaults to false
lazy_load = true,
-- Disable aerial on files with this many lines
disable_max_lines = 10000,
-- Disable aerial on files this size or larger (in bytes)
disable_max_size = 2000000, -- Default 2MB
-- A list of all symbols to display. Set to false to display all symbols.
-- This can be a filetype map (see :help aerial-filetype-map)
-- To see all available values, see :help SymbolKind
filter_kind = {
"Class",
"Constructor",
"Enum",
"Function",
"Interface",
"Module",
"Method",
"Struct",
},
-- Determines line highlighting mode when multiple splits are visible.
-- split_width Each open window will have its cursor location marked in the
-- aerial buffer. Each line will only be partially highlighted
-- to indicate which window is at that location.
-- full_width Each open window will have its cursor location marked as a
-- full-width highlight in the aerial buffer.
-- last Only the most-recently focused window will have its location
-- marked in the aerial buffer.
-- none Do not show the cursor locations in the aerial window.
highlight_mode = "split_width",
-- Highlight the closest symbol if the cursor is not exactly on one.
highlight_closest = true,
-- Highlight the symbol in the source buffer when cursor is in the aerial win
highlight_on_hover = false,
-- When jumping to a symbol, highlight the line for this many ms.
-- Set to false to disable
highlight_on_jump = 300,
-- Define symbol icons. You can also specify "<Symbol>Collapsed" to change the
-- icon when the tree is collapsed at that symbol, or "Collapsed" to specify a
-- default collapsed icon. The default icon set is determined by the
-- "nerd_font" option below.
-- If you have lspkind-nvim installed, it will be the default icon set.
-- This can be a filetype map (see :help aerial-filetype-map)
icons = {},
-- Control which windows and buffers aerial should ignore.
-- If attach_mode is "global", focusing an ignored window/buffer will
-- not cause the aerial window to update.
-- If open_automatic is true, focusing an ignored window/buffer will not
-- cause an aerial window to open.
-- If open_automatic is a function, ignore rules have no effect on aerial
-- window opening behavior; it's entirely handled by the open_automatic
-- function.
ignore = {
-- Ignore unlisted buffers. See :help buflisted
unlisted_buffers = true,
-- List of filetypes to ignore.
filetypes = {},
-- Ignored buftypes.
-- Can be one of the following:
-- false or nil - No buftypes are ignored.
-- "special" - All buffers other than normal buffers are ignored.
-- table - A list of buftypes to ignore. See :help buftype for the
-- possible values.
-- function - A function that returns true if the buffer should be
-- ignored or false if it should not be ignored.
-- Takes two arguments, `bufnr` and `buftype`.
buftypes = "special",
-- Ignored wintypes.
-- Can be one of the following:
-- false or nil - No wintypes are ignored.
-- "special" - All windows other than normal windows are ignored.
-- table - A list of wintypes to ignore. See :help win_gettype() for the
-- possible values.
-- function - A function that returns true if the window should be
-- ignored or false if it should not be ignored.
-- Takes two arguments, `winid` and `wintype`.
wintypes = "special",
},
-- Use symbol tree for folding. Set to true or false to enable/disable
-- Set to "auto" to manage folds if your previous foldmethod was 'manual'
-- This can be a filetype map (see :help aerial-filetype-map)
manage_folds = true,
-- When you fold code with za, zo, or zc, update the aerial tree as well.
-- Only works when manage_folds = true
-- Fold code when you open/collapse symbols in the tree.
-- Only works when manage_folds = true
link_tree_to_folds = true,
-- Set default symbol icons to use patched font icons (see https://www.nerdfonts.com/)
-- "auto" will set it to true if nvim-web-devicons or lspkind-nvim is installed.
nerd_font = "auto",
-- Call this function when aerial attaches to a buffer.
on_attach = function(bufnr) end,
-- Call this function when aerial first sets symbols on a buffer.
on_first_symbols = function(bufnr) end,
-- Automatically open aerial when entering supported buffers.
-- This can be a function (see :help aerial-open-automatic)
open_automatic = false,
-- Run this command after jumping to a symbol (false will disable)
post_jump_cmd = "normal! zz",
-- When true, aerial will automatically close after jumping to a symbol
close_on_select = false,
-- The autocmds that trigger symbols update (not used for LSP backend)
update_events = "TextChanged,InsertLeave",
-- Show box drawing characters for the tree hierarchy
show_guides = true,
guides = {
-- When the child item has a sibling below it
mid_item = "├─",
-- When the child item is the last in the list
last_item = "└─",
-- When there are nested child guides to the right
nested_top = "",
-- Raw indentation
whitespace = " ",
},
lsp = {
-- Fetch document symbols when LSP diagnostics update.
-- If false, will update on buffer changes.
diagnostics_trigger_update = true,
-- Set to false to not update the symbols when there are LSP errors
update_when_errors = true,
-- How long to wait (in ms) after a buffer change before updating
-- Only used when diagnostics_trigger_update = false
update_delay = 300,
},
treesitter = {
-- How long to wait (in ms) after a buffer change before updating
update_delay = 300,
},
markdown = {
-- How long to wait (in ms) after a buffer change before updating
update_delay = 300,
},
man = {
-- How long to wait (in ms) after a buffer change before updating
update_delay = 300,
},
}
aerial.setup(conf)
end
return M

View file

@ -0,0 +1,20 @@
local M = {}
function M.setup()
local aerial = require("aerial")
local conf = {
backends = { "treesitter", "lsp", "markdown", "man" },
float = {
relative = "win",
override = function(conf)
local padding = 1
conf.anchor = 'NE'
conf.row = padding
conf.col = vim.api.nvim_win_get_width(0) - padding
return conf
end,
},
}
aerial.setup(conf)
end
return M

View file

@ -0,0 +1,23 @@
local g = vim.g
local colors = require('dracula').colors()
vim.cmd[[colorscheme dracula]]
g.rainbow_guifgs = {
colors.red,
colors.orange,
colors.yellow,
colors.green,
colors.purple,
colors.cyan,
colors.pink,
colors.bright_red,
colors.bright_green,
colors.bright_yellow,
colors.bright_blue,
colors.bright_magenta,
colors.bright_cyan
}
g.rainbow_active = 1
--vim.highlight.create('Beacon', {guibg=colors.green, guifg=colors.bg}, false)
vim.api.nvim_set_hl(0, 'Beacon', {bg=colors.green, fg=colors.bg})

View file

@ -0,0 +1,33 @@
local M = {}
local home = os.getenv('HOME')
function scandir(directory)
local i, t, popen = 0, {}, io.popen
local pfile = popen('ls "'..directory..'"')
for filename in pfile:lines() do
i = i + 1
t[i] = filename
end
pfile:close()
return t
end
function M()
catTable = scandir(vim.fn.stdpath('config') .. '/static/')
math.random()
math.randomseed(os.time()+math.random())
math.random(); math.random(); math.random();
file = vim.fn.stdpath('config') .. '/static/' .. catTable[math.random(#catTable)]
local fheight = io.popen('cat '..file..' | wc -l')
local fwidth = io.popen('awk "{print length}" '..file..' | sort -nr | head -1')
local db = require 'dashboard'
db.preview_command = 'cat | lolcat -F 0.3 -p 15'
db.preview_file_path = file
db.preview_file_height = tonumber(fheight:read("*a"))
db.preview_file_width = tonumber(fwidth:read("*a"))
db.header_pad = 0
end
return M()

View file

@ -0,0 +1,80 @@
local M = {}
function M.setup()
local dracula = require("dracula")
--dracula.setup({
-- customize dracula color palette
local conf = {
-- Default dracula colors
-- colors = {
-- bg = "#282A36",
-- fg = "#F8F8F2",
-- selection = "#44475A",
-- comment = "#6272A4",
-- red = "#FF5555",
-- orange = "#FFB86C",
-- yellow = "#F1FA8C",
-- green = "#50fa7b",
-- purple = "#BD93F9",
-- cyan = "#8BE9FD",
-- pink = "#FF79C6",
-- bright_red = "#FF6E6E",
-- bright_green = "#69FF94",
-- bright_yellow = "#FFFFA5",
-- bright_blue = "#D6ACFF",
-- bright_magenta = "#FF92DF",
-- bright_cyan = "#A4FFFF",
-- bright_white = "#FFFFFF",
-- menu = "#21222C",
-- visual = "#3E4452",
-- gutter_fg = "#4B5263",
-- nontext = "#3B4048",
-- },
-- Dracula PRO
colors = {
bg = "#393649",
fg = "#F8F8F2",
selection = "#454158", --prof = #454158
comment = "#6272A4", --pro = #7970A9
red = "#FF9580",
orange = "#FFCA80",
yellow = "#FFFF80",
green = "#8AFF80",
purple = "#9580FF",
cyan = "#80FFEA",
pink = "#FF80BF",
bright_red = "#FF6E6E",
bright_green = "#69FF94",
bright_yellow = "#FFFFA5",
bright_blue = "#D6ACFF",
bright_magenta = "#FF92DF",
bright_cyan = "#A4FFFF",
bright_white = "#FFFFFF",
menu = "#21222C",
visual = "#3E4452",
gutter_fg = "#4B5263",
nontext = "#3B4048",
},
-- show the '~' characters after the end of buffers
show_end_of_buffer = true, -- default false
-- use transparent background
transparent_bg = true, -- default false
-- set custom lualine background color
lualine_bg_color = "#44475a", -- default nil
-- set italic comment
italic_comment = true, -- default false
-- overrides the default highlights see `:h synIDattr`
overrides = {
-- Examples
-- NonText = { fg = dracula.colors().white }, -- set NonText fg to white
-- NvimTreeIndentMarker = { link = "NonText" }, -- link to NonText highlight
-- Nothing = {} -- clear highlight of Nothing
},
}
dracula.setup(conf)
end
-- to use colors in other places
-- local colors = require('dracula').colors()
return M

View file

@ -0,0 +1,17 @@
local M = {}
function M.setup()
local lualine = require 'lualine'
local conf = {
options = {
icons_enabled = true,
theme = 'dracula-nvim',
},
sections = {
lualine_x = {"aerial"},
}
}
lualine.setup(conf)
end
return M

View file

@ -0,0 +1,46 @@
-- require("nvim-tree").setup({
-- disable_netrw = true,
-- hijack_netrw = true,
-- sort_by = "case_sensitive",
-- view = {
-- adaptive_size = true,
-- mappings = {
-- list = {
-- { key = "u", action = "dir_up" },
-- },
-- },
-- },
-- renderer = {
-- group_empty = true,
-- },
-- filters = {
-- dotfiles = false,
-- },
-- })
local M = {}
function M.setup()
local ntree = require 'nvim-tree'
local conf = {
disable_netrw = true,
hijack_netrw = true,
sort_by = "case_sensitive",
view = {
adaptive_size = true,
mappings = {
list = {
{ key = "u", action = "dir_up" },
},
},
},
renderer = {
group_empty = true,
},
filters = {
dotfiles = false,
},
}
ntree.setup(conf)
end
return M

View file

@ -0,0 +1,61 @@
local M = {}
function M.setup()
local colors = require('dracula').colors()
local sitter = require("nvim-treesitter.configs")
local conf = {
ensure_installed = "all",
sync_install = false,
ignore_install = {""},
matchup = {
enable = true,
disable_virtual_text = true,
},
highlight = {
enable = true,
disable = {},
additional_vim_regex_highlighting = true,
},
autopairs = {
enable = true,
},
indent = {
enable = true,
--disable = {
--"python",
--"css"
--}
--
},
audotag = {
enable = true,
disable = {
"xml",
"markdown",
},
},
rainbow = {
enable = true,
extended_mode = false,
colors = {
colors.red,
colors.orange,
colors.yellow,
colors.green,
colors.purple,
colors.cyan,
colors.pink,
colors.bright_red,
colors.bright_green,
colors.bright_yellow,
colors.bright_blue,
colors.bright_magenta,
colors.bright_cyan
},
},
}
sitter.setup(conf)
end
return M

View file

@ -0,0 +1,63 @@
local M = {}
function M.setup()
local whichkey = require "which-key"
local conf = {
window = {
border = "single", -- none, single, double, shadow
position = "bottom", -- bottom, top
},
}
local opts = {
mode = "n", -- Normal mode
prefix = "<leader>",
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
silent = true, -- use `silent` when creating keymaps
noremap = true, -- use `noremap` when creating keymaps
nowait = false, -- use `nowait` when creating keymaps
}
local mappings = {
["w"] = { "<cmd>update!<CR>", "Save" },
["q"] = { "<cmd>q!<CR>", "Quit" },
["e"] = { "<cmd>NvimTreeToggle<CR>", "Nvim Tree"},
["a"] = { "<cmd>AerialToggle! float<CR>","Aerial Toggle"},
o = {
name = "+open",
},
b = {
name = "Buffer",
c = { "<Cmd>bd!<Cr>", "Close current buffer" },
D = { "<Cmd>%bd|e#|bd#<Cr>", "Delete all buffers" },
},
z = {
name = "Packer",
c = { "<cmd>PackerCompile<cr>", "Compile" },
i = { "<cmd>PackerInstall<cr>", "Install" },
s = { "<cmd>PackerSync<cr>", "Sync" },
S = { "<cmd>PackerStatus<cr>", "Status" },
u = { "<cmd>PackerUpdate<cr>", "Update" },
},
g = {
name = "Git",
s = { "<cmd>Neogit<CR>", "Status" },
},
v = {
name = "Visual",
r = { "<cmd>RainbowToggle<cr>", "Rainbow Brackets Toggle"},
},
}
whichkey.setup(conf)
whichkey.register(mappings, opts)
end
return M

View file

@ -0,0 +1,20 @@
local M = {}
function M.setup()
local winshift = require("winshift")
local conf = {
conf = {
highlight_moving_win = true, --hl window when being moved
focused_hl_group = "Visual", -- hl group for moving window
moving_win_options = {
wrap = false,
cursorline = false,
cusorcolumn = false,
colorcolumn = "",
}
}
}
winshift.setup(conf)
end
return M

153
.config/nvim/lua/diag.lua Normal file
View file

@ -0,0 +1,153 @@
-- Echoing of LSP diagnostics in the commandline.
local M = {}
-- Location information about the last message printed. The format is
-- `(did print, buffer number, line number)`.
local last_echo = { false, -1, -1 }
-- The timer used for displaying a diagnostic in the commandline.
local echo_timer = nil
-- The timer after which to display a diagnostic in the commandline.
local echo_timeout = 250
-- The highlight group to use for warning messages.
local warning_hlgroup = 'WarningMsg'
-- The highlight group to use for error messages.
local error_hlgroup = 'ErrorMsg'
-- If the first diagnostic line has fewer than this many characters, also add
-- the second line to it.
local short_line_limit = 20
-- Shows the current line's diagnostics in a floating window.
function M.show_line_diagnostics()
vim
.lsp
.diagnostic
.show_line_diagnostics({ severity_limit = 'Warning' }, vim.fn.bufnr(''))
end
-- Prints the first diagnostic for the current line.
function M.echo_diagnostic()
if echo_timer then
echo_timer:stop()
end
echo_timer = vim.defer_fn(
function()
local line = vim.fn.line('.') - 1
local bufnr = vim.api.nvim_win_get_buf(0)
if last_echo[1] and last_echo[2] == bufnr and last_echo[3] == line then
return
end
local diags = vim
.lsp
.diagnostic
.get_line_diagnostics(bufnf, line, { severity_limit = 'Warning' })
if #diags == 0 then
-- If we previously echo'd a message, clear it out by echoing an empty
-- message.
if last_echo[1] then
last_echo = { false, -1, -1 }
vim.api.nvim_command('echo ""')
end
return
end
last_echo = { true, bufnr, line }
local diag = diags[1]
local width = vim.api.nvim_get_option('columns') - 15
local lines = vim.split(diag.message, "\n")
local message = lines[1]
local trimmed = false
if #lines > 1 and #message <= short_line_limit then
message = message .. ' ' .. lines[2]
end
if width > 0 and #message >= width then
message = message:sub(1, width) .. '...'
end
local kind = 'warning'
local hlgroup = warning_hlgroup
if diag.severity == vim.lsp.protocol.DiagnosticSeverity.Error then
kind = 'error'
hlgroup = error_hlgroup
end
local chunks = {
{ kind .. ': ', hlgroup },
{ message }
}
vim.api.nvim_echo(chunks, false, {})
end,
echo_timeout
)
end
return M

View file

@ -0,0 +1,22 @@
local keymap = vim.api.nvim_set_keymap
local default_opts = { noremap = true, silent = true }
local expr_opts = { noremap = true, expr = true, silent = true }
-- Better escape using jk in insert and terminal mode
keymap("i", "jk", "<ESC>", default_opts)
keymap("t", "jk", "<C-\\><C-n>", default_opts)
-- Center search results
keymap("n", "n", "nzz", default_opts)
keymap("n", "N", "Nzz", default_opts)
-- Paste over currently selected text without yanking it
keymap("v", "p", '"_dP', default_opts)
-- Cancel search highlighting with ESC
keymap("n", "<ESC>", ":nohlsearch<Bar>:echo<CR>", default_opts)
-- Move selected line / block of text in visual mode
keymap("x", "K", ":move '<-2<CR>gv-gv", default_opts)
keymap("x", "J", ":move '>+1<CR>gv-gv", default_opts)
-- Resizing panes
keymap("n", "<S-Left>", ":vertical resize +1<CR>", default_opts)
keymap("n", "<S-Right>", ":vertical resize -1<CR>", default_opts)
keymap("n", "<S-Up>", ":resize -1<CR>", default_opts)
keymap("n", "<S-Down>", ":resize +1<CR>", default_opts)

View file

@ -0,0 +1,148 @@
local M = {}
function M.setup()
-- Indicate first time installation
local packer_bootstrap = false
-- packer.nvim configuration
--
local conf = {
display = {
open_fn = function()
return require("packer.util").float { border = "rounded" }
end,
},
}
-- Check if packer.nvim is installed
-- Run PackerCompile if there are changes in this file
local function packer_init()
local fn = vim.fn
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(install_path)) > 0 then
packer_bootstrap = fn.system {
"git",
"clone",
"--depth",
"1",
"https://github.com/wbthomason/packer.nvim",
install_path,
}
vim.cmd [[packadd packer.nvim]]
end
vim.cmd "autocmd BufWritePost plugins.lua source <afile> | PackerCompile"
end
-- Plugins
local function plugins(use)
use { "wbthomason/packer.nvim" }
-- rainbow brackets
use { 'frazrepo/vim-rainbow' }
use { "p00f/nvim-ts-rainbow" }
use { "tpope/vim-surround" }
use { "danilamihailov/beacon.nvim" }
use {
'VonHeikemen/lsp-zero.nvim',
requires = {
-- LSP Support
{'neovim/nvim-lspconfig'},
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
-- Autocompletion
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'saadparwaiz1/cmp_luasnip'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-nvim-lua'},
-- Snippets
{'L3MON4D3/LuaSnip'},
{'rafamadriz/friendly-snippets'},
}
}
use {
'nvim-treesitter/nvim-treesitter',
run = function()
require('nvim-treesitter.install').update({ with_sync = true })
end,
config = function()
require('config.nvim-treesitter').setup()
end,
}
use {
'stevearc/aerial.nvim',
}
use {
'sindrets/winshift.nvim',
config = function()
require('config.winshift').setup()
end,
}
-- Better icons
use {
"kyazdani42/nvim-web-devicons",
module = "nvim-web-devicons",
config = function()
require("nvim-web-devicons").setup { default = true }
end,
}
-- dracula-vim
use {
'Mofiqul/dracula.nvim',
config = function()
require('config.dracula-vim').setup()
end,
}
-- nvim-tree
use {
'kyazdani42/nvim-tree.lua',
config = function()
require('config.nvim-tree').setup()
end,
}
-- lua-line
use {
'nvim-lualine/lualine.nvim',
config = function()
require("config.lualine").setup()
end,
}
-- WhichKey
use {
"folke/which-key.nvim",
config = function()
require("config.whichkey").setup()
end,
}
--dashboard-nvim
use {
'glepnir/dashboard-nvim',
config = function()
require("config.dashboard")
end,
}
-- Bootstrap Neovim
if packer_bootstrap then
print "Restart Neovim required after installation!"
require("packer").sync()
end
end
packer_init()
local packer = require "packer"
packer.init(conf)
packer.startup(plugins)
local lsp = require('lsp-zero')
lsp.preset('recommended')
lsp.nvim_workspace()
lsp.setup{
on_attach = require("aerial").on_attach,
}
end
return M.setup()

View file

@ -0,0 +1,290 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/mr0xb/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/mr0xb/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/mr0xb/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/mr0xb/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/mr0xb/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
LuaSnip = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/LuaSnip",
url = "https://github.com/L3MON4D3/LuaSnip"
},
["aerial.nvim"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/aerial.nvim",
url = "https://github.com/stevearc/aerial.nvim"
},
["beacon.nvim"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/beacon.nvim",
url = "https://github.com/danilamihailov/beacon.nvim"
},
["cmp-buffer"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/cmp-buffer",
url = "https://github.com/hrsh7th/cmp-buffer"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
},
["cmp-nvim-lua"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua",
url = "https://github.com/hrsh7th/cmp-nvim-lua"
},
["cmp-path"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/cmp-path",
url = "https://github.com/hrsh7th/cmp-path"
},
cmp_luasnip = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
url = "https://github.com/saadparwaiz1/cmp_luasnip"
},
["dashboard-nvim"] = {
config = { "\27LJ\2\n0\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\21config.dashboard\frequire\0" },
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/dashboard-nvim",
url = "https://github.com/glepnir/dashboard-nvim"
},
["dracula.nvim"] = {
config = { "\27LJ\2\n@\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\23config.dracula-vim\frequire\0" },
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/dracula.nvim",
url = "https://github.com/Mofiqul/dracula.nvim"
},
["friendly-snippets"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/friendly-snippets",
url = "https://github.com/rafamadriz/friendly-snippets"
},
["lsp-zero.nvim"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim",
url = "https://github.com/VonHeikemen/lsp-zero.nvim"
},
["lualine.nvim"] = {
config = { "\27LJ\2\n<\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19config.lualine\frequire\0" },
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["mason-lspconfig.nvim"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
url = "https://github.com/williamboman/mason-lspconfig.nvim"
},
["mason.nvim"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/mason.nvim",
url = "https://github.com/williamboman/mason.nvim"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/nvim-cmp",
url = "https://github.com/hrsh7th/nvim-cmp"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-tree.lua"] = {
config = { "\27LJ\2\n>\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\21config.nvim-tree\frequire\0" },
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
url = "https://github.com/kyazdani42/nvim-tree.lua"
},
["nvim-treesitter"] = {
config = { "\27LJ\2\nD\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\27config.nvim-treesitter\frequire\0" },
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["nvim-ts-rainbow"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/nvim-ts-rainbow",
url = "https://github.com/p00f/nvim-ts-rainbow"
},
["nvim-web-devicons"] = {
config = { "\27LJ\2\nO\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\fdefault\2\nsetup\22nvim-web-devicons\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons",
url = "https://github.com/kyazdani42/nvim-web-devicons"
},
["packer.nvim"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
["vim-rainbow"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/vim-rainbow",
url = "https://github.com/frazrepo/vim-rainbow"
},
["vim-surround"] = {
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/vim-surround",
url = "https://github.com/tpope/vim-surround"
},
["which-key.nvim"] = {
config = { "\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20config.whichkey\frequire\0" },
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/which-key.nvim",
url = "https://github.com/folke/which-key.nvim"
},
["winshift.nvim"] = {
config = { "\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20config.winshift\frequire\0" },
loaded = true,
path = "/home/mr0xb/.local/share/nvim/site/pack/packer/start/winshift.nvim",
url = "https://github.com/sindrets/winshift.nvim"
}
}
time([[Defining packer_plugins]], false)
local module_lazy_loads = {
["^nvim%-web%-devicons"] = "nvim-web-devicons"
}
local lazy_load_called = {['packer.load'] = true}
local function lazy_load_module(module_name)
local to_load = {}
if lazy_load_called[module_name] then return nil end
lazy_load_called[module_name] = true
for module_pat, plugin_name in pairs(module_lazy_loads) do
if not _G.packer_plugins[plugin_name].loaded and string.match(module_name, module_pat) then
to_load[#to_load + 1] = plugin_name
end
end
if #to_load > 0 then
require('packer.load')(to_load, {module = module_name}, _G.packer_plugins)
local loaded_mod = package.loaded[module_name]
if loaded_mod then
return function(modname) return loaded_mod end
end
end
end
if not vim.g.packer_custom_loader_enabled then
table.insert(package.loaders, 1, lazy_load_module)
vim.g.packer_custom_loader_enabled = true
end
-- Config for: winshift.nvim
time([[Config for winshift.nvim]], true)
try_loadstring("\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20config.winshift\frequire\0", "config", "winshift.nvim")
time([[Config for winshift.nvim]], false)
-- Config for: lualine.nvim
time([[Config for lualine.nvim]], true)
try_loadstring("\27LJ\2\n<\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19config.lualine\frequire\0", "config", "lualine.nvim")
time([[Config for lualine.nvim]], false)
-- Config for: dashboard-nvim
time([[Config for dashboard-nvim]], true)
try_loadstring("\27LJ\2\n0\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\21config.dashboard\frequire\0", "config", "dashboard-nvim")
time([[Config for dashboard-nvim]], false)
-- Config for: which-key.nvim
time([[Config for which-key.nvim]], true)
try_loadstring("\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20config.whichkey\frequire\0", "config", "which-key.nvim")
time([[Config for which-key.nvim]], false)
-- Config for: nvim-treesitter
time([[Config for nvim-treesitter]], true)
try_loadstring("\27LJ\2\nD\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\27config.nvim-treesitter\frequire\0", "config", "nvim-treesitter")
time([[Config for nvim-treesitter]], false)
-- Config for: nvim-tree.lua
time([[Config for nvim-tree.lua]], true)
try_loadstring("\27LJ\2\n>\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\21config.nvim-tree\frequire\0", "config", "nvim-tree.lua")
time([[Config for nvim-tree.lua]], false)
-- Config for: dracula.nvim
time([[Config for dracula.nvim]], true)
try_loadstring("\27LJ\2\n@\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\23config.dracula-vim\frequire\0", "config", "dracula.nvim")
time([[Config for dracula.nvim]], false)
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

View file

@ -0,0 +1,26 @@
.8
.888
.8888'
.8888'
888'
8'
.88888888888. .88888888888.
.8888888888888888888888888888888.
.8888888888888888888888888888888888.
.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.
`%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.
`00000000000000000000000000000000000'
`000000000000000000000000000000000'
`0000000000000000000000000000000'
`###########################'
jgs `#######################'
`#########''########'
`""""""' `"""""'

View file

@ -0,0 +1,31 @@
_ood>H&H&Z?#M#b-\.
.\HMMMMMR?`\M6b."`' ''``v.
.. .MMMMMMMMMMHMMM#&. ``~o.
. ,HMMMMMMMMMM`' ' ?MP?.
. |MMMMMMMMMMM' `"$b&\
- |MMMMHH##M' HMMH?
- TTM| >.. \HMMMMH
: |MM\,#-""$~b\. `MMMMMM+
. ``"H&# - &MMMMMM|
: *\v,#MHddc. `9MMMMMb
. MMMMMMMM##\ `"":HM
- . .HMMMMMMMMMMRo_. |M
: |MMMMMMMMMMMMMMMM#\ :M
- `HMMMMMMMMMMMMMM' |T
: `*HMMMMMMMMMMM' H'
: MMMMMMMMMMM| |T
; MMMMMMMM?' ./
` MMMMMMH' ./'
- |MMMH#' .
` `MM* . `
_ #M: . . .-'
. ., .-'
'-.-~ooHH__,,v~--`'
__ __ __ __ __ ____ __ __
/ / / /___ ______/ /__ / /_/ /_ ___ / __ \/ /___ _____ ___ / /_
/ /_/ / __ `/ ___/ //_/ / __/ __ \/ _ \ / /_/ / / __ `/ __ \/ _ \/ __/
/ __ / /_/ / /__/ ,< / /_/ / / / __/ / ____/ / /_/ / / / / __/ /_
/_/ /_/\__,_/\___/_/|_| \__/_/ /_/\___/ /_/ /_/\__,_/_/ /_/\___/\__/

View file

@ -0,0 +1,10 @@
____
/___/\_ __
_\ \/_/\__ _| |_
__\ \/_/\ _| |_
\ __ __ \ \ | _ _ |
__\ \_\ \_\ \ \ __ | |_| |_| |
/_/\\ __ __ \ \_/_/\ _ | _ _ | _
\_\/_\__\/\__\/\__\/_\_\/ |_|_|_| |__| |_|_|_|
\_\/_/\ /_\_\/ |_|_ _|_|
\_\/ \_\/ |_| |_|

View file

@ -0,0 +1,26 @@
_______________________________________
|\ ___________________________________ /|
| | _ _ | |
| |(+) _ _ (+)| |
| | ~ _--/ \--_ ~ | |
| | / / \ \ | |
| | / | | \ | |
| | / | | \ | |
| | | | _______ | | | |
| | | | \ / | | | |
| | \ \_ | | _/ / | |
| | \ -__| |__- / | |
| | \_ _/ | |
| | --__ __-- | |
| | --| |-- | |
| | | | | |
| | | | | |
| | | | |
| | | |
| | I S G O O D F O R Y O U | |
| | _ _ | |
| |(+) (+)| |
| | ~ ~ | |
|/ ----------------------------------- \|
---------------------------------------

View file

@ -0,0 +1,19 @@
.-"""-.
' \
|,. ,-. |
|()L( ()| |
|,' `".| |
|.___.',| `
.j `--"' ` `.
/ ' ' \
/ / ` `.
/ / ` .
/ / l |
. , | |
,"`. .| |
_.' ``. | `..-'l
| `.`, | `.
| `. __.j )
|__ |--""___| ,-'
`"--...,+"""" `._,.-' mh

View file

@ -0,0 +1,22 @@
/'. /| .'\
,._ |+i\ /++\ / +| ,,
|*+'._/+++\/+ ++\/+++<_.-'+|
:-. \ ++++?++ +++++*++++++ +++ / .-:
|*+\_/++++ +++*++ ++++++ ++?++++\_/ +|
, \*+++++ ++++ +++*+++ ++++ +++ +++++/ ,
\'-._> +__+*++__*+++_+__*++ ++__++++__*<_.-'/
`>*+++| \++/ |+*/ `\ +| |++/ |++++<'
_,-'+ * +*\ \/ /++|__.-. |+ | |+/ /+ +*+'-._
'-.*+++++++\ /+ ++++++/ / *| |/ /+ ++++++.-'
> *+++++\ /*++++ +/` /`+++| < *++ +++<
_,-'* +++ ++| |++ +*/` /` +* +| |\ \+ ++++++'-._
`-._+ +*++?+| |+++*| '-----.+| |+\ \+* ++ +_.-'
_`\++++++|__|+ *+|________|+|__|++\__|++++/`_
/*++_+* + +++++ ++ + ++++ +++++ ++ ++++ ++_+*+\
'--' `>*+++ +++++ +++++*++++ +++ ++++ ?<' '--'
/++_++ ++ ++++++ ++?+ +++++*+++ ++++ \
|_/ `\++ ++ +++*++++++++++ ++++*./`\_|
/+*.-.*+ +_ ++*+ _+++ .-.* +\
jgs | / | +/ `\?+/` \*+| \ |
' \.' |/ './ '

11
.config/sxhkd.service Normal file
View file

@ -0,0 +1,11 @@
[Unit]
Description=Simple X Hotkey Daemon
Documentation=man:sxhkd(1)
[Service]
ExecStartPre=/usr/bin/sleep 2
ExecStart=/usr/bin/sxhkd -m 1
ExecReload=/usr/bin/kill -SIGUSR1 $MAINPID
[Install]
WantedBy=default.target

3
.config/sxhkd/sxhkdrc Normal file
View file

@ -0,0 +1,3 @@
#alacritty
alt + z
tdrop -n top --width 100% --height 65% --post-map-hook 'wmctrl -r "Alacritty - Drop Down - Top" -b add,above,sticky' alacritty --title 'Alacritty - Drop Down - Top'

1729
.p10k.zsh Normal file

File diff suppressed because it is too large Load diff

2
.tool-versions Normal file
View file

@ -0,0 +1,2 @@
python 3.11.0
golang 1.19.3

115
.zshrc Normal file
View file

@ -0,0 +1,115 @@
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
#ZSH_THEME="robbyrussell"
ZSH_THEME="powerlevel10k/powerlevel10k"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git asdf)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
[[ ! -d ~/.zshrc.d ]] || source ~/.zshrc.d/*.zsh
export PATH=$PATH:$HOME/.config/bin
. /home/mr0xb/.asdf/asdf.sh

179
.zshrc.d/aliases.zsh Normal file
View file

@ -0,0 +1,179 @@
#===================================
# DIRECTORY MANAGEMENT
#===================================
alias ..='cd ..'
alias .1='cd ..'
alias .2='cd ../../'
alias .3='cd ../../../'
alias .4='../../../../'
alias .5='cd ../../../../../'
alias APPS='cd ${HOME}/GIT_REPOS/APPLICATION-DEPLOYMENTS'
alias INFRA='cd ${HOME}/GIT_REPOS/CLOUD-INFRASTRUCTURE-TERRAFORM'
alias EKS-BASE='cd ${HOME}/GIT_REPOS/EKS-BASE-DEPLOY'
alias K8S-BASE='cd ${HOME}/GIT_REPOS/K8S-BASE-DEPLOY'
alias config='/usr/bin/git --git-dir=$HOME/.cfg/.git/ --work-tree=$HOME'
#===================================
# COMMAND MODIFICATIONS & REMAPS
#===================================
alias l='exa'
alias la='exa -aF'
#alias ls='exa -laF --color=always --icons'
alias lt='exa --tree --level=2'
alias llm='exa -lbF --git --sort=modified'
alias vi='vim'
alias dog='cat'
alias grep='grep --color=always'
alias Grep='grep'
alias Gerp='grep'
alias gerp='grep'
alias fgrep='fgrep --color=always'
alias egrep='egrep --color=always'
alias nano='vim'
alias emacs='vim'
alias notepad.exe='vim'
alias diff='colordiff --side-by-side --suppress-common-lines'
alias header='curl -I'
alias headerc='curl -I --compress'
#===================================
# AWS & INFRA-TOOLS
#===================================
#AWS
alias ac='aws-cred'
alias av='aws-vault'
alias tg='terragrunt'
#Terraform / Terragrun
alias tgp="terragrunt plan"
alias tgps="terragrunt plan --terragrunt-source-update"
alias tga="terragrunt apply"
alias tgaA="terragrunt apply -auto-approve"
alias tgas="terragrunt apply --terragrunt-source-update"
alias tgasA="terragrunt apply --terragrunt-source-update -auto-approve"
alias tgi="terragrunt init"
alias tgis="terragrunt init --terragrunt-source-update"
alias tgo="terragrunt output"
#Kuberenetes
alias kx='kubectx'
alias kn='kubens'
alias ku='kustomize'
alias kub='kustomize build --enable-alpha-plugins --load-restrictor LoadRestrictionsNone'
alias k='kubectl'
alias kg='kubectl get'
alias kd='kubectl describe'
alias kge='kubectl get events'
alias kgp='kubectl get pods'
alias kgn='kubectl get nodes'
alias kgic='kubectl get ingressclass'
alias kdic='kubectl describe ingressclass'
alias kgpv='kubectl get pv'
alias kdpv='kubectl describe pv'
alias klt='kubectl logs -f'
alias kbug='kubectl run -i --tty --rm debug --image=ubuntu --restart=Never -- /bin/bash'
alias kgsec='kubectl get secret'
alias kgj='kubectl get job'
alias fqdn="kubectl get ingress -o json | jq '.items[] | .metadata.namespace + \": \" + .metadata.annotations.\"external-dns.alpha.kubernetes.io/hostname\"'"
alias fqdna="kubectl get ingress --all-namespaces -o json | jq '.items[] | .metadata.namespace + \": \" + .metadata.annotations.\"external-dns.alpha.kubernetes.io/hostname\"'"
#Kubernetes + Teleport
alias tkl='tsh kube ls'
#===================================
# USEFUL / CONVIENENCE
#===================================
alias hogs='ps -eorss,args | sort -nr | pr -TW$COLUMNS | head'
alias untar='tar -zxvf'
alias lstar='tar -tvf'
alias perms='stat -f "%A %Sp -> owner=%SHp group=%SMp other=%SLp"'
#alias pydocs="elinks https://docs.python.org/$(python --version | awk '{print $2}' | sed 's/\.[0-9]*$//')/py-modindex.html"
if [[ "$OSTYPE" == "darwin" ]]; then
#do mac stuff
else
alias open='xdg-open'
alias pydocs="w3m https://docs.python.org/$(/usr/bin/env python3 --version | awk '{print $2}' | sed 's/\.[0-9]*$//')/py-modindex.html"
fi
alias hr='printf $(printf "\e[$(shuf -i 91-97 -n 1);1m%%%ds\e[0m\n" $(tput cols)) | tr " " ='
#===================================
# DO THE SAFETY DANCE
#===================================
alias cp='cp -i'
alias rm='rm -i'
alias ln='ln -i'
alias mv='mv -i'
#===================================
# MISC
#===================================
if [ $UID -ne 0 ]; then
alias reboot='sudo reboot'
if [[ $OSTYPE != 'darwin'* ]]; then
alias upgradeall='sudo apt-get update && sudo apt-get upgrade'
fi
fi
#===================================
# FUNCS
#===================================
#i use exa and have ls muscle memory, current version of exa does not take -t and will error out#this is a fair work around; https://github.com/ogham/exa/issues/519#issuecomment-560608534
function ls {
if [ "$1" = "-ltr" ]; then
exa -lsnew "${@:2}" -l -F --color=always --icons
elif [ "$1" = "-lrt" ]; then
exa -lsnew "${@:2}" -l -F --color=always --icons
elif [ "$1" = "-latr" ]; then
exa -lsnew "${@:2}" -la -F --color=always --icons
elif [ "$1" = "-lahtr" ]; then
exa -lsnew "${@:2}" -lah -F --color=always --icons
elif [ "$1" = "-alhtr" ]; then
exa -lsnew "${@:2}" -lah -F --color=always --icons
elif [ "$1" = "latr" ]; then
exa -lsnew "${@:3}" -lah -F --color=always --icons
elif [ "$1" = "altr" ]; then
exa -lsnew "${@:3}" -lah -F --color=always --icons
elif [ "$1" = "lahtr" ]; then
exa -lsnew "${@:3}" -lah -F --color=always --icons
elif [ "$1" = "-altr" ]; then
exa -lsnew "${@:2}" -lah -F --color=always --icons
elif [ "$1" = "a-ltr" ]; then
exa -lsnew "${@:2}" -lah -F --color=always --icons
else
exa "$@" -a
fi
}
function urlencode {
python -c "import sys; from urllib.parse import quote_plus; print(quote_plus(sys.stdin.read()))"
}
function urldecode {
python -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()), end='')"
}
function tfdocs {
open "https://registry.terraform.io/search/providers?q=`echo "${@}" | urlencode`"
}
function google {
open "https://www.google.com/search?q=`echo "${@}" | urlencode`"
}
function hred () {
[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"
cat $input | grep --color -E -v '^\s*$|^\s*#.*$'
}
function run {
"$@" < /dev/null &> /dev/null &
}
function topfile {
find $1 -xdev -type f -ls |sort -k 7 -r -n | head -$2 |awk '{size=$7/1024/1024; printf("%dMb %s\n", size,$11);}'
}
function topdir {
du -alx $1 | sort -n -r | head -$2 | awk '{size=$1/1024/1024; printf("%dMb %s\n", size,$2);}'
}

8
.zshrc.d/gopath.zsh Normal file
View file

@ -0,0 +1,8 @@
# GoPath stuff
#export PATH="$PATH:${HOME}/.bin"
#export GOPATH="${HOME}/go"
#export GOBIN="${HOME}/go/bin/"
#export PATH=$PATH:$GOROOT/bin:$GOBIN
export PATH="$PATH:`go env GOPATH`/bin"
export HISTCONTROL=ignorespace:ignoredups

5
.zshrc.d/hred.zsh Normal file
View file

@ -0,0 +1,5 @@
hred() {
[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"
cat $input | grep -E -v '^\s*$|^\s*#.*$'
}