Compare commits

...

7 Commits

13 changed files with 422 additions and 311 deletions

View File

@@ -196,13 +196,13 @@ auto_update "yes"
# Input #######################################################################
#
input {
plugin "curl"
# input {
# plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
# }
#
#
###############################################################################
@@ -215,6 +215,10 @@ input {
#
# An example of an ALSA output:
#
audio_output {
type "pipewire"
name "PipeWire Sound Server"
}
#audio_output {
# type "alsa"
# name "My ALSA Device"

View File

@@ -1,7 +1,8 @@
auto-reload yes
reload-time 30
browser "chromium --incognito"
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser "chromium --incognito"
# browser "chromium --incognito"
browser "firefox --private-window"
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser "firefox --private-window"
macro Y set browser "mpv %u"; open-in-browser ; set browser "chromium --incognito"
unbind-key h

View File

@@ -1,69 +1,128 @@
return {
'hrsh7th/nvim-cmp',
dependencies = {
'neovim/nvim-lspconfig',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'hrsh7th/cmp-vsnip',
'hrsh7th/vim-vsnip',
},
config = function ()
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'vsnip' }, -- For vsnip users.
{ name = 'path' },
{
name = 'buffer',
option = {
keyword_length = 3,
get_bufnrs = function()
return vim.api.nvim_list_bufs()
end
}
},
}, {
{ name = 'buffer' },
})
})
-- return {
-- 'hrsh7th/nvim-cmp',
-- dependencies = {
-- 'neovim/nvim-lspconfig',
-- 'hrsh7th/cmp-nvim-lsp',
-- 'hrsh7th/cmp-buffer',
-- 'hrsh7th/cmp-path',
-- 'hrsh7th/cmp-cmdline',
-- 'hrsh7th/cmp-vsnip',
-- 'hrsh7th/vim-vsnip',
-- },
-- config = function ()
-- local cmp = require'cmp'
-- cmp.setup({
-- snippet = {
-- expand = function(args)
-- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
-- end,
-- },
-- window = {
-- completion = cmp.config.window.bordered(),
-- documentation = cmp.config.window.bordered(),
-- },
-- sources = cmp.config.sources({
-- { name = 'nvim_lsp' },
-- { name = 'vsnip' }, -- For vsnip users.
-- { name = 'path' },
-- {
-- name = 'buffer',
-- option = {
-- keyword_length = 3,
-- get_bufnrs = function()
-- return vim.api.nvim_list_bufs()
-- end
-- }
-- },
-- }, {
-- { name = 'buffer' },
-- })
-- })
--
-- -- Set configuration for specific filetype.
-- cmp.setup.filetype('gitcommit', {
-- sources = cmp.config.sources({
-- { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
-- }, {
-- { name = 'buffer' },
-- })
-- })
--
-- -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
-- cmp.setup.cmdline({ '/', '?' }, {
-- mapping = cmp.mapping.preset.cmdline(),
-- sources = {
-- { name = 'buffer' }
-- }
-- })
--
-- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
-- cmp.setup.cmdline(':', {
-- mapping = cmp.mapping.preset.cmdline(),
-- sources = cmp.config.sources({
-- { name = 'path' }
-- }, {
-- { name = 'cmdline' }
-- })
-- })
-- end
-- }
-- Set configuration for specific filetype.
cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
}, {
{ name = 'buffer' },
})
})
return {
"saghen/blink.cmp",
-- optional: provides snippets for the snippet source
dependencies = { "rafamadriz/friendly-snippets" },
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
}
})
-- use a release tag to download pre-built binaries
version = "1.*",
-- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
-- build = 'cargo build --release',
-- If you use nix, you can build from source using latest nightly rust with:
-- build = 'nix run .#build-plugin',
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
})
})
end
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
-- 'super-tab' for mappings similar to vscode (tab to accept)
-- 'enter' for enter to accept
-- 'none' for no mappings
--
-- All presets have the following mappings:
-- C-space: Open menu or open docs if already open
-- C-n/C-p or Up/Down: Select next/previous item
-- C-e: Hide menu
-- C-k: Toggle signature help (if signature.enabled = true)
--
-- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = "default" },
appearance = {
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned
nerd_font_variant = "mono",
},
-- (Default) Only show the documentation popup when manually triggered
completion = {
documentation = {
auto_show = false,
auto_show_delay_ms = 200,
},
},
-- Default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend`
sources = {
default = { "lsp", "path", "snippets", "buffer" },
},
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
-- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
--
-- See the fuzzy documentation for more information
fuzzy = { implementation = "prefer_rust_with_warning" },
},
opts_extend = { "sources.default" },
}

View File

@@ -18,7 +18,8 @@ return {
markdown = { "prettier" },
graphql = { "prettier" },
lua = { "stylua" },
python = { "isort", "black" },
-- python = { "isort", "black" },
python = { "ruff_fix", "ruff_format" },
},
format_on_save = {
lsp_fallback = true,

View File

@@ -28,9 +28,10 @@ return {
ensure_installed = {
"prettier", -- prettier formatter
"stylua", -- lua formatter
"isort", -- python formatter
"black", -- python formatter
"flake8", -- python linter
-- "isort", -- python formatter
-- "black", -- python formatter
-- "flake8", -- python linter
"ruff",
"eslint_d", -- js linter
},
})

View File

@@ -1,222 +1,235 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = {
"folke/noice.nvim",
'nvim-tree/nvim-web-devicons',
},
config = function ()
local colors = {
bg = '#202328',
fg = '#bbc2cf',
yellow = '#ECBE7B',
cyan = '#008080',
darkblue = '#081633',
green = '#98be65',
orange = '#FF8800',
violet = '#a9a1e1',
magenta = '#c678dd',
blue = '#51afef',
red = '#ec5f67'
}
"nvim-lualine/lualine.nvim",
dependencies = {
"folke/noice.nvim",
"nvim-tree/nvim-web-devicons",
},
config = function()
local colors = {
bg = "#202328",
fg = "#bbc2cf",
yellow = "#ECBE7B",
cyan = "#008080",
darkblue = "#081633",
green = "#98be65",
orange = "#FF8800",
violet = "#a9a1e1",
magenta = "#c678dd",
blue = "#51afef",
red = "#ec5f67",
}
local conditions = {
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
check_git_workspace = function()
local filepath = vim.fn.expand('%:p:h')
local gitdir = vim.fn.finddir('.git', filepath .. ';')
return gitdir and #gitdir > 0 and #gitdir < #filepath
end
}
local conditions = {
buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
end,
hide_in_width = function()
return vim.fn.winwidth(0) > 80
end,
check_git_workspace = function()
local filepath = vim.fn.expand("%:p:h")
local gitdir = vim.fn.finddir(".git", filepath .. ";")
return gitdir and #gitdir > 0 and #gitdir < #filepath
end,
}
-- Config
local config = {
options = {
-- Disable sections and component separators
component_separators = "",
section_separators = "",
-- theme = 'gruvbox',
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. both are highlighted by c theme . so we
-- are just setting default looks o statusline
normal = {c = {fg = colors.fg, bg = colors.bg}},
inactive = {c = {fg = colors.fg, bg = colors.bg}}
}
},
sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- these will be filled later
lualine_c = {},
lualine_x = {
{
require("noice").api.statusline.mode.get,
cond = require("noice").api.statusline.mode.has,
color = { fg = "#ff9e64" },
}
}
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_v = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {}
}
}
-- Config
local config = {
options = {
-- Disable sections and component separators
component_separators = "",
section_separators = "",
-- theme = 'gruvbox',
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. both are highlighted by c theme . so we
-- are just setting default looks o statusline
normal = { c = { fg = colors.fg, bg = colors.bg } },
inactive = { c = { fg = colors.fg, bg = colors.bg } },
},
},
sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- these will be filled later
lualine_c = {},
lualine_x = {
{
require("noice").api.statusline.mode.get,
cond = require("noice").api.statusline.mode.has,
color = { fg = "#ff9e64" },
},
},
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_v = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {},
},
}
-- inserts a component in lualine_c at left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
-- inserts a component in lualine_c at left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
-- inserts a component in lualine_x ot right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
-- inserts a component in lualine_x ot right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
local mode_color = {
n = colors.red,
i = colors.green,
v = colors.blue,
[''] = colors.blue,
v = colors.blue,
c = colors.magenta,
no = colors.red,
s = colors.orange,
s = colors.orange,
[''] = colors.orange,
ic = colors.yellow,
r = colors.violet,
rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
['r?'] = colors.cyan,
['!'] = colors.red,
t = colors.red
}
local mode_color = {
n = colors.red,
i = colors.green,
v = colors.blue,
[""] = colors.blue,
v = colors.blue,
c = colors.magenta,
no = colors.red,
s = colors.orange,
s = colors.orange,
[""] = colors.orange,
ic = colors.yellow,
r = colors.violet,
rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
["r?"] = colors.cyan,
["!"] = colors.red,
t = colors.red,
}
ins_left {
-- mode component
function()
-- auto change color according to neovims mode
vim.api.nvim_command(
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
return ''
end,
color = "lualinemode",
left_padding = 0
}
ins_left({
-- mode component
function()
-- auto change color according to neovims mode
vim.api.nvim_command("hi! lualinemode guifg=" .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
return ""
end,
color = "lualinemode",
left_padding = 0,
})
ins_left {
"mode",
color = {fg = colors.green, gui = 'bold'}
}
ins_left({
"mode",
color = { fg = colors.green, gui = "bold" },
})
ins_left {
-- filesize component
function()
local function format_file_size(file)
local size = vim.fn.getfsize(file)
if size <= 0 then return '' end
local sufixes = {'b', 'k', 'm', 'g'}
local i = 1
while size > 1024 do
size = size / 1024
i = i + 1
end
return string.format('%.1f%s', size, sufixes[i])
end
local file = vim.fn.expand('%:p')
if string.len(file) == 0 then return '' end
return format_file_size(file)
end,
condition = conditions.buffer_not_empty
}
ins_left {
-- Lsp server name .
function()
local msg = 'No Active Lsp'
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then return msg end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = ' LSP:',
color = {fg = '#ffffff', gui = 'bold'}
}
ins_left({
-- filesize component
function()
local function format_file_size(file)
local size = vim.fn.getfsize(file)
if size <= 0 then
return ""
end
local sufixes = { "b", "k", "m", "g" }
local i = 1
while size > 1024 do
size = size / 1024
i = i + 1
end
return string.format("%.1f%s", size, sufixes[i])
end
local file = vim.fn.expand("%:p")
if string.len(file) == 0 then
return ""
end
return format_file_size(file)
end,
condition = conditions.buffer_not_empty,
})
ins_left({
-- Lsp server name .
function()
local msg = "No Active Lsp"
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
local clients = vim.lsp.get_clients()
if next(clients) == nil then
return msg
end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = " LSP:",
color = { fg = "#ffffff", gui = "bold" },
})
ins_left {
'diagnostics',
sources = {'nvim_diagnostic'},
symbols = {error = '', warn = '', info = ''},
color_error = colors.red,
color_warn = colors.yellow,
color_info = colors.cyan
}
ins_left({
"diagnostics",
sources = { "nvim_diagnostic" },
symbols = { error = "", warn = "", info = "" },
color_error = colors.red,
color_warn = colors.yellow,
color_info = colors.cyan,
})
-- Insert mid section. You can make any number of sections in neovim :)
-- for lualine it's any number greater then 2
ins_left {function() return '%=' end}
-- Insert mid section. You can make any number of sections in neovim :)
-- for lualine it's any number greater then 2
ins_left({
function()
return "%="
end,
})
ins_left {
'filename',
file_status = true,
path = 1,
condition = conditions.buffer_not_empty,
color = {fg = colors.magenta, gui = 'bold'}
}
ins_left({
"filename",
file_status = true,
path = 1,
condition = conditions.buffer_not_empty,
color = { fg = colors.magenta, gui = "bold" },
})
-- Add components to right sections
ins_right {
'o:encoding', -- option component same as &encoding in viml
upper = true, -- I'm not sure why it's upper case either ;)
condition = conditions.hide_in_width,
color = {fg = colors.green, gui = 'bold'}
}
-- Add components to right sections
ins_right({
"o:encoding", -- option component same as &encoding in viml
upper = true, -- I'm not sure why it's upper case either ;)
condition = conditions.hide_in_width,
color = { fg = colors.green, gui = "bold" },
})
ins_right {
'fileformat',
upper = true,
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
color = {fg = colors.green, gui = 'bold'}
}
ins_right({
"fileformat",
upper = true,
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
color = { fg = colors.green, gui = "bold" },
})
ins_right {
'branch',
icon = '',
condition = conditions.check_git_workspace,
color = {fg = colors.violet, gui = 'bold'}
}
ins_right({
"branch",
icon = "",
condition = conditions.check_git_workspace,
color = { fg = colors.violet, gui = "bold" },
})
ins_right {
'diff',
-- Is it me or the symbol for modified us really weird
symbols = {added = '', modified = '', removed = ''},
color_added = colors.green,
color_modified = colors.orange,
color_removed = colors.red,
condition = conditions.hide_in_width
}
ins_right({
"diff",
-- Is it me or the symbol for modified us really weird
symbols = { added = "", modified = "", removed = "" },
color_added = colors.green,
color_modified = colors.orange,
color_removed = colors.red,
condition = conditions.hide_in_width,
})
ins_right {'location'}
ins_right({ "location" })
ins_right {'progress', color = {fg = colors.fg, gui = 'bold'}}
ins_right({ "progress", color = { fg = colors.fg, gui = "bold" } })
require('lualine').setup(config)
end
require("lualine").setup(config)
end,
}

View File

@@ -21,24 +21,24 @@ return {
"markdown_inline",
},
sync_install = false,
highlight = { enable = true },
highlight = { enable = false },
indent = { enable = true },
})
end,
opts = function(_, opts)
vim.treesitter.language.register("markdown", "mdx")
-- vim.list_extend(opts.highlight.disable, { "tsx" })
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, {
"bibtex",
"latex",
-- you can add more here
})
end
if type(opts.highlight.disable) == "table" then
vim.list_extend(opts.highlight.disable, { "latex", "bibtex" })
else
opts.highlight.disable = { "latex", "bibtex" }
end
end,
-- opts = function(_, opts)
-- vim.treesitter.language.register("markdown", "mdx")
-- vim.list_extend(opts.highlight.disable, { "tsx" })
-- if type(opts.ensure_installed) == "table" then
-- vim.list_extend(opts.ensure_installed, {
-- "bibtex",
-- "latex",
-- -- you can add more here
-- })
-- end
-- if type(opts.highlight.disable) == "table" then
-- vim.list_extend(opts.highlight.disable, { "latex", "bibtex" })
-- else
-- opts.highlight.disable = { "latex", "bibtex" }
-- end
-- end,
}

View File

@@ -20,7 +20,7 @@ return {
vim.g.vimtex_compiler_latexmk = {
aux_dir = "./aux",
out_dir = "./out",
out_dir = "./",
}
end,
},

View File

@@ -1,13 +1,22 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
}

View File

@@ -122,3 +122,6 @@ action_menu="Alt+a"
type_menu="Alt+t"
help="Alt+h"
switch="Alt+x"
clipboard_backend=wl-clipboard
backend=wtype

View File

@@ -52,7 +52,8 @@ output * bg ~/Images/Wallpapers/coraill.jpg fill
input type:keyboard {
xkb_layout "fr"
xkb_variant ""
# xkb_variant "ergol"
xkb_variant "azerty"
}
input * xkb_numlock enable
@@ -166,7 +167,26 @@ bindsym $mod+7 move container to workspace $ws7
bindsym $mod+8 move container to workspace $ws8
bindsym $mod+9 move container to workspace $ws9
# bindsym $mod+1 workspace $ws1
# bindsym $mod+2 workspace $ws2
# bindsym $mod+3 workspace $ws3
# bindsym $mod+4 workspace $ws4
# bindsym $mod+5 workspace $ws5
# bindsym $mod+6 workspace $ws6
# bindsym $mod+7 workspace $ws7
# bindsym $mod+8 workspace $ws8
# bindsym $mod+9 workspace $ws9
#
# bindsym $mod+Shift+1 move container to workspace $ws1
# bindsym $mod+Shift+2 move container to workspace $ws2
# bindsym $mod+Shift+3 move container to workspace $ws3
# bindsym $mod+Shift+4 move container to workspace $ws4
# bindsym $mod+Shift+5 move container to workspace $ws5
# bindsym $mod+Shift+6 move container to workspace $ws6
# bindsym $mod+Shift+7 move container to workspace $ws7
# bindsym $mod+Shift+8 move container to workspace $ws8
# bindsym $mod+Shift+9 move container to workspace $ws9
#
bindsym $mod+Ctrl+greater move workspace to output right
bindsym $mod+Ctrl+less move workspace to output left

View File

@@ -12,6 +12,6 @@ exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
#exec_always pkill kanshi; exec_always kanshi
exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
exec swaymsg "workspace $ws1; exec firefox;"
exec swaymsg "workspace $ws1; exec zen-browser;"
exec swaymsg "workspace $ws2; exec thunderbird;"
exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"
# exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"

View File

@@ -90,7 +90,7 @@ _fzf_complete_pass() {
}
# yarn global commands
export PATH="$(yarn global bin):$PATH"
export PATH="/home/lafrite/.local/bin:$(yarn global bin):$PATH"
# zk
export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"