26 Commits

Author SHA1 Message Date
74973c1449 chore: initial commit for draft MR 2025-12-18 15:56:51 +01:00
545a5927e5 chore(nvim): add commented formatter.nvim config
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:54:13 +01:00
c6b2743cf6 chore(nvim): reorder plugins, remove claude-code from paq-setup
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:53:59 +01:00
430bec1708 style(lsp): fix formatting and indentation
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:53:56 +01:00
d9e25eec77 chore: remove taskdeps script
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:53:04 +01:00
a588604d91 chore(nvim): comment out image.nvim config
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:53:01 +01:00
d9911dd2ce style(cmp): reformat sources list
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:52:57 +01:00
b397fab3f2 feat(ftplugin): add dotenv filetype support
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:52:54 +01:00
1246f42638 feat(nvim): add skeleton module to init
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:52:50 +01:00
06fb7dd4b8 fix(wiki): disable auto lcd on VimEnter
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:52:47 +01:00
4b2d24e1f4 feat(fzf): add resume to live_grep, use complete_file
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:52:42 +01:00
f57d227203 feat(lint): enable eslint for js/ts, disable systemdlint/yamllint
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:52:31 +01:00
82f904c9dc feat(format): enable lsp_fallback, disable json formatters
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:52:24 +01:00
26b5f00643 fix(lsp): update helm_ls, yamlls, disable emmet
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:51:36 +01:00
31f604f8f6 feat(lsp): add terraformls, rust_analyzer, configure nixd
Add support for Terraform and Rust language servers, and configure nixd
with home-manager options for better Nix completions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:51:17 +01:00
8632e7a1bc feat(lsp): switch from ts_ls to vtsls
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:51:02 +01:00
0a9405ffd6 chore(nvim): disable codecompanion plugin config
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:50:40 +01:00
eceaab3caf chore(nvim): disable mcphub plugin config
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:50:36 +01:00
1dbb9c1e5d chore(nvim): disable nvimkit, normalize paq-setup formatting
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:50:16 +01:00
b3e1e4e939 chore(nvim): disable image.nvim plugin
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:45:36 +01:00
14e1f01784 feat(nvim): add vim-markdown-composer plugin
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:45:12 +01:00
e1e300bee2 feat(nvim): add blink.download plugin
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:44:58 +01:00
1418407e63 feat(nvim): add obsidian plugin
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:44:41 +01:00
1e3a5d291f feat(nvim): add nvim-early-retirement plugin
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:44:18 +01:00
a8100cf3e2 feat(nvim): add kubectl plugin
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 15:40:18 +01:00
6c738b78e7 feat: set up 'claude-code.nvim' plugin 2025-12-18 15:34:49 +01:00
20 changed files with 302 additions and 242 deletions

View File

