From 94ef01abf339f7156c69870d969cd635566faddd Mon Sep 17 00:00:00 2001 From: Kris Yotam <75515498+krisyotam@users.noreply.github.com> Date: Sun, 24 May 2026 01:04:36 -0500 Subject: [PATCH] remove nvim config, add mksh/planrc/gentoo profile, update code+write configs and fastfetch glenda --- .config/code/glenda.txt | 16 + .config/code/init.lua | 30 +- .config/mksh/aliases.sh | 2 + .config/mksh/functions.sh | 30 ++ .config/nvim/.gitignore | 8 - .config/nvim/.neoconf.json | 15 - .config/nvim/colors/acme.lua | 322 ------------------ .config/nvim/colors/plan9.lua | 414 ----------------------- .config/nvim/init.lua | 2 - .config/nvim/lazy-lock.json | 34 -- .config/nvim/lazyvim.json | 10 - .config/nvim/lua/config/autocmds.lua | 8 - .config/nvim/lua/config/keymaps.lua | 3 - .config/nvim/lua/config/lazy.lua | 53 --- .config/nvim/lua/config/options.lua | 3 - .config/nvim/lua/plugins/colorscheme.lua | 74 ---- .config/nvim/lua/plugins/dashboard.lua | 34 -- .config/nvim/lua/plugins/neo-tree.lua | 26 -- .config/nvim/stylua.toml | 3 - .config/write/init.lua | 36 +- .local/share/fastfetch/ascii/glenda.txt | 31 +- .planrc | 1 + README.md | 26 ++ profiles/README.md | 1 + profiles/gentoo/portage/make.conf | 43 +++ profiles/gentoo/portage/package.use | 203 +++++++++++ 26 files changed, 400 insertions(+), 1028 deletions(-) create mode 100644 .config/code/glenda.txt create mode 100644 .config/mksh/aliases.sh create mode 100644 .config/mksh/functions.sh delete mode 100644 .config/nvim/.gitignore delete mode 100644 .config/nvim/.neoconf.json delete mode 100644 .config/nvim/colors/acme.lua delete mode 100644 .config/nvim/colors/plan9.lua delete mode 100644 .config/nvim/init.lua delete mode 100644 .config/nvim/lazy-lock.json delete mode 100644 .config/nvim/lazyvim.json delete mode 100644 .config/nvim/lua/config/autocmds.lua delete mode 100644 .config/nvim/lua/config/keymaps.lua delete mode 100644 .config/nvim/lua/config/lazy.lua delete mode 100644 .config/nvim/lua/config/options.lua delete mode 100644 .config/nvim/lua/plugins/colorscheme.lua delete mode 100644 .config/nvim/lua/plugins/dashboard.lua delete mode 100644 .config/nvim/lua/plugins/neo-tree.lua delete mode 100644 .config/nvim/stylua.toml create mode 100644 .planrc create mode 100644 profiles/gentoo/portage/make.conf create mode 100644 profiles/gentoo/portage/package.use diff --git a/.config/code/glenda.txt b/.config/code/glenda.txt new file mode 100644 index 0000000000000000000000000000000000000000..406977cff34ec53f2c36d1f2d8698f9011573429 --- /dev/null +++ b/.config/code/glenda.txt @@ -0,0 +1,16 @@ + __ + \ / ) + \ /' / __ + _.----'-./ _-" ) + -" "v" _-' + ." 'Y" + | | + | o o | + | .><. | + | "Ll" / + '. | + | | + \ ) + / . /'\ * + '-(_/,__.--^--" * * + * * * diff --git a/.config/code/init.lua b/.config/code/init.lua index 9e4cfaabaecd88a0819385c59cb06eb5eb2cf58b..765563194546b7aec1a28b74e111901dcc29b1ac 100644 --- a/.config/code/init.lua +++ b/.config/code/init.lua @@ -51,7 +51,7 @@ vim.opt.clipboard = "unnamedplus" vim.opt.mouse = "a" vim.opt.updatetime = 250 --- snacks.nvim (explorer + project picker) +-- snacks.nvim (explorer + project picker + dashboard) require("snacks").setup({ explorer = { enabled = true }, picker = { @@ -63,6 +63,34 @@ require("snacks").setup({ }, }, }, + dashboard = { + enabled = true, + preset = { + header = (function() + local f = io.open(vim.fn.stdpath("config") .. "/glenda.txt", "r") + if f then local s = f:read("*a"); f:close(); return s end + return "code" + end)(), + keys = { + { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, + { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, + { icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, + { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, + { icon = " ", key = "s", desc = "Browse src", action = ":e ~/.local/src/" }, + { icon = " ", key = "b", desc = "Browse scripts", action = ":e ~/.local/bin/" }, + { icon = " ", key = "i", desc = "mkshrc", action = ":e ~/.mkshrc" }, + { icon = " ", key = "p", desc = "plan9rc", action = ":e ~/.planrc" }, + { icon = " ", key = "a", desc = "aliases.sh", action = ":e ~/.config/mksh/aliases.sh" }, + { icon = " ", key = "u", desc = "functions.sh", action = ":e ~/.config/mksh/functions.sh" }, + { icon = " ", key = "e", desc = "Explorer", action = ":lua Snacks.explorer.open()" }, + { icon = " ", key = "q", desc = "Quit", action = ":qa" }, + }, + }, + sections = { + { section = "header" }, + { section = "keys", gap = 1, padding = 1 }, + }, + }, }) -- gitsigns diff --git a/.config/mksh/aliases.sh b/.config/mksh/aliases.sh new file mode 100644 index 0000000000000000000000000000000000000000..90c5a18dcff32e9351cd631d97271f7906d83b80 --- /dev/null +++ b/.config/mksh/aliases.sh @@ -0,0 +1,2 @@ +# mksh aliases +alias cc="$HOME/src/criterion-cli/criterion" diff --git a/.config/mksh/functions.sh b/.config/mksh/functions.sh new file mode 100644 index 0000000000000000000000000000000000000000..c43b5d7a6da9630785221d2fc33630e3b97daabb --- /dev/null +++ b/.config/mksh/functions.sh @@ -0,0 +1,30 @@ +# mksh functions + +# search repo names in ~/src/ +fs() { + [ -z "$1" ] && { echo "usage: fs "; return 1; } + pattern=$(echo "$*" | tr '[:upper:]' '[:lower:]') + matches="" + count=0 + for d in "$HOME"/src/*/; do + name=${d%/} + name=${name##*/} + lower=$(echo "$name" | tr '[:upper:]' '[:lower:]') + case "$lower" in + *"$pattern"*) matches="$matches$name +"; count=$((count + 1)) ;; + esac + done + if [ "$count" -eq 0 ]; then + printf '\n \033[2mno matches for\033[0m \033[1m%s\033[0m\n\n' "$*" + return 1 + fi + printf '\n \033[2m%d match(es) for\033[0m \033[1m%s\033[0m\n\n' "$count" "$*" + echo "$matches" | while IFS= read -r m; do + [ -n "$m" ] && printf ' \033[36m>\033[0m %s\n' "$m" + done + printf '\n' +} + +lp() { cd "$HOME/edu/craft/learn"; } +fcc() { cd "$HOME/edu/craft/freecodecamp"; } diff --git a/.config/nvim/.gitignore b/.config/nvim/.gitignore deleted file mode 100644 index cc5457ab807fad274a186d863d5b7c225948363d..0000000000000000000000000000000000000000 --- a/.config/nvim/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -tt.* -.tests -doc/tags -debug -.repro -foo.* -*.log -data diff --git a/.config/nvim/.neoconf.json b/.config/nvim/.neoconf.json deleted file mode 100644 index 7c480874658bdf329eb36d3e5aabd9bf9e0636a6..0000000000000000000000000000000000000000 --- a/.config/nvim/.neoconf.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "neodev": { - "library": { - "enabled": true, - "plugins": true - } - }, - "neoconf": { - "plugins": { - "lua_ls": { - "enabled": true - } - } - } -} diff --git a/.config/nvim/colors/acme.lua b/.config/nvim/colors/acme.lua deleted file mode 100644 index 0769ed76d7bca61fe7a8de3965f4aa96a7b603c8..0000000000000000000000000000000000000000 --- a/.config/nvim/colors/acme.lua +++ /dev/null @@ -1,322 +0,0 @@ --- Acme colorscheme for Neovim --- Authentic Plan 9 Acme editor aesthetic: monochrome on cream --- No syntax highlighting — true to how Acme actually works --- Based on dookie.nvim by Jose Esparza (pebeto/dookie.nvim) - -local M = {} - -local colors = { - fg = "#000000", - fg_dim = "#b7b19c", - bg = "#ffffea", - bg_dim = "#ffffca", - bg_dark = "#eeee9e", - cursor = "#98ce8f", - tagbar = "#eaffff", - tagbar_inactive = "#bdc1bb", - - error = "#b85c57", - warn = "#8f7634", - info = "#57864e", - hint = "#2a8dc5", - - git_add = "#57864e", - git_change = "#8f7634", - git_delete = "#b85c57", - - diff_add = "#d5ebd0", - diff_delete = "#ebd0d0", - diff_change = "#ebe8d0", - diff_text = "#d8d5b0", -} - -function M.setup() - vim.cmd("hi clear") - if vim.fn.exists("syntax_on") then - vim.cmd("syntax reset") - end - - vim.o.background = "light" - vim.g.colors_name = "acme" - - local hi = function(group, opts) - vim.api.nvim_set_hl(0, group, opts) - end - - -- Editor - hi("Normal", { fg = colors.fg, bg = colors.bg }) - hi("NormalFloat", { fg = colors.fg, bg = colors.bg }) - hi("FloatBorder", { fg = colors.fg, bg = colors.bg }) - hi("Cursor", { bg = colors.cursor }) - hi("CursorLine", { bg = colors.bg_dim }) - hi("CursorLineNr", { fg = colors.fg, bg = colors.bg_dim }) - hi("CursorColumn", { bg = colors.bg_dim }) - hi("LineNr", { fg = colors.fg, bg = colors.bg_dim }) - hi("SignColumn", { bg = colors.bg_dim }) - hi("ColorColumn", { bg = colors.bg_dim }) - hi("VertSplit", { fg = colors.bg_dark, bg = colors.bg }) - hi("WinSeparator", { fg = colors.bg_dark, bg = colors.bg }) - hi("Folded", { fg = colors.fg, bg = colors.bg_dim }) - hi("FoldColumn", { fg = colors.fg, bg = colors.bg_dim }) - hi("NonText", { fg = colors.fg_dim }) - hi("SpecialKey", { fg = colors.fg_dim }) - hi("EndOfBuffer", { fg = colors.bg_dim }) - hi("MatchParen", { fg = colors.fg, bg = colors.bg_dark, underline = true }) - hi("Directory", { fg = colors.fg, bold = true }) - hi("Title", { fg = colors.fg, bold = true }) - hi("Conceal", { fg = colors.fg_dim }) - - -- Selection - hi("Visual", { bg = colors.bg_dark }) - hi("VisualNOS", { bg = colors.bg_dark }) - - -- Search - hi("Search", { fg = colors.fg, bg = colors.bg_dim, bold = true }) - hi("IncSearch", { fg = colors.fg, bg = colors.bg_dark, bold = true }) - hi("CurSearch", { fg = colors.fg, bg = colors.bg_dark, bold = true }) - - -- Spell - hi("SpellBad", { undercurl = true, sp = colors.error }) - hi("SpellCap", { undercurl = true, sp = colors.info }) - hi("SpellRare", { undercurl = true, sp = colors.hint }) - hi("SpellLocal", { undercurl = true, sp = colors.warn }) - - -- Statusline (Acme tag bar cyan) - hi("StatusLine", { fg = colors.fg, bg = colors.tagbar, bold = true }) - hi("StatusLineNC", { fg = colors.fg, bg = colors.tagbar_inactive }) - hi("TabLine", { fg = colors.fg, bg = colors.bg_dim }) - hi("TabLineFill", { fg = colors.fg, bg = colors.bg_dim }) - hi("TabLineSel", { fg = colors.fg, bg = colors.bg, bold = true }) - hi("WinBar", { fg = colors.fg, bg = colors.bg }) - hi("WinBarNC", { fg = colors.fg, bg = colors.bg_dim }) - - -- Popup menu - hi("Pmenu", { fg = colors.fg, bg = colors.bg_dim }) - hi("PmenuSel", { fg = colors.fg, bg = colors.bg_dim, bold = true }) - hi("PmenuSbar", { bg = colors.bg_dim }) - hi("PmenuThumb", { bg = colors.fg }) - - -- Messages - hi("ErrorMsg", { fg = colors.error, bold = true }) - hi("WarningMsg", { fg = colors.warn, bold = true }) - hi("ModeMsg", { fg = colors.fg, bold = true }) - hi("MoreMsg", { fg = colors.fg, bold = true }) - hi("Question", { fg = colors.fg, bold = true }) - - -- Diagnostics - hi("DiagnosticError", { fg = colors.error }) - hi("DiagnosticWarn", { fg = colors.warn }) - hi("DiagnosticInfo", { fg = colors.info }) - hi("DiagnosticHint", { fg = colors.hint }) - hi("DiagnosticUnderlineError", { undercurl = true, sp = colors.error }) - hi("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.warn }) - hi("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.info }) - hi("DiagnosticUnderlineHint", { undercurl = true, sp = colors.hint }) - - -- Diff - hi("DiffAdd", { bg = colors.diff_add }) - hi("DiffDelete", { bg = colors.diff_delete }) - hi("DiffChange", { bg = colors.diff_change }) - hi("DiffText", { bg = colors.diff_text }) - - -- Syntax (monochrome — the Acme way) - hi("Comment", { fg = colors.fg, bold = true }) - hi("Constant", { fg = colors.fg }) - hi("String", { fg = colors.fg, bold = true }) - hi("Character", { fg = colors.fg, bold = true }) - hi("Number", { fg = colors.fg }) - hi("Boolean", { fg = colors.fg }) - hi("Float", { fg = colors.fg }) - hi("Identifier", { fg = colors.fg }) - hi("Function", { fg = colors.fg }) - hi("Statement", { fg = colors.fg }) - hi("Conditional", { fg = colors.fg }) - hi("Repeat", { fg = colors.fg }) - hi("Label", { fg = colors.fg }) - hi("Operator", { fg = colors.fg }) - hi("Keyword", { fg = colors.fg }) - hi("Exception", { fg = colors.fg }) - hi("PreProc", { fg = colors.fg }) - hi("Include", { fg = colors.fg }) - hi("Define", { fg = colors.fg }) - hi("Macro", { fg = colors.fg }) - hi("PreCondit", { fg = colors.fg }) - hi("Type", { fg = colors.fg }) - hi("StorageClass", { fg = colors.fg }) - hi("Structure", { fg = colors.fg }) - hi("Typedef", { fg = colors.fg }) - hi("Special", { fg = colors.fg }) - hi("SpecialChar", { fg = colors.fg }) - hi("Tag", { fg = colors.fg }) - hi("Delimiter", { fg = colors.fg }) - hi("SpecialComment", { fg = colors.fg, bold = true }) - hi("Debug", { fg = colors.fg }) - hi("Underlined", { fg = colors.fg, underline = true }) - hi("Ignore", { fg = colors.fg_dim }) - hi("Error", { fg = colors.error, bold = true }) - hi("Todo", { fg = colors.fg, bold = true, underline = true }) - - -- Treesitter (monochrome) - hi("@variable", { fg = colors.fg }) - hi("@variable.builtin", { fg = colors.fg }) - hi("@variable.parameter", { fg = colors.fg }) - hi("@variable.member", { fg = colors.fg }) - hi("@constant", { fg = colors.fg }) - hi("@constant.builtin", { fg = colors.fg }) - hi("@module", { fg = colors.fg }) - hi("@label", { fg = colors.fg }) - hi("@string", { fg = colors.fg, bold = true }) - hi("@string.documentation", { fg = colors.fg, bold = true }) - hi("@string.escape", { fg = colors.fg, bold = true }) - hi("@string.special", { fg = colors.fg, bold = true }) - hi("@character", { fg = colors.fg, bold = true }) - hi("@number", { fg = colors.fg }) - hi("@boolean", { fg = colors.fg }) - hi("@float", { fg = colors.fg }) - hi("@function", { fg = colors.fg }) - hi("@function.builtin", { fg = colors.fg }) - hi("@function.call", { fg = colors.fg }) - hi("@function.macro", { fg = colors.fg }) - hi("@method", { fg = colors.fg }) - hi("@method.call", { fg = colors.fg }) - hi("@constructor", { fg = colors.fg }) - hi("@parameter", { fg = colors.fg }) - hi("@keyword", { fg = colors.fg }) - hi("@keyword.function", { fg = colors.fg }) - hi("@keyword.operator", { fg = colors.fg }) - hi("@keyword.return", { fg = colors.fg }) - hi("@conditional", { fg = colors.fg }) - hi("@repeat", { fg = colors.fg }) - hi("@exception", { fg = colors.fg }) - hi("@include", { fg = colors.fg }) - hi("@type", { fg = colors.fg }) - hi("@type.builtin", { fg = colors.fg }) - hi("@type.qualifier", { fg = colors.fg }) - hi("@type.definition", { fg = colors.fg }) - hi("@storageclass", { fg = colors.fg }) - hi("@attribute", { fg = colors.fg }) - hi("@field", { fg = colors.fg }) - hi("@property", { fg = colors.fg }) - hi("@punctuation.bracket", { fg = colors.fg }) - hi("@punctuation.delimiter", { fg = colors.fg }) - hi("@punctuation.special", { fg = colors.fg }) - hi("@comment", { fg = colors.fg, bold = true }) - hi("@tag", { fg = colors.fg }) - hi("@tag.attribute", { fg = colors.fg }) - hi("@tag.delimiter", { fg = colors.fg }) - hi("@text", { fg = colors.fg }) - hi("@text.strong", { fg = colors.fg, bold = true }) - hi("@text.emphasis", { fg = colors.fg, italic = true }) - hi("@text.underline", { fg = colors.fg, underline = true }) - hi("@text.strike", { fg = colors.fg, strikethrough = true }) - hi("@text.title", { fg = colors.fg, bold = true }) - hi("@text.literal", { fg = colors.fg, bold = true }) - hi("@text.uri", { fg = colors.fg, underline = true }) - hi("@text.todo", { fg = colors.fg, bold = true, underline = true }) - hi("@text.note", { fg = colors.info, bold = true }) - hi("@text.warning", { fg = colors.warn, bold = true }) - hi("@text.danger", { fg = colors.error, bold = true }) - - -- LSP - hi("LspReferenceText", { bg = colors.bg_dark }) - hi("LspReferenceRead", { bg = colors.bg_dark }) - hi("LspReferenceWrite", { bg = colors.bg_dark }) - hi("LspSignatureActiveParameter", { fg = colors.fg, bold = true, underline = true }) - - -- Git signs - hi("GitSignsAdd", { fg = colors.git_add }) - hi("GitSignsChange", { fg = colors.git_change }) - hi("GitSignsDelete", { fg = colors.git_delete }) - hi("GitSignsCurrentLineBlame", { fg = colors.fg_dim, italic = true }) - - -- Telescope - hi("TelescopeBorder", { fg = colors.fg }) - hi("TelescopePromptBorder", { fg = colors.fg }) - hi("TelescopeResultsBorder", { fg = colors.fg }) - hi("TelescopePreviewBorder", { fg = colors.fg }) - hi("TelescopeSelection", { bg = colors.bg_dark }) - hi("TelescopeSelectionCaret", { fg = colors.fg, bg = colors.bg_dark }) - hi("TelescopeMatching", { fg = colors.fg, bold = true, underline = true }) - - -- NeoTree - hi("NeoTreeNormal", { fg = colors.fg, bg = colors.bg_dim }) - hi("NeoTreeNormalNC", { fg = colors.fg, bg = colors.bg_dim }) - hi("NeoTreeDirectoryName", { fg = colors.fg, bold = true }) - hi("NeoTreeDirectoryIcon", { fg = colors.fg }) - hi("NeoTreeRootName", { fg = colors.fg, bold = true }) - hi("NeoTreeFileName", { fg = colors.fg }) - hi("NeoTreeGitAdded", { fg = colors.git_add }) - hi("NeoTreeGitModified", { fg = colors.git_change }) - hi("NeoTreeGitDeleted", { fg = colors.git_delete }) - - -- Which-key - hi("WhichKey", { fg = colors.fg, bold = true }) - hi("WhichKeyGroup", { fg = colors.fg, bold = true }) - hi("WhichKeyDesc", { fg = colors.fg }) - hi("WhichKeySeparator", { fg = colors.fg_dim }) - hi("WhichKeyFloat", { bg = colors.bg_dim }) - - -- Indent blankline - hi("IndentBlanklineChar", { fg = colors.bg_dark }) - hi("IndentBlanklineContextChar", { fg = colors.fg_dim }) - hi("IblIndent", { fg = colors.bg_dark }) - hi("IblScope", { fg = colors.fg_dim }) - - -- Notify - hi("NotifyERRORBorder", { fg = colors.error }) - hi("NotifyWARNBorder", { fg = colors.warn }) - hi("NotifyINFOBorder", { fg = colors.info }) - hi("NotifyDEBUGBorder", { fg = colors.fg_dim }) - hi("NotifyTRACEBorder", { fg = colors.hint }) - hi("NotifyERRORIcon", { fg = colors.error }) - hi("NotifyWARNIcon", { fg = colors.warn }) - hi("NotifyINFOIcon", { fg = colors.info }) - hi("NotifyDEBUGIcon", { fg = colors.fg_dim }) - hi("NotifyTRACEIcon", { fg = colors.hint }) - hi("NotifyERRORTitle", { fg = colors.error }) - hi("NotifyWARNTitle", { fg = colors.warn }) - hi("NotifyINFOTitle", { fg = colors.info }) - hi("NotifyDEBUGTitle", { fg = colors.fg_dim }) - hi("NotifyTRACETitle", { fg = colors.hint }) - - -- Dashboard - hi("DashboardHeader", { fg = colors.fg, bold = true }) - hi("DashboardCenter", { fg = colors.fg }) - hi("DashboardFooter", { fg = colors.fg_dim }) - hi("DashboardShortCut", { fg = colors.fg, bold = true }) - - -- Lazy - hi("LazyButton", { fg = colors.fg, bg = colors.bg_dim }) - hi("LazyButtonActive", { fg = colors.fg, bg = colors.bg_dark, bold = true }) - hi("LazyH1", { fg = colors.fg, bold = true }) - hi("LazySpecial", { fg = colors.fg, bold = true }) - - -- Mini - hi("MiniStatuslineModeNormal", { fg = colors.fg, bg = colors.tagbar, bold = true }) - hi("MiniStatuslineModeInsert", { fg = colors.fg, bg = colors.tagbar_inactive, bold = true }) - hi("MiniStatuslineModeVisual", { fg = colors.fg, bg = colors.bg_dark, bold = true }) - hi("MiniStatuslineModeReplace", { fg = colors.bg, bg = colors.error, bold = true }) - hi("MiniStatuslineModeCommand", { fg = colors.fg, bg = colors.bg_dim, bold = true }) - - -- Bufferline - hi("BufferLineFill", { bg = colors.bg_dim }) - hi("BufferLineBackground", { fg = colors.fg_dim, bg = colors.bg_dim }) - hi("BufferLineBuffer", { fg = colors.fg_dim, bg = colors.bg_dim }) - hi("BufferLineBufferSelected", { fg = colors.fg, bg = colors.bg, bold = true }) - hi("BufferLineBufferVisible", { fg = colors.fg_dim, bg = colors.bg_dim }) - hi("BufferLineCloseButton", { fg = colors.fg_dim, bg = colors.bg_dim }) - hi("BufferLineCloseButtonSelected", { fg = colors.error, bg = colors.bg }) - hi("BufferLineCloseButtonVisible", { fg = colors.fg_dim, bg = colors.bg_dim }) - hi("BufferLineIndicatorSelected", { fg = colors.fg, bg = colors.bg }) - hi("BufferLineModified", { fg = colors.fg, bg = colors.bg_dim }) - hi("BufferLineModifiedSelected", { fg = colors.fg, bg = colors.bg }) - hi("BufferLineSeparator", { fg = colors.bg_dim, bg = colors.bg_dim }) - hi("BufferLineSeparatorSelected", { fg = colors.bg_dim, bg = colors.bg }) - - -- Copilot - hi("CopilotSuggestion", { fg = colors.fg_dim }) -end - -M.setup() - -return M diff --git a/.config/nvim/colors/plan9.lua b/.config/nvim/colors/plan9.lua deleted file mode 100644 index b12050ece29f63ef48ad3ea546f64fa6b1fb5df1..0000000000000000000000000000000000000000 --- a/.config/nvim/colors/plan9.lua +++ /dev/null @@ -1,414 +0,0 @@ --- Plan9 colorscheme for Neovim --- Authentic Plan 9 / Acme colors from plan9port and 9front source --- All colors derived from libdraw constants and acme/rio/sam source code --- Syntax highlighting uses only the Plan 9 system palette - -local M = {} - --- Authentic Plan 9 palette (from draw.h / libdraw) -local p9 = { - black = "#000000", -- DBlack - white = "#ffffff", -- DWhite - red = "#ff0000", -- DRed - green = "#00ff00", -- DGreen - blue = "#0000ff", -- DBlue - cyan = "#00ffff", -- DCyan - magenta = "#ff00ff", -- DMagenta - yellow = "#ffff00", -- DYellow - paleyellow = "#ffffaa", -- DPaleyellow - darkyellow = "#eeee9e", -- DDarkyellow - darkgreen = "#448844", -- DDarkgreen - palegreen = "#aaffaa", -- DPalegreen - medgreen = "#88cc88", -- DMedgreen - darkblue = "#000055", -- DDarkblue - palebluegreen = "#aaffff", -- DPalebluegreen - paleblue = "#0000bb", -- DPaleblue - bluegreen = "#008888", -- DBluegreen - greygreen = "#55aaaa", -- DGreygreen - palegreygreen = "#9eeeee", -- DPalegreygreen - yellowgreen = "#99994c", -- DYellowgreen - medblue = "#000099", -- DMedblue - greyblue = "#005dbb", -- DGreyblue - palegreyblue = "#4993dd", -- DPalegreyblue - purpleblue = "#8888cc", -- DPurpleblue - - -- Acme computed mixes (allocimagemix) - acme_body = "#ffffea", -- DPaleyellow + DWhite mix (acme text bg) - acme_tag = "#eaffff", -- DPalebluegreen + DWhite mix (acme tag bg) - - -- Acme UI specific - b2_red = "#aa0000", -- Mouse button 2 (execute) - b3_green = "#006600", -- Mouse button 3 (look/plumb) - scroll = "#444444", -- Sam scroll indicator - pale_text = "#666666", -- Rio inactive text - rio_bg = "#777777", -- Rio desktop - rio_inactive = "#999999", -- Rio inactive border -} - -local colors = { - -- Editor base (Acme body) - bg = p9.acme_body, - bg_dim = p9.darkyellow, - bg_dark = p9.yellowgreen, - fg = p9.black, - fg_dim = p9.pale_text, - fg_faint = p9.rio_inactive, - - -- Acme tag bar - tagbar = p9.acme_tag, - tag_sel = p9.palegreygreen, - tag_border = p9.purpleblue, - - -- Selection (Acme body selection) - selection = p9.darkyellow, - cursor_line = "#f5f5d5", - - -- Borders - border = p9.yellowgreen, - - -- Syntax (using only Plan 9 system colors) - comment = p9.yellowgreen, - string = p9.b2_red, - keyword = p9.medblue, - func = p9.bluegreen, - type = p9.darkgreen, - const = p9.darkblue, - preproc = p9.greyblue, - special = p9.purpleblue, - operator = p9.scroll, - - -- Diagnostics / semantic (Plan 9 UI colors) - error = p9.b2_red, - warn = p9.yellowgreen, - info = p9.darkgreen, - hint = p9.bluegreen, - - -- Git (semantic using Plan 9 palette) - git_add = p9.darkgreen, - git_change = p9.yellowgreen, - git_delete = p9.b2_red, - - -- Diff backgrounds (pale versions) - diff_add = p9.palegreen, - diff_delete = "#ffaaaa", - diff_change = p9.darkyellow, - diff_text = p9.yellowgreen, - - -- Line numbers - line_nr = p9.rio_inactive, - - -- Modified indicator - modified = p9.medblue, -} - -function M.setup() - vim.cmd("hi clear") - if vim.fn.exists("syntax_on") then - vim.cmd("syntax reset") - end - - vim.o.background = "light" - vim.g.colors_name = "plan9" - - local hi = function(group, opts) - vim.api.nvim_set_hl(0, group, opts) - end - - -- Editor - hi("Normal", { fg = colors.fg, bg = colors.bg }) - hi("NormalFloat", { fg = colors.fg, bg = p9.acme_tag }) - hi("FloatBorder", { fg = colors.tag_border, bg = p9.acme_tag }) - hi("Cursor", { fg = colors.bg, bg = colors.fg }) - hi("CursorLine", { bg = colors.cursor_line }) - hi("CursorLineNr", { fg = colors.fg, bg = colors.cursor_line, bold = true }) - hi("CursorColumn", { bg = colors.cursor_line }) - hi("LineNr", { fg = colors.line_nr }) - hi("SignColumn", { bg = colors.bg }) - hi("ColorColumn", { bg = colors.bg_dim }) - hi("VertSplit", { fg = colors.border }) - hi("WinSeparator", { fg = colors.border }) - hi("Folded", { fg = colors.fg_dim, bg = colors.bg_dim }) - hi("FoldColumn", { fg = colors.line_nr, bg = colors.bg }) - hi("NonText", { fg = colors.border }) - hi("SpecialKey", { fg = colors.border }) - hi("EndOfBuffer", { fg = colors.bg_dim }) - hi("MatchParen", { fg = colors.fg, bg = p9.palegreygreen, bold = true }) - hi("Directory", { fg = colors.func, bold = true }) - hi("Title", { fg = colors.keyword, bold = true }) - hi("Conceal", { fg = colors.fg_dim }) - - -- Selection - hi("Visual", { bg = colors.selection }) - hi("VisualNOS", { bg = colors.selection }) - - -- Search - hi("Search", { fg = colors.fg, bg = colors.selection }) - hi("IncSearch", { fg = p9.white, bg = colors.keyword }) - hi("CurSearch", { fg = p9.white, bg = colors.keyword }) - - -- Spell - hi("SpellBad", { undercurl = true, sp = colors.error }) - hi("SpellCap", { undercurl = true, sp = colors.info }) - hi("SpellRare", { undercurl = true, sp = colors.hint }) - hi("SpellLocal", { undercurl = true, sp = colors.warn }) - - -- Statusline (Acme tag bar style) - hi("StatusLine", { fg = colors.fg, bg = colors.tagbar, bold = true }) - hi("StatusLineNC", { fg = colors.fg_dim, bg = colors.tagbar }) - hi("TabLine", { fg = colors.fg_dim, bg = colors.tagbar }) - hi("TabLineFill", { bg = colors.tagbar }) - hi("TabLineSel", { fg = colors.fg, bg = colors.bg, bold = true }) - hi("WinBar", { fg = colors.fg, bg = colors.bg }) - hi("WinBarNC", { fg = colors.fg_dim, bg = colors.bg_dim }) - - -- Popup menu (Acme tag bar colors) - hi("Pmenu", { fg = colors.fg, bg = colors.tagbar }) - hi("PmenuSel", { fg = colors.fg, bg = colors.tag_sel, bold = true }) - hi("PmenuSbar", { bg = colors.tagbar }) - hi("PmenuThumb", { bg = colors.tag_border }) - - -- Messages - hi("ErrorMsg", { fg = colors.error, bold = true }) - hi("WarningMsg", { fg = colors.warn, bold = true }) - hi("ModeMsg", { fg = colors.fg, bold = true }) - hi("MoreMsg", { fg = colors.info, bold = true }) - hi("Question", { fg = colors.info }) - - -- Diagnostics - hi("DiagnosticError", { fg = colors.error }) - hi("DiagnosticWarn", { fg = colors.warn }) - hi("DiagnosticInfo", { fg = colors.info }) - hi("DiagnosticHint", { fg = colors.hint }) - hi("DiagnosticUnderlineError", { undercurl = true, sp = colors.error }) - hi("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.warn }) - hi("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.info }) - hi("DiagnosticUnderlineHint", { undercurl = true, sp = colors.hint }) - - -- Diff - hi("DiffAdd", { bg = colors.diff_add }) - hi("DiffDelete", { bg = colors.diff_delete }) - hi("DiffChange", { bg = colors.diff_change }) - hi("DiffText", { bg = colors.diff_text }) - - -- Syntax (Plan 9 palette — muted, deliberate color choices) - hi("Comment", { fg = colors.comment, italic = true }) - hi("Constant", { fg = colors.const }) - hi("String", { fg = colors.string }) - hi("Character", { fg = colors.string }) - hi("Number", { fg = colors.const }) - hi("Boolean", { fg = colors.const }) - hi("Float", { fg = colors.const }) - hi("Identifier", { fg = colors.fg }) - hi("Function", { fg = colors.func }) - hi("Statement", { fg = colors.keyword }) - hi("Conditional", { fg = colors.keyword }) - hi("Repeat", { fg = colors.keyword }) - hi("Label", { fg = colors.keyword }) - hi("Operator", { fg = colors.operator }) - hi("Keyword", { fg = colors.keyword, bold = true }) - hi("Exception", { fg = colors.error }) - hi("PreProc", { fg = colors.preproc }) - hi("Include", { fg = colors.preproc }) - hi("Define", { fg = colors.preproc }) - hi("Macro", { fg = colors.preproc }) - hi("PreCondit", { fg = colors.preproc }) - hi("Type", { fg = colors.type }) - hi("StorageClass", { fg = colors.type }) - hi("Structure", { fg = colors.type }) - hi("Typedef", { fg = colors.type }) - hi("Special", { fg = colors.special }) - hi("SpecialChar", { fg = colors.special }) - hi("Tag", { fg = colors.func }) - hi("Delimiter", { fg = colors.operator }) - hi("SpecialComment", { fg = colors.comment, bold = true }) - hi("Debug", { fg = colors.error }) - hi("Underlined", { fg = colors.preproc, underline = true }) - hi("Ignore", { fg = colors.fg_faint }) - hi("Error", { fg = p9.white, bg = colors.error, bold = true }) - hi("Todo", { fg = colors.bg, bg = colors.modified, bold = true }) - - -- Treesitter - hi("@variable", { fg = colors.fg }) - hi("@variable.builtin", { fg = colors.special }) - hi("@variable.parameter", { fg = colors.fg }) - hi("@variable.member", { fg = colors.fg }) - hi("@constant", { fg = colors.const }) - hi("@constant.builtin", { fg = colors.const, bold = true }) - hi("@module", { fg = colors.type }) - hi("@label", { fg = colors.keyword }) - hi("@string", { fg = colors.string }) - hi("@string.documentation", { fg = colors.comment }) - hi("@string.escape", { fg = colors.special }) - hi("@string.special", { fg = colors.special }) - hi("@character", { fg = colors.string }) - hi("@number", { fg = colors.const }) - hi("@boolean", { fg = colors.const, bold = true }) - hi("@float", { fg = colors.const }) - hi("@function", { fg = colors.func }) - hi("@function.builtin", { fg = colors.func }) - hi("@function.call", { fg = colors.func }) - hi("@function.macro", { fg = colors.preproc }) - hi("@method", { fg = colors.func }) - hi("@method.call", { fg = colors.func }) - hi("@constructor", { fg = colors.type }) - hi("@parameter", { fg = colors.fg }) - hi("@keyword", { fg = colors.keyword, bold = true }) - hi("@keyword.function", { fg = colors.keyword, bold = true }) - hi("@keyword.operator", { fg = colors.keyword }) - hi("@keyword.return", { fg = colors.keyword, bold = true }) - hi("@conditional", { fg = colors.keyword }) - hi("@repeat", { fg = colors.keyword }) - hi("@exception", { fg = colors.error }) - hi("@include", { fg = colors.preproc }) - hi("@type", { fg = colors.type }) - hi("@type.builtin", { fg = colors.type }) - hi("@type.qualifier", { fg = colors.keyword }) - hi("@type.definition", { fg = colors.type }) - hi("@storageclass", { fg = colors.keyword }) - hi("@attribute", { fg = colors.preproc }) - hi("@field", { fg = colors.fg }) - hi("@property", { fg = colors.fg }) - hi("@punctuation.bracket", { fg = colors.operator }) - hi("@punctuation.delimiter", { fg = colors.operator }) - hi("@punctuation.special", { fg = colors.special }) - hi("@comment", { fg = colors.comment, italic = true }) - hi("@tag", { fg = colors.func }) - hi("@tag.attribute", { fg = colors.type }) - hi("@tag.delimiter", { fg = colors.operator }) - hi("@text", { fg = colors.fg }) - hi("@text.strong", { bold = true }) - hi("@text.emphasis", { italic = true }) - hi("@text.underline", { underline = true }) - hi("@text.strike", { strikethrough = true }) - hi("@text.title", { fg = colors.keyword, bold = true }) - hi("@text.literal", { fg = colors.string }) - hi("@text.uri", { fg = colors.preproc, underline = true }) - hi("@text.todo", { fg = colors.bg, bg = colors.modified, bold = true }) - hi("@text.note", { fg = colors.bg, bg = colors.info, bold = true }) - hi("@text.warning", { fg = colors.bg, bg = colors.warn, bold = true }) - hi("@text.danger", { fg = p9.white, bg = colors.error, bold = true }) - - -- LSP - hi("LspReferenceText", { bg = colors.selection }) - hi("LspReferenceRead", { bg = colors.selection }) - hi("LspReferenceWrite", { bg = colors.selection }) - hi("LspSignatureActiveParameter", { fg = colors.keyword, bold = true }) - - -- Git signs - hi("GitSignsAdd", { fg = colors.git_add }) - hi("GitSignsChange", { fg = colors.git_change }) - hi("GitSignsDelete", { fg = colors.git_delete }) - hi("GitSignsCurrentLineBlame", { fg = colors.fg_faint, italic = true }) - - -- Telescope / Snacks picker - hi("TelescopeBorder", { fg = colors.tag_border }) - hi("TelescopePromptBorder", { fg = colors.tag_border }) - hi("TelescopeResultsBorder", { fg = colors.tag_border }) - hi("TelescopePreviewBorder", { fg = colors.tag_border }) - hi("TelescopeSelection", { bg = colors.selection }) - hi("TelescopeSelectionCaret", { fg = colors.keyword, bg = colors.selection }) - hi("TelescopeMatching", { fg = colors.string, bold = true }) - - -- NeoTree (sidebar like Acme tag column) - hi("NeoTreeNormal", { fg = colors.fg, bg = colors.tagbar }) - hi("NeoTreeNormalNC", { fg = colors.fg, bg = colors.tagbar }) - hi("NeoTreeDirectoryName", { fg = colors.fg, bold = true }) - hi("NeoTreeDirectoryIcon", { fg = colors.func }) - hi("NeoTreeRootName", { fg = colors.fg, bold = true }) - hi("NeoTreeFileName", { fg = colors.fg }) - hi("NeoTreeGitAdded", { fg = colors.git_add }) - hi("NeoTreeGitModified", { fg = colors.git_change }) - hi("NeoTreeGitDeleted", { fg = colors.git_delete }) - - -- Which-key - hi("WhichKey", { fg = colors.keyword, bold = true }) - hi("WhichKeyGroup", { fg = colors.func }) - hi("WhichKeyDesc", { fg = colors.fg }) - hi("WhichKeySeparator", { fg = colors.fg_faint }) - hi("WhichKeyFloat", { bg = colors.tagbar }) - - -- Indent blankline - hi("IndentBlanklineChar", { fg = colors.bg_dim }) - hi("IndentBlanklineContextChar", { fg = colors.border }) - hi("IblIndent", { fg = colors.bg_dim }) - hi("IblScope", { fg = colors.border }) - - -- Notify - hi("NotifyERRORBorder", { fg = colors.error }) - hi("NotifyWARNBorder", { fg = colors.warn }) - hi("NotifyINFOBorder", { fg = colors.info }) - hi("NotifyDEBUGBorder", { fg = colors.fg_faint }) - hi("NotifyTRACEBorder", { fg = colors.hint }) - hi("NotifyERRORIcon", { fg = colors.error }) - hi("NotifyWARNIcon", { fg = colors.warn }) - hi("NotifyINFOIcon", { fg = colors.info }) - hi("NotifyDEBUGIcon", { fg = colors.fg_faint }) - hi("NotifyTRACEIcon", { fg = colors.hint }) - hi("NotifyERRORTitle", { fg = colors.error }) - hi("NotifyWARNTitle", { fg = colors.warn }) - hi("NotifyINFOTitle", { fg = colors.info }) - hi("NotifyDEBUGTitle", { fg = colors.fg_faint }) - hi("NotifyTRACETitle", { fg = colors.hint }) - - -- Snacks (LazyVim notifications/dashboard) - hi("SnacksNotifierBorderError", { fg = colors.error }) - hi("SnacksNotifierBorderWarn", { fg = colors.warn }) - hi("SnacksNotifierBorderInfo", { fg = colors.info }) - hi("SnacksNotifierBorderDebug", { fg = colors.fg_faint }) - hi("SnacksNotifierBorderTrace", { fg = colors.hint }) - hi("SnacksDashboardHeader", { fg = colors.keyword, bold = true }) - hi("SnacksDashboardKey", { fg = colors.keyword, bold = true }) - hi("SnacksDashboardIcon", { fg = colors.func }) - hi("SnacksDashboardDesc", { fg = colors.fg }) - hi("SnacksDashboardFooter", { fg = colors.fg_dim }) - - -- Dashboard (legacy) - hi("DashboardHeader", { fg = colors.keyword, bold = true }) - hi("DashboardCenter", { fg = colors.fg }) - hi("DashboardFooter", { fg = colors.fg_faint }) - hi("DashboardShortCut", { fg = colors.keyword }) - - -- Lazy - hi("LazyButton", { fg = colors.fg, bg = colors.bg_dim }) - hi("LazyButtonActive", { fg = colors.fg, bg = colors.tag_sel, bold = true }) - hi("LazyH1", { fg = colors.keyword, bold = true }) - hi("LazySpecial", { fg = colors.func }) - - -- Mini statusline (Plan 9 accent colors for modes) - hi("MiniStatuslineModeNormal", { fg = p9.white, bg = p9.bluegreen, bold = true }) - hi("MiniStatuslineModeInsert", { fg = p9.white, bg = p9.darkgreen, bold = true }) - hi("MiniStatuslineModeVisual", { fg = p9.white, bg = p9.purpleblue, bold = true }) - hi("MiniStatuslineModeReplace", { fg = p9.white, bg = p9.b2_red, bold = true }) - hi("MiniStatuslineModeCommand", { fg = colors.fg, bg = p9.darkyellow, bold = true }) - - -- Bufferline (tag bar style) - hi("BufferLineFill", { bg = colors.tagbar }) - hi("BufferLineBackground", { fg = colors.fg_dim, bg = colors.tagbar }) - hi("BufferLineBuffer", { fg = colors.fg_dim, bg = colors.tagbar }) - hi("BufferLineBufferSelected", { fg = colors.fg, bg = colors.bg, bold = true }) - hi("BufferLineBufferVisible", { fg = colors.fg_dim, bg = colors.tagbar }) - hi("BufferLineCloseButton", { fg = colors.fg_dim, bg = colors.tagbar }) - hi("BufferLineCloseButtonSelected", { fg = colors.error, bg = colors.bg }) - hi("BufferLineCloseButtonVisible", { fg = colors.fg_dim, bg = colors.tagbar }) - hi("BufferLineIndicatorSelected", { fg = colors.tag_border, bg = colors.bg }) - hi("BufferLineModified", { fg = colors.modified, bg = colors.tagbar }) - hi("BufferLineModifiedSelected", { fg = colors.modified, bg = colors.bg }) - hi("BufferLineSeparator", { fg = colors.tagbar, bg = colors.tagbar }) - hi("BufferLineSeparatorSelected", { fg = colors.tagbar, bg = colors.bg }) - - -- Copilot - hi("CopilotSuggestion", { fg = colors.fg_faint }) - - -- Lualine (if used instead of mini) - hi("lualine_a_normal", { fg = p9.white, bg = p9.bluegreen, bold = true }) - hi("lualine_a_insert", { fg = p9.white, bg = p9.darkgreen, bold = true }) - hi("lualine_a_visual", { fg = p9.white, bg = p9.purpleblue, bold = true }) - hi("lualine_a_replace", { fg = p9.white, bg = p9.b2_red, bold = true }) - hi("lualine_a_command", { fg = colors.fg, bg = p9.darkyellow, bold = true }) - hi("lualine_b_normal", { fg = colors.fg, bg = colors.tagbar }) - hi("lualine_c_normal", { fg = colors.fg_dim, bg = colors.bg_dim }) -end - -M.setup() - -return M diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua deleted file mode 100644 index 2514f9ed90d831793ec8b5ca4666040996d01e09..0000000000000000000000000000000000000000 --- a/.config/nvim/init.lua +++ /dev/null @@ -1,2 +0,0 @@ --- bootstrap lazy.nvim, LazyVim and your plugins -require("config.lazy") diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json deleted file mode 100644 index 1dda9dd895af177cad427d5ae2b9aa382bc707bf..0000000000000000000000000000000000000000 --- a/.config/nvim/lazy-lock.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "LazyVim": { "branch": "main", "commit": "c64a61734fc9d45470a72603395c02137802bc6f" }, - "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, - "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" }, - "conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" }, - "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" }, - "grug-far.nvim": { "branch": "main", "commit": "1f7a722a9b9f0206a345377c13e62542f484398a" }, - "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, - "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, - "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "4823a251e7578a835bb979c37df390fca692ba39" }, - "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, - "mini.ai": { "branch": "main", "commit": "9eae720f2b20f6ad28cbfa0ddc524e10dc2c3201" }, - "mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" }, - "mini.pairs": { "branch": "main", "commit": "4089aa6ea6423e02e1a8326a7a7a00159f6f5e04" }, - "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, - "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" }, - "nvim-lspconfig": { "branch": "master", "commit": "419b082102fa813739588dd82e19a8b6b2442855" }, - "nvim-treesitter": { "branch": "main", "commit": "511e5ccf404f8a96ee31866b079fca033a8a7c4e" }, - "nvim-treesitter-textobjects": { "branch": "main", "commit": "4d55f63252e04c5212daed958e4e940915ff16ce" }, - "nvim-ts-autotag": { "branch": "main", "commit": "db15f2e0df2f5db916e511e3fffb682ef2f6354f" }, - "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, - "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }, - "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, - "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, - "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, - "ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" }, - "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } -} diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json deleted file mode 100644 index d8bcaf66befb907e5ed3edb7219e426753427446..0000000000000000000000000000000000000000 --- a/.config/nvim/lazyvim.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extras": [ - - ], - "install_version": 8, - "news": { - "NEWS.md": "11866" - }, - "version": 8 -} \ No newline at end of file diff --git a/.config/nvim/lua/config/autocmds.lua b/.config/nvim/lua/config/autocmds.lua deleted file mode 100644 index 4221e75867a5413b47250a33fcc7bab4afd406ad..0000000000000000000000000000000000000000 --- a/.config/nvim/lua/config/autocmds.lua +++ /dev/null @@ -1,8 +0,0 @@ --- Autocmds are automatically loaded on the VeryLazy event --- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua --- --- Add any additional autocmds here --- with `vim.api.nvim_create_autocmd` --- --- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) --- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell") diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua deleted file mode 100644 index 2c134f7bc119a0f2b376b750965eb32559d37b05..0000000000000000000000000000000000000000 --- a/.config/nvim/lua/config/keymaps.lua +++ /dev/null @@ -1,3 +0,0 @@ --- Keymaps are automatically loaded on the VeryLazy event --- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua --- Add any additional keymaps here diff --git a/.config/nvim/lua/config/lazy.lua b/.config/nvim/lua/config/lazy.lua deleted file mode 100644 index d73bfa104703557f2cb466d9c89485ae1d4f7be0..0000000000000000000000000000000000000000 --- a/.config/nvim/lua/config/lazy.lua +++ /dev/null @@ -1,53 +0,0 @@ -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not (vim.uv or vim.loop).fs_stat(lazypath) then - local lazyrepo = "https://github.com/folke/lazy.nvim.git" - local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) - if vim.v.shell_error ~= 0 then - vim.api.nvim_echo({ - { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, - { "\nPress any key to exit..." }, - }, true, {}) - vim.fn.getchar() - os.exit(1) - end -end -vim.opt.rtp:prepend(lazypath) - -require("lazy").setup({ - spec = { - -- add LazyVim and import its plugins - { "LazyVim/LazyVim", import = "lazyvim.plugins" }, - -- import/override with your plugins - { import = "plugins" }, - }, - defaults = { - -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. - -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. - lazy = false, - -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, - -- have outdated releases, which may break your Neovim install. - version = false, -- always use the latest git commit - -- version = "*", -- try installing the latest stable version for plugins that support semver - }, - install = { colorscheme = { "tokyonight", "habamax" } }, - checker = { - enabled = true, -- check for plugin updates periodically - notify = false, -- notify on update - }, -- automatically check for plugin updates - performance = { - rtp = { - -- disable some rtp plugins - disabled_plugins = { - "gzip", - -- "matchit", - -- "matchparen", - -- "netrwPlugin", - "tarPlugin", - "tohtml", - "tutor", - "zipPlugin", - }, - }, - }, -}) diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua deleted file mode 100644 index 3ea1454fa3580ee1ca5e9e9e03b87e5269aed64b..0000000000000000000000000000000000000000 --- a/.config/nvim/lua/config/options.lua +++ /dev/null @@ -1,3 +0,0 @@ --- Options are automatically loaded before lazy.nvim startup --- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua --- Add any additional options here diff --git a/.config/nvim/lua/plugins/colorscheme.lua b/.config/nvim/lua/plugins/colorscheme.lua deleted file mode 100644 index e1a55fc8760478b0889f631fe22b18ada27f738e..0000000000000000000000000000000000000000 --- a/.config/nvim/lua/plugins/colorscheme.lua +++ /dev/null @@ -1,74 +0,0 @@ --- Colorscheme configuration --- Default: plan9 --- Alternatives: acme, base16-grayscale-light, base16-grayscale-dark, --- catppuccin-latte, tokyonight-night --- --- Or use keymaps: --- up - Plan9 (default) --- ua - Acme (monochrome) --- ug - Base16 Grayscale Light --- uG - Base16 Grayscale Dark --- uc - Catppuccin Latte (light) --- ut - TokyoNight (dark) - -return { - -- Base16 (grayscale light/dark) - { - "RRethy/base16-nvim", - lazy = true, - }, - - -- Catppuccin (light theme option) - { - "catppuccin/nvim", - name = "catppuccin", - lazy = true, - opts = { - flavour = "latte", - }, - }, - - -- TokyoNight (dark theme option) - { - "folke/tokyonight.nvim", - lazy = true, - opts = { - style = "day", - transparent = false, - terminal_colors = true, - styles = { - comments = { italic = true }, - keywords = { italic = true }, - functions = {}, - variables = {}, - sidebars = "dark", - floats = "dark", - }, - }, - }, - - -- Set plan9 as the default colorscheme - { - "LazyVim/LazyVim", - opts = { - colorscheme = "tokyonight-day", - }, - }, - - -- Keymaps for switching themes - { - "folke/which-key.nvim", - optional = true, - opts = { - spec = { - { "up", "colorscheme plan9", desc = "Plan9 (default)" }, - { "ua", "colorscheme acme", desc = "Acme (monochrome)" }, - { "ug", "colorscheme base16-grayscale-light", desc = "Grayscale Light" }, - { "uG", "colorscheme base16-grayscale-dark", desc = "Grayscale Dark" }, - { "uc", "colorscheme catppuccin-latte", desc = "Catppuccin Latte (light)" }, - { "ud", "colorscheme tokyonight-day", desc = "TokyoNight Day (light)" }, - { "ut", "colorscheme tokyonight-night", desc = "TokyoNight Night (dark)" }, - }, - }, - }, -} diff --git a/.config/nvim/lua/plugins/dashboard.lua b/.config/nvim/lua/plugins/dashboard.lua deleted file mode 100644 index ae019e0efad5601574267bcdb1ffdbf7999e1be7..0000000000000000000000000000000000000000 --- a/.config/nvim/lua/plugins/dashboard.lua +++ /dev/null @@ -1,34 +0,0 @@ --- Custom dashboard buttons for LazyVim (using snacks.nvim) -return { - { - "folke/snacks.nvim", - opts = { - dashboard = { - preset = { - keys = { - { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, - { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, - { icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, - { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, - -- { icon = " ", key = "R", desc = "Restore Session", action = ":lua require('persistence').load()" }, - { icon = " ", key = "s", desc = "Browse src", action = ":e ~/.local/src/" }, - { icon = " ", key = "b", desc = "Browse scripts", action = ":e ~/.local/bin/" }, - -- { icon = " ", key = "p", desc = "Projects", action = ":e ~/dev/" }, - -- { icon = " ", key = "B", desc = "Bookmarks", action = ":e ~/.local/share/karbs/snippets" }, - { icon = " ", key = "i", desc = "Fish Config", action = ":e ~/.config/fish/config.fish" }, - { icon = " ", key = "c", desc = "Lazy Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" }, - { icon = " ", key = "m", desc = "Lazy Mappings", action = ":e ~/.config/nvim/lua/config/keymaps.lua" }, - { icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" }, - { icon = "󰒲 ", key = "l", desc = "Lazy Plugins", action = ":Lazy" }, - { icon = " ", key = "q", desc = "Quit", action = ":qa" }, - }, - }, - sections = { - { section = "header" }, - { section = "keys", gap = 1, padding = 1 }, - { section = "startup" }, - }, - }, - }, - }, -} diff --git a/.config/nvim/lua/plugins/neo-tree.lua b/.config/nvim/lua/plugins/neo-tree.lua deleted file mode 100644 index 7539ae95b50fbfb3b075fc0159c217f9261837c9..0000000000000000000000000000000000000000 --- a/.config/nvim/lua/plugins/neo-tree.lua +++ /dev/null @@ -1,26 +0,0 @@ --- Always show neo-tree sidebar -return { - { - "nvim-neo-tree/neo-tree.nvim", - opts = { - filesystem = { - filtered_items = { - visible = true, - hide_dotfiles = false, - hide_gitignored = false, - }, - }, - }, - init = function() - -- Auto-open neo-tree on startup - vim.api.nvim_create_autocmd("VimEnter", { - callback = function() - if vim.fn.argc() > 0 then - -- Only open if we're opening a file/directory - vim.cmd("Neotree show") - end - end, - }) - end, - }, -} diff --git a/.config/nvim/stylua.toml b/.config/nvim/stylua.toml deleted file mode 100644 index 5d6c50dce955fe8b2d86106d4cc4616f5fc2fd59..0000000000000000000000000000000000000000 --- a/.config/nvim/stylua.toml +++ /dev/null @@ -1,3 +0,0 @@ -indent_type = "Spaces" -indent_width = 2 -column_width = 120 \ No newline at end of file diff --git a/.config/write/init.lua b/.config/write/init.lua index 28bacf72005e21f8d24d5b86a2b424c35c49a2ce..e7313148efb9c5d4c4be04777cdeccec6ec483d2 100644 --- a/.config/write/init.lua +++ b/.config/write/init.lua @@ -67,7 +67,7 @@ vim.opt.undodir = vim.fn.stdpath("data") .. "/undo" vim.opt.clipboard = "unnamedplus" vim.opt.mouse = "a" --- snacks.nvim (explorer + project picker) +-- snacks.nvim (explorer + project picker + dashboard) require("snacks").setup({ explorer = { enabled = true }, picker = { @@ -79,6 +79,34 @@ require("snacks").setup({ }, }, }, + dashboard = { + enabled = true, + preset = { + header = [[ + (\ +'\ + '\ __________ + / '| ()________) + \ '/ \ ~~~~~~~~ \ + \ \ ~~~~~~ \ + ==). \__________\ + (__) ()__________)]], + keys = { + { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, + { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, + { icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, + { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, + { icon = " ", key = "s", desc = "Browse slipbox", action = ":e ~/dev/slipbox/" }, + { icon = " ", key = "b", desc = "Browse content", action = ":e ~/.corpus/content/" }, + { icon = " ", key = "e", desc = "Explorer", action = ":lua Snacks.explorer.open()" }, + { icon = " ", key = "q", desc = "Quit", action = ":qa" }, + }, + }, + sections = { + { section = "header" }, + { section = "keys", gap = 1, padding = 1 }, + }, + }, }) -- Word count in statusline (shown in cmdline area) @@ -226,9 +254,11 @@ vim.api.nvim_create_autocmd({ "FocusLost", "CursorHold", "InsertLeave" }, { end, }) --- Goyo on by default +-- Goyo on by default (but not when dashboard is showing) vim.api.nvim_create_autocmd("VimEnter", { callback = function() - vim.cmd("Goyo") + if vim.fn.argc() > 0 then + vim.cmd("Goyo") + end end, }) diff --git a/.local/share/fastfetch/ascii/glenda.txt b/.local/share/fastfetch/ascii/glenda.txt index bebb08bc0cd6ead77413ddcc9c285074feabce34..12a53c44f085be8e5ba0aae255b661dafb64c242 100644 --- a/.local/share/fastfetch/ascii/glenda.txt +++ b/.local/share/fastfetch/ascii/glenda.txt @@ -1,15 +1,16 @@ - __ - ( \ - __ \ '\ -( "-_ \ .-'----._ - '-_ "v" "- - "Y' ". - | | - | o o | - | .<>. | - \ "Ll" | - | .' - | | - ( / - /'\ . \ - "--^--.__,\_)-' + __ + \ / ) + \ /' / __ + _.----'-./ _-" ) + -" "v" _-' + ." 'Y" + | | + | o o | + | .><. | + | "Ll" / + '. | + | | + \ ) + / . /'\ * + '-(_/,__.--^--" * * + * * * diff --git a/.planrc b/.planrc new file mode 100644 index 0000000000000000000000000000000000000000..2ea81256db0e816db14514515772c52c7417b9ee --- /dev/null +++ b/.planrc @@ -0,0 +1 @@ +# Plan 9 rc shell config diff --git a/README.md b/README.md index 0e040e83e4d80f4d852652d6a24f4c48519ade22..4eecfd6d55591441a55b20812064e8a8abe0d1e1 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,29 @@ profiles/ → Per-machine overrides (moirai, khr1st, pentest) ## Related - [sdeploy](https://github.com/krisyotam/sdeploy) — Deployment scripts that install packages and stow these dotfiles + + + +profiles/gentoo/portage/ +├── make.conf # Global: CFLAGS, USE, GPU, +MAKEOPTS +├── package.use/ +│ ├── browsers # surf savedconfig +│ ├── documents # zathura backends +│ ├── editors # neovim, emacs +│ ├── graphics # gimp, inkscape +│ ├── multimedia # pipewire, mpv, ffmpeg, mpd +│ ├── security # gnupg, openvpn +│ └── xorg # xorg-server, picom, dunst +├── package.accept_keywords/ # empty, for unmasking ~amd64 +├── package.mask/ # empty +├── package.unmask/ # empty +├── package.license/ # empty +├── repos.conf/ # empty, for overlays +└── savedconfig/ # empty, for suckless configs + + www-client/ = web browsers + app-editors/ = editors (neovim, emacs) + media-video/ = video stuff (mpv, pipewire) + sys-process/ = process tools (btop) + x11-misc/ = X utilities (picom, dunst) \ No newline at end of file diff --git a/profiles/README.md b/profiles/README.md index 2b8a3a9f285e8bd4b8282b2fef1dd130abe595b5..899103b782a5a915fb9c30e68dcbc39541569fd2 100644 --- a/profiles/README.md +++ b/profiles/README.md @@ -18,3 +18,4 @@ cd ~/srice/profiles/moirai && stow -t ~ . - `moirai/` — Desktop (4-monitor, AMD dGPU + Intel iGPU, Arrow Lake) - `khr1st/` — Laptop - `pentest/` — Kali/security-focused config +- `gentoo/` — Gentoo musl/OpenRC system configs (portage, USE flags, make.conf) diff --git a/profiles/gentoo/portage/make.conf b/profiles/gentoo/portage/make.conf new file mode 100644 index 0000000000000000000000000000000000000000..3fb937a6e10058b9adfc9b68f79ff8fc254ac97f --- /dev/null +++ b/profiles/gentoo/portage/make.conf @@ -0,0 +1,43 @@ +# /etc/portage/make.conf +# Gentoo system configuration for moirai (Arrow Lake + RX 6800 XT) + +# Compiler flags +COMMON_FLAGS="-O2 -pipe -march=native" +CFLAGS="${COMMON_FLAGS}" +CXXFLAGS="${COMMON_FLAGS}" +FCFLAGS="${COMMON_FLAGS}" +FFLAGS="${COMMON_FLAGS}" + +# Parallel builds: Arrow Lake Core Ultra 7 265K (20 threads) +MAKEOPTS="-j20" + +# Global USE flags +USE="-systemd -elogind -consolekit -pulseaudio -bluetooth -networkmanager + X openrc musl pipewire alsa iwd seatd + unicode truetype fontconfig + jpeg png gif svg webp tiff + pdf djvu postscript + gpg ssl curl + -dbus -policykit -udisks -gvfs" + +# GPU +VIDEO_CARDS="amdgpu radeonsi" +INPUT_DEVICES="libinput" + +# Accepted licenses +ACCEPT_LICENSE="*" + +# Locale +LINGUAS="en" +L10N="en" + +# Mirrors +GENTOO_MIRRORS="https://distfiles.gentoo.org" + +# Features +FEATURES="parallel-fetch candy" + +# Portage directories +PORTDIR="/var/db/repos/gentoo" +DISTDIR="/var/cache/distfiles" +PKGDIR="/var/cache/binpkgs" diff --git a/profiles/gentoo/portage/package.use b/profiles/gentoo/portage/package.use new file mode 100644 index 0000000000000000000000000000000000000000..1bc0499702cd9ecc6f690a188acba421f07b5d4d --- /dev/null +++ b/profiles/gentoo/portage/package.use @@ -0,0 +1,203 @@ +# ============================================================================= +# package.use +# /etc/portage/package.use +# +# Author: Kris Yotam (khr1st) +# Date: 2026-05-21 +# System: Gentoo musl/OpenRC — moirai (Arrow Lake + RX 6800 XT) +# ============================================================================= +# +# Format: category/package flag1 flag2 -flag3 +# flag = enable at compile time +# -flag = disable at compile time +# +# See available flags: emerge -pv category/package +# See active flags: equery uses category/package +# ============================================================================= + + +# ============================================================================= +# Core / Init +# ============================================================================= +sys-apps/openrc -netifrc # iwd+dhcpcd, not netifrc +sys-auth/seatd -builtin # standalone seat manager +sys-libs/musl -static # system libc +sys-fs/eudev -rule-generator # device manager +sys-process/audit -gssapi # no kerberos + + +# ============================================================================= +# X11 / Display +# ============================================================================= +x11-base/xorg-server -minimal -wayland udev +x11-apps/xinit -twm +x11-misc/picom config-file opengl +x11-misc/dunst -wayland +x11-misc/unclutter -xfixes +x11-misc/xdotool -libnotify +x11-misc/arandr -python_single_target_python3_12 + + +# ============================================================================= +# Audio +# ============================================================================= +media-video/pipewire sound-server -bluetooth -jack +media-video/wireplumber -system-service +media-libs/alsa-lib -alisp -python + + +# ============================================================================= +# Music +# ============================================================================= +media-sound/mpd alsa pipewire -pulseaudio flac mp3 opus vorbis +media-sound/ncmpcpp taglib outputs visualizer +media-sound/mpc -doc + + +# ============================================================================= +# Video +# ============================================================================= +media-video/mpv lua alsa pipewire cli -sdl -wayland opengl vulkan +media-video/ffmpeg x264 x265 opus vorbis vpx theora mp3 alsa flac + + +# ============================================================================= +# Browsers (active) +# ============================================================================= +www-client/nyxt -webkit2 +net-misc/helium-browser -hangouts +www-client/torbrowser-launcher -apparmor + +# Browsers (archive) +# www-client/brave-bin -keyring +# www-client/chromium -hangouts -widevine +# www-client/google-chrome -l10n_* +# www-client/floorp -l10n_* +# www-client/icecat -dbus +# www-client/palemoon -dbus +# www-client/qutebrowser -widevine +# www-client/surf savedconfig +# www-client/vivaldi -proprietary-codecs +# www-client/lynx ssl +# www-client/w3m imlib + + +# ============================================================================= +# Editors +# ============================================================================= +app-editors/neovim lua luajit -python -ruby +app-editors/emacs gui X toolkit-lucid -gtk -xwidgets -imagemagick + + +# ============================================================================= +# Documents / PDF +# ============================================================================= +app-text/zathura-meta pdf djvu postscript cb +app-text/poppler cairo -qt5 -qt6 + + +# ============================================================================= +# Graphics +# ============================================================================= +media-gfx/gimp jpeg png svg tiff webp -python +media-gfx/inkscape svg -cdr +media-gfx/imagemagick jpeg png svg tiff webp -openmp + + +# ============================================================================= +# Networking +# ============================================================================= +net-wireless/iwd -ofono -systemd +net-misc/dhcpcd -auth -ipv6 +net-dns/unbound -python -gost dnssec +net-vpn/openvpn ssl lzo +net-vpn/mullvad-vpn -appindicator + + +# ============================================================================= +# Security +# ============================================================================= +app-crypt/gnupg ssl smartcard usb +app-admin/pass -emacs -git -dmenu +net-misc/proxychains -dns + + +# ============================================================================= +# Development +# ============================================================================= +dev-vcs/git curl -perl -python -webdav +dev-lang/go -pie +dev-util/tcc -doc +sys-devel/gcc -fortran -objc -objc++ + + +# ============================================================================= +# Shell +# ============================================================================= +app-shells/mksh -arc4random + + +# ============================================================================= +# Terminals / Multiplexers +# ============================================================================= +app-misc/tmux -utempter +app-misc/dvtm -unicode + + +# ============================================================================= +# Utilities +# ============================================================================= +sys-process/btop -gpu +app-misc/nnn -nerd +app-misc/calcurse -caldav +net-irc/catgirl ssl +media-gfx/nsxiv -exif +app-misc/fastfetch -vulkan -opencl +net-misc/yt-dlp -aria2 +app-misc/jq -oniguruma +sys-apps/ripgrep -pcre +net-p2p/rtorrent -xmlrpc +app-text/buku -colors +www-misc/sfeed -curses +net-mail/neomutt -notmuch -gpgme +app-misc/conky lua X -wayland + + +# ============================================================================= +# Theming / Notifications +# ============================================================================= +x11-libs/libnotify -introspection +app-misc/pywal -colorthief + + +# ============================================================================= +# Torrent +# ============================================================================= +net-p2p/rtorrent -xmlrpc +net-p2p/transmission -gtk -qt5 + + +# ============================================================================= +# Fonts +# ============================================================================= +media-fonts/noto -cjk +media-libs/fontconfig -doc + + +# ============================================================================= +# Containers +# ============================================================================= +# app-containers/docker -cli -buildx +# app-containers/docker-compose -python + + +# ============================================================================= +# Suckless (git builds from krisyotam repos, not portage) +# Listed for reference only — these use savedconfig/ if built via portage +# ============================================================================= +# x11-wm/dwm savedconfig +# x11-misc/dmenu savedconfig +# x11-terms/st savedconfig +# www-client/surf savedconfig +# sys-process/scron savedconfig +# www-misc/quark savedconfig