Compare commits
22 Commits
39a18835a1
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d84f20edf0 | |||
| 28714d5f8a | |||
| 692c87e1ba | |||
| 653f44935a | |||
| 714fb7ef37 | |||
| 71f3906774 | |||
| cb4ec4608a | |||
| 0bb9a6f7c0 | |||
| 02ecd3f25f | |||
| d2362ff046 | |||
| b63689815a | |||
| f4c8773056 | |||
| f7af499573 | |||
| cd9ba86fca | |||
| 938db338fc | |||
| c95ee6f650 | |||
| cbe9a6c55c | |||
| d812c32e37 | |||
| 9cf5d8d5e0 | |||
| 2131bb57c4 | |||
| 5210b2a15a | |||
| 158c7a60a3 |
119
alacritty/.config/alacritty/alacritty.toml
Normal file
119
alacritty/.config/alacritty/alacritty.toml
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
|
||||||
|
[colors]
|
||||||
|
draw_bold_text_with_bright_colors = true
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#928374"
|
||||||
|
blue = "#83a598"
|
||||||
|
cyan = "#8ec07c"
|
||||||
|
green = "#b8bb26"
|
||||||
|
magenta = "#d3869b"
|
||||||
|
red = "#fb4934"
|
||||||
|
white = "#ebdbb2"
|
||||||
|
yellow = "#fabd2f"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#282828"
|
||||||
|
blue = "#458588"
|
||||||
|
cyan = "#689d6a"
|
||||||
|
green = "#98971a"
|
||||||
|
magenta = "#b16286"
|
||||||
|
red = "#cc241d"
|
||||||
|
white = "#a89984"
|
||||||
|
yellow = "#d79921"
|
||||||
|
|
||||||
|
[colors.primary]
|
||||||
|
background = "#32302f"
|
||||||
|
foreground = "#ebdbb2"
|
||||||
|
|
||||||
|
[cursor]
|
||||||
|
style = "Block"
|
||||||
|
unfocused_hollow = true
|
||||||
|
|
||||||
|
[font]
|
||||||
|
size = 12.0
|
||||||
|
|
||||||
|
[font.bold]
|
||||||
|
family = "UbuntuMono Nerd Font"
|
||||||
|
style = "Bold"
|
||||||
|
|
||||||
|
[font.bold_italic]
|
||||||
|
family = "UbuntuMono Nerd Font"
|
||||||
|
style = "Bold Italic"
|
||||||
|
|
||||||
|
[font.glyph_offset]
|
||||||
|
x = 0
|
||||||
|
y = 0
|
||||||
|
|
||||||
|
[font.italic]
|
||||||
|
family = "UbuntuMono Nerd Font"
|
||||||
|
style = "Italic"
|
||||||
|
|
||||||
|
[font.normal]
|
||||||
|
family = "UbuntuMono Nerd Font"
|
||||||
|
style = "Regular"
|
||||||
|
|
||||||
|
[font.offset]
|
||||||
|
x = 0
|
||||||
|
y = 0
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "Paste"
|
||||||
|
key = "V"
|
||||||
|
mods = "Control|Shift"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "Copy"
|
||||||
|
key = "C"
|
||||||
|
mods = "Control|Shift"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "ResetFontSize"
|
||||||
|
key = "Key0"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "IncreaseFontSize"
|
||||||
|
key = "Equals"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "IncreaseFontSize"
|
||||||
|
key = "NumpadAdd"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "DecreaseFontSize"
|
||||||
|
key = "NumpadSubtract"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "DecreaseFontSize"
|
||||||
|
key = "Minus"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[mouse.bindings]]
|
||||||
|
action = "PasteSelection"
|
||||||
|
mouse = "Middle"
|
||||||
|
|
||||||
|
[scrolling]
|
||||||
|
history = 10000
|
||||||
|
multiplier = 10
|
||||||
|
|
||||||
|
[selection]
|
||||||
|
save_to_clipboard = true
|
||||||
|
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
|
||||||
|
|
||||||
|
[window]
|
||||||
|
decorations = "none"
|
||||||
|
|
||||||
|
[window.dimensions]
|
||||||
|
columns = 100
|
||||||
|
lines = 20
|
||||||
|
|
||||||
|
[window.padding]
|
||||||
|
x = 2
|
||||||
|
y = 2
|
||||||
|
|
||||||
|
[general]
|
||||||
|
live_config_reload = true
|
||||||
@@ -196,13 +196,13 @@ auto_update "yes"
|
|||||||
|
|
||||||
# Input #######################################################################
|
# Input #######################################################################
|
||||||
#
|
#
|
||||||
input {
|
# input {
|
||||||
plugin "curl"
|
# plugin "curl"
|
||||||
# proxy "proxy.isp.com:8080"
|
# proxy "proxy.isp.com:8080"
|
||||||
# proxy_user "user"
|
# proxy_user "user"
|
||||||
# proxy_password "password"
|
# proxy_password "password"
|
||||||
}
|
# }
|
||||||
|
#
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -215,6 +215,10 @@ input {
|
|||||||
#
|
#
|
||||||
# An example of an ALSA output:
|
# An example of an ALSA output:
|
||||||
#
|
#
|
||||||
|
audio_output {
|
||||||
|
type "pipewire"
|
||||||
|
name "PipeWire Sound Server"
|
||||||
|
}
|
||||||
#audio_output {
|
#audio_output {
|
||||||
# type "alsa"
|
# type "alsa"
|
||||||
# name "My ALSA Device"
|
# name "My ALSA Device"
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
auto-reload yes
|
auto-reload yes
|
||||||
reload-time 30
|
reload-time 30
|
||||||
browser "chromium --incognito"
|
# browser "chromium --incognito"
|
||||||
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set 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"
|
macro Y set browser "mpv %u"; open-in-browser ; set browser "chromium --incognito"
|
||||||
|
|
||||||
unbind-key h
|
unbind-key h
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "Tech"
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw "Tech"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw "Tech"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCeeFfhMcJa1kjtfZAGskOCA "Tech"
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsRIv1fsbnQRIPKmUQbRzZg "Tech"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCsRIv1fsbnQRIPKmUQbRzZg "Tech"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw "Tech"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw "Tech"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV0qA-eDDICsRR9rPcnG7tw "Tech"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCV0qA-eDDICsRR9rPcnG7tw "Tech"
|
||||||
@@ -9,8 +7,6 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCVRJ6D343dX-x730MRP8tNw "Te
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCG5Ph9Mm6UEQLJJ-kGIC2AQ "Tech" "OneMarcFifty"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCG5Ph9Mm6UEQLJJ-kGIC2AQ "Tech" "OneMarcFifty"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWedHS9qKebauVIK2J7383g "Tech" "Underscore_"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCWedHS9qKebauVIK2J7383g "Tech" "Underscore_"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9C07cryUrKzLuAzwITPA3A "SC2" "SC2HL"
|
|
||||||
|
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCr_3nQ4eRCwm_XUDpf62MAg "Information "Partager C'est Sympa"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCr_3nQ4eRCwm_XUDpf62MAg "Information "Partager C'est Sympa"
|
||||||
|
|
||||||
@@ -60,13 +56,16 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCy0I5Hcl2k7dN4UdZTedfeQ "Sp
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgkhWgBGRp0sdFy2MHDWfSg "Math" "El Ji"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCgkhWgBGRp0sdFy2MHDWfSg "Math" "El Ji"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw "Math" "3Blue1Brown"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw "Math" "3Blue1Brown"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaNlbnghtwlsGF-KzAFThqA "Science "ScienceEtonnante"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCaNlbnghtwlsGF-KzAFThqA "Science "ScienceEtonnante"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLXDNUOO3EQ80VmD9nQBHPg "???" "Fouloscopie"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCLXDNUOO3EQ80VmD9nQBHPg "Science "Fouloscopie"
|
||||||
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoJtk2M8bme9KXTe6F3K-Yg "CLI" "The Mouseless Dev"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCoJtk2M8bme9KXTe6F3K-Yg "CLI" "The Mouseless Dev"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC8ENHE5xdFSwx71u3fDH5Xw "Vim" "ThePrimeagen"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC8ENHE5xdFSwx71u3fDH5Xw "Vim" "ThePrimeagen"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "Vim" "Greg Hurrel"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "Vim" "Greg Hurrel"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCs_AZuYXi6NA9tkdbhjItHQ "AdminSys" "Xavki"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCs_AZuYXi6NA9tkdbhjItHQ "AdminSys" "Xavki"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOk-gHyjcWZNj3Br4oxwh0A "Homelab" "Techno Tim"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCOk-gHyjcWZNj3Br4oxwh0A "Homelab" "Techno Tim"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC9x0AN7BWHpCDHSm9NiJFJQ "Homelab" "NetworkChuck"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCZNhwA1B5YqiY1nLzmM0ZRg "Homelab" "Christian Lempa"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCWQaM7SpSECp9FELz-cHzuQ "Cording" "Dream of Code"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCWQaM7SpSECp9FELz-cHzuQ "Cording" "Dream of Code"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCvjgXvBlbQiydffZU7m1_aw "Programmation" "~Coding Train"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCYeiozh-4QwuC1sjgCmB92w "Cording" "DevOps Toolbox"
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code"
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCLOAPb7ATQUs_nDs9ViLcMw "Programmation" "Benjamin Code"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCiZxJB0xWfPBE2omVZeWPpQ "Programmation" "Mehdio DataTV"
|
||||||
|
|||||||
@@ -17,3 +17,8 @@ vim.keymap.set("n", "N", "Nzzzv")
|
|||||||
-- Move block on visual mode
|
-- Move block on visual mode
|
||||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||||
|
|
||||||
|
-- Diagnostic (erreurs LSP)
|
||||||
|
vim.keymap.set('n', 'gl', vim.diagnostic.open_float, { desc = 'Show diagnostic' })
|
||||||
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Previous diagnostic' })
|
||||||
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Next diagnostic' })
|
||||||
|
|||||||
@@ -1,69 +1,86 @@
|
|||||||
return {
|
return {
|
||||||
'hrsh7th/nvim-cmp',
|
"saghen/blink.cmp",
|
||||||
|
-- optional: provides snippets for the snippet source
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'neovim/nvim-lspconfig',
|
"rafamadriz/friendly-snippets",
|
||||||
'hrsh7th/cmp-nvim-lsp',
|
{
|
||||||
'hrsh7th/cmp-buffer',
|
"L3MON4D3/LuaSnip",
|
||||||
'hrsh7th/cmp-path',
|
build = "make install_jsregexp",
|
||||||
'hrsh7th/cmp-cmdline',
|
|
||||||
'hrsh7th/cmp-vsnip',
|
|
||||||
'hrsh7th/vim-vsnip',
|
|
||||||
},
|
|
||||||
config = function()
|
config = function()
|
||||||
local cmp = require'cmp'
|
require("luasnip").setup({
|
||||||
cmp.setup({
|
store_selection_keys = "<Tab>",
|
||||||
snippet = {
|
})
|
||||||
expand = function(args)
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
require("luasnip.loaders.from_lua").lazy_load({
|
||||||
|
paths = { "~/.config/nvim/snippets" },
|
||||||
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
window = {
|
|
||||||
completion = cmp.config.window.bordered(),
|
|
||||||
documentation = cmp.config.window.bordered(),
|
|
||||||
},
|
},
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = 'nvim_lsp' },
|
-- use a release tag to download pre-built binaries
|
||||||
{ name = 'vsnip' }, -- For vsnip users.
|
version = "1.*",
|
||||||
{ name = 'path' },
|
-- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
|
||||||
{
|
-- build = 'cargo build --release',
|
||||||
name = 'buffer',
|
-- If you use nix, you can build from source using latest nightly rust with:
|
||||||
option = {
|
-- build = 'nix run .#build-plugin',
|
||||||
keyword_length = 3,
|
|
||||||
get_bufnrs = function()
|
---@module 'blink.cmp'
|
||||||
return vim.api.nvim_list_bufs()
|
---@type blink.cmp.Config
|
||||||
end
|
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",
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
{ name = 'buffer' },
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Set configuration for specific filetype.
|
-- (Default) Only show the documentation popup when manually triggered
|
||||||
cmp.setup.filetype('gitcommit', {
|
completion = {
|
||||||
sources = cmp.config.sources({
|
documentation = {
|
||||||
{ name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
|
auto_show = true,
|
||||||
}, {
|
auto_show_delay_ms = 200,
|
||||||
{ name = 'buffer' },
|
},
|
||||||
})
|
ghost_text = {
|
||||||
})
|
enabled = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
-- Default list of enabled providers defined so that you can extend it
|
||||||
cmp.setup.cmdline({ '/', '?' }, {
|
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
||||||
mapping = cmp.mapping.preset.cmdline(),
|
|
||||||
sources = {
|
sources = {
|
||||||
{ name = 'buffer' }
|
default = { "lsp", "path", "snippets", "buffer" },
|
||||||
}
|
providers = {
|
||||||
})
|
buffer = {
|
||||||
|
min_keyword_length = 3,
|
||||||
|
score_offset = -10,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
snippets = {
|
||||||
cmp.setup.cmdline(':', {
|
preset = "luasnip",
|
||||||
mapping = cmp.mapping.preset.cmdline(),
|
},
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = 'path' }
|
-- (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,
|
||||||
{ name = 'cmdline' }
|
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
|
||||||
})
|
--
|
||||||
})
|
-- See the fuzzy documentation for more information
|
||||||
end
|
fuzzy = { implementation = "prefer_rust_with_warning" },
|
||||||
|
},
|
||||||
|
opts_extend = { "sources.default" },
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ return {
|
|||||||
markdown = { "prettier" },
|
markdown = { "prettier" },
|
||||||
graphql = { "prettier" },
|
graphql = { "prettier" },
|
||||||
lua = { "stylua" },
|
lua = { "stylua" },
|
||||||
python = { "isort", "black" },
|
-- python = { "isort", "black" },
|
||||||
|
python = { "ruff_fix", "ruff_format" },
|
||||||
},
|
},
|
||||||
format_on_save = {
|
format_on_save = {
|
||||||
lsp_fallback = true,
|
lsp_fallback = true,
|
||||||
@@ -29,7 +30,7 @@ return {
|
|||||||
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
||||||
conform.format({
|
conform.format({
|
||||||
lsp_fallback = true,
|
lsp_fallback = true,
|
||||||
async = false,
|
async = true,
|
||||||
timeout_ms = 500,
|
timeout_ms = 500,
|
||||||
})
|
})
|
||||||
end, { desc = "Format file or range (in visual mode)" })
|
end, { desc = "Format file or range (in visual mode)" })
|
||||||
|
|||||||
153
nvim/.config/nvim/lua/plugins/harpoon.lua
Normal file
153
nvim/.config/nvim/lua/plugins/harpoon.lua
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
-- plugins/h-- plugins/harpoon.lua
|
||||||
|
return {
|
||||||
|
"ThePrimeagen/harpoon",
|
||||||
|
branch = "harpoon2",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
config = function()
|
||||||
|
local harpoon = require("harpoon")
|
||||||
|
|
||||||
|
-- Setup Harpoon pour sessions temporaires (pas de persistence)
|
||||||
|
harpoon:setup({
|
||||||
|
settings = {
|
||||||
|
save_on_toggle = false, -- Pas de sauvegarde automatique
|
||||||
|
sync_on_ui_close = false, -- Pas de sync à la fermeture
|
||||||
|
save_on_change = true, -- Sauvegarde les changements dans la session
|
||||||
|
excluded_filetypes = { "harpoon", "alpha", "dashboard", "gitcommit", "fugitive" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- === Fonction helper pour arrêter VimTeX ===
|
||||||
|
local function stop_all_vimtex()
|
||||||
|
-- Récupérer tous les buffers LaTeX ouverts
|
||||||
|
local latex_buffers = {}
|
||||||
|
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
|
||||||
|
if vim.api.nvim_buf_is_loaded(buf) then
|
||||||
|
local filetype = vim.api.nvim_buf_get_option(buf, "filetype")
|
||||||
|
if filetype == "tex" or filetype == "latex" then
|
||||||
|
table.insert(latex_buffers, buf)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Arrêter VimTeX pour chaque buffer LaTeX
|
||||||
|
for _, buf in ipairs(latex_buffers) do
|
||||||
|
-- Switcher temporairement vers ce buffer pour exécuter VimtexStop
|
||||||
|
local current_buf = vim.api.nvim_get_current_buf()
|
||||||
|
vim.api.nvim_set_current_buf(buf)
|
||||||
|
|
||||||
|
if vim.fn.exists(":VimtexStop") == 2 then
|
||||||
|
pcall(vim.cmd, "VimtexStop") -- pcall pour éviter les erreurs
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Revenir au buffer original
|
||||||
|
if vim.api.nvim_buf_is_valid(current_buf) then
|
||||||
|
vim.api.nvim_set_current_buf(current_buf)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Alternative plus robuste: tuer directement les processus latexmk
|
||||||
|
local handle = io.popen("pgrep -f latexmk")
|
||||||
|
if handle then
|
||||||
|
local result = handle:read("*a")
|
||||||
|
handle:close()
|
||||||
|
if result and result ~= "" then
|
||||||
|
os.execute("pkill -f latexmk")
|
||||||
|
print("Killed background latexmk processes")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Keymaps AZERTY-friendly groupés sous <leader>h
|
||||||
|
local keymap = vim.keymap.set
|
||||||
|
|
||||||
|
-- === Gestion de session ===
|
||||||
|
keymap("n", "<leader>ha", function()
|
||||||
|
harpoon:list():append()
|
||||||
|
print("Added: " .. vim.fn.expand("%:t"))
|
||||||
|
end, { desc = "Harpoon: Add file to session" })
|
||||||
|
|
||||||
|
keymap("n", "<leader>hm", function()
|
||||||
|
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||||
|
end, { desc = "Harpoon: Toggle menu" })
|
||||||
|
|
||||||
|
keymap("n", "<leader>hc", function()
|
||||||
|
-- Confirmation simple
|
||||||
|
local choice = vim.fn.confirm("Clear session and stop VimTeX?", "&Yes\n&No", 2)
|
||||||
|
|
||||||
|
-- Si No, on fait rien
|
||||||
|
if choice ~= 1 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Arrêter toutes les compilations VimTeX
|
||||||
|
stop_all_vimtex()
|
||||||
|
|
||||||
|
-- Clear Harpoon
|
||||||
|
harpoon:list():clear()
|
||||||
|
|
||||||
|
-- Fermer tous les buffers
|
||||||
|
vim.cmd("silent! %bdelete")
|
||||||
|
|
||||||
|
print("Session cleared, VimTeX stopped, buffers closed!")
|
||||||
|
end, { desc = "Harpoon: Clear session & stop VimTeX" })
|
||||||
|
|
||||||
|
-- === Navigation directe (rangée de base AZERTY) ===
|
||||||
|
local nav_keys = {
|
||||||
|
{ key = "q", pos = 1 },
|
||||||
|
{ key = "s", pos = 2 },
|
||||||
|
{ key = "d", pos = 3 },
|
||||||
|
{ key = "f", pos = 4 },
|
||||||
|
{ key = "g", pos = 5 },
|
||||||
|
{ key = "h", pos = 6 },
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, mapping in ipairs(nav_keys) do
|
||||||
|
keymap("n", "<leader>h" .. mapping.key, function()
|
||||||
|
harpoon:list():select(mapping.pos)
|
||||||
|
end, { desc = "Harpoon: Go to file " .. mapping.pos })
|
||||||
|
end
|
||||||
|
|
||||||
|
-- === Navigation cyclique ===
|
||||||
|
keymap("n", "<leader>hn", function()
|
||||||
|
harpoon:list():next()
|
||||||
|
end, { desc = "Harpoon: Next file" })
|
||||||
|
|
||||||
|
keymap("n", "<leader>hp", function()
|
||||||
|
harpoon:list():prev()
|
||||||
|
end, { desc = "Harpoon: Previous file" })
|
||||||
|
|
||||||
|
-- === Commandes utiles ===
|
||||||
|
vim.api.nvim_create_user_command("HarpoonClear", function()
|
||||||
|
harpoon:list():clear()
|
||||||
|
print("Harpoon session cleared!")
|
||||||
|
end, { desc = "Clear current Harpoon session" })
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("HarpoonList", function()
|
||||||
|
local list = harpoon:list()
|
||||||
|
if #list.items == 0 then
|
||||||
|
print("No files in Harpoon session")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
print("Current Harpoon session:")
|
||||||
|
for i, item in ipairs(list.items) do
|
||||||
|
print(string.format(" %d. %s", i, item.value))
|
||||||
|
end
|
||||||
|
end, { desc = "List files in current Harpoon session" })
|
||||||
|
end,
|
||||||
|
|
||||||
|
-- Chargement paresseux: seulement quand on utilise les keymaps
|
||||||
|
keys = {
|
||||||
|
{ "<leader>ha", desc = "Harpoon: Add file" },
|
||||||
|
{ "<leader>hm", desc = "Harpoon: Menu" },
|
||||||
|
{ "<leader>hc", desc = "Harpoon: Clear & stop VimTeX" },
|
||||||
|
{ "<leader>hq", desc = "Harpoon: File 1" },
|
||||||
|
{ "<leader>hs", desc = "Harpoon: File 2" },
|
||||||
|
{ "<leader>hd", desc = "Harpoon: File 3" },
|
||||||
|
{ "<leader>hf", desc = "Harpoon: File 4" },
|
||||||
|
{ "<leader>hg", desc = "Harpoon: File 5" },
|
||||||
|
{ "<leader>hh", desc = "Harpoon: File 6" },
|
||||||
|
{ "<leader>hn", desc = "Harpoon: Next" },
|
||||||
|
{ "<leader>hp", desc = "Harpoon: Previous" },
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
return {
|
|
||||||
'lukas-reineke/indent-blankline.nvim',
|
|
||||||
main = "ibl",
|
|
||||||
config = function ()
|
|
||||||
vim.opt.list = true
|
|
||||||
vim.opt.listchars:append("eol:↴")
|
|
||||||
require("ibl").setup {
|
|
||||||
}
|
|
||||||
end
|
|
||||||
}
|
|
||||||
@@ -12,7 +12,7 @@ return {
|
|||||||
typescript = { "eslint_d" },
|
typescript = { "eslint_d" },
|
||||||
javascriptreact = { "eslint_d" },
|
javascriptreact = { "eslint_d" },
|
||||||
typescriptreact = { "eslint_d" },
|
typescriptreact = { "eslint_d" },
|
||||||
python = { "flake8" },
|
python = { "ruff" },
|
||||||
}
|
}
|
||||||
|
|
||||||
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||||
|
|||||||
@@ -10,9 +10,15 @@ return {
|
|||||||
config = function()
|
config = function()
|
||||||
local lsp_zero = require("lsp-zero")
|
local lsp_zero = require("lsp-zero")
|
||||||
lsp_zero.on_attach(function(client, bufnr)
|
lsp_zero.on_attach(function(client, bufnr)
|
||||||
-- see :help lsp-zero-keybindings
|
local opts = { buffer = bufnr, silent = true }
|
||||||
-- to learn the available actions
|
|
||||||
lsp_zero.default_keymaps({ buffer = bufnr })
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, vim.tbl_extend("force", opts, { desc = "Go to definition" }))
|
||||||
|
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, vim.tbl_extend("force", opts, { desc = "Go to declaration" }))
|
||||||
|
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, vim.tbl_extend("force", opts, { desc = "Go to implementation" }))
|
||||||
|
vim.keymap.set("n", "gr", vim.lsp.buf.references, vim.tbl_extend("force", opts, { desc = "Show references" }))
|
||||||
|
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover documentation" }))
|
||||||
|
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename symbol" }))
|
||||||
|
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code action" }))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
require("mason").setup({})
|
require("mason").setup({})
|
||||||
@@ -28,9 +34,10 @@ return {
|
|||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
"prettier", -- prettier formatter
|
"prettier", -- prettier formatter
|
||||||
"stylua", -- lua formatter
|
"stylua", -- lua formatter
|
||||||
"isort", -- python formatter
|
-- "isort", -- python formatter
|
||||||
"black", -- python formatter
|
-- "black", -- python formatter
|
||||||
"flake8", -- python linter
|
-- "flake8", -- python linter
|
||||||
|
"ruff",
|
||||||
"eslint_d", -- js linter
|
"eslint_d", -- js linter
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,31 +2,35 @@ return {
|
|||||||
"nvim-lualine/lualine.nvim",
|
"nvim-lualine/lualine.nvim",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"folke/noice.nvim",
|
"folke/noice.nvim",
|
||||||
'nvim-tree/nvim-web-devicons',
|
"nvim-tree/nvim-web-devicons",
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local colors = {
|
local colors = {
|
||||||
bg = '#202328',
|
bg = "#202328",
|
||||||
fg = '#bbc2cf',
|
fg = "#bbc2cf",
|
||||||
yellow = '#ECBE7B',
|
yellow = "#ECBE7B",
|
||||||
cyan = '#008080',
|
cyan = "#008080",
|
||||||
darkblue = '#081633',
|
darkblue = "#081633",
|
||||||
green = '#98be65',
|
green = "#98be65",
|
||||||
orange = '#FF8800',
|
orange = "#FF8800",
|
||||||
violet = '#a9a1e1',
|
violet = "#a9a1e1",
|
||||||
magenta = '#c678dd',
|
magenta = "#c678dd",
|
||||||
blue = '#51afef',
|
blue = "#51afef",
|
||||||
red = '#ec5f67'
|
red = "#ec5f67",
|
||||||
}
|
}
|
||||||
|
|
||||||
local conditions = {
|
local conditions = {
|
||||||
buffer_not_empty = function() return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 end,
|
buffer_not_empty = function()
|
||||||
hide_in_width = function() return vim.fn.winwidth(0) > 80 end,
|
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()
|
check_git_workspace = function()
|
||||||
local filepath = vim.fn.expand('%:p:h')
|
local filepath = vim.fn.expand("%:p:h")
|
||||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
local gitdir = vim.fn.finddir(".git", filepath .. ";")
|
||||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Config
|
-- Config
|
||||||
@@ -41,8 +45,8 @@ return {
|
|||||||
-- right section. both are highlighted by c theme . so we
|
-- right section. both are highlighted by c theme . so we
|
||||||
-- are just setting default looks o statusline
|
-- are just setting default looks o statusline
|
||||||
normal = { c = { fg = colors.fg, bg = colors.bg } },
|
normal = { c = { fg = colors.fg, bg = colors.bg } },
|
||||||
inactive = {c = {fg = colors.fg, bg = colors.bg}}
|
inactive = { c = { fg = colors.fg, bg = colors.bg } },
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
sections = {
|
sections = {
|
||||||
-- these are to remove the defaults
|
-- these are to remove the defaults
|
||||||
@@ -57,8 +61,8 @@ return {
|
|||||||
require("noice").api.statusline.mode.get,
|
require("noice").api.statusline.mode.get,
|
||||||
cond = require("noice").api.statusline.mode.has,
|
cond = require("noice").api.statusline.mode.has,
|
||||||
color = { fg = "#ff9e64" },
|
color = { fg = "#ff9e64" },
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
inactive_sections = {
|
inactive_sections = {
|
||||||
-- these are to remove the defaults
|
-- these are to remove the defaults
|
||||||
@@ -67,8 +71,8 @@ return {
|
|||||||
lualine_y = {},
|
lualine_y = {},
|
||||||
lualine_z = {},
|
lualine_z = {},
|
||||||
lualine_c = {},
|
lualine_c = {},
|
||||||
lualine_x = {}
|
lualine_x = {},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- inserts a component in lualine_c at left section
|
-- inserts a component in lualine_c at left section
|
||||||
@@ -85,13 +89,13 @@ return {
|
|||||||
n = colors.red,
|
n = colors.red,
|
||||||
i = colors.green,
|
i = colors.green,
|
||||||
v = colors.blue,
|
v = colors.blue,
|
||||||
[''] = colors.blue,
|
[""] = colors.blue,
|
||||||
v = colors.blue,
|
v = colors.blue,
|
||||||
c = colors.magenta,
|
c = colors.magenta,
|
||||||
no = colors.red,
|
no = colors.red,
|
||||||
s = colors.orange,
|
s = colors.orange,
|
||||||
s = colors.orange,
|
s = colors.orange,
|
||||||
[''] = colors.orange,
|
[""] = colors.orange,
|
||||||
ic = colors.yellow,
|
ic = colors.yellow,
|
||||||
r = colors.violet,
|
r = colors.violet,
|
||||||
rv = colors.violet,
|
rv = colors.violet,
|
||||||
@@ -99,55 +103,60 @@ return {
|
|||||||
ce = colors.red,
|
ce = colors.red,
|
||||||
r = colors.cyan,
|
r = colors.cyan,
|
||||||
rm = colors.cyan,
|
rm = colors.cyan,
|
||||||
['r?'] = colors.cyan,
|
["r?"] = colors.cyan,
|
||||||
['!'] = colors.red,
|
["!"] = colors.red,
|
||||||
t = colors.red
|
t = colors.red,
|
||||||
}
|
}
|
||||||
|
|
||||||
ins_left {
|
ins_left({
|
||||||
-- mode component
|
-- mode component
|
||||||
function()
|
function()
|
||||||
-- auto change color according to neovims mode
|
-- auto change color according to neovims mode
|
||||||
vim.api.nvim_command(
|
vim.api.nvim_command("hi! lualinemode guifg=" .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
||||||
'hi! lualinemode guifg=' .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
|
return ""
|
||||||
return ''
|
|
||||||
end,
|
end,
|
||||||
color = "lualinemode",
|
color = "lualinemode",
|
||||||
left_padding = 0
|
left_padding = 0,
|
||||||
}
|
})
|
||||||
|
|
||||||
ins_left {
|
ins_left({
|
||||||
"mode",
|
"mode",
|
||||||
color = {fg = colors.green, gui = 'bold'}
|
color = { fg = colors.green, gui = "bold" },
|
||||||
}
|
})
|
||||||
|
|
||||||
ins_left {
|
ins_left({
|
||||||
-- filesize component
|
-- filesize component
|
||||||
function()
|
function()
|
||||||
local function format_file_size(file)
|
local function format_file_size(file)
|
||||||
local size = vim.fn.getfsize(file)
|
local size = vim.fn.getfsize(file)
|
||||||
if size <= 0 then return '' end
|
if size <= 0 then
|
||||||
local sufixes = {'b', 'k', 'm', 'g'}
|
return ""
|
||||||
|
end
|
||||||
|
local sufixes = { "b", "k", "m", "g" }
|
||||||
local i = 1
|
local i = 1
|
||||||
while size > 1024 do
|
while size > 1024 do
|
||||||
size = size / 1024
|
size = size / 1024
|
||||||
i = i + 1
|
i = i + 1
|
||||||
end
|
end
|
||||||
return string.format('%.1f%s', size, sufixes[i])
|
return string.format("%.1f%s", size, sufixes[i])
|
||||||
|
end
|
||||||
|
local file = vim.fn.expand("%:p")
|
||||||
|
if string.len(file) == 0 then
|
||||||
|
return ""
|
||||||
end
|
end
|
||||||
local file = vim.fn.expand('%:p')
|
|
||||||
if string.len(file) == 0 then return '' end
|
|
||||||
return format_file_size(file)
|
return format_file_size(file)
|
||||||
end,
|
end,
|
||||||
condition = conditions.buffer_not_empty
|
condition = conditions.buffer_not_empty,
|
||||||
}
|
})
|
||||||
ins_left {
|
ins_left({
|
||||||
-- Lsp server name .
|
-- Lsp server name .
|
||||||
function()
|
function()
|
||||||
local msg = 'No Active Lsp'
|
local msg = "No Active Lsp"
|
||||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
|
||||||
local clients = vim.lsp.get_active_clients()
|
local clients = vim.lsp.get_clients()
|
||||||
if next(clients) == nil then return msg end
|
if next(clients) == nil then
|
||||||
|
return msg
|
||||||
|
end
|
||||||
for _, client in ipairs(clients) do
|
for _, client in ipairs(clients) do
|
||||||
local filetypes = client.config.filetypes
|
local filetypes = client.config.filetypes
|
||||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||||
@@ -156,67 +165,71 @@ return {
|
|||||||
end
|
end
|
||||||
return msg
|
return msg
|
||||||
end,
|
end,
|
||||||
icon = ' LSP:',
|
icon = " LSP:",
|
||||||
color = {fg = '#ffffff', gui = 'bold'}
|
color = { fg = "#ffffff", gui = "bold" },
|
||||||
}
|
})
|
||||||
|
|
||||||
ins_left {
|
ins_left({
|
||||||
'diagnostics',
|
"diagnostics",
|
||||||
sources = {'nvim_diagnostic'},
|
sources = { "nvim_diagnostic" },
|
||||||
symbols = {error = ' ', warn = ' ', info = ' '},
|
symbols = { error = " ", warn = " ", info = " " },
|
||||||
color_error = colors.red,
|
color_error = colors.red,
|
||||||
color_warn = colors.yellow,
|
color_warn = colors.yellow,
|
||||||
color_info = colors.cyan
|
color_info = colors.cyan,
|
||||||
}
|
})
|
||||||
|
|
||||||
-- Insert mid section. You can make any number of sections in neovim :)
|
-- Insert mid section. You can make any number of sections in neovim :)
|
||||||
-- for lualine it's any number greater then 2
|
-- for lualine it's any number greater then 2
|
||||||
ins_left {function() return '%=' end}
|
ins_left({
|
||||||
|
function()
|
||||||
|
return "%="
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
ins_left {
|
ins_left({
|
||||||
'filename',
|
"filename",
|
||||||
file_status = true,
|
file_status = true,
|
||||||
path = 1,
|
path = 1,
|
||||||
condition = conditions.buffer_not_empty,
|
condition = conditions.buffer_not_empty,
|
||||||
color = {fg = colors.magenta, gui = 'bold'}
|
color = { fg = colors.magenta, gui = "bold" },
|
||||||
}
|
})
|
||||||
|
|
||||||
-- Add components to right sections
|
-- Add components to right sections
|
||||||
ins_right {
|
ins_right({
|
||||||
'o:encoding', -- option component same as &encoding in viml
|
"o:encoding", -- option component same as &encoding in viml
|
||||||
upper = true, -- I'm not sure why it's upper case either ;)
|
upper = true, -- I'm not sure why it's upper case either ;)
|
||||||
condition = conditions.hide_in_width,
|
condition = conditions.hide_in_width,
|
||||||
color = {fg = colors.green, gui = 'bold'}
|
color = { fg = colors.green, gui = "bold" },
|
||||||
}
|
})
|
||||||
|
|
||||||
ins_right {
|
ins_right({
|
||||||
'fileformat',
|
"fileformat",
|
||||||
upper = true,
|
upper = true,
|
||||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||||
color = {fg = colors.green, gui = 'bold'}
|
color = { fg = colors.green, gui = "bold" },
|
||||||
}
|
})
|
||||||
|
|
||||||
ins_right {
|
ins_right({
|
||||||
'branch',
|
"branch",
|
||||||
icon = '',
|
icon = "",
|
||||||
condition = conditions.check_git_workspace,
|
condition = conditions.check_git_workspace,
|
||||||
color = {fg = colors.violet, gui = 'bold'}
|
color = { fg = colors.violet, gui = "bold" },
|
||||||
}
|
})
|
||||||
|
|
||||||
ins_right {
|
ins_right({
|
||||||
'diff',
|
"diff",
|
||||||
-- Is it me or the symbol for modified us really weird
|
-- Is it me or the symbol for modified us really weird
|
||||||
symbols = {added = ' ', modified = '柳 ', removed = ' '},
|
symbols = { added = " ", modified = "柳 ", removed = " " },
|
||||||
color_added = colors.green,
|
color_added = colors.green,
|
||||||
color_modified = colors.orange,
|
color_modified = colors.orange,
|
||||||
color_removed = colors.red,
|
color_removed = colors.red,
|
||||||
condition = conditions.hide_in_width
|
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)
|
require("lualine").setup(config)
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
29
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
29
nvim/.config/nvim/lua/plugins/noice.lua
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
return {
|
||||||
|
"folke/noice.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {},
|
||||||
|
dependencies = {
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
-- "rcarriga/nvim-notify",
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("noice").setup({
|
||||||
|
lsp = {
|
||||||
|
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||||
|
override = {
|
||||||
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||||
|
["vim.lsp.util.stylize_markdown"] = true,
|
||||||
|
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- you can enable a preset for easier configuration
|
||||||
|
presets = {
|
||||||
|
bottom_search = true, -- use a classic bottom cmdline for search
|
||||||
|
command_palette = true, -- position the cmdline and popupmenu together
|
||||||
|
long_message_to_split = true, -- long messages will be sent to a split
|
||||||
|
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||||
|
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
71
nvim/.config/nvim/lua/plugins/snacks.lua
Normal file
71
nvim/.config/nvim/lua/plugins/snacks.lua
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
return {
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
priority = 1000,
|
||||||
|
lazy = false,
|
||||||
|
---@type snacks.Config
|
||||||
|
opts = {
|
||||||
|
indent = {
|
||||||
|
enabled = true,
|
||||||
|
char = "|",
|
||||||
|
},
|
||||||
|
input = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
notifier = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
git = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
bigfile = { enabled = true },
|
||||||
|
dashboard = { enabled = true },
|
||||||
|
quickfile = { enabled = true },
|
||||||
|
scroll = { enabled = true },
|
||||||
|
statuscolumn = { enabled = true },
|
||||||
|
words = { enabled = false },
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>ns",
|
||||||
|
function()
|
||||||
|
Snacks.notifier.show_history()
|
||||||
|
end,
|
||||||
|
desc = "Notification History",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>nh",
|
||||||
|
function()
|
||||||
|
Snacks.notifier.hide()
|
||||||
|
end,
|
||||||
|
desc = "Dismiss All Notifications",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>gb",
|
||||||
|
function()
|
||||||
|
Snacks.git.blame_line()
|
||||||
|
end,
|
||||||
|
desc = "Git Blame Line",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>gf",
|
||||||
|
function()
|
||||||
|
Snacks.lazygit.log_file()
|
||||||
|
end,
|
||||||
|
desc = "Lazygit Current File History",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>gg",
|
||||||
|
function()
|
||||||
|
Snacks.lazygit()
|
||||||
|
end,
|
||||||
|
desc = "Lazygit",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>gl",
|
||||||
|
function()
|
||||||
|
Snacks.lazygit.log()
|
||||||
|
end,
|
||||||
|
desc = "Lazygit Log (cwd)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,15 +1,66 @@
|
|||||||
return {
|
return {
|
||||||
'nvim-telescope/telescope.nvim', branch = '0.1.x',
|
"nvim-telescope/telescope.nvim",
|
||||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
branch = "0.1.x",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
|
build = "make",
|
||||||
|
},
|
||||||
|
},
|
||||||
opts = {
|
opts = {
|
||||||
defaults = {
|
defaults = {
|
||||||
file_ignore_patterns = { "**/*.pdf" },
|
file_ignore_patterns = { "**/*.pdf" },
|
||||||
layout_strategy = "horizontal",
|
layout_strategy = "horizontal",
|
||||||
layout_config = { prompt_position = "top" },
|
layout_config = {
|
||||||
|
horizontal = {
|
||||||
|
prompt_position = "top",
|
||||||
|
preview_width = 0.55,
|
||||||
|
},
|
||||||
|
width = 0.87,
|
||||||
|
height = 0.80,
|
||||||
|
preview_cutoff = 120,
|
||||||
|
},
|
||||||
sorting_strategy = "ascending",
|
sorting_strategy = "ascending",
|
||||||
|
borderchars = { "█", "█", "█", "█", "█", "█", "█", "█" },
|
||||||
|
prompt_prefix = " 🔍 ",
|
||||||
|
selection_caret = " ➜ ",
|
||||||
|
entry_prefix = " ",
|
||||||
winblend = 0,
|
winblend = 0,
|
||||||
|
results_title = "",
|
||||||
|
prompt_title = "",
|
||||||
|
preview_title = "",
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<C-d>"] = require("telescope.actions").delete_buffer,
|
||||||
|
},
|
||||||
|
n = {
|
||||||
|
["<C-d>"] = require("telescope.actions").delete_buffer,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
local telescope = require("telescope")
|
||||||
|
telescope.setup(opts)
|
||||||
|
telescope.load_extension("fzf")
|
||||||
|
|
||||||
|
local bg = vim.api.nvim_get_hl(0, { name = "CursorColumn" }).bg
|
||||||
|
if type(bg) == "number" then
|
||||||
|
bg = string.format("#%06x", bg)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopeNormal", { bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopePromptNormal", { bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopeResultsNormal", { bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopePreviewNormal", { bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopePromptBorder", { fg = bg, bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopeResultsBorder", { fg = bg, bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopePreviewBorder", { fg = bg, bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopePromptTitle", { fg = bg, bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopeResultsTitle", { fg = bg, bg = bg })
|
||||||
|
vim.api.nvim_set_hl(0, "TelescopePreviewTitle", { fg = bg, bg = bg })
|
||||||
|
end,
|
||||||
keys = {
|
keys = {
|
||||||
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find files" },
|
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find files" },
|
||||||
{ "<leader>fe", "<cmd>Telescope git_files<cr>", desc = "Find file respecting .gitignore" },
|
{ "<leader>fe", "<cmd>Telescope git_files<cr>", desc = "Find file respecting .gitignore" },
|
||||||
@@ -19,9 +70,4 @@ return {
|
|||||||
{ "<leader>fm", "<cmd>Telescope marks<cr>", desc = "Search through marks" },
|
{ "<leader>fm", "<cmd>Telescope marks<cr>", desc = "Search through marks" },
|
||||||
{ "<leader>fs", "<cmd>Telescope search_history<cr>", desc = "Search through search" },
|
{ "<leader>fs", "<cmd>Telescope search_history<cr>", desc = "Search through search" },
|
||||||
},
|
},
|
||||||
config = function()
|
|
||||||
require('telescope').setup(
|
|
||||||
|
|
||||||
)
|
|
||||||
end
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,43 @@ return {
|
|||||||
local configs = require("nvim-treesitter.configs")
|
local configs = require("nvim-treesitter.configs")
|
||||||
|
|
||||||
configs.setup({
|
configs.setup({
|
||||||
ensure_installed = { "lua", "vim", "vimdoc", "javascript", "html", "python", "dockerfile", "latex", "yaml", "regex", "bash", "markdown", "markdown_inline" },
|
ensure_installed = {
|
||||||
|
"lua",
|
||||||
|
"vim",
|
||||||
|
"vimdoc",
|
||||||
|
"javascript",
|
||||||
|
"html",
|
||||||
|
"python",
|
||||||
|
"dockerfile",
|
||||||
|
"latex",
|
||||||
|
"yaml",
|
||||||
|
"regex",
|
||||||
|
"bash",
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
},
|
||||||
sync_install = false,
|
sync_install = false,
|
||||||
highlight = { enable = true },
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
disable = { "latex" },
|
||||||
|
},
|
||||||
indent = { enable = true },
|
indent = { enable = true },
|
||||||
})
|
})
|
||||||
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,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
return {
|
|
||||||
"folke/noice.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
dependencies = {
|
|
||||||
"MunifTanjim/nui.nvim",
|
|
||||||
"rcarriga/nvim-notify",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
27
nvim/.config/nvim/lua/plugins/vimtex.lua
Normal file
27
nvim/.config/nvim/lua/plugins/vimtex.lua
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"lervag/vimtex",
|
||||||
|
lazy = false, -- lazy-loading will disable inverse search
|
||||||
|
config = function()
|
||||||
|
vim.api.nvim_create_autocmd({ "FileType" }, {
|
||||||
|
group = vim.api.nvim_create_augroup("lazyvim_vimtex_conceal", { clear = true }),
|
||||||
|
pattern = { "bib", "tex" },
|
||||||
|
callback = function()
|
||||||
|
vim.wo.conceallevel = 0
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
vim.g.vimtex_mappings_disable = { ["n"] = { "K" } } -- disable `K` as it conflicts with LSP hover
|
||||||
|
vim.g.vimtex_quickfix_method = vim.fn.executable("pplatex") == 1 and "pplatex" or "latexlog"
|
||||||
|
|
||||||
|
vim.g.vimtex_view_method = "zathura" -- <== macos specific, you can use zathura or sumatra or something else.
|
||||||
|
vim.g.vimtex_view_skim_sync = 1
|
||||||
|
vim.g.vimtex_view_skim_activate = 1
|
||||||
|
vim.g.vimtex_view_skim_reading_bar = 1
|
||||||
|
|
||||||
|
vim.g.vimtex_compiler_latexmk = {
|
||||||
|
aux_dir = "./aux",
|
||||||
|
out_dir = "./",
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -9,5 +9,14 @@ return {
|
|||||||
-- your configuration comes here
|
-- your configuration comes here
|
||||||
-- or leave it empty to use the default settings
|
-- or leave it empty to use the default settings
|
||||||
-- refer to the configuration section below
|
-- refer to the configuration section below
|
||||||
}
|
},
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>?",
|
||||||
|
function()
|
||||||
|
require("which-key").show({ global = false })
|
||||||
|
end,
|
||||||
|
desc = "Buffer Local Keymaps (which-key)",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,45 +1,43 @@
|
|||||||
local cmd = vim.cmd -- execute Vim commands
|
local cmd = vim.cmd
|
||||||
local exec = vim.api.nvim_exec -- execute Vimscript
|
local exec = vim.api.nvim_exec
|
||||||
-- local fn = vim.fn -- call Vim functions
|
local g = vim.g
|
||||||
local g = vim.g -- global variables
|
local opt = vim.opt
|
||||||
local opt = vim.opt -- global/buffer/windows-scoped options
|
|
||||||
|
|
||||||
g.showmode = true
|
opt.mouse = 'a'
|
||||||
g.hidden = true -- Required to keep multiple buffers open multiple buffers
|
opt.clipboard = 'unnamedplus'
|
||||||
opt.mouse = 'a' -- enable mouse
|
opt.swapfile = false
|
||||||
opt.clipboard = 'unnamedplus' -- copy/paste with system
|
|
||||||
opt.swapfile = false -- no swapfile
|
|
||||||
|
|
||||||
opt.wrap = true -- Display long lines as just one line
|
opt.wrap = true
|
||||||
opt.expandtab = true -- Use space instead of tabs
|
opt.expandtab = true
|
||||||
opt.tabstop = 4 -- Insert 4 spaces for a tab
|
opt.tabstop = 4
|
||||||
opt.shiftwidth = 4 -- Change the number of space characters inserted for indentation
|
opt.shiftwidth = 4
|
||||||
opt.smarttab = true -- Makes tabbing smarter will realize you have 2 vs 4
|
opt.smarttab = true
|
||||||
opt.autoindent = true -- Good auto indent
|
opt.autoindent = true
|
||||||
opt.foldmethod = 'indent'
|
opt.foldmethod = 'indent'
|
||||||
|
|
||||||
opt.number = true -- show line number
|
opt.number = true
|
||||||
opt.relativenumber = true -- show relative line number
|
opt.relativenumber = true
|
||||||
opt.cursorline = true -- highlight current line
|
opt.cursorline = true
|
||||||
|
|
||||||
opt.ignorecase = true -- Ignore case on search
|
opt.scrolloff = 8
|
||||||
opt.smartcase = true -- ignore lowercse for the whoel pattern
|
opt.ignorecase = true
|
||||||
|
opt.smartcase = true
|
||||||
|
|
||||||
opt.completeopt = 'menuone,noselect,noinsert' -- completion options
|
opt.completeopt = 'menuone,noselect,noinsert'
|
||||||
|
|
||||||
opt.spell = true
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
opt.spelllang = {'fr', 'en'}
|
pattern = { "markdown", "text", "tex", "gitcommit" },
|
||||||
|
callback = function()
|
||||||
|
vim.opt_local.spell = true
|
||||||
|
vim.opt_local.spelllang = { "fr", "en" }
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
opt.nrformats = opt.nrformats + 'alpha'
|
opt.nrformats = opt.nrformats + 'alpha'
|
||||||
|
opt.showmatch = true
|
||||||
|
|
||||||
g.showtabline = true
|
|
||||||
|
|
||||||
-- don't auto commenting new lines
|
|
||||||
cmd[[au BufEnter * set fo-=c fo-=r fo-=o]]
|
cmd[[au BufEnter * set fo-=c fo-=r fo-=o]]
|
||||||
|
|
||||||
opt.showmatch = true -- show parenthethis match
|
|
||||||
|
|
||||||
-- Highlight on yank
|
|
||||||
exec([[
|
exec([[
|
||||||
augroup YankHighlight
|
augroup YankHighlight
|
||||||
autocmd!
|
autocmd!
|
||||||
@@ -47,6 +45,4 @@ exec([[
|
|||||||
augroup end
|
augroup end
|
||||||
]], false)
|
]], false)
|
||||||
|
|
||||||
|
g.python3_host_prog = vim.fn.expand("~/.venv/nvim/bin/python")
|
||||||
-- Python 3
|
|
||||||
g.python3_host_prog="~/.venv/nvim/bin/python"
|
|
||||||
|
|||||||
15
nvim/.config/nvim/snippets/package.json
Normal file
15
nvim/.config/nvim/snippets/package.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "custom-latex-snippets",
|
||||||
|
"contributes": {
|
||||||
|
"snippets": [
|
||||||
|
{
|
||||||
|
"language": "tex",
|
||||||
|
"path": "./snippets/latex.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"language": "latex",
|
||||||
|
"path": "./snippets/latex.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
57
nvim/.config/nvim/snippets/tex.lua
Normal file
57
nvim/.config/nvim/snippets/tex.lua
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
local ls = require("luasnip")
|
||||||
|
local s = ls.snippet
|
||||||
|
local sn = ls.snippet_node
|
||||||
|
local t = ls.text_node
|
||||||
|
local i = ls.insert_node
|
||||||
|
local f = ls.function_node
|
||||||
|
local d = ls.dynamic_node
|
||||||
|
|
||||||
|
return {
|
||||||
|
-- Minipage avec texte sélectionné
|
||||||
|
s({ trig = "minipage", dscr = "Minipage environment" }, {
|
||||||
|
t("\\begin{minipage}{"),
|
||||||
|
i(1, "0.5"),
|
||||||
|
t("\\textwidth}"),
|
||||||
|
t({ "", "\t" }),
|
||||||
|
d(2, function(_, snip)
|
||||||
|
return sn(nil, i(1, snip.env.LS_SELECT_RAW or ""))
|
||||||
|
end),
|
||||||
|
t({ "", "\\end{minipage}" }),
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- Multicols avec texte sélectionné
|
||||||
|
s({ trig = "multicols", dscr = "Multicols environment" }, {
|
||||||
|
t("\\begin{multicols}{"),
|
||||||
|
i(1, "2"),
|
||||||
|
t("}"),
|
||||||
|
t({ "", "\t" }),
|
||||||
|
d(2, function(_, snip)
|
||||||
|
return sn(nil, i(1, snip.env.LS_SELECT_RAW or ""))
|
||||||
|
end),
|
||||||
|
t({ "", "\\end{multicols}" }),
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- Deux minipages côte à côte
|
||||||
|
s({ trig = "minipage2", dscr = "Two minipages side by side" }, {
|
||||||
|
t("\\begin{minipage}{"),
|
||||||
|
i(1, "0.48"),
|
||||||
|
t("\\textwidth}"),
|
||||||
|
t({ "", "\t" }),
|
||||||
|
i(2),
|
||||||
|
t({ "", "\\end{minipage}" }),
|
||||||
|
t({ "", "\\hfill" }),
|
||||||
|
t({ "", "\\begin{minipage}{" }),
|
||||||
|
f(function(args)
|
||||||
|
local width = tonumber(args[1][1])
|
||||||
|
if width then
|
||||||
|
return tostring(1 - width)
|
||||||
|
else
|
||||||
|
return "0.48"
|
||||||
|
end
|
||||||
|
end, { 1 }),
|
||||||
|
t("\\textwidth}"),
|
||||||
|
t({ "", "\t" }),
|
||||||
|
i(0),
|
||||||
|
t({ "", "\\end{minipage}" }),
|
||||||
|
}),
|
||||||
|
}
|
||||||
@@ -122,3 +122,6 @@ action_menu="Alt+a"
|
|||||||
type_menu="Alt+t"
|
type_menu="Alt+t"
|
||||||
help="Alt+h"
|
help="Alt+h"
|
||||||
switch="Alt+x"
|
switch="Alt+x"
|
||||||
|
|
||||||
|
clipboard_backend=wl-clipboard
|
||||||
|
backend=wtype
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ output * bg ~/Images/Wallpapers/coraill.jpg fill
|
|||||||
|
|
||||||
input type:keyboard {
|
input type:keyboard {
|
||||||
xkb_layout "fr"
|
xkb_layout "fr"
|
||||||
xkb_variant ""
|
# xkb_variant "ergol"
|
||||||
|
xkb_variant "azerty"
|
||||||
}
|
}
|
||||||
|
|
||||||
input * xkb_numlock enable
|
input * xkb_numlock enable
|
||||||
@@ -92,7 +93,8 @@ input type:pointer {
|
|||||||
|
|
||||||
# Start your launcher
|
# Start your launcher
|
||||||
bindsym $mod+d exec $menu
|
bindsym $mod+d exec $menu
|
||||||
bindsym $mod+p exec rofi-pass
|
# bindsym $mod+p exec rofi-pass
|
||||||
|
bindsym $mod+p exec tessen
|
||||||
bindsym Print exec ~/.local/bin/sway/rofi_screenshot.sh 2> ~/tmp/rofi_debug.log
|
bindsym Print exec ~/.local/bin/sway/rofi_screenshot.sh 2> ~/tmp/rofi_debug.log
|
||||||
|
|
||||||
# Drag floating windows by holding down $mod and left mouse button.
|
# Drag floating windows by holding down $mod and left mouse button.
|
||||||
@@ -135,13 +137,15 @@ bindsym $mod+Shift+Right move right
|
|||||||
#
|
#
|
||||||
# Workspaces:
|
# Workspaces:
|
||||||
#
|
#
|
||||||
set $ws1 1:
|
set $ws1 1:
|
||||||
set $ws2 2:
|
set $ws2 2:
|
||||||
set $ws3 3:
|
set $ws3 3:
|
||||||
set $ws4 4:
|
set $ws4 4:
|
||||||
set $ws5 5:
|
set $ws5 5:
|
||||||
set $ws6 6:
|
set $ws6 6:
|
||||||
set $ws7 7:
|
set $ws7 7:
|
||||||
|
set $ws8 8:
|
||||||
|
set $ws9 9:
|
||||||
|
|
||||||
bindsym $mod+ampersand workspace $ws1
|
bindsym $mod+ampersand workspace $ws1
|
||||||
bindsym $mod+eacute workspace $ws2
|
bindsym $mod+eacute workspace $ws2
|
||||||
@@ -150,8 +154,8 @@ bindsym $mod+apostrophe workspace $ws4
|
|||||||
bindsym $mod+parenleft workspace $ws5
|
bindsym $mod+parenleft workspace $ws5
|
||||||
bindsym $mod+minus workspace $ws6
|
bindsym $mod+minus workspace $ws6
|
||||||
bindsym $mod+egrave workspace $ws7
|
bindsym $mod+egrave workspace $ws7
|
||||||
bindsym $mod+underscore workspace 8
|
bindsym $mod+underscore workspace $ws8
|
||||||
bindsym $mod+ccedilla workspace 9
|
bindsym $mod+ccedilla workspace $ws9
|
||||||
|
|
||||||
bindsym $mod+1 move container to workspace $ws1
|
bindsym $mod+1 move container to workspace $ws1
|
||||||
bindsym $mod+2 move container to workspace $ws2
|
bindsym $mod+2 move container to workspace $ws2
|
||||||
@@ -160,10 +164,29 @@ bindsym $mod+4 move container to workspace $ws4
|
|||||||
bindsym $mod+5 move container to workspace $ws5
|
bindsym $mod+5 move container to workspace $ws5
|
||||||
bindsym $mod+6 move container to workspace $ws6
|
bindsym $mod+6 move container to workspace $ws6
|
||||||
bindsym $mod+7 move container to workspace $ws7
|
bindsym $mod+7 move container to workspace $ws7
|
||||||
bindsym $mod+8 move container to workspace 8
|
bindsym $mod+8 move container to workspace $ws8
|
||||||
bindsym $mod+9 move container to workspace 9
|
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+greater move workspace to output right
|
||||||
bindsym $mod+Ctrl+less move workspace to output left
|
bindsym $mod+Ctrl+less move workspace to output left
|
||||||
|
|
||||||
|
|||||||
@@ -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 pkill kanshi; exec_always kanshi
|
||||||
exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
|
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 $ws2; exec thunderbird;"
|
||||||
exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"
|
# exec swaymsg "workspace scratchpad; exec $term -e 'mocp';"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
"layer": "top",
|
"layer": "top",
|
||||||
"output": "eDP-1",
|
"output": "eDP-1",
|
||||||
"height": 30,
|
"height": 30,
|
||||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
"modules-left": ["sway/mode","sway/window" ],
|
||||||
"modules-center": ["sway/window"],
|
"modules-center": ["sway/workspaces" ],
|
||||||
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
"modules-right": ["pulseaudio", "battery", "tray", "clock"],
|
||||||
"sway/window": {
|
"sway/window": {
|
||||||
"max-length": 50
|
"max-length": 50
|
||||||
|
|||||||
@@ -10,58 +10,79 @@
|
|||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
background: @background;
|
background: @background;
|
||||||
color: @white_b;
|
color: @foreground;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: @white_b;
|
color: @foreground;
|
||||||
border-bottom: 3px solid transparent;
|
border-bottom: 3px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.active {
|
||||||
background: @orange;
|
background: @orange_b;
|
||||||
border-bottom: 3px solid @orange_b;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#mode, #clock, #battery {
|
#workspaces button.visible {
|
||||||
|
background: @orange;
|
||||||
|
border-radius: 2px;
|
||||||
|
border-top: 3px solid @orange_b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode,
|
||||||
|
#clock,
|
||||||
|
#battery {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mode {
|
#mode {
|
||||||
background: @red;
|
background: @red;
|
||||||
border-bottom: 3px solid @white_b;
|
border-bottom: 3px solid @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#clock {
|
#clock {
|
||||||
color: @white_b;
|
color: @foreground;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery {
|
#battery {
|
||||||
color: @white_b;
|
color: @foreground;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.charging {
|
#battery.charging {
|
||||||
color: @gree;
|
color: @green;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes blink {
|
@keyframes blink {
|
||||||
to {
|
to {
|
||||||
background-color: @white_b;
|
background-color: @foreground;
|
||||||
color: @background;
|
color: @background;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#idle_inhibitor, #pulseaudio, #custom-openvpn, #network, #cpu, #memory, #temperature, #backlight, #battery, #clock, #tray {
|
#idle_inhibitor,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-openvpn,
|
||||||
|
#network,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#clock,
|
||||||
|
#tray {
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
margin: 0 3px;
|
margin: 0 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.warning:not(.charging) {
|
#battery.warning:not(.charging) {
|
||||||
background: @red;
|
background: @red;
|
||||||
color: @white_b;
|
color: @foreground;
|
||||||
animation-name: blink;
|
animation-name: blink;
|
||||||
animation-duration: 0.5s;
|
animation-duration: 0.5s;
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ _fzf_complete_pass() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# yarn global commands
|
# yarn global commands
|
||||||
export PATH="$(yarn global bin):$PATH"
|
export PATH="/home/lafrite/.local/bin:$(yarn global bin):$PATH"
|
||||||
|
|
||||||
# zk
|
# zk
|
||||||
export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
export ZK_NOTEBOOK_DIR="/home/lafrite/Nextcloud/Documents/zettelkasten/"
|
||||||
|
|||||||
Reference in New Issue
Block a user