@@ -1,144 +0,0 @@
#!/usr/bin/python
import argparse
import json
import subprocess
from collections import defaultdict
def get_task_data():
command = (
"task +PENDING or +WAITING -COMPLETED -DELETED export | "
"jq '[.[] | {uuid: .uuid, id, depends: .depends, description: .description, status: .status }]'"
)
output = subprocess.check_output(command, shell=True)
return json.loads(output)
def parse_task_data(data):
dependency_graph = defaultdict(list)
task_details = {}
dependent_tasks = set()
for task in data:
task_id = task["uuid"]
task_details[task_id] = {
"id": task.get("id", "?"),
"description": task.get("description", "No description"),
"status": task.get("status", "Unknown status"),
}
if task["depends"]:
for dependency in task["depends"]:
dependency_graph[dependency].append(task_id)
dependent_tasks.add(task_id)
root_tasks = set(task_details.keys()) - dependent_tasks
return task_details, dependency_graph, root_tasks
def get_all_parents(task_id, dependency_graph):
return [
parent for parent, children in dependency_graph.items() if task_id in children
]
def build_ascii_dag(
task_id,
task_details,
dependency_graph,
prefix="",
is_last=True,
show_id=True,
visited=None,
):
if visited is None:
visited = set()
if task_id in visited:
return [f"{prefix}{'└── ' if is_last else '├── '}... (cycle detected)"]
visited.add(task_id)
task_info = task_details[task_id]
task_line = f"{prefix}{'└── ' if is_last else '├── '}{task_info['id'] + ': ' if show_id else ''}{task_info['description']} ({task_info['status']})"
lines = [task_line]
children = dependency_graph.get(task_id, [])
for idx, child in enumerate(children):
child_is_last = idx == len(children) - 1
child_prefix = prefix + (" " if is_last else "│ ")
lines.extend(
build_ascii_dag(
child,
task_details,
dependency_graph,
child_prefix,
child_is_last,
show_id,
visited.copy(),
)
)
return lines
def render_dependency_dag(task_details, dependency_graph, root_tasks, show_id):
dag_lines = []
global_visited = set()
def dfs(task_id, prefix="", is_last=True, visited=None):
if visited is None:
visited = set()
if task_id in visited:
return
visited.add(task_id)
global_visited.add(task_id)
task_info = task_details[task_id]
task_line = f"{prefix}{'└── ' if is_last else '├── '}{str(task_info['id']) + ': ' if show_id else ''}{task_info['description']} ({task_info['status']})"
dag_lines.append(task_line)
children = dependency_graph.get(task_id, [])
for idx, child in enumerate(children):
child_is_last = idx == len(children) - 1
child_prefix = prefix + (" " if is_last else "│ ")
dfs(child, child_prefix, child_is_last, visited.copy())
root_tasks_with_children = [
root for root in root_tasks if dependency_graph.get(root, [])
]
for root in sorted(
root_tasks_with_children,
key=lambda x: len(dependency_graph.get(x, [])),
reverse=True,
):
if root not in global_visited:
dfs(root)
dag_lines.append("")
return "\n".join(dag_lines).rstrip()
def main(args):
data = get_task_data()
task_details, dependency_graph, root_tasks = parse_task_data(data)
ascii_dag = render_dependency_dag(
task_details, dependency_graph, root_tasks, show_id=args.show_id
)
print(ascii_dag)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="Generates a task dependency DAG for Taskwarrior tasks."
)
parser.add_argument(
"--show-id",
action="store_true",
default=False,
help="Include task IDs in the output.",
)
args = parser.parse_args()
main(args)

View File

@@ -0,0 +1 @@
require("claude-code").setup()

View File

@@ -1,17 +1,16 @@
require("codecompanion").setup({ -- require("codecompanion").setup({
ignore_warnings = true, -- extensions = {
extensions = { -- mcphub = {
mcphub = { -- callback = "mcphub.extensions.codecompanion",
callback = "mcphub.extensions.codecompanion", -- opts = {
opts = { -- make_vars = true,
make_vars = true, -- make_slash_commands = true,
make_slash_commands = true, -- show_result_in_chat = true
show_result_in_chat = true, -- }
}, -- }
}, -- },
}, -- strategies = {
strategies = { -- chat = { adapter = "openai" },
chat = { adapter = "openai" }, -- inline = { adapter = "openai" },
inline = { adapter = "openai" }, -- },
}, -- })
})

View File

