hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/alacritty/alacritty.toml65
-rw-r--r--.config/alacritty/alacritty.yml52
-rw-r--r--.config/ghostty/config.ghostty51
-rw-r--r--.config/nvim/init.lua460
-rw-r--r--.config/nvim/lazy-lock.json26
-rw-r--r--.config/nvim/nvim.log2
6 files changed, 285 insertions, 371 deletions
diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
deleted file mode 100644
index 03d873a..0000000
--- a/.config/alacritty/alacritty.toml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-[colors]
-draw_bold_text_with_bright_colors = false
-
-[colors.bright]
-black = "0x808080"
-blue = "0x0066ff"
-cyan = "0x00ffff"
-green = "0x33ff00"
-magenta = "0xcc00ff"
-red = "0xfe0100"
-white = "0xFFFFFF"
-yellow = "0xfeff00"
-
-[colors.cursor]
-cursor = "0xffff00"
-text = "0x000000"
-
-[colors.normal]
-black = "0x222222"
-blue = "0x0066ff"
-cyan = "0x00ffff"
-green = "0x33ff00"
-magenta = "0xcc00ff"
-red = "0xfe0100"
-white = "0xd0d0d0"
-yellow = "0xfeff00"
-
-[colors.primary]
-background = "0x111111"
-foreground = "0xffffff"
-
-[font]
-size = 12.0
-
-[font.bold]
-family = "Monolisa"
-style = "Bold"
-
-[font."bold_italic"]
-family = "Monolisa"
-style = "Bold Italic"
-
-[font.italic]
-family = "Monolisa"
-style = "Italic"
-
-[font.normal]
-family = "Monolisa"
-style = "Medium"
-
-[window]
-dynamic_padding = true
-dynamic_title = true
-
-[window.padding]
-x = 10
-y = 10
-
-[general]
-live_config_reload = true
-working_directory = "C:/Users/Hachem"
-
-[terminal]
-shell = "nu"
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
deleted file mode 100644
index 126ac26..0000000
--- a/.config/alacritty/alacritty.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-window:
- padding:
- x: 10
- y: 10
- dynamic_padding: true
-
-font:
- normal:
- family: Cascadia Code
- style: Regular
- italic:
- family: Cascadia Code
- style: Italic
- bold:
- family: Cascadia Code
- style: Bold
- bold italic:
- family: Cascadia Code
- style: Bold Italic
-
- size: 8.0
-
-colors:
- primary:
- background: '0x020202'
- foreground: '0xffffff'
- cursor:
- text: '0x000000'
- cursor: '0xffff00'
- normal:
- black: '0x222222'
- red: '0xfe0100'
- green: '0x33ff00'
- yellow: '0xfeff00'
- blue: '0x0066ff'
- magenta: '0xcc00ff'
- cyan: '0x00ffff'
- white: '0xd0d0d0'
- bright:
- black: '0x808080'
- red: '0xfe0100'
- green: '0x33ff00'
- yellow: '0xfeff00'
- blue: '0x0066ff'
- magenta: '0xcc00ff'
- cyan: '0x00ffff'
- white: '0xFFFFFF'
-
-draw_bold_text_with_bright_colors: false
-live_config_reload: true
-dynamic_title: true
-
diff --git a/.config/ghostty/config.ghostty b/.config/ghostty/config.ghostty
new file mode 100644
index 0000000..6798d1c
--- /dev/null
+++ b/.config/ghostty/config.ghostty
@@ -0,0 +1,51 @@
+background = #000000
+foreground = #ffffff
+
+# Normal colors
+palette = 0=#222222
+palette = 1=#fe0100
+palette = 2=#33ff00
+palette = 3=#feff00
+palette = 4=#0066ff
+palette = 5=#cc00ff
+palette = 6=#00ffff
+palette = 7=#d0d0d0
+
+# Bright colors
+palette = 8=#808080
+palette = 9=#fe0100
+palette = 10=#33ff00
+palette = 11=#feff00
+palette = 12=#0066ff
+palette = 13=#cc00ff
+palette = 14=#00ffff
+palette = 15=#ffffff
+
+# Cursor
+cursor-style = bar
+cursor-color = #ff0000
+cursor-text = #000000
+adjust-cursor-thickness = 200%
+shell-integration-features = no-cursor
+
+# Font
+font-family = "0xProto"
+font-style = Regular
+font-style-bold = Bold
+font-style-italic = Italic
+font-style-bold-italic = Bold Italic
+
+font-size = 18
+font-thicken = true
+
+font-feature = +calt
+font-feature = +liga
+font-feature = +dlig
+
+font-thicken = true
+
+font-size = 18
+
+# Window
+window-padding-x = 10
+window-padding-y = 10 \ No newline at end of file
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index d4776ed..f044682 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -1,6 +1,7 @@
--- BOOTSTRAP lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
-if not vim.loop.fs_stat(lazypath) then
+local uv = vim.uv or vim.loop
+
+if not uv.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
@@ -16,13 +17,11 @@ vim.g.mapleader = " "
vim.g.maplocalleader = " "
require("lazy").setup({
-
- -- UI / Usability
"tpope/vim-sleuth",
"lukas-reineke/indent-blankline.nvim",
+ "andreasvc/vim-256noir",
"windwp/nvim-autopairs",
- -- File explorer
{
"stevearc/oil.nvim",
opts = {
@@ -33,262 +32,113 @@ require("lazy").setup({
},
},
- -- Theme
{
- "luisiacc/gruvbox-baby",
- name = "gruvbox-baby",
- priority = 1000,
- config = function()
- vim.g.gruvbox_baby_background_color = "medium"
- vim.g.gruvbox_baby_telescope_theme = 1
- vim.g.gruvbox_baby_transparent_mode = 1
- vim.cmd.colorscheme("gruvbox-baby")
- end,
- },
+ "nvim-lualine/lualine.nvim",
+ opts = {
+ options = {
+ globalstatus = true,
+ component_separators = "",
+ section_separators = "",
+ },
- -- Noice UI
- {
- "folke/noice.nvim",
- event = "VeryLazy",
- dependencies = {
- "MunifTanjim/nui.nvim",
- "rcarriga/nvim-notify",
+ inactive_sections = {
+ lualine_a = {},
+ lualine_b = {},
+ lualine_c = {},
+ lualine_x = {},
+ lualine_y = {},
+ lualine_z = {},
+ },
},
- config = function()
- require("noice").setup({
- presets = {
- bottom_search = true,
- command_palette = true,
- long_message_to_split = true,
- inc_rename = false,
- lsp_doc_border = true,
- },
- -- ASCII-only UI patch
- routes = {
- {
- filter = { event = "msg_show", kind = "", find = "" },
- opts = { skip = true },
- },
- },
+ config = function(_, opts)
+ local function fg(group, fallback)
+ local ok, hl = pcall(vim.api.nvim_get_hl, 0, { name = group, link = false })
+ if ok and hl.fg then
+ return string.format("#%06x", hl.fg)
+ end
+ return fallback
+ end
- cmdline = {
- format = {
- cmdline = { icon = ":" },
- search_down = { icon = "/" },
- search_up = { icon = "?" },
- },
- },
+ local text = fg("Normal", "#b4b7ad")
+ local accent = fg("Statement", "#f0624b")
+ local cool = fg("Function", "#3d8e91") -- teal
+ local warm = fg("String", "#f7a21b") -- orange
- lsp = {
- progress = {
- enabled = true,
- format = {
- progress = function(msg)
- return string.format("%s [%s%%]",
- msg.title or "LSP",
- msg.percentage or "?"
- )
- end,
- },
- format_done = function(_) return "LSP done" end,
- },
- },
- })
+ opts.sections = {
+ lualine_a = {},
+ lualine_b = {},
- -- nvim-notify ASCII settings
- local notify = require("notify")
- notify.setup({
- render = "compact",
- stages = "static",
- icons = {
- ERROR = "E",
- WARN = "W",
- INFO = "I",
- DEBUG = ">",
- TRACE = "-",
+ lualine_c = {
+ { "mode", color = { fg = accent, bg = "NONE", gui = "bold" } },
+ { "filename", color = { fg = text } },
},
- })
- vim.notify = notify
- end,
- },
-
- -- Lualine ASCII UI
- {
- "nvim-lualine/lualine.nvim",
- config = function()
- local lualine = require("lualine")
- local colors = {
- bg = "NONE",
- fg = "#bbc2cf",
- yellow = "#ECBE7B",
- cyan = "#008080",
- 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,
- }
-
- local config = {
- options = {
- globalstatus = true,
- component_separators = "",
- section_separators = "",
- theme = {
- normal = { c = { fg = colors.fg, bg = "NONE" } },
- inactive = { c = { fg = colors.fg, bg = "NONE" } },
+ lualine_x = {
+ { "branch", color = { fg = cool } },
+ {
+ "diagnostics",
+ symbols = { error = "E:", warn = "W:", info = "I:", hint = "H:" },
+ -- no color override: lualine tints each severity from the theme
},
},
- sections = {
- lualine_a = {},
- lualine_b = {},
- lualine_c = {},
- lualine_x = {},
- lualine_y = {},
- lualine_z = {},
- },
- inactive_sections = {
- lualine_a = {},
- lualine_b = {},
- lualine_c = {},
- lualine_x = {},
- lualine_y = {},
- lualine_z = {},
- },
- }
-
- local function ins_left(component)
- table.insert(config.sections.lualine_c, component)
- end
-
- local function ins_right(component)
- table.insert(config.sections.lualine_x, component)
- end
-
- ins_left({
- function() return "|" end,
- color = { fg = colors.blue },
- })
-
- ins_left({
- function() return "*" end,
- color = function()
- local mode_color = {
- n = colors.red,
- i = colors.green,
- v = colors.blue,
- V = colors.blue,
- c = colors.magenta,
- s = colors.orange,
- S = colors.orange,
- ic = colors.yellow,
- R = colors.violet,
- t = colors.red,
- }
- return { fg = mode_color[vim.fn.mode()] }
- end,
- })
- ins_left({
- "filesize",
- cond = conditions.buffer_not_empty,
- })
-
- ins_left({
- "filename",
- cond = conditions.buffer_not_empty,
- color = { fg = colors.magenta, gui = "bold" },
- })
-
- ins_left("location")
- ins_left({ "progress", color = { gui = "bold" } })
-
- ins_left({
- "diagnostics",
- sources = { "nvim_diagnostic" },
- symbols = { error = "E:", warn = "W:", info = "I:" },
- })
-
- ins_left(function() return "%=" end)
-
- ins_left({
- function()
- local msg = "No LSP"
- local buf_ft = vim.bo.filetype
- for _, client in ipairs(vim.lsp.get_clients({ bufnr = 0 })) 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_right({
- "o:encoding",
- fmt = string.upper,
- color = { fg = colors.green, gui = "bold" },
- })
-
- ins_right({
- "fileformat",
- fmt = string.upper,
- icons_enabled = false,
- color = { fg = colors.green, gui = "bold" },
- })
-
- ins_right({
- "branch",
- icon = "git:",
- color = { fg = colors.violet, gui = "bold" },
- })
+ lualine_y = {},
- ins_right({
- "diff",
- symbols = { added = "+", modified = "~", removed = "-" },
- })
+ lualine_z = {
+ { "location", color = { fg = warm } },
+ },
+ }
- ins_right({
- function() return "|" end,
- color = { fg = colors.blue },
- })
+ local none = { fg = text, bg = "NONE" }
+ local mirror = { a = none, b = none, c = none }
+ opts.options.theme = {
+ normal = mirror,
+ insert = mirror,
+ visual = mirror,
+ replace = mirror,
+ command = mirror,
+ inactive = mirror,
+ }
- lualine.setup(config)
+ require("lualine").setup(opts)
vim.api.nvim_set_hl(0, "StatusLine", { bg = "NONE" })
vim.api.nvim_set_hl(0, "StatusLineNC", { bg = "NONE" })
end,
},
-
-- Telescope
{
"nvim-telescope/telescope.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
+
+ config = function()
+ require("telescope").setup({
+ pickers = {
+ find_files = {
+ file_ignore_patterns = {
+ "^build/",
+ "^builddir/",
+ "^_build/",
+
+ "^ext/",
+ "^vendor/",
+ },
+ },
+ },
+ })
+ end,
},
- -- Treesitter
{
"nvim-treesitter/nvim-treesitter",
+ branch = "master",
+ lazy = false,
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
highlight = { enable = true },
- indent = { enable = true },
+ indent = { enable = false },
ensure_installed = {
"lua", "vim", "c", "cpp", "markdown",
"python", "rust", "bash",
@@ -297,6 +147,40 @@ require("lazy").setup({
end,
},
+
+ {
+ "folke/snacks.nvim",
+ priority = 1000,
+ lazy = false,
+
+ opts = {
+ indent = {
+ enabled = true,
+
+ indent = {
+ enabled = false,
+ },
+
+ scope = {
+ enabled = false,
+ },
+
+ chunk = {
+ enabled = true,
+ hl = "Comment",
+
+ char = {
+ corner_top = "┌",
+ corner_bottom = "└",
+ horizontal = "─",
+ vertical = "│",
+ arrow = "→",
+ },
+ },
+ },
+ },
+ },
+
-- Completion
{
"hrsh7th/nvim-cmp",
@@ -306,6 +190,7 @@ require("lazy").setup({
"L3MON4D3/LuaSnip",
"rafamadriz/friendly-snippets",
},
+
config = function()
local cmp = require("cmp")
local luasnip = require("luasnip")
@@ -313,14 +198,34 @@ require("lazy").setup({
require("luasnip.loaders.from_vscode").lazy_load()
cmp.setup({
+ -- No automatic completion popup.
+ completion = {
+ autocomplete = false,
+ },
+
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
+
mapping = cmp.mapping.preset.insert({
- ["<CR>"] = cmp.mapping.confirm({ select = true }),
+ -- Accept selected completion.
+ ["<CR>"] = cmp.mapping.confirm({
+ select = true,
+ }),
+
+ -- Manually open completion.
+ ["<M-Space>"] = cmp.mapping.complete(),
+
+ -- Navigate completion menu.
+ ["<C-n>"] = cmp.mapping.select_next_item(),
+ ["<C-p>"] = cmp.mapping.select_prev_item(),
+
+ -- Close completion menu.
+ ["<C-e>"] = cmp.mapping.abort(),
}),
+
sources = {
{ name = "nvim_lsp" },
{ name = "luasnip" },
@@ -328,7 +233,6 @@ require("lazy").setup({
})
end,
},
-
-- LSP
{
"neovim/nvim-lspconfig",
@@ -343,6 +247,8 @@ require("lazy").setup({
require("mason").setup()
require("fidget").setup()
+ -- Per-server settings. Mason installs these; Neovim's native LSP
+ -- (vim.lsp.config / vim.lsp.enable) configures and starts them.
local servers = {
lua_ls = {
settings = {
@@ -352,23 +258,33 @@ require("lazy").setup({
},
},
},
+ rust_analyzer = {
+ settings = {
+ ["rust-analyzer"] = {
+ cargo = { buildScripts = { enable = true } },
+ procMacro = { enable = true },
+ },
+ },
+ },
}
- require("mason-tool-installer").setup({
- ensure_installed = vim.tbl_keys(servers),
+ -- Advertise nvim-cmp completion capabilities to every server.
+ vim.lsp.config("*", {
+ capabilities = require("cmp_nvim_lsp").default_capabilities(),
})
- local capabilities = require("cmp_nvim_lsp").default_capabilities()
+ -- Merge each server's settings on top of nvim-lspconfig's defaults.
+ for name, cfg in pairs(servers) do
+ vim.lsp.config(name, cfg)
+ end
+ -- Install the servers (mason-tool-installer), then auto-enable the
+ -- installed ones via vim.lsp.enable (mason-lspconfig v2).
+ require("mason-tool-installer").setup({
+ ensure_installed = vim.tbl_keys(servers),
+ })
require("mason-lspconfig").setup({
- handlers = {
- function(server)
- require("lspconfig")[server].setup({
- capabilities = capabilities,
- settings = servers[server],
- })
- end,
- },
+ automatic_enable = true,
})
end,
},
@@ -377,9 +293,13 @@ require("lazy").setup({
{
"stevearc/conform.nvim",
opts = {
+ notify_on_error = false,
formatters_by_ft = {
lua = { "stylua" },
python = { "black" },
+ -- rustfmt reads the edition from Cargo.toml (defaults to 2021)
+ -- and respects rustfmt.toml, so no extra args are needed.
+ rust = { "rustfmt" },
},
},
},
@@ -409,15 +329,11 @@ require("lazy").setup({
},
})
--- Cursor/selection aesthetics
-vim.api.nvim_set_hl(0, "CursorLine", { bg = "#1c1c1c" })
-vim.api.nvim_set_hl(0, "Visual", { bg = "#262626" })
-
-- ASCII diagnostics
vim.fn.sign_define("DiagnosticSignError", { text = "E", texthl = "DiagnosticError" })
-vim.fn.sign_define("DiagnosticSignWarn", { text = "W", texthl = "DiagnosticWarn" })
-vim.fn.sign_define("DiagnosticSignInfo", { text = "I", texthl = "DiagnosticInfo" })
-vim.fn.sign_define("DiagnosticSignHint", { text = "H", texthl = "DiagnosticHint" })
+vim.fn.sign_define("DiagnosticSignWarn", { text = "W", texthl = "DiagnosticWarn" })
+vim.fn.sign_define("DiagnosticSignInfo", { text = "I", texthl = "DiagnosticInfo" })
+vim.fn.sign_define("DiagnosticSignHint", { text = "H", texthl = "DiagnosticHint" })
-- Options
local opt = vim.opt
@@ -425,6 +341,7 @@ opt.number = true
opt.mouse = "a"
opt.splitright = true
opt.splitbelow = true
+opt.autoindent = true
opt.smartindent = true
opt.expandtab = true
opt.shiftwidth = 4
@@ -432,9 +349,11 @@ opt.tabstop = 4
opt.ignorecase = true
opt.smartcase = true
opt.termguicolors = true
-opt.cursorline = true
+opt.cursorline = false
+opt.linebreak = true
opt.scrolloff = 10
opt.clipboard = "unnamedplus"
+opt.completeopt = { "menu", "menuone", "noinsert", "noselect" }
-- Typo forgiveness
vim.cmd([[
@@ -452,15 +371,48 @@ vim.cmd([[
local map = vim.keymap.set
map("n", "<Esc>", ":nohl<CR>")
map("n", "-", require("oil").open, { desc = "Open parent directory" })
+map("n", "<C-e>", function()
+ require("oil").open(vim.fn.getcwd())
+end, { desc = "Browse working directory" })
local telescope = require("telescope.builtin")
-map("n", "<leader>ff", telescope.find_files)
-map("n", "<leader>fg", telescope.live_grep)
-map("n", "<leader>fb", telescope.buffers)
+map("n", "<leader>ff", telescope.find_files, { desc = "Find files" })
+map("n", "<leader>fg", telescope.live_grep, { desc = "Find text" })
+map("n", "<leader>fb", telescope.buffers, { desc = "Find buffers" })
+
+map("n", "<leader>cf", function()
+ require("conform").format({ async = true, lsp_format = "fallback" })
+end, { desc = "Format buffer" })
+
+vim.diagnostic.config({
+ virtual_text = true,
+ signs = true,
+ underline = true,
+ severity_sort = true,
+})
--- Yank highlight
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.highlight.on_yank()
end,
})
+
+vim.cmd.colorscheme("256_noir")
+
+vim.cmd([[
+ highlight Normal guibg=NONE ctermbg=NONE
+ highlight NormalNC guibg=NONE ctermbg=NONE
+ highlight SignColumn guibg=NONE ctermbg=NONE
+ highlight EndOfBuffer guibg=NONE ctermbg=NONE
+ highlight LineNr guibg=NONE ctermbg=NONE
+ highlight CursorLineNr guibg=NONE ctermbg=NONE
+ highlight CursorLine guibg=NONE ctermbg=NONE
+ highlight StatusLine guibg=NONE ctermbg=NONE
+ highlight StatusLineNC guibg=NONE ctermbg=NONE
+]])
+
+vim.api.nvim_set_hl(0, "Visual", { bg = "#222222" })
+vim.api.nvim_set_hl(0, "Search", { bg = "#222222" })
+vim.api.nvim_set_hl(0, "IncSearch", { bg = "#222222" })
+vim.api.nvim_set_hl(0, "PMenu", { bg = "#222222" })
+vim.api.nvim_set_hl(0, "PMenySelf", { bg = "#333333", bold=true })
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
new file mode 100644
index 0000000..e74bc8d
--- /dev/null
+++ b/.config/nvim/lazy-lock.json
@@ -0,0 +1,26 @@
+{
+ "LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
+ "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
+ "conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" },
+ "fidget.nvim": { "branch": "main", "commit": "6f793b2bcd2d35e201c09520f698bb763220908a" },
+ "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
+ "gitsigns.nvim": { "branch": "main", "commit": "5be654f2232c10ddcad19c1607a67b6b4b78fc29" },
+ "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
+ "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
+ "lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "67029ccdac1ef8941e13b826417bc0ffac24cc86" },
+ "mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" },
+ "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
+ "mini.indentscope": { "branch": "main", "commit": "d3f955f09b1a05d25d5a7740338fba2baaee41a3" },
+ "nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
+ "nvim-cmp": { "branch": "main", "commit": "2ffe79f1f021def8dd1fcd81deb16f1bb0d989f3" },
+ "nvim-lspconfig": { "branch": "master", "commit": "51dbf5359da86721662c87ca10eb73add973737b" },
+ "nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
+ "oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
+ "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
+ "telescope.nvim": { "branch": "master", "commit": "427b576c16792edad01a92b89721d923c19ad60f" },
+ "vim-256noir": { "branch": "master", "commit": "e8668a18a4a90272c1cae87e655f8bddc5ac3665" },
+ "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
+ "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
+}
diff --git a/.config/nvim/nvim.log b/.config/nvim/nvim.log
new file mode 100644
index 0000000..8205bb1
--- /dev/null
+++ b/.config/nvim/nvim.log
@@ -0,0 +1,2 @@
+WRN 2026-08-24T01:09:40.992 ?.58675 server_start:197: Failed to start server: operation not permitted: /var/folders/cg/j_zdjyp57vsgnxlj_4809wb00000gn/T/nvim.hachem/3i6l1a/nvim.58675.0
+WRN 2026-08-24T01:21:43.568 ?.63997 server_start:197: Failed to start server: operation not permitted: /var/folders/cg/j_zdjyp57vsgnxlj_4809wb00000gn/T/nvim.hachem/GPEBOe/nvim.63997.0