Compare commits
45
Commits
fd670455d4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2e43ea535 | ||
|
|
a278a36b6b | ||
|
|
0db179ecc4 | ||
|
|
461e5107a7 | ||
|
|
4091839450 | ||
|
|
275008da6d | ||
|
|
5039ab1498 | ||
|
|
00a556a4da | ||
|
|
38c857fe64 | ||
|
|
91ee1950de | ||
|
|
744e25eb4a | ||
|
|
9888e4a196 | ||
|
|
65a659ca91 | ||
|
|
66c2c2ca7f | ||
|
|
0c895d41ed | ||
|
|
7abae540d6 | ||
|
|
7c24103ec5 | ||
|
|
4004d9e361 | ||
|
|
5f8f8c4251 | ||
|
|
98a32ff28c | ||
|
|
e6ecc5271d | ||
|
|
34fd954950 | ||
|
|
ffcdef8e54 | ||
|
|
258f45400c | ||
|
|
c5cb5e9895 | ||
|
|
0ca1ef666d | ||
|
|
8b6d8bd092 | ||
|
|
7c283c61c4 | ||
|
|
385c26f3a0 | ||
|
|
028a6611d2 | ||
|
|
3c97d0a21f | ||
|
|
349d697391 | ||
|
|
86e780da0d | ||
|
|
31e2bae402 | ||
|
|
4f77043e3b | ||
|
|
db31984573 | ||
|
|
34205bf384 | ||
|
|
e2301c7682 | ||
|
|
4b98ff5abe | ||
|
|
39a9dd9427 | ||
|
|
9183b17731 | ||
|
|
97a2a5b52b | ||
|
|
4d0cc15291 | ||
|
|
a161febd36 | ||
|
|
8ef45d0422 |
+1
-38
@@ -5,8 +5,7 @@
|
|||||||
|
|
||||||
. /etc/os-release
|
. /etc/os-release
|
||||||
|
|
||||||
# Editor & prompt configuration
|
# Prompt configuration
|
||||||
[ -f "$HOME/.bashrc.d/editor" ] && . "$HOME/.bashrc.d/editor"
|
|
||||||
[ -f "$HOME/.bashrc.d/prompt" ] && . "$HOME/.bashrc.d/prompt"
|
[ -f "$HOME/.bashrc.d/prompt" ] && . "$HOME/.bashrc.d/prompt"
|
||||||
|
|
||||||
# Aliases {{{
|
# Aliases {{{
|
||||||
@@ -31,24 +30,6 @@ done
|
|||||||
[ -f "$HOME/.bashrc.d/prompt" ] && . "$HOME/.bashrc.d/prompt"
|
[ -f "$HOME/.bashrc.d/prompt" ] && . "$HOME/.bashrc.d/prompt"
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Path {{{
|
|
||||||
# Add ~/.bin to PATH
|
|
||||||
export PATH=~/.bin:$PATH
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# History {{{
|
|
||||||
export HISTSIZE=999999
|
|
||||||
export HISTFILESIZE= # Unlimited
|
|
||||||
export HISTCONTROL=ignoreboth:erasedups
|
|
||||||
export HISTIGNORE=" *:clear:l:ls:cd" # Omit commands from history (e.g. those prepended with space)
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# Man pages {{{
|
|
||||||
# See `:h :Man` in NeoVim
|
|
||||||
export MANWIDTH=80
|
|
||||||
export PAGER=nvimpager
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# X11 {{{
|
# X11 {{{
|
||||||
export XDG_SESSION_TYPE=X11
|
export XDG_SESSION_TYPE=X11
|
||||||
export XDG_CONFIG_HOME=$HOME/.config
|
export XDG_CONFIG_HOME=$HOME/.config
|
||||||
@@ -58,16 +39,6 @@ export XDG_DATA_HOME=$HOME/.local/share
|
|||||||
# FZF {{{
|
# FZF {{{
|
||||||
# Check if fzf is installed
|
# Check if fzf is installed
|
||||||
if [ -f "/usr/bin/fzf" ]; then
|
if [ -f "/usr/bin/fzf" ]; then
|
||||||
# Fuzzy finder setup
|
|
||||||
export FZF_COMPLETION_TRIGGER='**'
|
|
||||||
export FZF_DEFAULT_COMMAND='rg --files ""'
|
|
||||||
export FZF_DEFAULT_OPTS="
|
|
||||||
--pointer='❭'
|
|
||||||
--height 10%
|
|
||||||
--color=fg:-1,bg:-1"
|
|
||||||
export FZF_CTRL_T_COMMAND="${FZF_DEFAULT_COMMAND}"
|
|
||||||
export FZF_CTRL_T_OPTS="--preview='bat {} | head -500'"
|
|
||||||
|
|
||||||
if [[ $ID == "raspbian" ]]; then
|
if [[ $ID == "raspbian" ]]; then
|
||||||
. /usr/share/doc/fzf/examples/completion.bash
|
. /usr/share/doc/fzf/examples/completion.bash
|
||||||
. /usr/share/doc/fzf/examples/key-bindings.bash
|
. /usr/share/doc/fzf/examples/key-bindings.bash
|
||||||
@@ -82,10 +53,6 @@ else
|
|||||||
fi
|
fi
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Go {{{
|
|
||||||
export GOPATH="${XDG_DATA_HOME}/go"
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# Jupyter {{{
|
# Jupyter {{{
|
||||||
export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab
|
export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab
|
||||||
# }}}
|
# }}}
|
||||||
@@ -94,10 +61,6 @@ export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab
|
|||||||
[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && . /opt/miniconda3/etc/profile.d/conda.sh
|
[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && . /opt/miniconda3/etc/profile.d/conda.sh
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Zettelkasten {{{
|
|
||||||
export ZK_PATH="$HOME/.zk"
|
|
||||||
|
|
||||||
|
|
||||||
# Codi
|
# Codi
|
||||||
# Usage: codi [filetype] [filename]
|
# Usage: codi [filetype] [filename]
|
||||||
codi() {
|
codi() {
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# shellcheck shell=bash
|
|
||||||
# vim: set ft=bash :
|
|
||||||
|
|
||||||
# Set NeoVim as default editor
|
|
||||||
export EDITOR=nvim
|
|
||||||
export SUDO_EDITOR="$EDITOR"
|
|
||||||
export SYSTEMD_EDITOR="$EDITOR"
|
|
||||||
@@ -27,7 +27,7 @@ scrollback_pager_history_size 1024
|
|||||||
#: Mouse {{{
|
#: Mouse {{{
|
||||||
|
|
||||||
mouse_hide_wait 0.0
|
mouse_hide_wait 0.0
|
||||||
paste_actions quote-urls-at-prompt,confirm
|
paste_actions quote-urls-at-prompt
|
||||||
|
|
||||||
#: }}}
|
#: }}}
|
||||||
|
|
||||||
@@ -54,17 +54,6 @@ hide_window_decorations yes
|
|||||||
|
|
||||||
#: }}}
|
#: }}}
|
||||||
|
|
||||||
#: Tab bar {{{
|
|
||||||
|
|
||||||
tab_bar_edge bottom
|
|
||||||
tab_bar_style powerline
|
|
||||||
tab_bar_min_tabs 1
|
|
||||||
tab_powerline_style slanted
|
|
||||||
tab_activity_symbol !
|
|
||||||
tab_title_template "{index}{fmt.fg.red}{bell_symbol}{fmt.fg.tab}{activity_symbol}:{tab.last_focused_progress_percent}{title}"
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Advanced {{{
|
#: Advanced {{{
|
||||||
|
|
||||||
notify_on_cmd_finish unfocused
|
notify_on_cmd_finish unfocused
|
||||||
@@ -128,14 +117,6 @@ map cmd+8
|
|||||||
map kitty_mod+9
|
map kitty_mod+9
|
||||||
map cmd+9
|
map cmd+9
|
||||||
map kitty_mod+0
|
map kitty_mod+0
|
||||||
map f1 goto_tab 1
|
|
||||||
map f2 goto_tab 2
|
|
||||||
map f3 goto_tab 3
|
|
||||||
map f4 goto_tab 4
|
|
||||||
map f5 goto_tab 5
|
|
||||||
map f6 goto_tab 6
|
|
||||||
map f7 goto_tab 7
|
|
||||||
map f8 goto_tab 8
|
|
||||||
# map kitty_mod+c new_tab # FIXME: conflict with 'copy'
|
# map kitty_mod+c new_tab # FIXME: conflict with 'copy'
|
||||||
map cmd+t
|
map cmd+t
|
||||||
map kitty_mod+q
|
map kitty_mod+q
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ allow_remote_control socket-only
|
|||||||
listen_on unix:/tmp/kitty
|
listen_on unix:/tmp/kitty
|
||||||
shell_integration enabled
|
shell_integration enabled
|
||||||
|
|
||||||
action_alias kitty_scrollback_nvim kitten ~/.local/share/nvim/site/pack/paqs/start/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
|
action_alias kitty_scrollback_nvim kitten ~/.local/share/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
|
||||||
map kitty_mod+h kitty_scrollback_nvim
|
map kitty_mod+h kitty_scrollback_nvim
|
||||||
map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
|
map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
|
||||||
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
|
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
require("claude-code").setup({
|
|
||||||
-- Terminal window settings
|
|
||||||
window = {
|
|
||||||
split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits)
|
|
||||||
position = "vertical", -- Position of the window: "botright", "topleft", "vertical", "float", etc.
|
|
||||||
enter_insert = true, -- Whether to enter insert mode when opening Claude Code
|
|
||||||
hide_numbers = true, -- Hide line numbers in the terminal window
|
|
||||||
hide_signcolumn = true, -- Hide the sign column in the terminal window
|
|
||||||
|
|
||||||
-- Floating window configuration (only applies when position = "float")
|
|
||||||
float = {
|
|
||||||
width = "80%", -- Width: number of columns or percentage string
|
|
||||||
height = "80%", -- Height: number of rows or percentage string
|
|
||||||
row = "center", -- Row position: number, "center", or percentage string
|
|
||||||
col = "center", -- Column position: number, "center", or percentage string
|
|
||||||
relative = "editor", -- Relative to: "editor" or "cursor"
|
|
||||||
border = "rounded", -- Border style: "none", "single", "double", "rounded", "solid", "shadow"
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- File refresh settings
|
|
||||||
refresh = {
|
|
||||||
enable = true, -- Enable file change detection
|
|
||||||
updatetime = 100, -- updatetime when Claude Code is active (milliseconds)
|
|
||||||
timer_interval = 1000, -- How often to check for file changes (milliseconds)
|
|
||||||
show_notifications = true, -- Show notification when files are reloaded
|
|
||||||
},
|
|
||||||
-- Git project settings
|
|
||||||
git = {
|
|
||||||
use_git_root = true, -- Set CWD to git root when opening Claude Code (if in git project)
|
|
||||||
},
|
|
||||||
-- Shell-specific settings
|
|
||||||
shell = {
|
|
||||||
separator = "&&", -- Command separator used in shell commands
|
|
||||||
pushd_cmd = "pushd", -- Command to push directory onto stack (e.g., 'pushd' for bash/zsh, 'enter' for nushell)
|
|
||||||
popd_cmd = "popd", -- Command to pop directory from stack (e.g., 'popd' for bash/zsh, 'exit' for nushell)
|
|
||||||
},
|
|
||||||
-- Command settings
|
|
||||||
command = "claude", -- Command used to launch Claude Code
|
|
||||||
-- Command variants
|
|
||||||
command_variants = {
|
|
||||||
-- Conversation management
|
|
||||||
continue = "--continue", -- Resume the most recent conversation
|
|
||||||
resume = "--resume", -- Display an interactive conversation picker
|
|
||||||
|
|
||||||
-- Output options
|
|
||||||
verbose = "--verbose", -- Enable verbose logging with full turn-by-turn output
|
|
||||||
},
|
|
||||||
-- Keymaps
|
|
||||||
keymaps = {
|
|
||||||
toggle = {
|
|
||||||
normal = "<C-,>", -- Normal mode keymap for toggling Claude Code, false to disable
|
|
||||||
terminal = "<C-,>", -- Terminal mode keymap for toggling Claude Code, false to disable
|
|
||||||
variants = {
|
|
||||||
continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag
|
|
||||||
verbose = "<leader>cV", -- Normal mode keymap for Claude Code with verbose flag
|
|
||||||
},
|
|
||||||
},
|
|
||||||
window_navigation = true, -- Enable window navigation keymaps (<C-h/j/k/l>)
|
|
||||||
scrolling = true, -- Enable scrolling keymaps (<C-f/b>) for page up/down
|
|
||||||
},
|
|
||||||
})
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
require("claudecode").setup({
|
||||||
|
-- terminal = {
|
||||||
|
-- provider = "snacks",
|
||||||
|
-- snacks_win_opts = {
|
||||||
|
-- position = "float",
|
||||||
|
-- width = 0.8,
|
||||||
|
-- height = 0.8,
|
||||||
|
-- border = "rounded",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- diff_opts = {
|
||||||
|
-- layout = "vertical",
|
||||||
|
-- },
|
||||||
|
})
|
||||||
|
|
||||||
|
local map = vim.keymap.set
|
||||||
|
|
||||||
|
map({ "n", "t" }, "<C-_>", "<cmd>ClaudeCode<cr>", { desc = "Toggle Claude Code" })
|
||||||
|
map("n", "<leader>cf", "<cmd>ClaudeCodeFocus<cr>", { desc = "Focus Claude Code" })
|
||||||
|
map("n", "<leader>cC", "<cmd>ClaudeCode --continue<cr>", { desc = "Claude Code (continue)" })
|
||||||
|
map("n", "<leader>cr", "<cmd>ClaudeCode --resume<cr>", { desc = "Claude Code (resume)" })
|
||||||
|
map("n", "<leader>cm", "<cmd>ClaudeCodeSelectModel<cr>", { desc = "Claude Code select model" })
|
||||||
|
map("n", "<leader>cb", "<cmd>ClaudeCodeAdd %<cr>", { desc = "Add buffer to Claude Code" })
|
||||||
|
map("v", "<leader>cs", "<cmd>ClaudeCodeSend<cr>", { desc = "Send selection to Claude Code" })
|
||||||
|
map("n", "<leader>co", "<cmd>ClaudeCodeDiffAccept<cr>", { desc = "Accept Claude Code diff" })
|
||||||
|
map("n", "<leader>cd", "<cmd>ClaudeCodeDiffDeny<cr>", { desc = "Deny Claude Code diff" })
|
||||||
@@ -5,19 +5,3 @@ require("codecompanion").setup({
|
|||||||
inline = { adapter = "openai" },
|
inline = { adapter = "openai" },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Load mcphub extension after codecompanion is initialized
|
|
||||||
-- and ensure the config structure exists
|
|
||||||
local ok, cc_config = pcall(require, "codecompanion.config")
|
|
||||||
if ok then
|
|
||||||
cc_config.interactions = cc_config.interactions or {}
|
|
||||||
cc_config.interactions.chat = cc_config.interactions.chat or {}
|
|
||||||
cc_config.interactions.chat.tools = cc_config.interactions.chat.tools or {}
|
|
||||||
cc_config.interactions.chat.variables = cc_config.interactions.chat.variables or {}
|
|
||||||
|
|
||||||
require("mcphub.extensions.codecompanion").setup({
|
|
||||||
make_vars = true,
|
|
||||||
make_slash_commands = true,
|
|
||||||
show_result_in_chat = true,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
require("copilot_cmp").setup()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
require("copilot").setup({})
|
|
||||||
@@ -2,7 +2,7 @@ local gitsigns = require("gitsigns")
|
|||||||
|
|
||||||
gitsigns.setup({
|
gitsigns.setup({
|
||||||
current_line_blame_formatter = "<author>, <author_time:%R> - <summary>",
|
current_line_blame_formatter = "<author>, <author_time:%R> - <summary>",
|
||||||
linehl = true,
|
-- linehl = true,
|
||||||
current_line_blame_opts = {
|
current_line_blame_opts = {
|
||||||
delay = 0,
|
delay = 0,
|
||||||
virt_text_pos = "right_align",
|
virt_text_pos = "right_align",
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
require("mcphub").setup({})
|
|
||||||
@@ -62,7 +62,6 @@ cmp.setup({
|
|||||||
["<CR>"] = c_l,
|
["<CR>"] = c_l,
|
||||||
}),
|
}),
|
||||||
sources = {
|
sources = {
|
||||||
{ name = "copilot", group_index = 2 },
|
|
||||||
{ name = "zk" },
|
{ name = "zk" },
|
||||||
{ name = "nvim_lsp" },
|
{ name = "nvim_lsp" },
|
||||||
{ name = "luasnip", max_item_count = 16 },
|
{ name = "luasnip", max_item_count = 16 },
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
local function overrides()
|
||||||
|
local colors = require("vscode.colors").get_colors()
|
||||||
|
vim.api.nvim_set_hl(0, "NormalFloat", { bg = colors.vscLeftDark })
|
||||||
|
vim.api.nvim_set_hl(0, "FloatBorder", { fg = colors.vscSplitDark, bg = colors.vscLeftDark })
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("ColorScheme", {
|
||||||
|
pattern = "vscode",
|
||||||
|
callback = overrides,
|
||||||
|
})
|
||||||
|
|
||||||
|
if vim.g.colors_name == "vscode" then
|
||||||
|
overrides()
|
||||||
|
end
|
||||||
@@ -1 +0,0 @@
|
|||||||
vim.cmd("colorscheme zenwritten")
|
|
||||||
Generated
+4
-95
@@ -1,45 +1,5 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-parts": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"mcp-hub",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1743550720,
|
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mcp-hub": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1755841689,
|
|
||||||
"narHash": "sha256-KakvXZf0vjdqzyT+LsAKHEr4GLICGXPmxl1hZ3tI7Yg=",
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcp-hub",
|
|
||||||
"rev": "9c7670a4c341ed3cf738a6242c0fde1cea40bccf",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcp-hub",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixCats": {
|
"nixCats": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777273601,
|
"lastModified": 1777273601,
|
||||||
@@ -57,27 +17,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743689281,
|
"lastModified": 1787424095,
|
||||||
"narHash": "sha256-y7Hg5lwWhEOgflEHRfzSH96BOt26LaYfrYWzZ+VoVdg=",
|
"narHash": "sha256-dWLO5AHhKaw6rdWCtTes8hnntT1r0/J5yhQGm0f0ZgU=",
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "2bfc080955153be0be56724be6fa5477b4eefabb",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1777270315,
|
|
||||||
"narHash": "sha256-yKB4G6cKsQsWN7M6rZGk6gkJPDNPIzT05y4qzRyCDlI=",
|
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6368eda62c9775c38ef7f714b2555a741c20c72d",
|
"rev": "174eb786fb68e3a13e4e535a3deea479a0c07a6a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -103,38 +47,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"plugins-helm-ls-nvim": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773934114,
|
|
||||||
"narHash": "sha256-8trqFsA7nTKSdtkiAL0Sa9bXjh5ONtAqN7XNE/B8ukM=",
|
|
||||||
"owner": "qvalentin",
|
|
||||||
"repo": "helm-ls.nvim",
|
|
||||||
"rev": "20df43509b02a3ce3c6b3eee254d6e2bffa9a370",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "qvalentin",
|
|
||||||
"repo": "helm-ls.nvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"plugins-mcphub-nvim": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1768730387,
|
|
||||||
"narHash": "sha256-g9tPvjThz6EUk7zcY7lL+YH4lrT4x3FJ6jrNMHA8PAE=",
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcphub.nvim",
|
|
||||||
"rev": "7cd5db330f41b7bae02b2d6202218a061c3ebc1f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcphub.nvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"plugins-nvimkit-nvim": {
|
"plugins-nvimkit-nvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -185,12 +97,9 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"mcp-hub": "mcp-hub",
|
|
||||||
"nixCats": "nixCats",
|
"nixCats": "nixCats",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs",
|
||||||
"plugins-beancount-nvim": "plugins-beancount-nvim",
|
"plugins-beancount-nvim": "plugins-beancount-nvim",
|
||||||
"plugins-helm-ls-nvim": "plugins-helm-ls-nvim",
|
|
||||||
"plugins-mcphub-nvim": "plugins-mcphub-nvim",
|
|
||||||
"plugins-nvimkit-nvim": "plugins-nvimkit-nvim",
|
"plugins-nvimkit-nvim": "plugins-nvimkit-nvim",
|
||||||
"plugins-shipwright-nvim": "plugins-shipwright-nvim",
|
"plugins-shipwright-nvim": "plugins-shipwright-nvim",
|
||||||
"plugins-tailwind-fold-nvim": "plugins-tailwind-fold-nvim"
|
"plugins-tailwind-fold-nvim": "plugins-tailwind-fold-nvim"
|
||||||
|
|||||||
+17
-26
@@ -2,7 +2,6 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
nixCats.url = "github:BirdeeHub/nixCats-nvim";
|
nixCats.url = "github:BirdeeHub/nixCats-nvim";
|
||||||
mcp-hub.url = "github:ravitemer/mcp-hub";
|
|
||||||
|
|
||||||
plugins-shipwright-nvim = {
|
plugins-shipwright-nvim = {
|
||||||
url = "github:rktjmp/shipwright.nvim";
|
url = "github:rktjmp/shipwright.nvim";
|
||||||
@@ -24,14 +23,6 @@
|
|||||||
url = "github:jamesblckwell/nvimkit.nvim";
|
url = "github:jamesblckwell/nvimkit.nvim";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
plugins-mcphub-nvim = {
|
|
||||||
url = "github:ravitemer/mcphub.nvim";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
plugins-helm-ls-nvim = {
|
|
||||||
url = "github:qvalentin/helm-ls.nvim";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -49,7 +40,6 @@
|
|||||||
allowUnfreePredicate =
|
allowUnfreePredicate =
|
||||||
pkg:
|
pkg:
|
||||||
builtins.elem (nixpkgs.lib.getName pkg) [
|
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||||
"copilot-language-server"
|
|
||||||
"vim-sandwich"
|
"vim-sandwich"
|
||||||
"jupytext.nvim"
|
"jupytext.nvim"
|
||||||
"eyeliner.nvim"
|
"eyeliner.nvim"
|
||||||
@@ -64,11 +54,8 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
mkDependencyOverlays = system: [
|
mkDependencyOverlays = [
|
||||||
(utils.standardPluginOverlay inputs)
|
(utils.standardPluginOverlay inputs)
|
||||||
(_final: _prev: {
|
|
||||||
mcp-hub = inputs.mcp-hub.packages.${system}.default;
|
|
||||||
})
|
|
||||||
(_: prev: {
|
(_: prev: {
|
||||||
luajitPackages = prev.luajitPackages.overrideScope (
|
luajitPackages = prev.luajitPackages.overrideScope (
|
||||||
_: lprev: {
|
_: lprev: {
|
||||||
@@ -83,8 +70,12 @@
|
|||||||
categoryDefinitions =
|
categoryDefinitions =
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
categories,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
themes = import ./themes.nix pkgs;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
lspsAndRuntimeDeps = with pkgs; {
|
lspsAndRuntimeDeps = with pkgs; {
|
||||||
general = [
|
general = [
|
||||||
@@ -92,7 +83,7 @@
|
|||||||
black
|
black
|
||||||
clang
|
clang
|
||||||
clang-tools
|
clang-tools
|
||||||
curl # → plenary-nvim, mcp-hub
|
curl # → plenary-nvim
|
||||||
delta
|
delta
|
||||||
emmet-language-server
|
emmet-language-server
|
||||||
eslint_d
|
eslint_d
|
||||||
@@ -103,7 +94,6 @@
|
|||||||
helm-ls
|
helm-ls
|
||||||
isort
|
isort
|
||||||
lua-language-server
|
lua-language-server
|
||||||
mcp-hub
|
|
||||||
nixd
|
nixd
|
||||||
nixfmt
|
nixfmt
|
||||||
prettier
|
prettier
|
||||||
@@ -126,7 +116,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
startupPlugins = {
|
startupPlugins = {
|
||||||
general = with pkgs.vimPlugins; [
|
general =
|
||||||
|
with pkgs.vimPlugins;
|
||||||
|
[
|
||||||
## plug
|
## plug
|
||||||
vim-plug
|
vim-plug
|
||||||
vim-sandwich
|
vim-sandwich
|
||||||
@@ -168,9 +160,8 @@
|
|||||||
plenary-nvim
|
plenary-nvim
|
||||||
nui-nvim
|
nui-nvim
|
||||||
trouble-nvim
|
trouble-nvim
|
||||||
pkgs.neovimPlugins.shipwright-nvim
|
|
||||||
lush-nvim
|
lush-nvim
|
||||||
zenbones-nvim
|
pkgs.neovimPlugins.shipwright-nvim
|
||||||
nvim-treesitter.withAllGrammars
|
nvim-treesitter.withAllGrammars
|
||||||
nvim-treesitter-textobjects
|
nvim-treesitter-textobjects
|
||||||
# nvim-treesitter-context
|
# nvim-treesitter-context
|
||||||
@@ -187,16 +178,15 @@
|
|||||||
pkgs.neovimPlugins.beancount-nvim
|
pkgs.neovimPlugins.beancount-nvim
|
||||||
pkgs.neovimPlugins.nvimkit-nvim
|
pkgs.neovimPlugins.nvimkit-nvim
|
||||||
codecompanion-nvim
|
codecompanion-nvim
|
||||||
pkgs.neovimPlugins.mcphub-nvim
|
helm-ls-nvim
|
||||||
copilot-lua
|
|
||||||
copilot-cmp
|
|
||||||
pkgs.neovimPlugins.helm-ls-nvim
|
|
||||||
kitty-scrollback-nvim
|
kitty-scrollback-nvim
|
||||||
fidget-nvim
|
fidget-nvim
|
||||||
rustaceanvim
|
rustaceanvim
|
||||||
# pkgs.neovimPlugins.m-taskwarrior-d-nvim
|
# pkgs.neovimPlugins.m-taskwarrior-d-nvim
|
||||||
claude-code-nvim
|
claudecode-nvim
|
||||||
];
|
snacks-nvim
|
||||||
|
]
|
||||||
|
++ themes.${categories.colorscheme or "zenwritten"};
|
||||||
};
|
};
|
||||||
|
|
||||||
optionalPlugins = {
|
optionalPlugins = {
|
||||||
@@ -221,6 +211,7 @@
|
|||||||
};
|
};
|
||||||
categories = {
|
categories = {
|
||||||
general = true;
|
general = true;
|
||||||
|
colorscheme = "zenwritten";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -230,7 +221,7 @@
|
|||||||
forEachSystem (
|
forEachSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
dependencyOverlays = mkDependencyOverlays system;
|
dependencyOverlays = mkDependencyOverlays;
|
||||||
nixCatsBuilder = utils.baseBuilder luaPath {
|
nixCatsBuilder = utils.baseBuilder luaPath {
|
||||||
inherit
|
inherit
|
||||||
nixpkgs
|
nixpkgs
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ vim.api.nvim_create_user_command("AnkiDeck", function()
|
|||||||
end, {})
|
end, {})
|
||||||
|
|
||||||
vim.cmd([[
|
vim.cmd([[
|
||||||
set cc=81
|
|
||||||
set cocu=""
|
set cocu=""
|
||||||
func! GetContext()
|
func! GetContext()
|
||||||
" https://stackoverflow.com/questions/9464844/how-to-get-group-name-of-highlighting-under-cursor-in-vim
|
" https://stackoverflow.com/questions/9464844/how-to-get-group-name-of-highlighting-under-cursor-in-vim
|
||||||
|
|||||||
@@ -16,5 +16,4 @@ require("diagnostic")
|
|||||||
require("utils")
|
require("utils")
|
||||||
require("zk")
|
require("zk")
|
||||||
require("reload")
|
require("reload")
|
||||||
|
require("theme")
|
||||||
vim.opt.background = "dark"
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ set("n", "s=", "<c-w>=", { desc = "equalize splits" })
|
|||||||
set("n", "sb", ":Lex<cr>", { desc = "file tree" })
|
set("n", "sb", ":Lex<cr>", { desc = "file tree" })
|
||||||
set("n", "<leader><leader>", ":noh<cr>", { desc = "clear highlights" })
|
set("n", "<leader><leader>", ":noh<cr>", { desc = "clear highlights" })
|
||||||
set("n", "<leader>t", ":term<cr>", { desc = "open terminal" })
|
set("n", "<leader>t", ":term<cr>", { desc = "open terminal" })
|
||||||
|
set("n", "<leader>w", "<cmd>w<cr>", { desc = ":w" })
|
||||||
|
|
||||||
-- remaps
|
-- remaps
|
||||||
set("i", "jj", "<esc>", { nowait = true, desc = "exit insert mode" })
|
set("i", "jj", "<esc>", { nowait = true, desc = "exit insert mode" })
|
||||||
@@ -34,9 +35,6 @@ set("i", "<down>", "<nop>")
|
|||||||
set("i", "<up>", "<nop>")
|
set("i", "<up>", "<nop>")
|
||||||
set("i", "<right>", "<nop>")
|
set("i", "<right>", "<nop>")
|
||||||
|
|
||||||
-- search
|
|
||||||
set("n", "<c-_>", ":noh<cr>", { desc = "clear search highlight" })
|
|
||||||
|
|
||||||
-- line numbers
|
-- line numbers
|
||||||
set("n", "<leader>n", ":set nu! rnu!<cr>", { desc = "toggle line numbers" })
|
set("n", "<leader>n", ":set nu! rnu!<cr>", { desc = "toggle line numbers" })
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
vim.opt.background = "dark"
|
||||||
|
|
||||||
|
if vim.g.vscode then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.g.zenwritten_compat = 1
|
||||||
|
vim.cmd.colorscheme(require("nixCatsUtils").getCatOrDefault("colorscheme", "zenwritten"))
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
pkgs: {
|
||||||
|
vscode = [ pkgs.vimPlugins.vscode-nvim ];
|
||||||
|
zenwritten = [ pkgs.vimPlugins.zenbones-nvim ];
|
||||||
|
}
|
||||||
Generated
+37
-130
@@ -101,11 +101,11 @@
|
|||||||
"stable": "stable"
|
"stable": "stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785930890,
|
"lastModified": 1786742289,
|
||||||
"narHash": "sha256-QN4Oy1B4Vma9DiMyXiyssrpgMuIPgkNyO8jb6k2H4oY=",
|
"narHash": "sha256-r61K9svFDQkI5jONYksneDtDT5c4SkWrZVD3ni5O6Ak=",
|
||||||
"owner": "zhaofengli",
|
"owner": "zhaofengli",
|
||||||
"repo": "colmena",
|
"repo": "colmena",
|
||||||
"rev": "a156fd9146e69a577fe6f5542a7c6ed83a6888ce",
|
"rev": "dc22786a43315b212eeafe13409a7203328e5a30",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -123,11 +123,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1786220854,
|
"lastModified": 1788879443,
|
||||||
"narHash": "sha256-/b79w+zO/+sJ1ADXUfkemP+0kBV+HPxmZVY7xlPI2ag=",
|
"narHash": "sha256-qb9sL86UCUEd3SYAda4ItN1NV0vhMSdbpA64WckvVI0=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "4dcc87bbf8b3e63ecbe2bf3bb77d729ced7d91d8",
|
"rev": "414ac5f35d79aabe5a0bf52451d8cf61eadf6c88",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -165,11 +165,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1786177081,
|
"lastModified": 1788926592,
|
||||||
"narHash": "sha256-k8oMgW50OIXcGEz6Unic8sV3c+GTvinL3UUZL1TRayM=",
|
"narHash": "sha256-cHzKQBhQVLPfMCtK+E0EMeQpwW2/XA9l+8H6xXsT+70=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "e56e2b53b293be127a1360c7d30c713eaaadce08",
|
"rev": "9d230a63e1419b6efd95728f01a6a72e1986a03f",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -265,28 +265,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_2": {
|
"flake-parts_2": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"nvim",
|
|
||||||
"mcp-hub",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1743550720,
|
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_3": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"stylix",
|
"stylix",
|
||||||
@@ -367,11 +345,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784288435,
|
"lastModified": 1788267358,
|
||||||
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
|
"narHash": "sha256-nt+lUqYVpc9Y6JeMd2WmXzCDojasdadKo0mWcluvY2Y=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
|
"rev": "27555e2624241fb116b49095df4caaee85a25691",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -418,19 +396,18 @@
|
|||||||
"hecuba-services": {
|
"hecuba-services": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787190763,
|
"lastModified": 1788557536,
|
||||||
"narHash": "sha256-hZCD0M5mt6gP5z21dYOslx9d7aoF5XTCgB0axt8O+SA=",
|
"narHash": "sha256-oG0PyMqzA11EGfqY86iU73DjYq5HHoK89kQW0xaPHf4=",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"rev": "838434daa9844608863c93627aa466a0109237b5",
|
"rev": "29002359b7a863b12bed5a83a1cafc53c660a14a",
|
||||||
"shallow": true,
|
"revCount": 218,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://git@github.com/hektor/hecuba-services"
|
"url": "ssh://git@github.com/hektor/hecuba-services"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
|
||||||
"url": "ssh://git@github.com/hektor/hecuba-services",
|
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"shallow": true
|
"type": "git",
|
||||||
|
"url": "ssh://git@github.com/hektor/hecuba-services"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
@@ -440,11 +417,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1786031233,
|
"lastModified": 1788921139,
|
||||||
"narHash": "sha256-TIDlLTLI1/pB7IqgjzcKQjpODQsZE2oII4XGG9B6KjI=",
|
"narHash": "sha256-2wRuvf9UDw1SYWtBcxNmxLeAtNU1i/hc1c0AKQHdvlM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7834e82588860aaf780cec1366524456a70898d7",
|
"rev": "a2dbe7c2c9333e8234ae8114c7f731784201d108",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -453,25 +430,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mcp-hub": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_2",
|
|
||||||
"nixpkgs": "nixpkgs_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1755841689,
|
|
||||||
"narHash": "sha256-KakvXZf0vjdqzyT+LsAKHEr4GLICGXPmxl1hZ3tI7Yg=",
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcp-hub",
|
|
||||||
"rev": "9c7670a4c341ed3cf738a6242c0fde1cea40bccf",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcp-hub",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-github-actions": {
|
"nix-github-actions": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -496,10 +454,10 @@
|
|||||||
"nix-secrets": {
|
"nix-secrets": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785190089,
|
"lastModified": 1788786361,
|
||||||
"narHash": "sha256-nhzJq5kkcU9X5QXhErn1pHqqN5TPxUVV0teOd+yMzN4=",
|
"narHash": "sha256-u6qgw8xKHLdlC02HZnC89WzigADbXoO4mGsllMMj5FM=",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"rev": "3375f7a8ccb4dc3c5ea3c488597c659665973e4d",
|
"rev": "b560101cef698142dd15cacc222c2c6135b8ab04",
|
||||||
"shallow": true,
|
"shallow": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://git@github.com/hektor/nix-secrets"
|
"url": "ssh://git@github.com/hektor/nix-secrets"
|
||||||
@@ -552,11 +510,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785232496,
|
"lastModified": 1788942796,
|
||||||
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
|
"narHash": "sha256-CLoJCCRi9sogsyGXYn8rOCWBLKAntfKUB9Rli/YXgEY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
|
"rev": "83bbc895120516d6e86885a188c04beced6535d9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -581,11 +539,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785967620,
|
"lastModified": 1788881743,
|
||||||
"narHash": "sha256-IItrdb7Puk05RqOBWZYFC5X6Wl1sJmCfh5MWVHw5iMM=",
|
"narHash": "sha256-2V9GZGvPfrNzxFozhI9dcqV+c3QdA8YZrvAAzqEB+dI=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b7c2ada94fe99c15b0dbcf4d11fd7850b957a436",
|
"rev": "d6524aaca2ff07876657ae2b323f24be4874944b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -595,22 +553,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1743689281,
|
|
||||||
"narHash": "sha256-y7Hg5lwWhEOgflEHRfzSH96BOt26LaYfrYWzZ+VoVdg=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "2bfc080955153be0be56724be6fa5477b4eefabb",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
@@ -638,14 +580,11 @@
|
|||||||
},
|
},
|
||||||
"nvim": {
|
"nvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"mcp-hub": "mcp-hub",
|
|
||||||
"nixCats": "nixCats",
|
"nixCats": "nixCats",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"plugins-beancount-nvim": "plugins-beancount-nvim",
|
"plugins-beancount-nvim": "plugins-beancount-nvim",
|
||||||
"plugins-helm-ls-nvim": "plugins-helm-ls-nvim",
|
|
||||||
"plugins-mcphub-nvim": "plugins-mcphub-nvim",
|
|
||||||
"plugins-nvimkit-nvim": "plugins-nvimkit-nvim",
|
"plugins-nvimkit-nvim": "plugins-nvimkit-nvim",
|
||||||
"plugins-shipwright-nvim": "plugins-shipwright-nvim",
|
"plugins-shipwright-nvim": "plugins-shipwright-nvim",
|
||||||
"plugins-tailwind-fold-nvim": "plugins-tailwind-fold-nvim"
|
"plugins-tailwind-fold-nvim": "plugins-tailwind-fold-nvim"
|
||||||
@@ -676,38 +615,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"plugins-helm-ls-nvim": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773934114,
|
|
||||||
"narHash": "sha256-8trqFsA7nTKSdtkiAL0Sa9bXjh5ONtAqN7XNE/B8ukM=",
|
|
||||||
"owner": "qvalentin",
|
|
||||||
"repo": "helm-ls.nvim",
|
|
||||||
"rev": "20df43509b02a3ce3c6b3eee254d6e2bffa9a370",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "qvalentin",
|
|
||||||
"repo": "helm-ls.nvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"plugins-mcphub-nvim": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1768730387,
|
|
||||||
"narHash": "sha256-g9tPvjThz6EUk7zcY7lL+YH4lrT4x3FJ6jrNMHA8PAE=",
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcphub.nvim",
|
|
||||||
"rev": "7cd5db330f41b7bae02b2d6202218a061c3ebc1f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ravitemer",
|
|
||||||
"repo": "mcphub.nvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"plugins-nvimkit-nvim": {
|
"plugins-nvimkit-nvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -782,11 +689,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783174389,
|
"lastModified": 1788914643,
|
||||||
"narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=",
|
"narHash": "sha256-4GuMPW90JSxXWDPUB9M+1m7fYbe3H0apOd86/zBQ2Kw=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9",
|
"rev": "13616fff713a9f94055c66f15687ebdc17a335df",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -818,7 +725,7 @@
|
|||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_2",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
@@ -831,11 +738,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1786216702,
|
"lastModified": 1787771653,
|
||||||
"narHash": "sha256-fOOmw9tUYeqWVnK2w2NiuMTmGIbluj8xiBFTTFDCcEE=",
|
"narHash": "sha256-DkkJSBOXWV/mja5Vy8az5g1KpZlsbUwlmH0BsQhowaQ=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "b67debfd2db1eb1f0fd8740b950f598bbaf74b8f",
|
"rev": "5e3809851f486e7fc7e84b40f174c74b60ecc784",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
hecuba-services = {
|
hecuba-services = {
|
||||||
url = "git+ssh://git@github.com/hektor/hecuba-services?shallow=1&ref=main";
|
url = "git+ssh://git@github.com/hektor/hecuba-services?ref=main";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
git-hooks = {
|
git-hooks = {
|
||||||
|
|||||||
@@ -27,33 +27,36 @@
|
|||||||
claude-code.enable = true;
|
claude-code.enable = true;
|
||||||
opencode.enable = true;
|
opencode.enable = true;
|
||||||
};
|
};
|
||||||
desktop.niri.enable = true;
|
anki.enable = true;
|
||||||
browser.enable = true;
|
audio.enable = true;
|
||||||
browser.primary = "librewolf";
|
browser.primary = "librewolf";
|
||||||
cloud.hetzner.enable = true;
|
cloud = {
|
||||||
|
hetzner.enable = true;
|
||||||
|
vercel.enable = true;
|
||||||
|
};
|
||||||
comms.signal.enable = true;
|
comms.signal.enable = true;
|
||||||
|
deploy.enable = true;
|
||||||
|
desktop.niri.enable = true;
|
||||||
|
devenv.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
|
gaming.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
git.github.enable = true;
|
git.github.enable = true;
|
||||||
|
k8s.k9s.enable = true;
|
||||||
|
keepassxc.enable = true;
|
||||||
|
music.enable = true;
|
||||||
|
nvim.enable = true;
|
||||||
|
pandoc.enable = true;
|
||||||
|
photography.enable = true;
|
||||||
|
secrets.enable = true;
|
||||||
shell = {
|
shell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
bash.aliases.lang-js = true;
|
bash.aliases.lang-js = true;
|
||||||
bash.addBinToPath = true;
|
bash.addBinToPath = true;
|
||||||
};
|
};
|
||||||
anki.enable = true;
|
|
||||||
k8s.k9s.enable = true;
|
|
||||||
secrets.enable = true;
|
|
||||||
taskwarrior.enable = true;
|
|
||||||
audio.enable = true;
|
|
||||||
ssh.enable = true;
|
ssh.enable = true;
|
||||||
deploy.enable = true;
|
taskwarrior.enable = true;
|
||||||
music.enable = true;
|
|
||||||
terminal.enable = true;
|
terminal.enable = true;
|
||||||
devenv.enable = true;
|
|
||||||
keepassxc.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
nvim.enable = true;
|
|
||||||
pandoc.enable = true;
|
|
||||||
photography.enable = true;
|
|
||||||
torrenting.enable = true;
|
torrenting.enable = true;
|
||||||
my.yubikey.enable = true;
|
my.yubikey.enable = true;
|
||||||
zk.enable = true;
|
zk.enable = true;
|
||||||
|
|||||||
@@ -70,7 +70,10 @@
|
|||||||
music.enable = true;
|
music.enable = true;
|
||||||
my.dconf.enable = true;
|
my.dconf.enable = true;
|
||||||
my.stylix.enable = true;
|
my.stylix.enable = true;
|
||||||
nvim.enable = true;
|
nvim = {
|
||||||
|
enable = true;
|
||||||
|
colorscheme = "vscode";
|
||||||
|
};
|
||||||
pandoc.enable = true;
|
pandoc.enable = true;
|
||||||
shell.enable = true;
|
shell.enable = true;
|
||||||
taskwarrior.enable = true;
|
taskwarrior.enable = true;
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ in
|
|||||||
keyFile = "${sops.secrets."anki/sync-key".path}";
|
keyFile = "${sops.secrets."anki/sync-key".path}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# allow Anki to write prefs
|
||||||
|
home.file."${config.xdg.dataHome}/Anki2/prefs21.db".enable = lib.mkForce false;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,14 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
myUtils,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
let
|
let
|
||||||
dirs = lib.attrNames (lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./.));
|
dirs = myUtils.dirNames ./.;
|
||||||
hasDef = name: builtins.pathExists ./${name}/default.nix;
|
hasDef = name: builtins.pathExists ./${name}/default.nix;
|
||||||
in
|
in
|
||||||
map (name: ./${name}) (builtins.filter hasDef dirs);
|
map (name: ./${name}) (builtins.filter hasDef dirs);
|
||||||
|
|||||||
@@ -6,15 +6,6 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../../clipboard
|
|
||||||
../../fuzzel
|
|
||||||
../../mako
|
|
||||||
../../shikane
|
|
||||||
../../swayidle
|
|
||||||
../../waybar
|
|
||||||
];
|
|
||||||
|
|
||||||
options.desktop.niri.enable = lib.mkEnableOption "niri desktop";
|
options.desktop.niri.enable = lib.mkEnableOption "niri desktop";
|
||||||
|
|
||||||
config = lib.mkIf config.desktop.niri.enable {
|
config = lib.mkIf config.desktop.niri.enable {
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.gaming.enable = lib.mkEnableOption "gaming";
|
||||||
|
|
||||||
|
config = lib.mkIf config.gaming.enable {
|
||||||
|
xdg.configFile."lutris/system.yml".text = lib.generators.toJSON { } {
|
||||||
|
system.game_path = "${config.home.homeDirectory}/games";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,18 +5,18 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.go;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.go = {
|
options.go = {
|
||||||
enable = lib.mkEnableOption "Go";
|
enable = lib.mkEnableOption "Go";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf config.go.enable {
|
||||||
home.packages = with pkgs; [
|
home = {
|
||||||
|
sessionVariables.GOPATH = "${config.xdg.dataHome}/go";
|
||||||
|
packages = with pkgs; [
|
||||||
go
|
go
|
||||||
gopls
|
gopls
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ in
|
|||||||
kubectl
|
kubectl
|
||||||
kubernetes
|
kubernetes
|
||||||
kustomize
|
kustomize
|
||||||
minikube
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.kubecolor = {
|
programs.kubecolor = {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ let
|
|||||||
cfg = config.k8s.k9s;
|
cfg = config.k8s.k9s;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.k8s.k9s.enable = lib.mkEnableOption "";
|
options.k8s.k9s.enable = lib.mkEnableOption "k9s";
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.k9s = {
|
programs.k9s = {
|
||||||
|
|||||||
@@ -1,20 +1,46 @@
|
|||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.nvim;
|
themes = import "${inputs.nvim}/themes.nix" pkgs;
|
||||||
|
plugins = themes.${config.nvim.colorscheme};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.nvim.enable = lib.mkEnableOption "nvim";
|
imports = [ inputs.nvim.homeModules.default ];
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
options.nvim.colorscheme = lib.mkOption {
|
||||||
home.packages = [
|
type = lib.types.enum (lib.attrNames themes);
|
||||||
inputs.nvim.packages.${pkgs.stdenv.hostPlatform.system}.nvim
|
default = "zenwritten";
|
||||||
];
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.nvim.enable {
|
||||||
|
nvim.packageDefinitions.merge.nvim = _: {
|
||||||
|
categories.colorscheme = config.nvim.colorscheme;
|
||||||
|
};
|
||||||
|
|
||||||
|
home = {
|
||||||
|
sessionVariables = {
|
||||||
|
EDITOR = "nvim";
|
||||||
|
SUDO_EDITOR = "nvim";
|
||||||
|
SYSTEMD_EDITOR = "nvim";
|
||||||
|
|
||||||
|
PAGER = "nvimpager";
|
||||||
|
MANWIDTH = "80";
|
||||||
|
};
|
||||||
|
packages = with pkgs; [ nvimpager ];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."nvimpager/init.lua".text = ''
|
||||||
|
vim.opt.clipboard = "unnamedplus"
|
||||||
|
vim.opt.background = "dark"
|
||||||
|
vim.g.zenwritten_compat = 1
|
||||||
|
${lib.concatMapStringsSep "\n" (plugin: ''vim.opt.runtimepath:append("${plugin}")'') plugins}
|
||||||
|
vim.cmd.colorscheme("${config.nvim.colorscheme}")
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.shell.bash;
|
cfg = config.shell.bash;
|
||||||
inherit (config.home) username;
|
inherit (config.home) homeDirectory;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.shell.bash = {
|
options.shell.bash = {
|
||||||
@@ -37,15 +37,29 @@ in
|
|||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
|
|
||||||
|
historySize = 999999;
|
||||||
|
historyFileSize = -1; # unlimited
|
||||||
|
historyControl = [
|
||||||
|
"ignoreboth"
|
||||||
|
"erasedups"
|
||||||
|
];
|
||||||
|
# omit commands from history (e.g. those prepended with space)
|
||||||
|
historyIgnore = [
|
||||||
|
" *"
|
||||||
|
"clear"
|
||||||
|
"l"
|
||||||
|
"ls"
|
||||||
|
"cd"
|
||||||
|
];
|
||||||
|
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
for f in /home/${username}/.bashrc.d/*; do
|
for f in ${homeDirectory}/.bashrc.d/*; do
|
||||||
[ -f "$f" ] && source "$f"
|
[ -f "$f" ] && source "$f"
|
||||||
done
|
done
|
||||||
|
|
||||||
${lib.optionalString cfg.aliases.all "source /home/${username}/.bash_aliases/all"}
|
${lib.optionalString cfg.aliases.all "source ${homeDirectory}/.bash_aliases/all"}
|
||||||
${lib.optionalString cfg.aliases.lang-js "source /home/${username}/.bash_aliases/lang-js"}
|
${lib.optionalString cfg.aliases.lang-js "source ${homeDirectory}/.bash_aliases/lang-js"}
|
||||||
|
|
||||||
${lib.optionalString cfg.addBinToPath "export PATH=${dotsPath}/.bin:$PATH"}
|
|
||||||
|
|
||||||
${cfg.extraInit}
|
${cfg.extraInit}
|
||||||
'';
|
'';
|
||||||
@@ -54,7 +68,6 @@ in
|
|||||||
home.file = {
|
home.file = {
|
||||||
".inputrc".source = dotsPath + "/.inputrc";
|
".inputrc".source = dotsPath + "/.inputrc";
|
||||||
".bashrc.d/prompt".source = dotsPath + "/.bashrc.d/prompt";
|
".bashrc.d/prompt".source = dotsPath + "/.bashrc.d/prompt";
|
||||||
".bashrc.d/editor".source = dotsPath + "/.bashrc.d/editor";
|
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs cfg.aliases.all {
|
// lib.optionalAttrs cfg.aliases.all {
|
||||||
".bash_aliases/all".source = dotsPath + "/.bash_aliases/all";
|
".bash_aliases/all".source = dotsPath + "/.bash_aliases/all";
|
||||||
@@ -62,5 +75,6 @@ in
|
|||||||
// lib.optionalAttrs cfg.aliases.lang-js {
|
// lib.optionalAttrs cfg.aliases.lang-js {
|
||||||
".bash_aliases/lang-js".source = dotsPath + "/.bash_aliases/lang-js";
|
".bash_aliases/lang-js".source = dotsPath + "/.bash_aliases/lang-js";
|
||||||
};
|
};
|
||||||
|
home.sessionPath = lib.optional cfg.addBinToPath "${dotsPath}/.bin";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
./bash.nix
|
./bash.nix
|
||||||
./utils.nix
|
./utils.nix
|
||||||
./prompt.nix
|
./prompt.nix
|
||||||
../tmux
|
|
||||||
];
|
];
|
||||||
|
|
||||||
options.shell.enable = lib.mkEnableOption "shell";
|
options.shell.enable = lib.mkEnableOption "shell";
|
||||||
|
|||||||
@@ -10,6 +10,15 @@
|
|||||||
programs.fzf = {
|
programs.fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = lib.mkDefault true;
|
enableBashIntegration = lib.mkDefault true;
|
||||||
|
defaultCommand = "rg --files";
|
||||||
|
defaultOptions = [
|
||||||
|
"--pointer='❭'"
|
||||||
|
"--height 10%"
|
||||||
|
];
|
||||||
|
fileWidget = {
|
||||||
|
command = "rg --files";
|
||||||
|
options = [ "--preview 'bat {} | head -500'" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|||||||
@@ -20,13 +20,8 @@ in
|
|||||||
base16Scheme
|
base16Scheme
|
||||||
override
|
override
|
||||||
image
|
image
|
||||||
|
fonts
|
||||||
;
|
;
|
||||||
fonts = {
|
|
||||||
monospace = theme.monospaceFont;
|
|
||||||
serif = config.stylix.fonts.monospace;
|
|
||||||
sansSerif = config.stylix.fonts.monospace;
|
|
||||||
emoji = config.stylix.fonts.monospace;
|
|
||||||
};
|
|
||||||
targets = import ../../../modules/stylix/targets.nix;
|
targets = import ../../../modules/stylix/targets.nix;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,5 +24,6 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
home.file.".config/kitty/nvim.conf".source = dotsPath + "/.config/kitty/nvim.conf";
|
home.file.".config/kitty/nvim.conf".source = dotsPath + "/.config/kitty/nvim.conf";
|
||||||
|
home.file.".local/share/kitty-scrollback.nvim".source = pkgs.vimPlugins.kitty-scrollback-nvim;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ in
|
|||||||
enable = lib.mkEnableOption "zettelkasten";
|
enable = lib.mkEnableOption "zettelkasten";
|
||||||
path = lib.mkOption {
|
path = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = config.home.homeDirectory + "/.zk";
|
default = "${config.home.homeDirectory}/.zk";
|
||||||
description = "Path to the zettelkasten directory";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -24,21 +23,13 @@ in
|
|||||||
packages = [
|
packages = [
|
||||||
(pkgs.writeShellApplication {
|
(pkgs.writeShellApplication {
|
||||||
name = "zk";
|
name = "zk";
|
||||||
runtimeInputs = with pkgs; [ tmux ];
|
runtimeInputs = with pkgs; [
|
||||||
|
tmux
|
||||||
|
gh
|
||||||
|
];
|
||||||
|
runtimeEnv.ZK_PATH = cfg.path;
|
||||||
text = builtins.readFile ./scripts/zk.sh;
|
text = builtins.readFile ./scripts/zk.sh;
|
||||||
})
|
})
|
||||||
|
|
||||||
(pkgs.writeShellApplication {
|
|
||||||
name = "save-zk";
|
|
||||||
runtimeInputs = with pkgs; [ git ];
|
|
||||||
text = builtins.readFile ./scripts/save-zk.sh;
|
|
||||||
})
|
|
||||||
|
|
||||||
(pkgs.writeShellApplication {
|
|
||||||
name = "setup-zk";
|
|
||||||
runtimeInputs = with pkgs; [ gh ];
|
|
||||||
text = builtins.readFile ./scripts/setup-zk.sh;
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
cd "$ZK_PATH" || { echo "No zettelkasten directory found"; exit 1; }
|
|
||||||
git add . && git commit -m "Update" && git push
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
if [ ! -d "$ZK_PATH" ]; then
|
|
||||||
echo "[zk] Setting up zettelkasten"
|
|
||||||
gh repo clone zk "$ZK_PATH"
|
|
||||||
else
|
|
||||||
echo "[zk] Zettelkasten already set up."
|
|
||||||
fi
|
|
||||||
|
|
||||||
read -p "Would you like open your zettelkasten? [y/N] " -n 1 -r
|
|
||||||
echo
|
|
||||||
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
$EDITOR "$ZK_PATH"
|
|
||||||
fi
|
|
||||||
@@ -1,7 +1,16 @@
|
|||||||
current_zettel_path="$(cat "$ZK_PATH/current-zettel.txt")"
|
if [ ! -d "$ZK_PATH" ]; then
|
||||||
|
echo "[zk] Setting up zettelkasten"
|
||||||
|
gh repo clone zk "$ZK_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$ZK_PATH/current-zettel.txt" ]; then
|
||||||
|
target="$(cat "$ZK_PATH/current-zettel.txt")"
|
||||||
|
else
|
||||||
|
target="."
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "${TMUX:-}" ]; then
|
if [ -n "${TMUX:-}" ]; then
|
||||||
cd "$ZK_PATH" && $EDITOR "$current_zettel_path"
|
cd "$ZK_PATH" && $EDITOR "$target"
|
||||||
else
|
else
|
||||||
echo 'Not in tmux'
|
echo 'Not in tmux'
|
||||||
echo 'Choose an option:'
|
echo 'Choose an option:'
|
||||||
@@ -14,12 +23,12 @@ else
|
|||||||
tmux attach -t zk
|
tmux attach -t zk
|
||||||
else
|
else
|
||||||
tmux new-session -s zk -n zk -d
|
tmux new-session -s zk -n zk -d
|
||||||
tmux send-keys -t zk:zk "cd $ZK_PATH && $EDITOR $current_zettel_path" Enter
|
tmux send-keys -t zk:zk "cd ${ZK_PATH} && $EDITOR ${target}" Enter
|
||||||
tmux attach -t zk
|
tmux attach -t zk
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
cd "$ZK_PATH" && $EDITOR "$current_zettel_path"
|
cd "$ZK_PATH" && $EDITOR "$target"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo 'Not opening Zettelkasten'
|
echo 'Not opening Zettelkasten'
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ in
|
|||||||
inherit (meta) host;
|
inherit (meta) host;
|
||||||
|
|
||||||
hardware.facter.reportPath = ./facter.json;
|
hardware.facter.reportPath = ./facter.json;
|
||||||
home-manager.users.${config.host.username} = import ../../home/hosts/${config.host.name};
|
|
||||||
|
|
||||||
"ai-tools".enable = true;
|
"ai-tools".enable = true;
|
||||||
anki.enable = true;
|
anki.enable = true;
|
||||||
@@ -34,10 +33,6 @@ in
|
|||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
bootloader.enable = true;
|
bootloader.enable = true;
|
||||||
desktop.niri.enable = true;
|
desktop.niri.enable = true;
|
||||||
firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowedTCPPorts = [ 22 ];
|
|
||||||
};
|
|
||||||
gaming.enable = true;
|
gaming.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
keyboard.enable = true;
|
keyboard.enable = true;
|
||||||
@@ -60,7 +55,13 @@ in
|
|||||||
useDHCP = lib.mkDefault true;
|
useDHCP = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
nvidia.enable = true;
|
nvidia.enable = true;
|
||||||
restic-backup.enable = true;
|
restic-backup = {
|
||||||
|
enable = true;
|
||||||
|
paths = [
|
||||||
|
"/home"
|
||||||
|
"/data"
|
||||||
|
];
|
||||||
|
};
|
||||||
secrets = {
|
secrets = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nixSigningKey.enable = true;
|
nixSigningKey.enable = true;
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ in
|
|||||||
inherit (meta) host;
|
inherit (meta) host;
|
||||||
|
|
||||||
hardware.facter.reportPath = ./facter.json;
|
hardware.facter.reportPath = ./facter.json;
|
||||||
home-manager.users.${config.host.username} = import ../../home/hosts/${config.host.name};
|
|
||||||
|
|
||||||
"ai-tools".enable = true;
|
"ai-tools".enable = true;
|
||||||
anki.enable = true;
|
anki.enable = true;
|
||||||
@@ -68,11 +67,6 @@ in
|
|||||||
docker.enable = true;
|
docker.enable = true;
|
||||||
nfc.enable = true;
|
nfc.enable = true;
|
||||||
|
|
||||||
firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowedTCPPorts = [ 22 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.intel.updateMicrocode = true;
|
cpu.intel.updateMicrocode = true;
|
||||||
# https://wiki.nixos.org/wiki/Intel_Graphics
|
# https://wiki.nixos.org/wiki/Intel_Graphics
|
||||||
@@ -102,15 +96,18 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostId = "80eef97e";
|
hostId = "5f0bde3c";
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
useNetworkd = true;
|
useNetworkd = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.network.networks."40-wlan0" = {
|
systemd.network = {
|
||||||
|
networks."40-wlan0" = {
|
||||||
matchConfig.Name = "wlan0";
|
matchConfig.Name = "wlan0";
|
||||||
networkConfig.DHCP = "yes";
|
networkConfig.DHCP = "yes";
|
||||||
};
|
};
|
||||||
|
wait-online.anyInterface = true;
|
||||||
|
};
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
|
|
||||||
|
|||||||
@@ -59,16 +59,7 @@ in
|
|||||||
git
|
git
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings.trusted-users = [ "@wheel" ];
|
||||||
experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
trusted-users = [
|
|
||||||
"root"
|
|
||||||
"@wheel"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "26.05";
|
system.stateVersion = "26.05";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,16 +112,7 @@ in
|
|||||||
git
|
git
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings.trusted-users = [ "@wheel" ];
|
||||||
experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
trusted-users = [
|
|
||||||
"root"
|
|
||||||
"@wheel"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "26.05";
|
system.stateVersion = "26.05";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
tags = [ "lab" ];
|
tags = [ "lab" ];
|
||||||
deploy.autoRollback = true;
|
deploy.autoRollback = true;
|
||||||
host = {
|
host = {
|
||||||
username = "username";
|
username = "h";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@@ -17,7 +16,6 @@ in
|
|||||||
inherit (meta) host;
|
inherit (meta) host;
|
||||||
|
|
||||||
hardware.facter.reportPath = ./facter.json;
|
hardware.facter.reportPath = ./facter.json;
|
||||||
home-manager.users.${config.host.username} = import ../../home/hosts/vm;
|
|
||||||
|
|
||||||
"ai-tools".enable = true;
|
"ai-tools".enable = true;
|
||||||
anki.enable = true;
|
anki.enable = true;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
inherit (inputs.nixpkgs) lib;
|
inherit (inputs.nixpkgs) lib;
|
||||||
|
homeDir = ../../home/hosts + "/${config.host.name}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -83,6 +84,9 @@ in
|
|||||||
host.username = lib.mkDefault config.host.username;
|
host.username = lib.mkDefault config.host.username;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
users = lib.optionalAttrs (builtins.pathExists homeDir) {
|
||||||
|
${config.host.username} = import homeDir;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ in
|
|||||||
dbus.enable = true;
|
dbus.enable = true;
|
||||||
displayManager.ly = lib.mkIf cfg.ly.enable {
|
displayManager.ly = lib.mkIf cfg.ly.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings.session_log = ".local/state/ly-session.log";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
{ lib, config, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) mkEnableOption mkOption types;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.firewall = {
|
|
||||||
enable = mkEnableOption "firewall";
|
|
||||||
|
|
||||||
allowedTCPPorts = mkOption {
|
|
||||||
type = types.listOf types.port;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
allowedUDPPorts = mkOption {
|
|
||||||
type = types.listOf types.port;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.firewall.enable {
|
|
||||||
networking.firewall = {
|
|
||||||
enable = true;
|
|
||||||
inherit (config.firewall) allowedTCPPorts allowedUDPPorts;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -38,12 +38,6 @@ in
|
|||||||
mangohud
|
mangohud
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.users.${config.host.username} = {
|
|
||||||
xdg.configFile."lutris/system.yml".text = lib.generators.toJSON { } {
|
|
||||||
system.game_path = "/home/${config.host.username}/games";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.pam.loginLimits = [
|
security.pam.loginLimits = [
|
||||||
{
|
{
|
||||||
domain = config.host.username;
|
domain = config.host.username;
|
||||||
|
|||||||
@@ -2,12 +2,13 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
inherit (config.host) username;
|
inherit (config.host) username;
|
||||||
|
home = config.users.users.${username}.home;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.ssh.enable {
|
config = lib.mkIf config.ssh.enable {
|
||||||
system.activationScripts.extractSshKeys = lib.stringAfter [ "etc" ] ''
|
system.activationScripts.extractSshKeys = lib.stringAfter [ "etc" ] ''
|
||||||
HOST_KEY="/etc/ssh/ssh_host_ed25519_key.pub"
|
HOST_KEY="/etc/ssh/ssh_host_ed25519_key.pub"
|
||||||
HOST_DIR="/home/${username}/nix/hosts/${config.networking.hostName}"
|
HOST_DIR="${home}/nix/hosts/${config.networking.hostName}"
|
||||||
|
|
||||||
if [ -f "$HOST_KEY" ] && [ -d "$HOST_DIR" ]; then
|
if [ -f "$HOST_KEY" ] && [ -d "$HOST_DIR" ]; then
|
||||||
cp "$HOST_KEY" "$HOST_DIR/ssh_host.pub"
|
cp "$HOST_KEY" "$HOST_DIR/ssh_host.pub"
|
||||||
@@ -17,8 +18,8 @@ in
|
|||||||
|
|
||||||
USER_KEY=""
|
USER_KEY=""
|
||||||
for candidate in \
|
for candidate in \
|
||||||
"/home/${username}/.ssh/id_ed25519_sk.pub" \
|
"${home}/.ssh/id_ed25519_sk.pub" \
|
||||||
"/home/${username}/.ssh/id_ed25519.pub"; do
|
"${home}/.ssh/id_ed25519.pub"; do
|
||||||
if [ -f "$candidate" ]; then
|
if [ -f "$candidate" ]; then
|
||||||
USER_KEY="$candidate"
|
USER_KEY="$candidate"
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -5,6 +5,5 @@
|
|||||||
|
|
||||||
config = lib.mkIf config.storage.enable {
|
config = lib.mkIf config.storage.enable {
|
||||||
services.udisks2.enable = true;
|
services.udisks2.enable = true;
|
||||||
boot.zfs.forceImportRoot = false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,14 +23,8 @@ in
|
|||||||
base16Scheme
|
base16Scheme
|
||||||
override
|
override
|
||||||
image
|
image
|
||||||
|
fonts
|
||||||
;
|
;
|
||||||
fonts = {
|
|
||||||
monospace = theme.monospaceFont;
|
|
||||||
serif = config.stylix.fonts.monospace;
|
|
||||||
sansSerif = config.stylix.fonts.monospace;
|
|
||||||
emoji = config.stylix.fonts.monospace;
|
|
||||||
};
|
|
||||||
autoEnable = true;
|
|
||||||
targets.regreet.enable = false;
|
targets.regreet.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
{ pkgs }:
|
{ pkgs }:
|
||||||
|
|
||||||
|
let
|
||||||
|
monospaceFont = {
|
||||||
|
package = pkgs.iosevka-bin.override { variant = "SS08"; };
|
||||||
|
name = "Iosevka Term SS08";
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
base16Scheme = ./zenwritten-dark.yaml;
|
base16Scheme = ./zenwritten-dark.yaml;
|
||||||
@@ -9,8 +15,11 @@
|
|||||||
image = pkgs.runCommand "solid-bg.png" { nativeBuildInputs = [ pkgs.imagemagick ]; } ''
|
image = pkgs.runCommand "solid-bg.png" { nativeBuildInputs = [ pkgs.imagemagick ]; } ''
|
||||||
magick -size 1x1 xc:#191919 $out
|
magick -size 1x1 xc:#191919 $out
|
||||||
'';
|
'';
|
||||||
monospaceFont = {
|
inherit monospaceFont;
|
||||||
package = pkgs.iosevka-bin.override { variant = "SS08"; };
|
fonts = {
|
||||||
name = "Iosevka Term SS08";
|
monospace = monospaceFont;
|
||||||
|
serif = monospaceFont;
|
||||||
|
sansSerif = monospaceFont;
|
||||||
|
emoji = monospaceFont;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
let
|
let
|
||||||
cfg = config.syncthing;
|
cfg = config.syncthing;
|
||||||
inherit (config.host) username;
|
inherit (config.host) username;
|
||||||
|
home = config.users.users.${username}.home;
|
||||||
|
|
||||||
deviceRegistry = import ./devices.nix;
|
deviceRegistry = import ./devices.nix;
|
||||||
deviceName = lib.types.enum (builtins.attrNames deviceRegistry);
|
deviceName = lib.types.enum (builtins.attrNames deviceRegistry);
|
||||||
@@ -48,7 +49,7 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
user = username;
|
user = username;
|
||||||
group = username;
|
group = username;
|
||||||
configDir = "/home/${username}/.local/state/syncthing";
|
configDir = "${home}/.local/state/syncthing";
|
||||||
openDefaultPorts = true;
|
openDefaultPorts = true;
|
||||||
settings = {
|
settings = {
|
||||||
devices = lib.mapAttrs (_: id: { inherit id; }) (lib.getAttrs referencedDevices deviceRegistry);
|
devices = lib.mapAttrs (_: id: { inherit id; }) (lib.getAttrs referencedDevices deviceRegistry);
|
||||||
|
|||||||
@@ -28,6 +28,6 @@ in
|
|||||||
inherit (iface) macAddress;
|
inherit (iface) macAddress;
|
||||||
}) config.wol.interfaces;
|
}) config.wol.interfaces;
|
||||||
|
|
||||||
# firewall.allowedUDPPorts = [ 9 ];
|
# networking.firewall.allowedUDPPorts = [ 9 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user