@@ -1,6 +1,6 @@
require("conform").setup({ require("conform").setup({
format_after_save = { format_after_save = {
lsp_fallback = false, lsp_fallback = true,
async = false, async = false,
timeout_ms = 500, timeout_ms = 500,
}, },
@@ -13,15 +13,14 @@ require("conform").setup({
gdscript = { "gdformat" }, gdscript = { "gdformat" },
haskell = { "ormolu" }, haskell = { "ormolu" },
html = { "prettierd", "prettier", stop_after_first = true }, html = { "prettierd", "prettier", stop_after_first = true },
javascript = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
javascriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
json = { "prettierd", "prettier", stop_after_first = true },
jsonc = { "prettierd", "prettier", stop_after_first = true },
lua = { "stylua" }, -- configured in stylua.toml lua = { "stylua" }, -- configured in stylua.toml
markdown = { "prettierd", "prettier", stop_after_first = true }, markdown = { "prettierd", "prettier", stop_after_first = true },
nix = { "nixfmt" }, nix = { "nixfmt" },
javascript = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
javascriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
-- json = { "prettierd", "prettier", stop_after_first = true },
-- jsonc = { "prettierd", "prettier", stop_after_first = true },
python = { "isort", "black" }, python = { "isort", "black" },
rust = { "rustfmt", lsp_fallback = "fallback" },
svelte = { "eslint_d", "prettierd", "prettier", stop_after_first = true }, svelte = { "eslint_d", "prettierd", "prettier", stop_after_first = true },
typescript = { "eslint_d", "prettierd", "prettier", stop_after_first = true }, typescript = { "eslint_d", "prettierd", "prettier", stop_after_first = true },
typescriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true }, typescriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },

View File

@@ -0,0 +1,78 @@
-- require("formatter").setup({
-- logging = true,
-- filetype = {
-- typescriptreact = {
-- -- prettier
-- function()
-- return {
-- exe = "prettier",
-- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0) },
-- stdin = true,
-- }
-- end,
-- },
-- typescript = {
-- -- prettier
-- function()
-- return {
-- exe = "prettier",
-- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0) },
-- stdin = true,
-- }
-- end,
-- -- linter
-- -- function()
-- -- return {
-- -- exe = "eslint",
-- -- args = {
-- -- "--stdin-filename",
-- -- vim.api.nvim_buf_get_name(0),
-- -- "--fix",
-- -- "--cache"
-- -- },
-- -- stdin = false
-- -- }
-- -- end
-- },
-- javascript = {
-- -- prettier
-- function()
-- return {
-- exe = "prettier",
-- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0) },
-- stdin = true,
-- }
-- end,
-- },
-- javascriptreact = {
-- -- prettier
-- function()
-- return {
-- exe = "prettier",
-- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0) },
-- stdin = true,
-- }
-- end,
-- },
-- json = {
-- -- prettier
-- function()
-- return {
-- exe = "prettier",
-- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0) },
-- stdin = true,
-- }
-- end,
-- },
-- lua = {
-- -- luafmt
-- function()
-- return {
-- exe = "luafmt",
-- args = { "--indent-count", 2, "--stdin" },
-- stdin = true,
-- }
-- end,
-- },
-- },
-- })

View File

@@ -5,7 +5,9 @@ fzf.setup({ "max-perf" })
vim.keymap.set("n", "<leader>f<leader>", fzf.builtin) -- Help vim.keymap.set("n", "<leader>f<leader>", fzf.builtin) -- Help
vim.keymap.set("n", "<leader>fc", fzf.commands) vim.keymap.set("n", "<leader>fc", fzf.commands)
vim.keymap.set("n", "<leader>ff", fzf.files) vim.keymap.set("n", "<leader>ff", fzf.files)
vim.keymap.set("n", "<leader>fg", fzf.live_grep_native) vim.keymap.set("n", "<leader>fg", function()
fzf.live_grep_native({ resume = true })
end)
vim.keymap.set("n", "<leader>fb", fzf.buffers) vim.keymap.set("n", "<leader>fb", fzf.buffers)
vim.keymap.set("n", "<leader>fd", fzf.diagnostics_workspace) vim.keymap.set("n", "<leader>fd", fzf.diagnostics_workspace)
vim.keymap.set("n", "<leader>fhe", fzf.help_tags) vim.keymap.set("n", "<leader>fhe", fzf.help_tags)
@@ -13,4 +15,4 @@ vim.keymap.set("n", "<leader>fhi", fzf.search_history)
vim.keymap.set("n", "<leader>fma", fzf.marks) vim.keymap.set("n", "<leader>fma", fzf.marks)
vim.keymap.set("n", "<leader>fma", fzf.man_pages) vim.keymap.set("n", "<leader>fma", fzf.man_pages)
vim.keymap.set("i", "<c-f>", fzf.complete_path) vim.keymap.set("i", "<c-f>", fzf.complete_file)

