Compare commits
No commits in common. "e55759eb152ee1caf8a5cd8dd2eabce58e4a6144" and "c850a2aa3743f3fd077b3a9b195e03d0f6314467" have entirely different histories.
e55759eb15
...
c850a2aa37
21
LICENSE
21
LICENSE
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2023 Piyush Raj
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
[general]
|
||||||
|
import = ["~/.config/alacritty/catppuccin-mocha.toml"]
|
||||||
|
live_config_reload = true
|
||||||
|
|
||||||
|
|
||||||
|
[env]
|
||||||
|
WINIT_X11_SCALE_FACTOR = "2.0"
|
||||||
|
TERM = "xterm-256color"
|
||||||
|
|
||||||
|
[font]
|
||||||
|
size = 13
|
||||||
|
|
||||||
|
[font.bold]
|
||||||
|
family = "FiraCode Nerd Font"
|
||||||
|
style = "Bold"
|
||||||
|
|
||||||
|
[font.bold_italic]
|
||||||
|
family = "FiraCode Nerd Font"
|
||||||
|
style = "Bold Italic"
|
||||||
|
|
||||||
|
[font.italic]
|
||||||
|
family = "FiraCode Nerd Font"
|
||||||
|
style = "Italic"
|
||||||
|
|
||||||
|
[font.normal]
|
||||||
|
family = "FiraCode Nerd Font"
|
||||||
|
style = "Regular"
|
||||||
|
|
||||||
|
[window]
|
||||||
|
dimensions = { columns = 90, lines = 22 }
|
||||||
|
opacity = 0.9
|
||||||
|
|
||||||
|
[terminal]
|
||||||
|
[terminal.shell]
|
||||||
|
program = "/bin/zellij"
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
[colors.primary]
|
||||||
|
background = "#1e1e2e"
|
||||||
|
foreground = "#cdd6f4"
|
||||||
|
dim_foreground = "#7f849c"
|
||||||
|
bright_foreground = "#cdd6f4"
|
||||||
|
|
||||||
|
[colors.cursor]
|
||||||
|
text = "#1e1e2e"
|
||||||
|
cursor = "#f5e0dc"
|
||||||
|
|
||||||
|
[colors.vi_mode_cursor]
|
||||||
|
text = "#1e1e2e"
|
||||||
|
cursor = "#b4befe"
|
||||||
|
|
||||||
|
[colors.search.matches]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6adc8"
|
||||||
|
|
||||||
|
[colors.search.focused_match]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6e3a1"
|
||||||
|
|
||||||
|
[colors.footer_bar]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6adc8"
|
||||||
|
|
||||||
|
[colors.hints.start]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#f9e2af"
|
||||||
|
|
||||||
|
[colors.hints.end]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6adc8"
|
||||||
|
|
||||||
|
[colors.selection]
|
||||||
|
text = "#1e1e2e"
|
||||||
|
background = "#f5e0dc"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#45475a"
|
||||||
|
red = "#f38ba8"
|
||||||
|
green = "#a6e3a1"
|
||||||
|
yellow = "#f9e2af"
|
||||||
|
blue = "#89b4fa"
|
||||||
|
magenta = "#f5c2e7"
|
||||||
|
cyan = "#94e2d5"
|
||||||
|
white = "#bac2de"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#585b70"
|
||||||
|
red = "#f38ba8"
|
||||||
|
green = "#a6e3a1"
|
||||||
|
yellow = "#f9e2af"
|
||||||
|
blue = "#89b4fa"
|
||||||
|
magenta = "#f5c2e7"
|
||||||
|
cyan = "#94e2d5"
|
||||||
|
white = "#a6adc8"
|
||||||
|
|
||||||
|
[[colors.indexed_colors]]
|
||||||
|
index = 16
|
||||||
|
color = "#fab387"
|
||||||
|
|
||||||
|
[[colors.indexed_colors]]
|
||||||
|
index = 17
|
||||||
|
color = "#f5e0dc"
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
local map = vim.api.nvim_set_keymap
|
|
||||||
local opts = { noremap = true, silent = true }
|
|
||||||
|
|
||||||
-- Move to previous/next
|
|
||||||
map('n', '<C-PageUp>', '<Cmd>BufferPrevious<CR>', opts)
|
|
||||||
map('n', '<C-PageDown>', '<Cmd>BufferNext<CR>', opts)
|
|
||||||
-- Re-order to previous/next
|
|
||||||
map('n', '<A-<>', '<Cmd>BufferMovePrevious<CR>', opts)
|
|
||||||
map('n', '<A->>', '<Cmd>BufferMoveNext<CR>', opts)
|
|
||||||
-- Goto buffer in position...
|
|
||||||
map('n', '<A-1>', '<Cmd>BufferGoto 1<CR>', opts)
|
|
||||||
map('n', '<A-2>', '<Cmd>BufferGoto 2<CR>', opts)
|
|
||||||
map('n', '<A-3>', '<Cmd>BufferGoto 3<CR>', opts)
|
|
||||||
map('n', '<A-4>', '<Cmd>BufferGoto 4<CR>', opts)
|
|
||||||
map('n', '<A-5>', '<Cmd>BufferGoto 5<CR>', opts)
|
|
||||||
map('n', '<A-6>', '<Cmd>BufferGoto 6<CR>', opts)
|
|
||||||
map('n', '<A-7>', '<Cmd>BufferGoto 7<CR>', opts)
|
|
||||||
map('n', '<A-8>', '<Cmd>BufferGoto 8<CR>', opts)
|
|
||||||
map('n', '<A-9>', '<Cmd>BufferGoto 9<CR>', opts)
|
|
||||||
map('n', '<A-0>', '<Cmd>BufferLast<CR>', opts)
|
|
||||||
-- Pin/unpin buffer
|
|
||||||
map('n', '<A-p>', '<Cmd>BufferPin<CR>', opts)
|
|
||||||
-- Close buffer
|
|
||||||
map('n', '<A-c>', '<Cmd>BufferClose<CR>', opts)
|
|
||||||
-- Wipeout buffer
|
|
||||||
-- :BufferWipeout
|
|
||||||
-- Close commands
|
|
||||||
-- :BufferCloseAllButCurrent
|
|
||||||
-- :BufferCloseAllButPinned
|
|
||||||
-- :BufferCloseAllButCurrentOrPinned
|
|
||||||
-- :BufferCloseBuffersLeft
|
|
||||||
-- :BufferCloseBuffersRight
|
|
||||||
-- Magic buffer-picking mode
|
|
||||||
map('n', '<S-p>', '<Cmd>BufferPick<CR>', opts)
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
require("cloak").setup({
|
|
||||||
enabled = true,
|
|
||||||
cloak_character = "*",
|
|
||||||
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
|
|
||||||
highlight_group = "Comment",
|
|
||||||
patterns = {
|
|
||||||
{
|
|
||||||
-- Match any file starting with ".env".
|
|
||||||
-- This can be a table to match multiple file patterns.
|
|
||||||
file_pattern = {
|
|
||||||
".env*",
|
|
||||||
"wrangler.toml",
|
|
||||||
".dev.vars",
|
|
||||||
},
|
|
||||||
-- Match an equals sign and any character after it.
|
|
||||||
-- This can also be a table of patterns to cloak,
|
|
||||||
-- example: cloak_pattern = { ":.+", "-.+" } for yaml files.
|
|
||||||
cloak_pattern = "=.+"
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
require('rose-pine').setup({
|
|
||||||
-- disable_background = true
|
|
||||||
})
|
|
||||||
|
|
||||||
function ColorMyPencils(color)
|
|
||||||
color = color or "rose-pine"
|
|
||||||
vim.cmd.colorscheme(color)
|
|
||||||
|
|
||||||
-- vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
|
|
||||||
-- vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
ColorMyPencils()
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
|
|
||||||
|
|
||||||
local ThePrimeagen_Fugitive = vim.api.nvim_create_augroup("ThePrimeagen_Fugitive", {})
|
|
||||||
|
|
||||||
local autocmd = vim.api.nvim_create_autocmd
|
|
||||||
autocmd("BufWinEnter", {
|
|
||||||
group = ThePrimeagen_Fugitive,
|
|
||||||
pattern = "*",
|
|
||||||
callback = function()
|
|
||||||
if vim.bo.ft ~= "fugitive" then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
|
||||||
local opts = {buffer = bufnr, remap = false}
|
|
||||||
vim.keymap.set("n", "<leader>p", function()
|
|
||||||
vim.cmd.Git('push')
|
|
||||||
end, opts)
|
|
||||||
|
|
||||||
-- rebase always
|
|
||||||
vim.keymap.set("n", "<leader>P", function()
|
|
||||||
vim.cmd.Git({'pull', '--rebase'})
|
|
||||||
end, opts)
|
|
||||||
|
|
||||||
-- NOTE: It allows me to easily set the branch i am pushing and any tracking
|
|
||||||
-- needed if i did not set the branch up correctly
|
|
||||||
vim.keymap.set("n", "<leader>t", ":Git push -u origin ", opts);
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
local mark = require("harpoon.mark")
|
|
||||||
local ui = require("harpoon.ui")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>a", mark.add_file)
|
|
||||||
vim.keymap.set("n", "<C-e>", ui.toggle_quick_menu)
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<C-h>", function() ui.nav_file(1) end)
|
|
||||||
vim.keymap.set("n", "<C-t>", function() ui.nav_file(2) end)
|
|
||||||
vim.keymap.set("n", "<C-n>", function() ui.nav_file(3) end)
|
|
||||||
vim.keymap.set("n", "<C-s>", function() ui.nav_file(4) end)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
local lsp = require("lsp-zero")
|
|
||||||
|
|
||||||
lsp.preset("recommended")
|
|
||||||
|
|
||||||
lsp.ensure_installed({
|
|
||||||
'tsserver',
|
|
||||||
'lua_ls',
|
|
||||||
'rust_analyzer',
|
|
||||||
'clangd',
|
|
||||||
'cmake'
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Fix Undefined global 'vim'
|
|
||||||
lsp.configure('lua_ls', {
|
|
||||||
settings = {
|
|
||||||
Lua = {
|
|
||||||
diagnostics = {
|
|
||||||
globals = { 'vim' }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
local cmp = require('cmp')
|
|
||||||
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
|
||||||
local cmp_mappings = lsp.defaults.cmp_mappings({
|
|
||||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
|
||||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
|
||||||
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
|
||||||
["<C-Space>"] = cmp.mapping.complete(),
|
|
||||||
['<C-Up>'] = cmp.mapping.scroll_docs(-4),
|
|
||||||
['<C-Down>'] = cmp.mapping.scroll_docs(4),
|
|
||||||
})
|
|
||||||
|
|
||||||
cmp_mappings['<Tab>'] = nil
|
|
||||||
cmp_mappings['<S-Tab>'] = nil
|
|
||||||
|
|
||||||
lsp.setup_nvim_cmp({
|
|
||||||
mapping = cmp_mappings
|
|
||||||
})
|
|
||||||
|
|
||||||
lsp.set_preferences({
|
|
||||||
suggest_lsp_servers = false,
|
|
||||||
sign_icons = {
|
|
||||||
error = 'E',
|
|
||||||
warn = 'W',
|
|
||||||
hint = 'H',
|
|
||||||
info = 'I'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
lsp.on_attach(function(client, bufnr)
|
|
||||||
local opts = {buffer = bufnr, remap = false}
|
|
||||||
|
|
||||||
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
|
|
||||||
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
|
|
||||||
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
|
|
||||||
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
|
|
||||||
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
|
|
||||||
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
|
|
||||||
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
|
|
||||||
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts)
|
|
||||||
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
|
|
||||||
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
|
|
||||||
end)
|
|
||||||
|
|
||||||
lsp.setup()
|
|
||||||
|
|
||||||
vim.diagnostic.config({
|
|
||||||
virtual_text = true
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
local Path = require('plenary.path')
|
|
||||||
require('tasks').setup({
|
|
||||||
default_params = { -- Default module parameters with which `neovim.json` will be created.
|
|
||||||
cmake = {
|
|
||||||
cmd = 'cmake', -- CMake executable to use, can be changed using `:Task set_module_param cmake cmd`.
|
|
||||||
build_dir = tostring(Path:new('{cwd}', 'build', '{os}-{build_type}')), -- Build directory. The expressions `{cwd}`, `{os}` and `{build_type}` will be expanded with the corresponding text values. Could be a function that return the path to the build directory.
|
|
||||||
build_type = 'Debug', -- Build type, can be changed using `:Task set_module_param cmake build_type`.
|
|
||||||
dap_name = 'lldb', -- DAP configuration name from `require('dap').configurations`. If there is no such configuration, a new one with this name as `type` will be created.
|
|
||||||
args = { -- Task default arguments.
|
|
||||||
configure = { '-D', 'CMAKE_EXPORT_COMPILE_COMMANDS=1', '-G', 'Ninja' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
save_before_run = true, -- If true, all files will be saved before executing a task.
|
|
||||||
params_file = 'neovim.json', -- JSON file to store module and task parameters.
|
|
||||||
quickfix = {
|
|
||||||
pos = 'botright', -- Default quickfix position.
|
|
||||||
height = 12, -- Default height.
|
|
||||||
},
|
|
||||||
dap_open_command = function() return require('dap').repl.open() end -- Command to run after starting DAP session. You can set it to `false` if you don't want to open anything or `require('dapui').open` if you are using https://github.com/rcarriga/nvim-dap-ui
|
|
||||||
})
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
require('refactoring').setup({})
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap("v", "<leader>ri", [[ <Esc><Cmd>lua require('refactoring').refactor('Inline Variable')<CR>]], {noremap = true, silent = true, expr = false})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
local builtin = require('telescope.builtin')
|
|
||||||
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
|
|
||||||
vim.keymap.set('n', '<C-p>', builtin.git_files, {})
|
|
||||||
vim.keymap.set('n', '<leader>ps', function()
|
|
||||||
builtin.grep_string({ search = vim.fn.input("Grep > ") })
|
|
||||||
end)
|
|
||||||
vim.keymap.set('n', '<leader>vh', builtin.help_tags, {})
|
|
||||||
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
require'nvim-treesitter.configs'.setup {
|
|
||||||
-- A list of parser names, or "all"
|
|
||||||
ensure_installed = { "help", "javascript", "typescript", "c", "lua", "rust" },
|
|
||||||
|
|
||||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
|
||||||
sync_install = false,
|
|
||||||
|
|
||||||
-- Automatically install missing parsers when entering buffer
|
|
||||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
|
||||||
auto_install = true,
|
|
||||||
|
|
||||||
highlight = {
|
|
||||||
-- `false` will disable the whole extension
|
|
||||||
enable = true,
|
|
||||||
|
|
||||||
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
|
||||||
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
|
||||||
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
|
||||||
-- Instead of true it can also be a list of languages
|
|
||||||
additional_vim_regex_highlighting = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
|
||||||
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>zz", function()
|
|
||||||
require("zen-mode").setup {
|
|
||||||
window = {
|
|
||||||
width = 90,
|
|
||||||
options = { }
|
|
||||||
},
|
|
||||||
}
|
|
||||||
require("zen-mode").toggle()
|
|
||||||
vim.wo.wrap = false
|
|
||||||
vim.wo.number = true
|
|
||||||
vim.wo.rnu = true
|
|
||||||
ColorMyPencils()
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>zZ", function()
|
|
||||||
require("zen-mode").setup {
|
|
||||||
window = {
|
|
||||||
width = 80,
|
|
||||||
options = { }
|
|
||||||
},
|
|
||||||
}
|
|
||||||
require("zen-mode").toggle()
|
|
||||||
vim.wo.wrap = false
|
|
||||||
vim.wo.number = false
|
|
||||||
vim.wo.rnu = false
|
|
||||||
vim.opt.colorcolumn = "0"
|
|
||||||
ColorMyPencils()
|
|
||||||
end)
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
require("xcoder")
|
|
||||||
|
|
||||||
--print("Neovide is", vim.g.neovide)
|
|
||||||
if vim.g.neovide then
|
|
||||||
vim.opt.guifont = { "Fira Code:h10.5" }
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
require("xcoder.set")
|
|
||||||
require("xcoder.remap")
|
|
||||||
require("xcoder.packer")
|
|
||||||
|
|
||||||
-- DO NOT INCLUDE THIS
|
|
||||||
vim.opt.rtp:append("~/personal/streamer-tools")
|
|
||||||
-- DO NOT INCLUDE THIS
|
|
||||||
|
|
||||||
local augroup = vim.api.nvim_create_augroup
|
|
||||||
local ThePrimeagenGroup = augroup('ThePrimeagen', {})
|
|
||||||
|
|
||||||
local autocmd = vim.api.nvim_create_autocmd
|
|
||||||
local yank_group = augroup('HighlightYank', {})
|
|
||||||
|
|
||||||
function R(name)
|
|
||||||
require("plenary.reload").reload_module(name)
|
|
||||||
end
|
|
||||||
|
|
||||||
autocmd('TextYankPost', {
|
|
||||||
group = yank_group,
|
|
||||||
pattern = '*',
|
|
||||||
callback = function()
|
|
||||||
vim.highlight.on_yank({
|
|
||||||
higroup = 'IncSearch',
|
|
||||||
timeout = 40,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
autocmd({"BufWritePre"}, {
|
|
||||||
group = ThePrimeagenGroup,
|
|
||||||
pattern = "*",
|
|
||||||
command = [[%s/\s\+$//e]],
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.g.netrw_browse_split = 0
|
|
||||||
vim.g.netrw_banner = 0
|
|
||||||
vim.g.netrw_winsize = 25
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
|
|
||||||
|
|
||||||
-- Only required if you have packer configured as `opt`
|
|
||||||
vim.cmd.packadd('packer.nvim')
|
|
||||||
|
|
||||||
return require('packer').startup(function(use)
|
|
||||||
-- Packer can manage itself
|
|
||||||
use 'wbthomason/packer.nvim'
|
|
||||||
|
|
||||||
use {
|
|
||||||
'nvim-telescope/telescope.nvim', tag = '0.1.0',
|
|
||||||
-- or , branch = '0.1.x',
|
|
||||||
requires = { {'nvim-lua/plenary.nvim'} }
|
|
||||||
}
|
|
||||||
|
|
||||||
use({
|
|
||||||
'rose-pine/neovim',
|
|
||||||
as = 'rose-pine',
|
|
||||||
config = function()
|
|
||||||
vim.cmd('colorscheme rose-pine')
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
use({"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"})
|
|
||||||
use("nvim-treesitter/playground")
|
|
||||||
use("theprimeagen/harpoon")
|
|
||||||
use("theprimeagen/refactoring.nvim")
|
|
||||||
use("mbbill/undotree")
|
|
||||||
use("tpope/vim-fugitive")
|
|
||||||
use("nvim-treesitter/nvim-treesitter-context");
|
|
||||||
|
|
||||||
use {
|
|
||||||
'VonHeikemen/lsp-zero.nvim',
|
|
||||||
branch = 'v1.x',
|
|
||||||
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("folke/zen-mode.nvim")
|
|
||||||
use("laytan/cloak.nvim")
|
|
||||||
use {
|
|
||||||
"windwp/nvim-autopairs",
|
|
||||||
config = function() require("nvim-autopairs").setup {} end
|
|
||||||
}
|
|
||||||
|
|
||||||
use 'nvim-tree/nvim-web-devicons'
|
|
||||||
use {'romgrk/barbar.nvim', requires = 'nvim-web-devicons'}
|
|
||||||
|
|
||||||
-- tasks and debuging
|
|
||||||
use ("Shatur/neovim-tasks")
|
|
||||||
use ("mfussenegger/nvim-dap")
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
|
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
|
|
||||||
|
|
||||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
|
||||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "J", "mzJ`z")
|
|
||||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
|
||||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
|
||||||
vim.keymap.set("n", "n", "nzzzv")
|
|
||||||
vim.keymap.set("n", "N", "Nzzzv")
|
|
||||||
|
|
||||||
-- greatest remap ever
|
|
||||||
vim.keymap.set("x", "<leader>p", [["_dP]])
|
|
||||||
|
|
||||||
-- next greatest remap ever : asbjornHaland
|
|
||||||
vim.keymap.set({"n", "v"}, "<C-S-C>", [["+y]])
|
|
||||||
|
|
||||||
vim.keymap.set({"n", "v"}, "<C-S-V>", [["+p]])
|
|
||||||
|
|
||||||
vim.keymap.set({"n", "v"}, "<leader>d", [["_d]])
|
|
||||||
|
|
||||||
-- This is going to get me cancelled
|
|
||||||
vim.keymap.set("i", "<C-c>", "<Esc>")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "Q", "<nop>")
|
|
||||||
vim.keymap.set("n", "<C-f>", "<cmd>silent !tmux neww tmux-sessionizer<CR>")
|
|
||||||
vim.keymap.set("n", "<leader>f", vim.lsp.buf.format)
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
|
|
||||||
vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
|
|
||||||
vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
|
|
||||||
vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
|
||||||
vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true })
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>vpp", "<cmd>e ~/.dotfiles/nvim/.config/nvim/lua/theprimeagen/packer.lua<CR>");
|
|
||||||
vim.keymap.set("n", "<leader>mr", "<cmd>CellularAutomaton make_it_rain<CR>");
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader><leader>", function()
|
|
||||||
vim.cmd("so")
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- close buffer
|
|
||||||
vim.keymap.set("n", "<leader>q", "<cmd>bw<CR>")
|
|
||||||
vim.keymap.set("n", "<leader>Q", "<cmd>bw!<CR>")
|
|
||||||
|
|
||||||
-- rename vaiable
|
|
||||||
vim.api.nvim_set_keymap("n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", { noremap = true })
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
-- vim.opt.guicursor = ""
|
|
||||||
|
|
||||||
vim.opt.nu = true
|
|
||||||
vim.opt.relativenumber = true
|
|
||||||
|
|
||||||
vim.opt.tabstop = 4
|
|
||||||
vim.opt.softtabstop = 4
|
|
||||||
vim.opt.shiftwidth = 4
|
|
||||||
vim.opt.expandtab = true
|
|
||||||
|
|
||||||
vim.opt.smartindent = true
|
|
||||||
|
|
||||||
vim.opt.wrap = false
|
|
||||||
|
|
||||||
vim.opt.swapfile = false
|
|
||||||
vim.opt.backup = false
|
|
||||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
|
||||||
vim.opt.undofile = true
|
|
||||||
|
|
||||||
vim.opt.hlsearch = false
|
|
||||||
vim.opt.incsearch = true
|
|
||||||
|
|
||||||
vim.opt.termguicolors = true
|
|
||||||
|
|
||||||
vim.opt.scrolloff = 8
|
|
||||||
vim.opt.signcolumn = "yes"
|
|
||||||
vim.opt.isfname:append("@-@")
|
|
||||||
|
|
||||||
vim.opt.updatetime = 50
|
|
||||||
|
|
||||||
vim.opt.colorcolumn = "80"
|
|
||||||
|
|
||||||
vim.opt.shell = "/usr/bin/fish"
|
|
||||||
|
|
@ -1,254 +0,0 @@
|
||||||
-- 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/piyush/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/piyush/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/piyush/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/piyush/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
|
|
||||||
local install_cpath_pattern = "/home/piyush/.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/piyush/.local/share/nvim/site/pack/packer/start/LuaSnip",
|
|
||||||
url = "https://github.com/L3MON4D3/LuaSnip"
|
|
||||||
},
|
|
||||||
["barbar.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/barbar.nvim",
|
|
||||||
url = "https://github.com/romgrk/barbar.nvim"
|
|
||||||
},
|
|
||||||
["cloak.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/cloak.nvim",
|
|
||||||
url = "https://github.com/laytan/cloak.nvim"
|
|
||||||
},
|
|
||||||
["cmp-buffer"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/cmp-buffer",
|
|
||||||
url = "https://github.com/hrsh7th/cmp-buffer"
|
|
||||||
},
|
|
||||||
["cmp-nvim-lsp"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.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/piyush/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua",
|
|
||||||
url = "https://github.com/hrsh7th/cmp-nvim-lua"
|
|
||||||
},
|
|
||||||
["cmp-path"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/cmp-path",
|
|
||||||
url = "https://github.com/hrsh7th/cmp-path"
|
|
||||||
},
|
|
||||||
cmp_luasnip = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
|
|
||||||
url = "https://github.com/saadparwaiz1/cmp_luasnip"
|
|
||||||
},
|
|
||||||
["friendly-snippets"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/friendly-snippets",
|
|
||||||
url = "https://github.com/rafamadriz/friendly-snippets"
|
|
||||||
},
|
|
||||||
harpoon = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/harpoon",
|
|
||||||
url = "https://github.com/theprimeagen/harpoon"
|
|
||||||
},
|
|
||||||
["lsp-zero.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim",
|
|
||||||
url = "https://github.com/VonHeikemen/lsp-zero.nvim"
|
|
||||||
},
|
|
||||||
["mason-lspconfig.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
|
|
||||||
url = "https://github.com/williamboman/mason-lspconfig.nvim"
|
|
||||||
},
|
|
||||||
["mason.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/mason.nvim",
|
|
||||||
url = "https://github.com/williamboman/mason.nvim"
|
|
||||||
},
|
|
||||||
["neovim-tasks"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/neovim-tasks",
|
|
||||||
url = "https://github.com/Shatur/neovim-tasks"
|
|
||||||
},
|
|
||||||
["nvim-autopairs"] = {
|
|
||||||
config = { "\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" },
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
|
|
||||||
url = "https://github.com/windwp/nvim-autopairs"
|
|
||||||
},
|
|
||||||
["nvim-cmp"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/nvim-cmp",
|
|
||||||
url = "https://github.com/hrsh7th/nvim-cmp"
|
|
||||||
},
|
|
||||||
["nvim-dap"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/nvim-dap",
|
|
||||||
url = "https://github.com/mfussenegger/nvim-dap"
|
|
||||||
},
|
|
||||||
["nvim-lspconfig"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
|
|
||||||
url = "https://github.com/neovim/nvim-lspconfig"
|
|
||||||
},
|
|
||||||
["nvim-treesitter"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
|
|
||||||
url = "https://github.com/nvim-treesitter/nvim-treesitter"
|
|
||||||
},
|
|
||||||
["nvim-treesitter-context"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/nvim-treesitter-context",
|
|
||||||
url = "https://github.com/nvim-treesitter/nvim-treesitter-context"
|
|
||||||
},
|
|
||||||
["nvim-web-devicons"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
|
|
||||||
url = "https://github.com/nvim-tree/nvim-web-devicons"
|
|
||||||
},
|
|
||||||
["packer.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/packer.nvim",
|
|
||||||
url = "https://github.com/wbthomason/packer.nvim"
|
|
||||||
},
|
|
||||||
playground = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/playground",
|
|
||||||
url = "https://github.com/nvim-treesitter/playground"
|
|
||||||
},
|
|
||||||
["plenary.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/plenary.nvim",
|
|
||||||
url = "https://github.com/nvim-lua/plenary.nvim"
|
|
||||||
},
|
|
||||||
["refactoring.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/refactoring.nvim",
|
|
||||||
url = "https://github.com/theprimeagen/refactoring.nvim"
|
|
||||||
},
|
|
||||||
["rose-pine"] = {
|
|
||||||
config = { "\27LJ\2\n9\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0\26colorscheme rose-pine\bcmd\bvim\0" },
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/rose-pine",
|
|
||||||
url = "https://github.com/rose-pine/neovim"
|
|
||||||
},
|
|
||||||
["telescope.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/telescope.nvim",
|
|
||||||
url = "https://github.com/nvim-telescope/telescope.nvim"
|
|
||||||
},
|
|
||||||
undotree = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/undotree",
|
|
||||||
url = "https://github.com/mbbill/undotree"
|
|
||||||
},
|
|
||||||
["vim-fugitive"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/vim-fugitive",
|
|
||||||
url = "https://github.com/tpope/vim-fugitive"
|
|
||||||
},
|
|
||||||
["zen-mode.nvim"] = {
|
|
||||||
loaded = true,
|
|
||||||
path = "/home/piyush/.local/share/nvim/site/pack/packer/start/zen-mode.nvim",
|
|
||||||
url = "https://github.com/folke/zen-mode.nvim"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
time([[Defining packer_plugins]], false)
|
|
||||||
-- Config for: nvim-autopairs
|
|
||||||
time([[Config for nvim-autopairs]], true)
|
|
||||||
try_loadstring("\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs")
|
|
||||||
time([[Config for nvim-autopairs]], false)
|
|
||||||
-- Config for: rose-pine
|
|
||||||
time([[Config for rose-pine]], true)
|
|
||||||
try_loadstring("\27LJ\2\n9\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0\26colorscheme rose-pine\bcmd\bvim\0", "config", "rose-pine")
|
|
||||||
time([[Config for rose-pine]], 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
|
|
||||||
|
|
@ -0,0 +1,317 @@
|
||||||
|
#
|
||||||
|
# Picom config
|
||||||
|
#
|
||||||
|
# Based on version from the Arch Wiki.
|
||||||
|
#
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Backend
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Backend to use: "xrender" or "glx".
|
||||||
|
# GLX backend is typically much faster but depends on a sane driver.
|
||||||
|
backend = "glx";
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# GLX backend
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
glx-no-stencil = true;
|
||||||
|
|
||||||
|
# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
|
||||||
|
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
|
||||||
|
# but a 20% increase when only 1/4 is.
|
||||||
|
# My tests on nouveau show terrible slowdown.
|
||||||
|
lx-copy-from-front = true;
|
||||||
|
|
||||||
|
# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
|
||||||
|
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
|
||||||
|
# May break VSync and is not available on some drivers.
|
||||||
|
# Overrides --glx-copy-from-front.
|
||||||
|
glx-use-copysubbuffermesa = true;
|
||||||
|
|
||||||
|
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||||
|
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
|
||||||
|
# Recommended if it works.
|
||||||
|
glx-no-rebind-pixmap = true;
|
||||||
|
|
||||||
|
# GLX backend: GLX buffer swap method we assume.
|
||||||
|
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
|
||||||
|
# undefined is the slowest and the safest, and the default value.
|
||||||
|
# copy is fastest, but may fail on some drivers,
|
||||||
|
# 2-6 are gradually slower but safer (6 is still faster than 0).
|
||||||
|
# Usually, double buffer means 2, triple buffer means 3.
|
||||||
|
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
|
||||||
|
# Useless with --glx-use-copysubbuffermesa.
|
||||||
|
# Partially breaks --resize-damage.
|
||||||
|
# Defaults to undefined.
|
||||||
|
glx-swap-method = 2;
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Shadows
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Enabled client-side shadows on windows.
|
||||||
|
shadow = true;
|
||||||
|
shadow-radius = 20;
|
||||||
|
shadow-offset-x = -20;
|
||||||
|
shadow-offset-y = -20;
|
||||||
|
shadow-opacity = 0.25;
|
||||||
|
|
||||||
|
# Set if you want different colour shadows
|
||||||
|
# shadow-red = 0.0;
|
||||||
|
# shadow-green = 0.0;
|
||||||
|
# shadow-blue = 0.0;
|
||||||
|
|
||||||
|
# The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches
|
||||||
|
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
|
||||||
|
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
|
||||||
|
shadow-exclude = [
|
||||||
|
"! name~=''",
|
||||||
|
"name *= 'VLC'",
|
||||||
|
"name *= 'compton'",
|
||||||
|
"name *= 'picom'",
|
||||||
|
"name *= 'Chromium'",
|
||||||
|
"name *= 'Chrome'",
|
||||||
|
"name *= 'brave'",
|
||||||
|
"name *= 'BitwigStudio'",
|
||||||
|
"class_g = 'Firefox' && argb",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"class_g ?= 'Notify-osd'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c",
|
||||||
|
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||||
|
];
|
||||||
|
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
|
||||||
|
# shadow-ignore-shaped = true;
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Opacity
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
inactive-opacity = 1;
|
||||||
|
active-opacity = 1;
|
||||||
|
frame-opacity = 1;
|
||||||
|
inactive-opacity-override = false;
|
||||||
|
|
||||||
|
# i3 trasparent borders and windows
|
||||||
|
# opacity-rule = [
|
||||||
|
# # "80:class_g = 'i3-frame' && !_NET_WM_STATE@:32a",
|
||||||
|
# "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
|
||||||
|
# "70:class_g = 'Termite' && !focused",
|
||||||
|
# "70:class_g = 'kitty' && !focused",
|
||||||
|
# "0:_NET_WM_STATE@[0]:32a *= '_NET_WM_STATE_HIDDEN'",
|
||||||
|
# "0:_NET_WM_STATE@[1]:32a *= '_NET_WM_STATE_HIDDEN'",
|
||||||
|
# "0:_NET_WM_STATE@[2]:32a *= '_NET_WM_STATE_HIDDEN'",
|
||||||
|
# "0:_NET_WM_STATE@[3]:32a *= '_NET_WM_STATE_HIDDEN'",
|
||||||
|
# "0:_NET_WM_STATE@[4]:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||||
|
# ];
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Dimming
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
# Dim inactive windows. (0.0 - 1.0)
|
||||||
|
# inactive-dim = 0.2;
|
||||||
|
# Do not let dimness adjust based on window opacity.
|
||||||
|
# inactive-dim-fixed = true;
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Rounded corners
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
#corner-radius = 8;
|
||||||
|
|
||||||
|
# rounded-corners-exclude = [
|
||||||
|
# # "class_g = 'URxvt'",
|
||||||
|
# # "class_g = 'XTerm'",
|
||||||
|
# # "class_g = 'Termite'",
|
||||||
|
# # "class_g = 'kitty'",
|
||||||
|
# # "class_g = 'firefox'",
|
||||||
|
# "class_g = 'Polybar'",
|
||||||
|
# "class_g = 'Google-chrome'",
|
||||||
|
# "class_g = 'brave'",
|
||||||
|
# ];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Blur
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
blur:
|
||||||
|
{
|
||||||
|
method = "gaussian";
|
||||||
|
size = 20;
|
||||||
|
deviation = 20;
|
||||||
|
};
|
||||||
|
|
||||||
|
# experimental-backends = true;
|
||||||
|
#
|
||||||
|
# blur: {
|
||||||
|
# method = "dual_kawase";
|
||||||
|
# strength = 4;
|
||||||
|
# background = false;
|
||||||
|
# background-frame = false;
|
||||||
|
# background-fixed = false;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
|
||||||
|
# blur-background = false;
|
||||||
|
# Blur background of opaque windows with transparent frames as well.
|
||||||
|
# blur-background-frame = true;
|
||||||
|
# Do not let blur radius adjust based on window opacity.
|
||||||
|
|
||||||
|
# blur-kern = "3x3box"
|
||||||
|
# blur-kern = "7x7gaussian"
|
||||||
|
# blur-kern = "7x7gaussian";
|
||||||
|
# blur-background-fixed = false;
|
||||||
|
#
|
||||||
|
blur-background-exclude = [
|
||||||
|
# "window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"window_type = 'dropdown_menu'",
|
||||||
|
"window_type = 'popup_menu'",
|
||||||
|
"window_type = 'combo'",
|
||||||
|
"window_type = 'menu'",
|
||||||
|
"window_type = 'unknown'",
|
||||||
|
"window_type = 'splash'",
|
||||||
|
"window_type = 'dnd'",
|
||||||
|
"window_type = 'utility'",
|
||||||
|
"name *= 'touchegg'",
|
||||||
|
"name *= 'ONLYOFFICE'",
|
||||||
|
"name *= 'xfce4-screenshooter'",
|
||||||
|
"name *= 'Floorp'"
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Fading
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Fade windows during opacity changes.
|
||||||
|
fading = true;
|
||||||
|
# The time between steps in a fade in milliseconds. (default 10).
|
||||||
|
fade-delta = 2;
|
||||||
|
# Opacity change between steps while fading in. (default 0.028).
|
||||||
|
fade-in-step = 0.020;
|
||||||
|
# Opacity change between steps while fading out. (default 0.03).
|
||||||
|
fade-out-step = 0.020;
|
||||||
|
# Fade windows in/out when opening/closing
|
||||||
|
# no-fading-openclose = true;
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should not be faded.
|
||||||
|
fade-exclude = [ ];
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Focus
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Try to detect WM windows and mark them as active.
|
||||||
|
# mark-wmwin-focused = true;
|
||||||
|
# Mark all non-WM but override-redirect windows active (e.g. menus).
|
||||||
|
# mark-ovredir-focused = true;
|
||||||
|
# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
|
||||||
|
# Usually more reliable but depends on a EWMH-compliant WM.
|
||||||
|
# use-ewmh-active-win = true;
|
||||||
|
|
||||||
|
# focus-exclude = [
|
||||||
|
# "name *= 'Chromium'",
|
||||||
|
# "name *= 'Chrome'",
|
||||||
|
# "name *= 'Brave'",
|
||||||
|
# "name *= 'Freeplane'",
|
||||||
|
# "name *= 'Hive'",
|
||||||
|
# "name *= 'BitwigStudio'",
|
||||||
|
# "class_g = 'R_x11'",
|
||||||
|
# "class_g = 'Firefox'",
|
||||||
|
# "class_g = 'firefox'",
|
||||||
|
# "class_g = 'feh'",
|
||||||
|
# "class_g = 'vlc'",
|
||||||
|
# "class_g = 'Rofi'",
|
||||||
|
# "class_g = 'zoom'",
|
||||||
|
# "class_g = 'Zathura'"
|
||||||
|
# ];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Other
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
|
||||||
|
# detect-rounded-corners = true;
|
||||||
|
|
||||||
|
# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
|
||||||
|
# This prevents opacity being ignored for some apps.
|
||||||
|
# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
|
||||||
|
detect-client-opacity = true;
|
||||||
|
|
||||||
|
# Vertical synchronization: match the refresh rate of the monitor
|
||||||
|
vsync = true;
|
||||||
|
|
||||||
|
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
|
||||||
|
# Reported to have no effect, though.
|
||||||
|
dbe = false;
|
||||||
|
|
||||||
|
# Limit picom to repaint at most once every 1 / refresh_rate second to boost performance.
|
||||||
|
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
|
||||||
|
# unless you wish to specify a lower refresh rate than the actual value.
|
||||||
|
#sw-opti = true;
|
||||||
|
|
||||||
|
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
|
||||||
|
# Known to cause flickering when redirecting/unredirecting windows.
|
||||||
|
unredir-if-possible = false;
|
||||||
|
|
||||||
|
# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
|
||||||
|
detect-transient = true;
|
||||||
|
# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
|
||||||
|
# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
|
||||||
|
detect-client-leader = true;
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Window type settings
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip =
|
||||||
|
{
|
||||||
|
# fade: Fade the particular type of windows.
|
||||||
|
fade = true;
|
||||||
|
# shadow: Give those windows shadow
|
||||||
|
shadow = false;
|
||||||
|
# opacity: Default opacity for the type of windows.
|
||||||
|
opacity = 0.85;
|
||||||
|
# focus: Whether to always consider windows of this type focused.
|
||||||
|
focus = true;
|
||||||
|
};
|
||||||
|
dropdown_menu = { shadow = false; };
|
||||||
|
popup_menu = { shadow = false; };
|
||||||
|
utility = { shadow = false; };
|
||||||
|
};
|
||||||
|
|
||||||
|
######################
|
||||||
|
#
|
||||||
|
# XSync
|
||||||
|
# See: https://github.com/yshui/picom/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d
|
||||||
|
#
|
||||||
|
######################
|
||||||
|
|
||||||
|
# Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX
|
||||||
|
# backend for some users.
|
||||||
|
xrender-sync-fence = true;
|
||||||
|
|
@ -0,0 +1,332 @@
|
||||||
|
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
|
||||||
|
keybinds clear-defaults=true {
|
||||||
|
normal {
|
||||||
|
unbind "Ctrl p"
|
||||||
|
unbind "Ctrl o"
|
||||||
|
unbind "Ctrl q"
|
||||||
|
unbind "Ctrl s"
|
||||||
|
unbind "Ctrl h"
|
||||||
|
// 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 "Increase Left"; }
|
||||||
|
bind "j" "Down" { Resize "Increase Down"; }
|
||||||
|
bind "k" "Up" { Resize "Increase Up"; }
|
||||||
|
bind "l" "Right" { Resize "Increase Right"; }
|
||||||
|
bind "H" { Resize "Decrease Left"; }
|
||||||
|
bind "J" { Resize "Decrease Down"; }
|
||||||
|
bind "K" { Resize "Decrease Up"; }
|
||||||
|
bind "L" { Resize "Decrease Right"; }
|
||||||
|
bind "=" "+" { Resize "Increase"; }
|
||||||
|
bind "-" { Resize "Decrease"; }
|
||||||
|
}
|
||||||
|
pane {
|
||||||
|
bind "Ctrl a" { SwitchToMode "Normal"; }
|
||||||
|
bind "h" "Left" { MoveFocus "Left"; SwitchToMode "Normal"; }
|
||||||
|
bind "l" "Right" { MoveFocus "Right"; SwitchToMode "Normal"; }
|
||||||
|
bind "j" "Down" { MoveFocus "Down"; SwitchToMode "Normal"; }
|
||||||
|
bind "k" "Up" { MoveFocus "Up"; SwitchToMode "Normal"; }
|
||||||
|
bind "p" { SwitchFocus; SwitchToMode "Normal"; }
|
||||||
|
bind "n" { NewPane; SwitchToMode "Normal"; }
|
||||||
|
bind "d" { NewPane "Down"; SwitchToMode "Normal"; }
|
||||||
|
//bind "r" { NewPane "Right"; SwitchToMode "Normal"; }
|
||||||
|
bind "x" { CloseFocus; SwitchToMode "Normal"; }
|
||||||
|
bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
|
||||||
|
bind "f" { TogglePaneFrames; SwitchToMode "Normal"; }
|
||||||
|
bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
|
||||||
|
bind "Ctrl a" { ToggleFloatingPanes; SwitchToMode "Normal"; }
|
||||||
|
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
|
||||||
|
bind "r" { SwitchToMode "RenamePane"; PaneNameInput 0;}
|
||||||
|
}
|
||||||
|
tab {
|
||||||
|
bind "Ctrl t" { SwitchToMode "Normal"; }
|
||||||
|
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
|
||||||
|
bind "h" "Left" "Up" "k" { GoToPreviousTab; SwitchToMode "Normal"; }
|
||||||
|
bind "l" "Right" "Down" "j" { GoToNextTab; SwitchToMode "Normal"; }
|
||||||
|
bind "n" { NewTab; SwitchToMode "Normal"; SwitchToMode "Normal"; }
|
||||||
|
bind "x" { CloseTab; SwitchToMode "Normal"; 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 "a" { ToggleTab; SwitchToMode "Normal"; }
|
||||||
|
}
|
||||||
|
scroll {
|
||||||
|
bind "Ctrl s" { SwitchToMode "Normal"; }
|
||||||
|
bind "e" { EditScrollback; SwitchToMode "Normal"; }
|
||||||
|
bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
|
||||||
|
bind "G" { 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 /" { 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 s" "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 x" { SwitchToMode "Normal"; }
|
||||||
|
bind "Ctrl x" { 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; }
|
||||||
|
bind "Space" { NextSwapLayout; }
|
||||||
|
bind "x" { CloseFocus; SwitchToMode "Normal"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" {
|
||||||
|
bind "Ctrl g" { SwitchToMode "Locked"; }
|
||||||
|
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"; }
|
||||||
|
bind "Alt [" { PreviousSwapLayout; }
|
||||||
|
bind "Alt ]" { NextSwapLayout; }
|
||||||
|
}
|
||||||
|
shared_except "normal" "locked" {
|
||||||
|
bind "Enter" "Esc" { SwitchToMode "Normal"; }
|
||||||
|
}
|
||||||
|
shared_except "pane" "locked" {
|
||||||
|
bind "Ctrl a" { SwitchToMode "Pane"; }
|
||||||
|
}
|
||||||
|
shared_except "resize" "locked" {
|
||||||
|
bind "Ctrl n" { SwitchToMode "Resize"; }
|
||||||
|
}
|
||||||
|
shared_except "scroll" "locked" {
|
||||||
|
bind "Ctrl f" { SwitchToMode "Scroll"; }
|
||||||
|
}
|
||||||
|
shared_except "session" "locked" {
|
||||||
|
bind "Ctrl x" { SwitchToMode "Session"; }
|
||||||
|
}
|
||||||
|
shared_except "tab" "locked" {
|
||||||
|
bind "Ctrl t" { SwitchToMode "Tab"; }
|
||||||
|
}
|
||||||
|
shared_except "renametab" "locked" {
|
||||||
|
bind "Alt r" { SwitchToMode "RenameTab"; }
|
||||||
|
}
|
||||||
|
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 false
|
||||||
|
|
||||||
|
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
|
||||||
|
// Options:
|
||||||
|
// - true (default)
|
||||||
|
// - false
|
||||||
|
//
|
||||||
|
// auto_layout 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 {
|
||||||
|
rose-pine {
|
||||||
|
bg "#403d52"
|
||||||
|
fg "#e0def4"
|
||||||
|
red "#eb6f92"
|
||||||
|
green "#31748f"
|
||||||
|
blue "#9ccfd8"
|
||||||
|
yellow "#f6c177"
|
||||||
|
magenta "#c4a7e7"
|
||||||
|
orange "#fe640b"
|
||||||
|
cyan "#ebbcba"
|
||||||
|
black "#26233a"
|
||||||
|
white "#e0def4"
|
||||||
|
}
|
||||||
|
gruvbox-dark {
|
||||||
|
fg "#D5C4A1"
|
||||||
|
bg "#282828"
|
||||||
|
black "#3C3836"
|
||||||
|
red "#CC241D"
|
||||||
|
green "#98971A"
|
||||||
|
yellow "#D79921"
|
||||||
|
blue "#3C8588"
|
||||||
|
magenta "#B16286"
|
||||||
|
cyan "#689D6A"
|
||||||
|
white "#FBF1C7"
|
||||||
|
orange "#D65D0E"
|
||||||
|
}
|
||||||
|
tokyo-night {
|
||||||
|
fg 169 177 214
|
||||||
|
bg 26 27 38
|
||||||
|
black 56 62 90
|
||||||
|
red 249 51 87
|
||||||
|
green 158 206 106
|
||||||
|
yellow 224 175 104
|
||||||
|
blue 122 162 247
|
||||||
|
magenta 187 154 247
|
||||||
|
cyan 42 195 222
|
||||||
|
white 192 202 245
|
||||||
|
orange 255 158 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Choose the theme that is specified in the themes section.
|
||||||
|
// Default: default
|
||||||
|
//
|
||||||
|
theme "rose-pine"
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
// Options:
|
||||||
|
// - true (default)
|
||||||
|
// - false
|
||||||
|
//
|
||||||
|
// mouse_mode false
|
||||||
|
|
||||||
|
// Configure the scroll back buffer size
|
||||||
|
// This is the number of lines zellij stores for each pane in the scroll back
|
||||||
|
// buffer. Excess number of lines are discarded in a FIFO fashion.
|
||||||
|
// Valid values: positive integers
|
||||||
|
// Default value: 10000
|
||||||
|
//
|
||||||
|
// scroll_buffer_size 10000
|
||||||
|
|
||||||
|
// Provide a command to execute when copying text. The text will be piped to
|
||||||
|
// the stdin of the program to perform the copy. This can be used with
|
||||||
|
// terminal emulators which do not support the OSC 52 ANSI control sequence
|
||||||
|
// that will be used by default if this option is not set.
|
||||||
|
// Examples:
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
// The folder in which Zellij will look for themes
|
||||||
|
//
|
||||||
|
// theme_dir "/path/to/my/theme_dir"
|
||||||
Loading…
Reference in New Issue