Compare commits

...
59 Commits
Author SHA1 Message Date
hektor e2e43ea535 chore: update lockfile
check / lint (push) Successful in 49s
2026-09-09 18:07:25 +02:00
hektor a278a36b6b refactor(andromache): sort modules 2026-09-09 18:07:25 +02:00
hektor 0db179ecc4 chore(andromache): back up '/data' directory as well (second disk) 2026-09-09 18:07:01 +02:00
hektor 461e5107a7 chore(k8s): drop 'minikube' package 2026-09-09 18:07:01 +02:00
hektor 4091839450 fix: move 'ly-session.log' out of home directory 2026-09-09 18:07:01 +02:00
hecuba-services-bot 275008da6d chore(hecuba): update services lock to 2900235
check / lint (push) Failing after 3s
2026-09-04 21:33:33 +00:00
hecuba-services-bot 5039ab1498 chore(hecuba): update services lock to c7358d2
check / lint (push) Failing after 3s
2026-09-04 21:32:46 +00:00
hecuba-services-bot 00a556a4da chore(hecuba): update services lock to b0d24e0
check / lint (push) Failing after 3s
2026-08-30 01:02:28 +00:00
hecuba-services-bot 38c857fe64 chore(hecuba): update services lock to bf92e25
check / lint (push) Failing after 3s
2026-08-29 13:42:09 +00:00
hektor 91ee1950de chore(nvim): hide colorcolumn in ft=pandoc
check / lint (push) Failing after 3s
2026-08-27 22:53:15 +02:00
hektor 744e25eb4a chore(nvim): disable gitsigns line highlight 2026-08-27 22:53:15 +02:00
hektor 9888e4a196 feat(nvim): bind '<leader>w' to save file 2026-08-27 22:53:15 +02:00
hektor 65a659ca91 feat(nvim): migrate 'claude-code.nvim' to 'claudecode.nvim' 2026-08-27 22:53:15 +02:00
hektor 66c2c2ca7f chore: remove 'copilot' 2026-08-27 22:53:15 +02:00
hecuba-services-bot 0c895d41ed chore(hecuba): update services lock to 5d18649
check / lint (push) Failing after 4s
2026-08-27 08:32:04 +00:00
hecuba-services-bot 7abae540d6 chore(hecuba): update services lock to 149f7ec
check / lint (push) Failing after 3s
2026-08-27 03:30:00 +00:00
hecuba-services-bot 7c24103ec5 chore(hecuba): update services lock to 3bd19a9
check / lint (push) Failing after 4s
2026-08-25 22:41:36 +00:00
hektor 4004d9e361 feat(nvim): nixify theming (and add 'vscode' theme)
check / lint (push) Successful in 17s
2026-08-25 23:46:47 +02:00
hektor 5f8f8c4251 chore(kitty): remove paste confirm
check / lint (push) Successful in 16s
2026-08-25 21:46:05 +02:00
hektor 98a32ff28c chore(kitty): drop tabs (tmux conflict) 2026-08-25 21:46:01 +02:00
hektor e6ecc5271d fix(kitty): resolve scrollback plugin 2026-08-25 21:15:57 +02:00
hektor 34fd954950 chore(nvim): use nixpkgs 'helm-ls-nvim'
check / lint (push) Successful in 10s
2026-08-25 13:07:30 +02:00
hektor ffcdef8e54 chore(nvim): drop 'mcp-hub' 2026-08-25 13:07:27 +02:00
hektor 258f45400c chore: unshallow hecuba-services 2026-08-25 13:07:20 +02:00
hektor c5cb5e9895 chore(nvim): update lockfile 2026-08-25 13:07:12 +02:00
hektor 0ca1ef666d chore: update lockfiles 2026-08-25 13:06:58 +02:00
hektor 8b6d8bd092 refactor: clean up redundant settings
check / lint (push) Successful in 47s
2026-08-24 20:04:42 +02:00
hektor 7c283c61c4 refactor: extract home directory path into 'home' 2026-08-24 20:04:36 +02:00
hektor 385c26f3a0 fix(astyanax): resolve network error on rebuild 2026-08-24 19:36:19 +02:00
hektor 028a6611d2 refactor(zk): clean up and simplify zk module
check / lint (push) Successful in 15s
2026-08-23 13:56:53 +02:00
hektor 3c97d0a21f refactor(shell): nixify 'fzf' config
check / lint (push) Successful in 14s
2026-08-23 13:32:24 +02:00
hektor 349d697391 refactor(nvim): nixify 'nvimpager' config 2026-08-23 13:32:24 +02:00
hektor 86e780da0d refactor(shell): nixify bash history config 2026-08-23 13:32:24 +02:00
hektor 31e2bae402 refactor(shell): nixify adding '.bin' to 'PATH' 2026-08-23 13:32:24 +02:00
hektor 4f77043e3b refactor(nvim): nixify editor bash config 2026-08-23 13:32:24 +02:00
hektor db31984573 refactor(go): nixify 'GOPATH' environment variable 2026-08-23 13:32:24 +02:00
hektor 34205bf384 refactor(gaming): move home-managed config into home manager module
check / lint (push) Successful in 14s
2026-08-23 00:34:32 +02:00
hektor e2301c7682 refactor(home/modules): use module discovery 2026-08-23 00:29:58 +02:00
hektor 4b98ff5abe refactor(firewall): drop the firewall wrapper module 2026-08-23 00:24:33 +02:00
hektor 39a9dd9427 fix(anki): allow anki to write to 'prefs21.db' 2026-08-23 00:16:55 +02:00
hektor 9183b17731 refactor(common): simplify home-manager config
check / lint (push) Successful in 14s
2026-08-22 23:23:50 +02:00
hektor 97a2a5b52b fix(k9s): add 'mkEnableOption' description 2026-08-22 23:08:57 +02:00
hektor 4d0cc15291 fix(hecuba): use 'h' username 2026-08-22 23:07:58 +02:00
hektor a161febd36 fix(astyanax): update 'networking.hostId'
check / lint (push) Successful in 15s
2026-08-22 23:06:38 +02:00
hektor 8ef45d0422 refactor(stylix): move fonts config into 'stylix/theme'
check / lint (push) Successful in 16s
2026-08-22 22:38:33 +02:00
hektor fd670455d4 chore(zotero): move better BibTeX attachments to 'readings' directory
check / lint (push) Successful in 16s
2026-08-22 21:51:46 +02:00
hektor f3a500ef32 fix(syncthing): update andromache device ID 2026-08-22 21:51:46 +02:00
hektor 035b16d4a7 fix(nvim): allow unfree 'copilot-language-server' package 2026-08-22 21:51:46 +02:00
hektor 9294aa8a2f feat(astyanax): improve OOM handling 2026-08-22 21:51:46 +02:00
hektor 53505743c8 feat(desktop): add 'swayidle' module 2026-08-22 21:51:46 +02:00
hecuba-services-bot 699db10eeb chore(hecuba): update services lock to 838434d
check / lint (push) Successful in 16s
2026-08-20 01:53:27 +00:00
hecuba-services-bot 800a55607c chore(hecuba): update services lock to e66164d
check / lint (push) Successful in 45s
2026-08-17 09:07:14 +00:00
hecuba-services-bot 9e05148291 chore(hecuba): update services lock to 72b2be0
check / lint (push) Successful in 17s
2026-08-16 06:01:33 +00:00
hecuba-services-bot 6fcd77d431 chore(hecuba): update services lock to babe6ea
check / lint (push) Successful in 15s
2026-08-14 21:03:40 +00:00
hecuba-services-bot ad4c3c1867 chore(hecuba): update services lock to 3bcae28
check / lint (push) Successful in 18s
2026-08-14 06:16:07 +00:00
hecuba-services-bot 3c66151b55 chore(hecuba): update services lock to 906476b
check / lint (push) Successful in 46s
2026-08-14 01:57:46 +00:00
hektor b6bcfa59a4 fix(eetion-02): enable tailscale module on 'eetion-02' host
check / lint (push) Successful in 15s
2026-08-08 23:42:41 +02:00
hektor 7183933aa9 chore: update lockfile
check / lint (push) Successful in 46s
2026-08-08 22:45:12 +02:00
hektor 81b5249beb fix(calc): correct env shebang path 2026-08-08 22:44:30 +02:00
63 changed files with 418 additions and 675 deletions
+1 -38
View File
@@ -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() {
-7
View File
@@ -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"
+1 -1
View File
@@ -1,3 +1,3 @@
#!/usr/env/bin bash #!/usr/bin/env bash
ipython -i /home/h/.bin/calc.py ipython -i /home/h/.bin/calc.py
+1 -20
View File
@@ -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
+1 -1
View File
@@ -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")
+4 -95
View File
@@ -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 -25
View File
@@ -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;
};
}; };
@@ -63,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: {
@@ -82,8 +70,12 @@
categoryDefinitions = categoryDefinitions =
{ {
pkgs, pkgs,
categories,
... ...
}: }:
let
themes = import ./themes.nix pkgs;
in
{ {
lspsAndRuntimeDeps = with pkgs; { lspsAndRuntimeDeps = with pkgs; {
general = [ general = [
@@ -91,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
@@ -102,7 +94,6 @@
helm-ls helm-ls
isort isort
lua-language-server lua-language-server
mcp-hub
nixd nixd
nixfmt nixfmt
prettier prettier
@@ -125,7 +116,9 @@
}; };
startupPlugins = { startupPlugins = {
general = with pkgs.vimPlugins; [ general =
with pkgs.vimPlugins;
[
## plug ## plug
vim-plug vim-plug
vim-sandwich vim-sandwich
@@ -167,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
@@ -186,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 = {
@@ -220,6 +211,7 @@
}; };
categories = { categories = {
general = true; general = true;
colorscheme = "zenwritten";
}; };
}; };
}; };
@@ -229,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
+1 -2
View File
@@ -16,5 +16,4 @@ require("diagnostic")
require("utils") require("utils")
require("zk") require("zk")
require("reload") require("reload")
require("theme")
vim.opt.background = "dark"
+1 -3
View File
@@ -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" })
+8
View File
@@ -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"))
+4
View File
@@ -0,0 +1,4 @@
pkgs: {
vscode = [ pkgs.vimPlugins.vscode-nvim ];
zenwritten = [ pkgs.vimPlugins.zenbones-nvim ];
}
+1 -1
View File
@@ -14,7 +14,7 @@
"autoExportPathReplaceSpace": " ", "autoExportPathReplaceSpace": " ",
"automaticTags": true, "automaticTags": true,
"auxImport": false, "auxImport": false,
"baseAttachmentPath": "/home/h/doc/books", "baseAttachmentPath": "/home/h/doc/readings",
"biblatexExtendedDateFormat": true, "biblatexExtendedDateFormat": true,
"biblatexExtendedNameFormat": true, "biblatexExtendedNameFormat": true,
"biblatexExtractEprint": true, "biblatexExtractEprint": true,
Generated
+56 -148
View File
@@ -101,11 +101,11 @@
"stable": "stable" "stable": "stable"
}, },
"locked": { "locked": {
"lastModified": 1785582945, "lastModified": 1786742289,
"narHash": "sha256-PI+qji1xkJm3PV7l7/PKJDumFz0fbA4etXE614jRnls=", "narHash": "sha256-r61K9svFDQkI5jONYksneDtDT5c4SkWrZVD3ni5O6Ak=",
"owner": "zhaofengli", "owner": "zhaofengli",
"repo": "colmena", "repo": "colmena",
"rev": "84d419ad080477ed2f31fbf3866551393df647a7", "rev": "dc22786a43315b212eeafe13409a7203328e5a30",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -123,11 +123,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1785518313, "lastModified": 1788879443,
"narHash": "sha256-anlq3YQDCsNrkNlu3HTg4dEIpRugwnyAVUxoPcBmA/U=", "narHash": "sha256-qb9sL86UCUEd3SYAda4ItN1NV0vhMSdbpA64WckvVI0=",
"owner": "serokell", "owner": "serokell",
"repo": "deploy-rs", "repo": "deploy-rs",
"rev": "b974715a27b49fadbf3bf6d85e26bcb3109daa6d", "rev": "414ac5f35d79aabe5a0bf52451d8cf61eadf6c88",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -165,11 +165,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1785556943, "lastModified": 1788926592,
"narHash": "sha256-AJ6e8fKMUyuY8hiIn+pY7wzzp742rX+Wi/PWs1S/ON0=", "narHash": "sha256-cHzKQBhQVLPfMCtK+E0EMeQpwW2/XA9l+8H6xXsT+70=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "03db9a207f56509240132eaa777f26d0f79a660d", "rev": "9d230a63e1419b6efd95728f01a6a72e1986a03f",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -182,11 +182,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1782007937, "lastModified": 1783570805,
"narHash": "sha256-PbnJr+eB+9Czol3ReI83dUgEhcn0sDK6TSy6ODTQm88=", "narHash": "sha256-ptl5aRlCv9/uRSv2u8Hq8UFVFeZ6Q/bT049bpqNgc3w=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "981bd332015397fb1ca033fa982bd61635160c78", "rev": "5602ed62d638142c1ab31dccd01dfbfb28841225",
"type": "github" "type": "github"
}, },
"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": 1785934316, "lastModified": 1788557536,
"narHash": "sha256-RulHNWkXk5qZ71kLIrRxcX9RXvU/ONqmWYw0vMLbaBI=", "narHash": "sha256-oG0PyMqzA11EGfqY86iU73DjYq5HHoK89kQW0xaPHf4=",
"ref": "main", "ref": "main",
"rev": "f0bef68fa2ce9723cc13ea0da670cc2146a4409c", "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": 1785531816, "lastModified": 1788921139,
"narHash": "sha256-vkMnV0JIyw+g/NmcfoajlGaAO+9a0ezia+FZohQJrik=", "narHash": "sha256-2wRuvf9UDw1SYWtBcxNmxLeAtNU1i/hc1c0AKQHdvlM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "bf9ce9fec78f95f374e8dd3b503863a3ec128ebe", "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": 1785454630, "lastModified": 1788881743,
"narHash": "sha256-LQy14TZp77TwbQf40gg1V3jo8FwJG0jGDkAH+zRHqg8=", "narHash": "sha256-2V9GZGvPfrNzxFozhI9dcqV+c3QdA8YZrvAAzqEB+dI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1559d3daa3ecc813a650b79375ea61b6741b8746", "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": [
@@ -623,11 +565,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783439237, "lastModified": 1785549842,
"narHash": "sha256-WUr8JF2v3n4Y30E5dxv4sAgNJXpVDBoCQNoQ/V4+n4o=", "narHash": "sha256-DCwBZmGsySF7oKGTRgEv2HvpxVXkHT+38VhTM76k0B4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "b70bb66c7bcd162642f3a609bc16843c7059f503", "rev": "a9f987b57594e845e3e5cdd423b9a70846d70308",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -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": 1785518890, "lastModified": 1787771653,
"narHash": "sha256-BeXpCHTPZ+ZlRR12nYe/0JHjfp/fgJVY2YV2xAz8JHs=", "narHash": "sha256-DkkJSBOXWV/mja5Vy8az5g1KpZlsbUwlmH0BsQhowaQ=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "6316d1d03e7a12cae7cdb007f34d2eaebbfc802a", "rev": "5e3809851f486e7fc7e84b40f174c74b60ecc784",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -891,15 +798,16 @@
}, },
"systems_4": { "systems_4": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1774449309,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"ref": "future-26.11",
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
@@ -923,11 +831,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1781968807, "lastModified": 1785153830,
"narHash": "sha256-yYO3Vw2M0y3TAUqt+9+Mj0zwP3XDTF5/PXcPhhFQ1ZM=", "narHash": "sha256-fNdfCTeCXU3tZG3TMincd+u68qBHQgCr2Ljr/M1mWP0=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "2ccef2f4b22e3cab5a9292811f7133a07eeba4a7", "rev": "9bd28ed313560db3c5b605c63bc4e309e78e3fc8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -939,11 +847,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1782012462, "lastModified": 1785031658,
"narHash": "sha256-2iDiD8DQLwS1lGuD9TS8WlvNyDoTs6krWntJbtB2zGo=", "narHash": "sha256-mZp9O2LjzdMzlqQF3l3fjqsuPBzXy+1qTfBEUGjTlpk=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "8c4e750f738a742bd73377ee41d3dadedebedef4", "rev": "5d2c67f61ea7af36f16865ab6d541cdba41dc257",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -955,11 +863,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1782009766, "lastModified": 1785030526,
"narHash": "sha256-VUhBjpGvWqHI7rWeyMYb/u87YJSXHKfVV6S+IelWeO8=", "narHash": "sha256-klZf8UviewRkxuu74Bhbq6tqy7oxebQC7UVRWbbtQxU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "5e8350bcd354e3241ab681a265fa6ef060c40be1", "rev": "16f5a8adf4a6b1310d0a61ab172de963e8f76a02",
"type": "github" "type": "github"
}, },
"original": { "original": {
+1 -1
View File
@@ -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 = {
+19 -16
View File
@@ -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;
+4 -1
View File
@@ -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;
+3
View File
@@ -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 -1
View File
@@ -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);
+1 -8
View File
@@ -6,14 +6,6 @@
}: }:
{ {
imports = [
../../clipboard
../../fuzzel
../../mako
../../shikane
../../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 {
@@ -21,6 +13,7 @@
fuzzel.enable = lib.mkDefault true; fuzzel.enable = lib.mkDefault true;
mako.enable = lib.mkDefault true; mako.enable = lib.mkDefault true;
shikane.enable = lib.mkDefault true; shikane.enable = lib.mkDefault true;
swayidle.enable = lib.mkDefault true;
waybar.enable = lib.mkDefault true; waybar.enable = lib.mkDefault true;
home = { home = {
+15
View File
@@ -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 -5
View File
@@ -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
]; ];
}; };
};
} }
-1
View File
@@ -27,7 +27,6 @@ in
kubectl kubectl
kubernetes kubernetes
kustomize kustomize
minikube
]; ];
programs.kubecolor = { programs.kubecolor = {
+1 -1
View File
@@ -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 = {
+35 -9
View File
@@ -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}")
'';
}; };
} }
+21 -7
View File
@@ -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";
}; };
} }
-1
View File
@@ -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";
+9
View File
@@ -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; [
+1 -6
View File
@@ -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;
}; };
}; };
+31
View File
@@ -0,0 +1,31 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.swayidle;
in
{
options.swayidle = {
enable = lib.mkEnableOption "swayidle";
timeout = lib.mkOption {
type = lib.types.ints.positive;
default = 900;
};
};
config = lib.mkIf cfg.enable {
services.swayidle = {
enable = true;
timeouts = [
{
inherit (cfg) timeout;
command = "${lib.getExe' pkgs.systemd "systemctl"} suspend";
}
];
};
};
}
+1
View File
@@ -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;
}; };
} }
+6 -15
View File
@@ -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;
})
]; ];
}; };
}; };
-2
View File
@@ -1,2 +0,0 @@
cd "$ZK_PATH" || { echo "No zettelkasten directory found"; exit 1; }
git add . && git commit -m "Update" && git push
-13
View File
@@ -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
+13 -4
View File
@@ -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'
+7 -6
View File
@@ -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;
+8 -8
View File
@@ -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" ];
@@ -136,4 +133,7 @@ in
}; };
}; };
}; };
zramSwap.enable = true;
systemd.oomd.enableUserSlices = true;
} }
+2 -10
View File
@@ -15,6 +15,7 @@ in
inherit (meta) host; inherit (meta) host;
ssh.enable = true; ssh.enable = true;
tailscale.enable = true;
boot = { boot = {
kernelParams = [ kernelParams = [
@@ -58,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";
} }
+1 -10
View File
@@ -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";
} }
+1 -1
View File
@@ -4,6 +4,6 @@
tags = [ "lab" ]; tags = [ "lab" ];
deploy.autoRollback = true; deploy.autoRollback = true;
host = { host = {
username = "username"; username = "h";
}; };
} }
-2
View File
@@ -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;
+4
View File
@@ -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;
};
}; };
}; };
} }
+1 -5
View File
@@ -4,10 +4,6 @@
options.desktop.logind.enable = lib.mkEnableOption "logind desktop settings"; options.desktop.logind.enable = lib.mkEnableOption "logind desktop settings";
config = lib.mkIf config.desktop.logind.enable { config = lib.mkIf config.desktop.logind.enable {
services.logind.settings.Login = { services.logind.settings.Login.HandleLidSwitch = "suspend";
HandleLidSwitch = "suspend";
IdleAction = "suspend";
IdleActionSec = 1800;
};
}; };
} }
+1
View File
@@ -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";
}; };
}; };
}; };
-27
View File
@@ -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;
};
};
}
-6
View File
@@ -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;
+4 -3
View File
@@ -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
-1
View File
@@ -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;
}; };
} }
+1 -7
View File
@@ -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;
}; };
+12 -3
View File
@@ -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;
}; };
} }
+2 -1
View File
@@ -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);
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
boox = "7B5E6PT-HWRQ3WH-OLOSWAZ-T3WNHND-VKUREIJ-AD5I4EA-UJR4M5E-OR5COA7"; boox = "7B5E6PT-HWRQ3WH-OLOSWAZ-T3WNHND-VKUREIJ-AD5I4EA-UJR4M5E-OR5COA7";
andromache = "QNVYMOC-GAPIIF7-PKYBN22-PPNAWOF-UJWNUFD-6DXRAJA-AZSMPOS-ULMZWAU"; andromache = "TO6HMF6-AFFEIU2-GYMFJQ2-VD7WTOX-LG2SG77-WSF2I6V-O36FRUR-EE7UHA3";
astyanax = "CSSFKEO-2T5PAO5-HX43E4E-UKARH4I-6FVHP36-6YC5WXX-VNMHXD3-WY3QKA7"; astyanax = "CSSFKEO-2T5PAO5-HX43E4E-UKARH4I-6FVHP36-6YC5WXX-VNMHXD3-WY3QKA7";
} }
+1 -1
View File
@@ -28,6 +28,6 @@ in
inherit (iface) macAddress; inherit (iface) macAddress;
}) config.wol.interfaces; }) config.wol.interfaces;
# firewall.allowedUDPPorts = [ 9 ]; # networking.firewall.allowedUDPPorts = [ 9 ];
}; };
} }