This commit is contained in:
Steve 2023-03-30 21:15:46 -04:00
commit 984dc04492
30 changed files with 2213 additions and 1 deletions

View file

@ -135,7 +135,7 @@ require('aerial').setup({
attach_mode = "global",
close_automatic_events = {"switch_buffer"},
float = {
relative = "editor",
relative = "win",
override = function(conf)
local padding = 1
conf.anchor = 'NE'

276
.config/zellij/config.kdl Normal file
View file

@ -0,0 +1,276 @@
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
keybinds {
normal {
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
locked {
bind "Ctrl g" { SwitchToMode "Normal"; }
}
resize {
bind "Ctrl n" { SwitchToMode "Normal"; }
bind "h" "Left" { Resize "Left"; }
bind "j" "Down" { Resize "Down"; }
bind "k" "Up" { Resize "Up"; }
bind "l" "Right" { Resize "Right"; }
bind "=" "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
}
pane {
bind "Ctrl p" { SwitchToMode "Normal"; }
bind "h" "Left" { MoveFocus "Left"; }
bind "l" "Right" { MoveFocus "Right"; }
bind "j" "Down" { MoveFocus "Down"; }
bind "k" "Up" { MoveFocus "Up"; }
bind "p" { SwitchFocus; }
bind "n" { NewPane; SwitchToMode "Normal"; }
bind "d" { NewPane "Down"; SwitchToMode "Normal"; }
bind "r" { NewPane "Right"; SwitchToMode "Normal"; }
bind "x" { CloseFocus; SwitchToMode "Normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "Normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;}
}
move {
bind "Ctrl h" { SwitchToMode "Normal"; }
bind "n" "Tab" { MovePane; }
bind "h" "Left" { MovePane "Left"; }
bind "j" "Down" { MovePane "Down"; }
bind "k" "Up" { MovePane "Up"; }
bind "l" "Right" { MovePane "Right"; }
}
tab {
bind "Ctrl t" { SwitchToMode "Normal"; }
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
bind "l" "Right" "Down" "j" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "Normal"; }
bind "x" { CloseTab; SwitchToMode "Normal"; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
bind "Tab" { ToggleTab; }
}
scroll {
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "e" { EditScrollback; SwitchToMode "Normal"; }
bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
search {
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
bind "n" { Search "down"; }
bind "p" { Search "up"; }
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "w" { SearchToggleOption "Wrap"; }
bind "o" { SearchToggleOption "WholeWord"; }
}
entersearch {
bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; }
bind "Enter" { SwitchToMode "Search"; }
}
renametab {
bind "Ctrl c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
}
renamepane {
bind "Ctrl c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
}
session {
bind "Ctrl o" { SwitchToMode "Normal"; }
bind "Ctrl s" { SwitchToMode "Scroll"; }
bind "d" { Detach; }
}
tmux {
bind "[" { SwitchToMode "Scroll"; }
bind "Ctrl b" { Write 2; SwitchToMode "Normal"; }
bind "\"" { NewPane "Down"; SwitchToMode "Normal"; }
bind "%" { NewPane "Right"; SwitchToMode "Normal"; }
bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "c" { NewTab; SwitchToMode "Normal"; }
bind "," { SwitchToMode "RenameTab"; }
bind "p" { GoToPreviousTab; SwitchToMode "Normal"; }
bind "n" { GoToNextTab; SwitchToMode "Normal"; }
bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "o" { FocusNextPane; }
bind "d" { Detach; }
}
shared_except "locked" {
bind "Ctrl g" { SwitchToMode "Locked"; }
bind "Ctrl q" { Quit; }
bind "Alt n" { NewPane; }
bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; }
bind "Alt j" "Alt Down" { MoveFocus "Down"; }
bind "Alt k" "Alt Up" { MoveFocus "Up"; }
bind "Alt =" "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
shared_except "normal" "locked" {
bind "Enter" "Esc" { SwitchToMode "Normal"; }
}
shared_except "pane" "locked" {
bind "Ctrl p" { SwitchToMode "Pane"; }
}
shared_except "resize" "locked" {
bind "Ctrl n" { SwitchToMode "Resize"; }
}
shared_except "scroll" "locked" {
bind "Ctrl s" { SwitchToMode "Scroll"; }
}
shared_except "session" "locked" {
bind "Ctrl o" { SwitchToMode "Session"; }
}
shared_except "tab" "locked" {
bind "Ctrl t" { SwitchToMode "Tab"; }
}
shared_except "move" "locked" {
bind "Ctrl h" { SwitchToMode "Move"; }
}
shared_except "tmux" "locked" {
bind "Ctrl b" { SwitchToMode "Tmux"; }
}
}
plugins {
tab-bar { path "tab-bar"; }
status-bar { path "status-bar"; }
strider { path "strider"; }
compact-bar { path "compact-bar"; }
}
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Send a request for a simplified ui (without arrow fonts) to plugins
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Toggle between having pane frames around the panes
// Options:
// - true (default)
// - false
//
// pane_frames true
// Define color themes for Zellij
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
//
themes {
dracula {
fg 248 248 242
bg 40 42 54
red 255 85 85
green 80 250 123
yellow 241 250 140
blue 98 114 164
magenta 255 121 198
orange 255 184 108
cyan 139 233 253
black 0 0 0
white 255 255 255
}
}
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "dracula"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// Choose the mode that zellij uses when starting up.
// Default: normal
//
// default_mode "locked"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
mouse_mode true
scroll_buffer_size 20000
copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false
copy_on_select true
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// Default: false
//
// mirror_session true
// The folder in which Zellij will look for layouts
//
// layout_dir "/path/to/my/layout_dir"
theme_dir "/home/mr0xb/.config/zellij_cfg/themes"

38
alacritty/alacritty.yml Normal file
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

2
alacritty/bindings.yml Normal file
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'

159
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 = "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,
},
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
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

22
nvim/lua/key_bindings.lua Normal file
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)

148
nvim/lua/plugins.lua Normal file
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

26
nvim/static/apple.cat Normal file
View file

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

31
nvim/static/htp2.cat Normal file
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~--`'
__ __ __ __ __ ____ __ __
/ / / /___ ______/ /__ / /_/ /_ ___ / __ \/ /___ _____ ___ / /_
/ /_/ / __ `/ ___/ //_/ / __/ __ \/ _ \ / /_/ / / __ `/ __ \/ _ \/ __/
/ __ / /_/ / /__/ ,< / /_/ / / / __/ / ____/ / /_/ / / / / __/ /_
/_/ /_/\__,_/\___/_/|_| \__/_/ /_/\___/ /_/ /_/\__,_/_/ /_/\___/\__/

10
nvim/static/invaders.cat Normal file
View file

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

26
nvim/static/quake.cat Normal file
View file

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

19
nvim/static/tux.cat Normal file
View file

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

22
nvim/static/y2k.cat Normal file
View file

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

11
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

6
sxhkd/sxhkdrc Normal file
View file

@ -0,0 +1,6 @@
#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'
super + shift + Return
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'

276
zellij/config.kdl Normal file
View file

@ -0,0 +1,276 @@
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
keybinds {
normal {
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
locked {
bind "Ctrl g" { SwitchToMode "Normal"; }
}
resize {
bind "Ctrl n" { SwitchToMode "Normal"; }
bind "h" "Left" { Resize "Left"; }
bind "j" "Down" { Resize "Down"; }
bind "k" "Up" { Resize "Up"; }
bind "l" "Right" { Resize "Right"; }
bind "=" "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
}
pane {
bind "Ctrl p" { SwitchToMode "Normal"; }
bind "h" "Left" { MoveFocus "Left"; }
bind "l" "Right" { MoveFocus "Right"; }
bind "j" "Down" { MoveFocus "Down"; }
bind "k" "Up" { MoveFocus "Up"; }
bind "p" { SwitchFocus; }
bind "n" { NewPane; SwitchToMode "Normal"; }
bind "d" { NewPane "Down"; SwitchToMode "Normal"; }
bind "r" { NewPane "Right"; SwitchToMode "Normal"; }
bind "x" { CloseFocus; SwitchToMode "Normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "Normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;}
}
move {
bind "Ctrl h" { SwitchToMode "Normal"; }
bind "n" "Tab" { MovePane; }
bind "h" "Left" { MovePane "Left"; }
bind "j" "Down" { MovePane "Down"; }
bind "k" "Up" { MovePane "Up"; }
bind "l" "Right" { MovePane "Right"; }
}
tab {
bind "Ctrl t" { SwitchToMode "Normal"; }
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
bind "l" "Right" "Down" "j" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "Normal"; }
bind "x" { CloseTab; SwitchToMode "Normal"; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
bind "Tab" { ToggleTab; }
}
scroll {
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "e" { EditScrollback; SwitchToMode "Normal"; }
bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
search {
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
bind "n" { Search "down"; }
bind "p" { Search "up"; }
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "w" { SearchToggleOption "Wrap"; }
bind "o" { SearchToggleOption "WholeWord"; }
}
entersearch {
bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; }
bind "Enter" { SwitchToMode "Search"; }
}
renametab {
bind "Ctrl c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
}
renamepane {
bind "Ctrl c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
}
session {
bind "Ctrl o" { SwitchToMode "Normal"; }
bind "Ctrl s" { SwitchToMode "Scroll"; }
bind "d" { Detach; }
}
tmux {
bind "[" { SwitchToMode "Scroll"; }
bind "Ctrl b" { Write 2; SwitchToMode "Normal"; }
bind "\"" { NewPane "Down"; SwitchToMode "Normal"; }
bind "%" { NewPane "Right"; SwitchToMode "Normal"; }
bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "c" { NewTab; SwitchToMode "Normal"; }
bind "," { SwitchToMode "RenameTab"; }
bind "p" { GoToPreviousTab; SwitchToMode "Normal"; }
bind "n" { GoToNextTab; SwitchToMode "Normal"; }
bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "o" { FocusNextPane; }
bind "d" { Detach; }
}
shared_except "locked" {
bind "Ctrl g" { SwitchToMode "Locked"; }
bind "Ctrl q" { Quit; }
bind "Alt n" { NewPane; }
bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; }
bind "Alt j" "Alt Down" { MoveFocus "Down"; }
bind "Alt k" "Alt Up" { MoveFocus "Up"; }
bind "Alt =" "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
shared_except "normal" "locked" {
bind "Enter" "Esc" { SwitchToMode "Normal"; }
}
shared_except "pane" "locked" {
bind "Ctrl p" { SwitchToMode "Pane"; }
}
shared_except "resize" "locked" {
bind "Ctrl n" { SwitchToMode "Resize"; }
}
shared_except "scroll" "locked" {
bind "Ctrl s" { SwitchToMode "Scroll"; }
}
shared_except "session" "locked" {
bind "Ctrl o" { SwitchToMode "Session"; }
}
shared_except "tab" "locked" {
bind "Ctrl t" { SwitchToMode "Tab"; }
}
shared_except "move" "locked" {
bind "Ctrl h" { SwitchToMode "Move"; }
}
shared_except "tmux" "locked" {
bind "Ctrl b" { SwitchToMode "Tmux"; }
}
}
plugins {
tab-bar { path "tab-bar"; }
status-bar { path "status-bar"; }
strider { path "strider"; }
compact-bar { path "compact-bar"; }
}
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Send a request for a simplified ui (without arrow fonts) to plugins
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Toggle between having pane frames around the panes
// Options:
// - true (default)
// - false
//
// pane_frames true
// Define color themes for Zellij
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
//
themes {
dracula {
fg 248 248 242
bg 40 42 54
red 255 85 85
green 80 250 123
yellow 241 250 140
blue 98 114 164
magenta 255 121 198
orange 255 184 108
cyan 139 233 253
black 0 0 0
white 255 255 255
}
}
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "dracula"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// Choose the mode that zellij uses when starting up.
// Default: normal
//
// default_mode "locked"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
mouse_mode true
scroll_buffer_size 20000
copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false
copy_on_select true
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// Default: false
//
// mirror_session true
// The folder in which Zellij will look for layouts
//
// layout_dir "/path/to/my/layout_dir"
theme_dir "/home/mr0xb/.config/zellij_cfg/themes"