parent
cfcea95348
commit
c77e3abf65
@ -1,2 +0,0 @@ |
|||||||
let g:neovide_refresh_rate=140 |
|
||||||
let g:coq_settings = { 'auto_start': 'shut-up' } |
|
@ -0,0 +1,38 @@ |
|||||||
|
{ |
||||||
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, |
||||||
|
"LuaSnip": { "branch": "master", "commit": "21f74f7ba8c49f95f9d7c8293b147c2901dd2d3a" }, |
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, |
||||||
|
"cheatsheet.nvim": { "branch": "master", "commit": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef" }, |
||||||
|
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, |
||||||
|
"cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" }, |
||||||
|
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, |
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" }, |
||||||
|
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, |
||||||
|
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, |
||||||
|
"cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" }, |
||||||
|
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, |
||||||
|
"fidget.nvim": { "branch": "main", "commit": "4d5858bd4c471c895060e1b9f3575f1551184dc5" }, |
||||||
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, |
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "f780609807eca1f783a36a8a31c30a48fbe150c5" }, |
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, |
||||||
|
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, |
||||||
|
"mini.icons": { "branch": "main", "commit": "f9a177c11daa7829389b7b6eaaec8b8a5c47052d" }, |
||||||
|
"neogen": { "branch": "main", "commit": "d7f9461727751fb07f82011051338a9aba07581d" }, |
||||||
|
"nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" }, |
||||||
|
"none-ls-extras.nvim": { "branch": "main", "commit": "52628966ffc5b49cf0dbbe4d8733bacede9e7e8b" }, |
||||||
|
"none-ls.nvim": { "branch": "main", "commit": "f0b3dc073153a08fd1e32869ed30b87a3bb4230f" }, |
||||||
|
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, |
||||||
|
"nvim-colorizer.lua": { "branch": "master", "commit": "51cf7c995ed1eb6642aecf19067ee634fa1b6ba2" }, |
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "d89f4891f0720cd2598e4bdd60010d8784b2ac8a" }, |
||||||
|
"nvim-surround": { "branch": "main", "commit": "a868c256c861044beb9794b4dd126480dcdfbdad" }, |
||||||
|
"nvim-tree.lua": { "branch": "master", "commit": "e179ad2f83b5955ab0af653069a493a1828c2697" }, |
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, |
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "6e51ca170563330e063720449c21f43e27ca0bc1" }, |
||||||
|
"outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" }, |
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, |
||||||
|
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, |
||||||
|
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, |
||||||
|
"vim-floaterm": { "branch": "master", "commit": "fd4bdd66eca56c6cc59f2119e4447496d8cde2ea" }, |
||||||
|
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }, |
||||||
|
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } |
||||||
|
} |
@ -0,0 +1,110 @@ |
|||||||
|
return { |
||||||
|
'nvim-lua/plenary.nvim', |
||||||
|
{ |
||||||
|
'RRethy/vim-illuminate', |
||||||
|
event = 'LspAttach' |
||||||
|
}, |
||||||
|
{ |
||||||
|
'voldikss/vim-floaterm', |
||||||
|
cmd = 'FloatermToggle', |
||||||
|
}, |
||||||
|
'j-hui/fidget.nvim', |
||||||
|
'echasnovski/mini.icons', |
||||||
|
'nvim-tree/nvim-web-devicons', |
||||||
|
'numToStr/Comment.nvim', |
||||||
|
'kylechui/nvim-surround', |
||||||
|
'stevearc/dressing.nvim', |
||||||
|
{ |
||||||
|
'nvim-treesitter/nvim-treesitter', |
||||||
|
build = ':TSUpdate', |
||||||
|
opts = { |
||||||
|
highlight = { |
||||||
|
enable = true |
||||||
|
}, |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
'nvim-tree/nvim-tree.lua', |
||||||
|
dependencies = "nvim-tree/nvim-web-devicons", |
||||||
|
init = function() |
||||||
|
-- disables netrw |
||||||
|
vim.g.loaded_netrw = 1 |
||||||
|
vim.g.loaded_netrwPlugin = 1 |
||||||
|
end, |
||||||
|
opts = { |
||||||
|
hijack_cursor = true, |
||||||
|
disable_netrw = true, |
||||||
|
select_prompts = true, |
||||||
|
renderer = { |
||||||
|
add_trailing = true, |
||||||
|
hidden_display = "all", |
||||||
|
highlight_opened_files = "icon" |
||||||
|
} |
||||||
|
}, |
||||||
|
keys = { |
||||||
|
{ "<leader>v", "<cmd>NvimTreeToggle<cr>" } |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"folke/which-key.nvim", |
||||||
|
opts = { preset = "modern" } |
||||||
|
}, |
||||||
|
{ |
||||||
|
"hedyhli/outline.nvim", |
||||||
|
event = "LspAttach", |
||||||
|
cmd = { "Outline", "OutlineOpen" }, |
||||||
|
keys = { |
||||||
|
{ "<leader>o", "<cmd>Outline<CR>", desc = "Show outline" } |
||||||
|
}, |
||||||
|
config = function() |
||||||
|
-- https://github.com/hedyhli/outline.nvim |
||||||
|
-- setup call required for this to work! |
||||||
|
require("outline").setup {} |
||||||
|
end |
||||||
|
}, |
||||||
|
{ |
||||||
|
'nvim-telescope/telescope.nvim', |
||||||
|
dependencies = { 'nvim-lua/plenary.nvim' }, |
||||||
|
keys = { |
||||||
|
{ "<leader>ff", "<cmd>Telescope live_grep<cr>", desc = "Fuzzy grep across workspace" }, |
||||||
|
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Find buffer" }, |
||||||
|
{ "<leader>fp", "<cmd>lua require'telescope.builtin'.git_files{}<cr>", desc="Find in project"}, |
||||||
|
{ "<leader>p", "<cmd>Telescope diagnostics<cr>", desc = "Show diagnostics for buffer"} |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
'catgoose/nvim-colorizer.lua', |
||||||
|
opts = { |
||||||
|
'css', |
||||||
|
'scss', |
||||||
|
'javascript', |
||||||
|
'toml', |
||||||
|
'python' |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
'lewis6991/gitsigns.nvim', |
||||||
|
keys = { |
||||||
|
{ '<leader>hd', '<cmd>Gitsigns diffthis<cr>', desc = "Show Git diff" }, |
||||||
|
{ '<leader>hr', '<cmd>Gitsigns reset_hunk<cr>', desc = "Git reset hunk" }, |
||||||
|
{ '<leader>td', '<cmd>Gitsigns toggle_deleted<cr>', desc = 'Git toggle deleted' } |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
'sudormrfbin/cheatsheet.nvim', |
||||||
|
dependencies = { |
||||||
|
'nvim-telescope/telescope.nvim', |
||||||
|
'nvim-lua/popup.nvim', |
||||||
|
'nvim-lua/plenary.nvim', |
||||||
|
} |
||||||
|
}, |
||||||
|
--[[{ |
||||||
|
'pwntester/octo.nvim', |
||||||
|
event = { "BufReadPre", "BufNewFile" }, |
||||||
|
dependencies = { |
||||||
|
'nvim-lua/plenary.nvim', |
||||||
|
'nvim-telescope/telescope.nvim', |
||||||
|
'nvim-tree/nvim-web-devicons', |
||||||
|
}, |
||||||
|
}]] |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
return { |
||||||
|
'akinsho/bufferline.nvim', |
||||||
|
version = "*", |
||||||
|
event = { "BufReadPre", "BufNewFile" }, |
||||||
|
dependencies = 'nvim-tree/nvim-web-devicons', |
||||||
|
config = function() |
||||||
|
local bufferline = require('bufferline') |
||||||
|
|
||||||
|
bufferline.setup({ |
||||||
|
options = { |
||||||
|
style_preset = bufferline.style_preset.no_italic, |
||||||
|
offsets = { |
||||||
|
{ |
||||||
|
filetype = "NvimTree", |
||||||
|
text = "Files", |
||||||
|
highlight = "Directory", |
||||||
|
separator = true |
||||||
|
}, |
||||||
|
}, |
||||||
|
hover = { |
||||||
|
enabled = true, |
||||||
|
delay = 0, |
||||||
|
reveal = { 'close' } |
||||||
|
}, |
||||||
|
show_close_icon = false, |
||||||
|
separator_style = "slope", |
||||||
|
diagnostics = "nvim_lsp", |
||||||
|
} |
||||||
|
}) |
||||||
|
end |
||||||
|
, |
||||||
|
keys = { |
||||||
|
{ "<leader>b", "<cmd>BufferLineCyclePrev<cr>", desc = "Go to previous tab" }, |
||||||
|
{ "<leader>n", "<cmd>BufferLineCycleNext<cr>", desc = "Go to next tab" }, |
||||||
|
{ "<leader>gb", "<cmd>BufferLinePick<cr>", desc = "Pick tab" }, |
||||||
|
{ "<leader>w", "<cmd>bdelete!<cr>", desc = "Close tab" } |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
return { |
||||||
|
{ |
||||||
|
"EdenEast/nightfox.nvim", |
||||||
|
priority = 1000, |
||||||
|
config = function() |
||||||
|
require("nightfox").setup({ |
||||||
|
palettes = { |
||||||
|
carbonfox = { |
||||||
|
bg1 = "#0C0C0C", |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
vim.cmd.colorscheme("carbonfox") |
||||||
|
end |
||||||
|
}, |
||||||
|
} |
@ -0,0 +1,166 @@ |
|||||||
|
local augroup = vim.api.nvim_create_augroup("Lspformatting", {}) |
||||||
|
|
||||||
|
local on_attach = function(client, bufnr) |
||||||
|
if (not bufnr) then |
||||||
|
return |
||||||
|
end |
||||||
|
|
||||||
|
require 'illuminate'.on_attach(client) |
||||||
|
|
||||||
|
-- Enable completion triggered by <c-x><c-o> |
||||||
|
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') |
||||||
|
-- Mappings. |
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions |
||||||
|
local bufopts = { noremap = true, silent = true, buffer = bufnr } |
||||||
|
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) |
||||||
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) |
||||||
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) |
||||||
|
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) |
||||||
|
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts) |
||||||
|
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts) |
||||||
|
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts) |
||||||
|
vim.keymap.set('n', '<space>wl', function() |
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders())) |
||||||
|
end, bufopts) |
||||||
|
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts) |
||||||
|
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts) |
||||||
|
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts) |
||||||
|
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) |
||||||
|
vim.keymap.set('n', '<space>f', '<cmd>lua vim.lsp.buf.format({ async = true })<CR>', bufopts) |
||||||
|
|
||||||
|
-- format on save does not work for python for some reason |
||||||
|
if client.supports_method("textDocument/formatting") then |
||||||
|
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) |
||||||
|
vim.api.nvim_create_autocmd("BufWritePre", { |
||||||
|
group = augroup, |
||||||
|
buffer = bufnr, |
||||||
|
callback = function() |
||||||
|
vim.lsp.buf.format({ |
||||||
|
async = false, |
||||||
|
bufnr = bufnr, |
||||||
|
}) |
||||||
|
end |
||||||
|
}) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
local on_leave_group = vim.api.nvim_create_augroup("OnLeaveGroup", {}) |
||||||
|
vim.api.nvim_create_autocmd("VimLeave", { |
||||||
|
group = on_leave_group, |
||||||
|
command = "silent !killall -q eslint_d", |
||||||
|
}) |
||||||
|
|
||||||
|
|
||||||
|
return { { |
||||||
|
'neovim/nvim-lspconfig', |
||||||
|
event = { "BufReadPre", "BufNewFile" }, |
||||||
|
dependencies = { |
||||||
|
'hrsh7th/nvim-cmp', |
||||||
|
'RRethy/vim-illuminate', |
||||||
|
'j-hui/fidget.nvim', |
||||||
|
}, |
||||||
|
config = function() |
||||||
|
local lsp = require("lspconfig") |
||||||
|
local lspconfig_defaults = lsp.util.default_config |
||||||
|
lspconfig_defaults.capabilities = vim.tbl_deep_extend( |
||||||
|
'force', |
||||||
|
lspconfig_defaults.capabilities, |
||||||
|
require('cmp_nvim_lsp').default_capabilities() |
||||||
|
) |
||||||
|
--local capabilities = require('cmp_nvim_lsp').default_capabilities() |
||||||
|
|
||||||
|
lsp.lua_ls.setup({ |
||||||
|
on_attach = on_attach, |
||||||
|
settings = { |
||||||
|
Lua = { |
||||||
|
diagnostics = { |
||||||
|
globals = { 'vim' } |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
lsp.clangd.setup { on_attach = on_attach } |
||||||
|
lsp.ts_ls.setup { on_attach = on_attach } -- typescript |
||||||
|
lsp.hls.setup { on_attach = on_attach } -- haskell |
||||||
|
lsp.pyright.setup { on_attach = on_attach, |
||||||
|
settings = { |
||||||
|
pyright = { |
||||||
|
disableOrganizeImports = true, -- Using Ruff |
||||||
|
}, |
||||||
|
python = { |
||||||
|
analysis = { |
||||||
|
ignore = { '*' }, -- Using Ruff |
||||||
|
}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
} |
||||||
|
lsp.ruff.setup { on_attach = on_attach } |
||||||
|
lsp.svelte.setup { on_attach = on_attach } |
||||||
|
lsp.marksman.setup { on_attach = on_attach } |
||||||
|
lsp.rust_analyzer.setup { on_attach = on_attach, |
||||||
|
settings = { |
||||||
|
["rust-analyzer"] = { |
||||||
|
checkOnSave = true, |
||||||
|
check = { |
||||||
|
enable = true, |
||||||
|
command = "clippy", |
||||||
|
features = "all" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
lsp.tailwindcss.setup { on_attach = on_attach } |
||||||
|
|
||||||
|
lsp.julials.setup { |
||||||
|
on_new_config = function(new_config, _) |
||||||
|
local julia = vim.fn.expand("~/.julia/environments/nvim-lspconfig/bin/julia") |
||||||
|
if lsp.util.path.is_file(julia) then |
||||||
|
vim.notify("running julials") |
||||||
|
new_config.cmd[1] = julia |
||||||
|
end |
||||||
|
end, |
||||||
|
on_attach = on_attach |
||||||
|
} |
||||||
|
end, |
||||||
|
}, |
||||||
|
{ |
||||||
|
'nvimtools/none-ls.nvim', |
||||||
|
|
||||||
|
event = { "BufReadPre", "BufNewFile" }, |
||||||
|
config = function() |
||||||
|
local null_ls = require("null-ls") |
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities() |
||||||
|
--capabilities.offsetEncoding = { "utf-16" } |
||||||
|
|
||||||
|
local eslint_format = require("none-ls.formatting.eslint_d").with({ |
||||||
|
extra_filetypes = { "svelte" }, |
||||||
|
}) |
||||||
|
|
||||||
|
local eslint_diag = require("none-ls.diagnostics.eslint_d").with({ |
||||||
|
extra_filetypes = { "svelte" }, |
||||||
|
}) |
||||||
|
|
||||||
|
local eslint_code_actions = require("none-ls.code_actions.eslint_d").with({ |
||||||
|
extra_filetypes = { "svelte" }, |
||||||
|
}) |
||||||
|
|
||||||
|
null_ls.setup { |
||||||
|
on_attach = on_attach, |
||||||
|
capabilities = capabilities, |
||||||
|
sources = { |
||||||
|
eslint_format, |
||||||
|
eslint_diag, |
||||||
|
eslint_code_actions, |
||||||
|
null_ls.builtins.code_actions.gitsigns, |
||||||
|
null_ls.builtins.completion.luasnip, |
||||||
|
null_ls.builtins.completion.tags, |
||||||
|
} |
||||||
|
} |
||||||
|
end, |
||||||
|
dependencies = { "nvim-lua/plenary.nvim", |
||||||
|
"nvimtools/none-ls-extras.nvim", |
||||||
|
'hrsh7th/nvim-cmp', |
||||||
|
}, |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
return { |
||||||
|
"danymat/neogen", |
||||||
|
config = function() |
||||||
|
require("neogen").setup({ |
||||||
|
enabled = true, |
||||||
|
snippet_engine = "luasnip", |
||||||
|
placeholders_hl = "None", -- fixes weird bug where the entire page gets colored with this color |
||||||
|
languages = { |
||||||
|
python = { |
||||||
|
template = { |
||||||
|
annotation_convention = "google_docstrings" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
}) |
||||||
|
nmap('<leader>d', ":lua require('neogen').generate()<CR>") |
||||||
|
end |
||||||
|
} |
@ -0,0 +1,95 @@ |
|||||||
|
return { |
||||||
|
{ |
||||||
|
"L3MON4D3/LuaSnip", |
||||||
|
build = "make install_jsregexp" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"hrsh7th/nvim-cmp", |
||||||
|
dependencies = { |
||||||
|
"hrsh7th/cmp-buffer", "hrsh7th/cmp-nvim-lsp", |
||||||
|
"L3MON4D3/LuaSnip", "rafamadriz/friendly-snippets", |
||||||
|
'hrsh7th/cmp-nvim-lua', 'hrsh7th/cmp-path', |
||||||
|
'hrsh7th/cmp-calc', 'hrsh7th/cmp-cmdline', 'f3fora/cmp-spell', |
||||||
|
}, |
||||||
|
config = function() |
||||||
|
local cmp = require("cmp") |
||||||
|
local luasnip = require('luasnip') |
||||||
|
|
||||||
|
cmp.setup({ |
||||||
|
snippet = { |
||||||
|
expand = function(args) |
||||||
|
luasnip.lsp_expand(args.body) |
||||||
|
end |
||||||
|
}, |
||||||
|
sources = { |
||||||
|
{ name = 'path' }, |
||||||
|
{ name = 'nvim_lsp', keyword_length = 1 }, |
||||||
|
{ name = 'buffer', keyword_length = 3 }, |
||||||
|
{ name = 'luasnip', keyword_length = 2 }, |
||||||
|
}, |
||||||
|
window = { |
||||||
|
completion = cmp.config.window.bordered(), |
||||||
|
documentation = cmp.config.window.bordered() |
||||||
|
}, |
||||||
|
formatting = { |
||||||
|
fields = { 'menu', 'abbr', 'kind' }, |
||||||
|
format = function(entry, item) |
||||||
|
local menu_icon = { |
||||||
|
nvim_lsp = 'λ', |
||||||
|
luasnip = '⋗', |
||||||
|
buffer = 'Ω', |
||||||
|
path = '🖫', |
||||||
|
} |
||||||
|
|
||||||
|
item.menu = menu_icon[entry.source.name] |
||||||
|
return item |
||||||
|
end, |
||||||
|
}, |
||||||
|
mapping = { |
||||||
|
['<Up>'] = cmp.mapping.select_prev_item(select_opts), |
||||||
|
['<Down>'] = cmp.mapping.select_next_item(select_opts), |
||||||
|
|
||||||
|
['<C-u>'] = cmp.mapping.scroll_docs(-4), |
||||||
|
['<C-d>'] = cmp.mapping.scroll_docs(4), |
||||||
|
|
||||||
|
['<C-e>'] = cmp.mapping.abort(), |
||||||
|
['<C-y>'] = cmp.mapping.confirm({ select = true }), |
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = false }), |
||||||
|
|
||||||
|
['<C-f>'] = cmp.mapping(function(fallback) |
||||||
|
if luasnip.jumpable(1) then |
||||||
|
luasnip.jump(1) |
||||||
|
else |
||||||
|
fallback() |
||||||
|
end |
||||||
|
end, { 'i', 's' }), |
||||||
|
|
||||||
|
['<C-b>'] = cmp.mapping(function(fallback) |
||||||
|
if luasnip.jumpable(-1) then |
||||||
|
luasnip.jump(-1) |
||||||
|
else |
||||||
|
fallback() |
||||||
|
end |
||||||
|
end, { 'i', 's' }), |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
cmp.setup.cmdline({ '/', '?' }, { |
||||||
|
mapping = cmp.mapping.preset.cmdline(), |
||||||
|
sources = { |
||||||
|
{ name = 'buffer' } |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
-- to select something in the cmdline need to use <C-n> |
||||||
|
cmp.setup.cmdline(':', { |
||||||
|
mapping = cmp.mapping.preset.cmdline(), |
||||||
|
sources = cmp.config.sources({ |
||||||
|
{ name = 'path' } |
||||||
|
}, { |
||||||
|
{ name = 'cmdline' } |
||||||
|
}), |
||||||
|
matching = { disallow_symbol_nonprefix_matching = false } |
||||||
|
}) |
||||||
|
end, |
||||||
|
} } |
@ -0,0 +1,10 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
killall -q polybar |
||||||
|
|
||||||
|
#while pgrep -u $UID -x polybar >/dev/null; do |
||||||
|
# sleep 0.5; done |
||||||
|
|
||||||
|
for m in $(polybar --list-monitors | cut -d":" -f1); do |
||||||
|
MONITOR=$m polybar -c ~/.config/polybar/fluxbox-config.ini --reload & |
||||||
|
done |
@ -0,0 +1,115 @@ |
|||||||
|
* { |
||||||
|
font: "Iosevka Nerd Font Medium 14"; |
||||||
|
|
||||||
|
bg0 : #1a1b26; |
||||||
|
bg1 : #1f2335; |
||||||
|
bg2 : #24283b; |
||||||
|
bg3 : #414868; |
||||||
|
fg0 : #c0caf5; |
||||||
|
fg1 : #a9b1d6; |
||||||
|
fg2 : #737aa2; |
||||||
|
red : #f7768e; |
||||||
|
green : #9ece6a; |
||||||
|
yellow : #e0af68; |
||||||
|
blue : #7aa2f7; |
||||||
|
magenta : #9a7ecc; |
||||||
|
cyan : #4abaaf; |
||||||
|
|
||||||
|
accent: #d6181b; |
||||||
|
urgent: @yellow; |
||||||
|
|
||||||
|
background-color : transparent; |
||||||
|
text-color : @fg0; |
||||||
|
|
||||||
|
margin : 0; |
||||||
|
padding : 0; |
||||||
|
spacing : 0; |
||||||
|
} |
||||||
|
|
||||||
|
element-icon, element-text, scrollbar { |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
window { |
||||||
|
location : center; |
||||||
|
width : 650px; |
||||||
|
x-offset : 4px; |
||||||
|
y-offset : 26px; |
||||||
|
|
||||||
|
background-color: @bg1; |
||||||
|
border: 1px; |
||||||
|
border-color: @bg3; |
||||||
|
border-radius: 6px; |
||||||
|
} |
||||||
|
|
||||||
|
inputbar { |
||||||
|
spacing : 8px; |
||||||
|
padding : 4px 8px; |
||||||
|
children : [ icon-search, entry ]; |
||||||
|
|
||||||
|
background-color: @bg0; |
||||||
|
} |
||||||
|
|
||||||
|
icon-search, entry, element-icon, element-text { |
||||||
|
vertical-align: 0.5; |
||||||
|
} |
||||||
|
|
||||||
|
icon-search { |
||||||
|
expand : false; |
||||||
|
filename : "search-symbolic"; |
||||||
|
size : 14px; |
||||||
|
} |
||||||
|
|
||||||
|
textbox { |
||||||
|
padding : 4px 8px; |
||||||
|
background-color : @bg2; |
||||||
|
} |
||||||
|
|
||||||
|
listview { |
||||||
|
padding : 4px 0px; |
||||||
|
lines : 12; |
||||||
|
columns : 1; |
||||||
|
scrollbar : true; |
||||||
|
fixed-height : false; |
||||||
|
dynamic : true; |
||||||
|
} |
||||||
|
|
||||||
|
element { |
||||||
|
padding : 4px 8px; |
||||||
|
spacing : 8px; |
||||||
|
} |
||||||
|
|
||||||
|
element normal urgent { |
||||||
|
text-color: @urgent; |
||||||
|
} |
||||||
|
|
||||||
|
element normal active { |
||||||
|
text-color: @accent; |
||||||
|
} |
||||||
|
|
||||||
|
element alternate active { |
||||||
|
text-color: @accent; |
||||||
|
} |
||||||
|
|
||||||
|
element selected { |
||||||
|
text-color : @bg1; |
||||||
|
background-color : @accent; |
||||||
|
} |
||||||
|
|
||||||
|
element selected urgent { |
||||||
|
background-color: @urgent; |
||||||
|
} |
||||||
|
|
||||||
|
element-icon { |
||||||
|
size: 0.8em; |
||||||
|
} |
||||||
|
|
||||||
|
element-text { |
||||||
|
text-color: inherit; |
||||||
|
} |
||||||
|
|
||||||
|
scrollbar { |
||||||
|
handle-width : 4px; |
||||||
|
handle-color : @fg2; |
||||||
|
padding : 0 4px; |
||||||
|
} |
@ -0,0 +1,200 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
## Grimshot: a helper for screenshots within sway |
||||||
|
## Requirements: |
||||||
|
## - `grim`: screenshot utility for wayland |
||||||
|
## - `slurp`: to select an area |
||||||
|
## - `swaymsg`: to read properties of current window |
||||||
|
## - `wl-copy`: clipboard utility |
||||||
|
## - `jq`: json utility to parse swaymsg output |
||||||
|
## - `notify-send`: to show notifications |
||||||
|
## Those are needed to be installed, if unsure, run `grimshot check` |
||||||
|
## |
||||||
|
## See `man 1 grimshot` or `grimshot usage` for further details. |
||||||
|
|
||||||
|
getTargetDirectory() { |
||||||
|
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" && \ |
||||||
|
. "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" |
||||||
|
|
||||||
|
echo "${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}" |
||||||
|
} |
||||||
|
|
||||||
|
NOTIFY=no |
||||||
|
CURSOR= |
||||||
|
WAIT=no |
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do |
||||||
|
key="$1" |
||||||
|
|
||||||
|
case $key in |
||||||
|
-n|--notify) |
||||||
|
NOTIFY=yes |
||||||
|
shift # past argument |
||||||
|
;; |
||||||
|
-c|--cursor) |
||||||
|
CURSOR=yes |
||||||
|
shift # past argument |
||||||
|
;; |
||||||
|
-w|--wait) |
||||||
|
shift |
||||||
|
WAIT="$1" |
||||||
|
if echo "$WAIT" | grep "[^0-9]" -q; then |
||||||
|
echo "invalid value for wait '$WAIT'" >&2 |
||||||
|
exit 3 |
||||||
|
fi |
||||||
|
shift |
||||||
|
;; |
||||||
|
*) # unknown option |
||||||
|
break # done with parsing --flags |
||||||
|
;; |
||||||
|
esac |
||||||
|
done |
||||||
|
|
||||||
|
ACTION=${1:-usage} |
||||||
|
SUBJECT=${2:-screen} |
||||||
|
FILE=${3:-$(getTargetDirectory)/$(date -Ins).png} |
||||||
|
|
||||||
|
if [ "$ACTION" != "save" ] && [ "$ACTION" != "copy" ] && [ "$ACTION" != "savecopy" ] && [ "$ACTION" != "check" ]; then |
||||||
|
echo "Usage:" |
||||||
|
echo " grimshot [--notify] [--cursor] [--wait N] (copy|save) [active|screen|output|area|window|anything] [FILE|-]" |
||||||
|
echo " grimshot check" |
||||||
|
echo " grimshot usage" |
||||||
|
echo "" |
||||||
|
echo "Commands:" |
||||||
|
echo " copy: Copy the screenshot data into the clipboard." |
||||||
|
echo " save: Save the screenshot to a regular file or '-' to pipe to STDOUT." |
||||||
|
echo " savecopy: Save the screenshot to a regular file and copy the data into the clipboard." |
||||||
|
echo " check: Verify if required tools are installed and exit." |
||||||
|
echo " usage: Show this message and exit." |
||||||
|
echo "" |
||||||
|
echo "Targets:" |
||||||
|
echo " active: Currently active window." |
||||||
|
echo " screen: All visible outputs." |
||||||
|
echo " output: Currently active output." |
||||||
|
echo " area: Manually select a region." |
||||||
|
echo " window: Manually select a window." |
||||||
|
echo " anything: Manually select an area, window, or output." |
||||||
|
exit |
||||||
|
fi |
||||||
|
|
||||||
|
notify() { |
||||||
|
notify-send -t 3000 -a grimshot "$@" |
||||||
|
} |
||||||
|
notifyOk() { |
||||||
|
[ "$NOTIFY" = "no" ] && return |
||||||
|
|
||||||
|
TITLE=${2:-"Screenshot"} |
||||||
|
MESSAGE=${1:-"OK"} |
||||||
|
|
||||||
|
if [ "$ACTION" = "save" ] || [ "$ACTION" = "savecopy" ]; then |
||||||
|
notify "$TITLE" "$MESSAGE" -i "$FILE" |
||||||
|
else |
||||||
|
notify "$TITLE" "$MESSAGE" |
||||||
|
fi |
||||||
|
} |
||||||
|
notifyError() { |
||||||
|
if [ $NOTIFY = "yes" ]; then |
||||||
|
TITLE=${2:-"Screenshot"} |
||||||
|
MESSAGE=${1:-"Error taking screenshot with grim"} |
||||||
|
notify -u critical "$TITLE" "$MESSAGE" |
||||||
|
else |
||||||
|
echo "$1" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
die() { |
||||||
|
MSG=${1:-Bye} |
||||||
|
notifyError "Error: $MSG" |
||||||
|
exit 2 |
||||||
|
} |
||||||
|
|
||||||
|
check() { |
||||||
|
COMMAND=$1 |
||||||
|
if command -v "$COMMAND" > /dev/null 2>&1; then |
||||||
|
RESULT="OK" |
||||||
|
else |
||||||
|
RESULT="NOT FOUND" |
||||||
|
fi |
||||||
|
echo " $COMMAND: $RESULT" |
||||||
|
} |
||||||
|
|
||||||
|
takeScreenshot() { |
||||||
|
FILE=$1 |
||||||
|
GEOM=$2 |
||||||
|
OUTPUT=$3 |
||||||
|
if [ -n "$OUTPUT" ]; then |
||||||
|
grim ${CURSOR:+-c} -o "$OUTPUT" "$FILE" || die "Unable to invoke grim" |
||||||
|
elif [ -z "$GEOM" ]; then |
||||||
|
grim ${CURSOR:+-c} "$FILE" || die "Unable to invoke grim" |
||||||
|
else |
||||||
|
grim ${CURSOR:+-c} -g "$GEOM" "$FILE" || die "Unable to invoke grim" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
if [ "$ACTION" = "check" ] ; then |
||||||
|
echo "Checking if required tools are installed. If something is missing, install it to your system and make it available in PATH..." |
||||||
|
check grim |
||||||
|
check slurp |
||||||
|
check swaymsg |
||||||
|
check wl-copy |
||||||
|
check jq |
||||||
|
check notify-send |
||||||
|
exit |
||||||
|
elif [ "$SUBJECT" = "area" ] ; then |
||||||
|
GEOM=$(slurp -d) |
||||||
|
# Check if user exited slurp without selecting the area |
||||||
|
if [ -z "$GEOM" ]; then |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
WHAT="Area" |
||||||
|
elif [ "$SUBJECT" = "active" ] ; then |
||||||
|
FOCUSED=$(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?, .floating_nodes[]?) | select(.focused)') |
||||||
|
GEOM=$(echo "$FOCUSED" | jq -r '.rect | "\(.x),\(.y) \(.width)x\(.height)"') |
||||||
|
APP_ID=$(echo "$FOCUSED" | jq -r '.app_id') |
||||||
|
WHAT="$APP_ID window" |
||||||
|
elif [ "$SUBJECT" = "screen" ] ; then |
||||||
|
GEOM="" |
||||||
|
WHAT="Screen" |
||||||
|
elif [ "$SUBJECT" = "output" ] ; then |
||||||
|
GEOM="" |
||||||
|
OUTPUT=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused)' | jq -r '.name') |
||||||
|
WHAT="$OUTPUT" |
||||||
|
elif [ "$SUBJECT" = "window" ] ; then |
||||||
|
GEOM=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -r) |
||||||
|
# Check if user exited slurp without selecting the area |
||||||
|
if [ -z "$GEOM" ]; then |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
WHAT="Window" |
||||||
|
elif [ "$SUBJECT" = "anything" ] ; then |
||||||
|
GEOM=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -o) |
||||||
|
# Check if user exited slurp without selecting the area |
||||||
|
if [ -z "$GEOM" ]; then |
||||||
|
exit |
||||||
|
fi |
||||||
|
WHAT="Selection" |
||||||
|
else |
||||||
|
die "Unknown subject to take a screen shot from" "$SUBJECT" |
||||||
|
fi |
||||||
|
|
||||||
|
if [ "$WAIT" != "no" ]; then |
||||||
|
sleep "$WAIT" |
||||||
|
fi |
||||||
|
|
||||||
|
if [ "$ACTION" = "copy" ] ; then |
||||||
|
takeScreenshot - "$GEOM" "$OUTPUT" | wl-copy --type image/png || die "Clipboard error" |
||||||
|
notifyOk "$WHAT copied to clipboard" |
||||||
|
else |
||||||
|
if takeScreenshot "$FILE" "$GEOM" "$OUTPUT"; then |
||||||
|
TITLE="Screenshot of $SUBJECT" |
||||||
|
MESSAGE=$(basename "$FILE") |
||||||
|
if [ "$ACTION" = "savecopy" ]; then |
||||||
|
wl-copy --type image/png < "$FILE" || die "Clipboard error" |
||||||
|
MESSAGE="$MESSAGE and clipboard" |
||||||
|
fi |
||||||
|
notifyOk "$MESSAGE" "$TITLE" |
||||||
|
echo "$FILE" |
||||||
|
else |
||||||
|
notifyError "Error taking screenshot with grim" |
||||||
|
fi |
||||||
|
fi |
@ -1,10 +1,11 @@ |
|||||||
export QT_STYLE_OVERRIDE=kvantum |
export QT_STYLE_OVERRIDE=kvantum |
||||||
systemctl --user import-enviornment DISPLAY |
export XDG_SESSION_TYPE=X11 |
||||||
|
systemctl --user import-environment DISPLAY |
||||||
|
|
||||||
udiskie --tray & |
# xset -dpms |
||||||
autorandr --change & |
# xset s noblank |
||||||
xset -dpms |
|
||||||
xset s noblank |
|
||||||
xset s off -dpms |
xset s off -dpms |
||||||
wal -i ~/.wallpapers |
|
||||||
|
udiskie --tray & |
||||||
|
autorandr --change |
||||||
exec i3 |
exec i3 |
||||||
|
Loading…
Reference in new issue