View File

@@ -1,10 +1,10 @@
require("image").setup({ -- require("image").setup({
backend = "kitty", -- backend = "kitty",
kitty_method = "normal", -- kitty_method = "normal",
processor = "magick_cli", -- processor = "magick_cli",
integrations = { -- integrations = {
markdown = { -- markdown = {
filetypes = { "markdown", "pandoc" }, -- filetypes = { "markdown", "pandoc" },
}, -- },
}, -- },
}) -- })

View File

@@ -0,0 +1 @@
require("kubectl").setup()

View File

@@ -17,11 +17,9 @@ local servers = {
format = false, format = false,
}, },
}, },
emmet_language_server = {}, -- emmet_language_server = {},
gdscript = {}, gdscript = {},
helm_ls = { helm_ls = { filetypes = { "helm", "yaml.helm-values" } },
filetypes = { "yaml", "helm", "yaml.helm-values" },
},
hls = { filetypes = { "haskell", "lhaskell", "cabal" } }, hls = { filetypes = { "haskell", "lhaskell", "cabal" } },
html = {}, html = {},
jsonls = { jsonls = {
@@ -65,8 +63,26 @@ local servers = {
}, },
}, },
-- marksman = {}, -- marksman = {},
nixd = {}, -- TODO: This completion ain't working yet
nixd = {
nixpkgs = {
expr = "import <nixpkgs> { }",
},
formatting = {
command = { "nixfmt" },
},
options = {
home_manager = {
expr = '(builtins.getFlake "/home/hektor/.config/home-manager").homeConfigurations.work.options',
},
},
},
pyright = {}, pyright = {},
rust_analyzer = {
settings = {
["rust-analyzer"] = {},
},
},
-- tsserver = {}, -- tsserver = {},
svelte = { svelte = {
plugin = { plugin = {
@@ -76,48 +92,43 @@ local servers = {
}, },
}, },
tailwindcss = {}, tailwindcss = {},
-- vtsls = {}, terraformls = {},
ts_ls = {}, -- ts_ls = {},
-- vtsls = { vtsls = {
-- maxTsServerMemory = 16384, maxTsServerMemory = 16384,
-- filetypes = { filetypes = {
-- "javascript", "javascript",
-- "javascriptreact", "javascriptreact",
-- "javascript.jsx", "javascript.jsx",
-- "typescript", "typescript",
-- "typescriptreact", "typescriptreact",
-- "typescript.tsx", "typescript.tsx",
-- }, },
-- settings = { settings = {
-- complete_function_calls = true, complete_function_calls = true,
-- vtsls = { vtsls = {
-- enableMoveToFileCodeAction = true, enableMoveToFileCodeAction = true,
-- autoUseWorkspaceTsdk = true, autoUseWorkspaceTsdk = true,
-- experimental = { experimental = { completion = { enableServerSideFuzzyMatch = true } },
-- completion = { },
-- enableServerSideFuzzyMatch = true, typescript = {
-- }, updateImportsOnFileMove = { enabled = "always" },
-- }, suggest = { completeFunctionCalls = true },
-- }, inlayHints = {
-- typescript = { enumMemberValues = { enabled = true },
-- updateImportsOnFileMove = { enabled = "always" }, functionLikeReturnTypes = { enabled = true },
-- suggest = { parameterNames = { enabled = "literals" },
-- completeFunctionCalls = true, parameterTypes = { enabled = true },
-- }, propertyDeclarationTypes = { enabled = true },
-- inlayHints = { variableTypes = { enabled = false },
-- enumMemberValues = { enabled = true }, },
-- functionLikeReturnTypes = { enabled = true }, },
-- parameterNames = { enabled = "literals" }, },
-- parameterTypes = { enabled = true }, },
-- propertyDeclarationTypes = { enabled = true },
-- variableTypes = { enabled = false },
-- },
-- },
-- },
-- },
yamlls = { yamlls = {
settings = { settings = {
yaml = { yaml = {
validate = true,
schemaStore = { schemaStore = {
-- You must disable built-in schemaStore support if you want to use -- You must disable built-in schemaStore support if you want to use
-- this plugin and its advanced options like `ignore`. -- this plugin and its advanced options like `ignore`.

View File

@@ -1 +1 @@
require("mcphub").setup({}) -- require("mcphub").setup({})

View File

@@ -62,8 +62,8 @@ cmp.setup({
["<CR>"] = c_l, ["<CR>"] = c_l,
}), }),
sources = { sources = {
{ name = "copilot", group_index = 2 },
{ name = "zk" }, { name = "zk" },
{ name = "copilot", group_index = 2 },
{ name = "nvim_lsp", keyword_length = 8 }, { name = "nvim_lsp", keyword_length = 8 },
{ name = "luasnip", max_item_count = 16 }, { name = "luasnip", max_item_count = 16 },
{ name = "path" }, { name = "path" },

View File

@@ -12,8 +12,8 @@ require("lint").linters_by_ft = {
editorconfig = { "editorconfig-checker" }, editorconfig = { "editorconfig-checker" },
haskell = { "hlint" }, haskell = { "hlint" },
-- html = { "htmlhint" }, -- html = { "htmlhint" },
-- javascript = { eslint_linter }, javascript = { eslint_linter },
-- javascriptreact = { eslint_linter }, javascriptreact = { eslint_linter },
gdscript = { "gdlint" }, gdscript = { "gdlint" },
latex = { "chktex" }, latex = { "chktex" },
-- lua = { "luacheck", "selene" }, -- lua = { "luacheck", "selene" },
@@ -22,10 +22,9 @@ require("lint").linters_by_ft = {
-- python = { "pylint" }, -- python = { "pylint" },
sh = { "shellcheck" }, sh = { "shellcheck" },
svelte = { eslint_linter }, svelte = { eslint_linter },
systemd = { "systemdlint" }, typescript = { eslint_linter },
-- typescript = { eslint_linter }, typescriptreact = { eslint_linter },
-- typescriptreact = { eslint_linter }, -- yaml = { "yamllint" },
yaml = { "yamllint" },
} }
-- TODO: Wouldn't it be possible / nice to only try to load the linters when they are -- TODO: Wouldn't it be possible / nice to only try to load the linters when they are

View File

@@ -0,0 +1,9 @@
require("obsidian").setup({
legacy_commands = false,
workspaces = {
{
name = "test",
path = "~/zk/work",
},
},
})

View File

@@ -1,6 +1,6 @@
vim.cmd([[ vim.cmd([[
" Change local buffer to directory of current file after the plugin has loaded " " Change local buffer to directory of current file after the plugin has loaded
autocmd VimEnter * lcd %:p:h " autocmd VimEnter * lcd %:p:h
" " Override wiki index mapping to also cd into the wiki " " Override wiki index mapping to also cd into the wiki
nm <leader>ww <plug>(wiki-index) nm <leader>ww <plug>(wiki-index)

View File

@@ -17,11 +17,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1765644376, "lastModified": 1765934234,
"narHash": "sha256-yqHBL2wYGwjGL2GUF2w3tofWl8qO9tZEuI4wSqbCrtE=", "narHash": "sha256-pJjWUzNnjbIAMIc5gRFUuKCDQ9S1cuh3b2hKgA7Mc4A=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "23735a82a828372c4ef92c660864e82fbe2f5fbe", "rev": "af84f9d270d404c17699522fab95bbf928a2d92f",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -152,6 +152,7 @@
fidget-nvim fidget-nvim
rustaceanvim rustaceanvim
pkgs.neovimPlugins.m-taskwarrior-d-nvim pkgs.neovimPlugins.m-taskwarrior-d-nvim
claude-code-nvim
]; ];
}; };

View File

@@ -0,0 +1 @@
vim.opt_local.filetype = "sh"

View File

@@ -20,6 +20,7 @@ require("statusline")
require("diagnostic") require("diagnostic")
require("utils") require("utils")
require("zk") require("zk")
require("skeleton")
require("reload") require("reload")
require("paq-setup") -- when not on nixCats require("paq-setup") -- when not on nixCats

View File

@@ -34,13 +34,17 @@ require("nixCatsUtils.catPacker").setup({
{ "razak17/tailwind-fold.nvim" }, { "razak17/tailwind-fold.nvim" },
{ "rmagatti/auto-session" }, { "rmagatti/auto-session" },
{ "kndndrj/nvim-dbee" }, { "kndndrj/nvim-dbee" },
{ "3rd/image.nvim", build = false }, -- { "3rd/image.nvim", build = false },
{ "polarmutex/beancount.nvim" }, { "polarmutex/beancount.nvim" },
{ "jamesblckwell/nvimkit.nvim" }, -- { "jamesblckwell/nvimkit.nvim" },
{ 'olimorris/codecompanion.nvim' }, { "olimorris/codecompanion.nvim" },
{ "ravitemer/mcphub.nvim", build = "pnpm install -g mcp-hub@latest" }, { "ravitemer/mcphub.nvim", build = "pnpm install -g mcp-hub@latest" },
{ "zbirenbaum/copilot.lua" }, { "zbirenbaum/copilot.lua" },
{ "zbirenbaum/copilot-cmp" }, { "zbirenbaum/copilot-cmp" },
{ "qvalentin/helm-ls.nvim", ft = "helm" }, { "qvalentin/helm-ls.nvim", ft = "helm" },
{ "saghen/blink.download" },
{ "ramilito/kubectl.nvim" },
{ "mikesmithgh/kitty-scrollback.nvim" }, { "mikesmithgh/kitty-scrollback.nvim" },
{ "chrisgrieser/nvim-early-retirement" },
{ "euclio/vim-markdown-composer" },
}) })

View File

@@ -0,0 +1,98 @@
{
inputs,
config,
pkgs,
...
}:
with pkgs;
[
age
aider-chat
argocd
azure-cli
bat
biome
(config.lib.nixGL.wrap bruno)
chromium
clang
claude-code
(config.lib.nixGL.wrap code-cursor)
curl
dconf2nix
dive
emmet-language-server
eslint_d
flameshot
fluxcd
fzf
fzf-git-sh
git-machete
github-copilot-cli
glab
go
hadolint
hello
helm-ls
htop
input-leap
jira-cli-go
jq
k3d
(config.lib.nixGL.wrap kitty)
kubectl
kubernetes
kubernetes-helm
kustomize
lua
lua-language-server
minikube
ncspot
nil
nixd
nixfmt-rfc-style
# nodejs
nodejs_24
nvimpager
(config.lib.nixGL.wrap obsidian)
pavucontrol
# pgadmin4
prettierd
responder
ripgrep
rust-analyzer
rustlings
shellcheck
(config.lib.nixGL.wrap signal-desktop)
silver-searcher
sleuthkit
spotify
starship
stylua
taskopen
taskwarrior3
(config.lib.nixGL.wrap teams-for-linux)
opentofu
sops
tldr
tmux
tree
tree-sitter
tsx
upbound
vault-bin
(config.lib.nixGL.wrap vscode)
vscode-langservers-extracted
vtsls
yaml-language-server
xclip
xmage
yamllint
yarn
(python311.withPackages (ppkgs: [
ppkgs.plyer
ppkgs.dbus-python
]))
# flakes
inputs.nvim.packages.x86_64-linux.nvim
]