Compare commits
8 Commits
83958847f4
...
2efccdb4de
| Author | SHA1 | Date | |
|---|---|---|---|
| 2efccdb4de | |||
| 8aafaf7d35 | |||
| dce57f907a | |||
| 1bda05280e | |||
| d39071da06 | |||
| 781f379aff | |||
| 2203b48cde | |||
| 35f6f7890f |
35
dots/.config/nvim/after/plugin/hydra.lua
Normal file
35
dots/.config/nvim/after/plugin/hydra.lua
Normal file
@@ -0,0 +1,35 @@
|
||||
local hydra_repl = "hydra-repl"
|
||||
|
||||
if not vim.fn.executable(hydra_repl) then
|
||||
return
|
||||
end
|
||||
|
||||
local function send(lines)
|
||||
vim.system({ hydra_repl, table.concat(lines, "\n") })
|
||||
end
|
||||
|
||||
local function get_paragraph(buf)
|
||||
local start_ = vim.fn.search("^$", "bnW")
|
||||
local end_ = vim.fn.search("^$", "nW") - 1
|
||||
if end_ < vim.api.nvim_win_get_cursor(0)[1] then
|
||||
end_ = vim.api.nvim_buf_line_count(buf)
|
||||
end
|
||||
return vim.api.nvim_buf_get_lines(buf, start_, end_, false)
|
||||
end
|
||||
|
||||
local function get_selection(buf)
|
||||
return vim.api.nvim_buf_get_lines(buf, vim.fn.line("'<") - 1, vim.fn.line("'>"), false)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "javascript",
|
||||
callback = function(e)
|
||||
if vim.fn.fnamemodify(vim.api.nvim_buf_get_name(e.buf), ":e") ~= "hydra" then
|
||||
return
|
||||
end
|
||||
|
||||
local buf = e.buf
|
||||
vim.keymap.set("n", "<CR>", function() send(get_paragraph(buf)) end, { buffer = buf, desc = "hydra: send block" })
|
||||
vim.keymap.set("v", "<CR>", function() send(get_selection(buf)) end, { buffer = buf, desc = "hydra: send selection" })
|
||||
end,
|
||||
})
|
||||
@@ -13,11 +13,16 @@ nm <leader>ww <plug>(wiki-index)
|
||||
" nm <leader>s <plug>(wiki-link-follow-split)
|
||||
" nm <leader>v <plug>(wiki-link-follow-vsplit)
|
||||
|
||||
autocmd BufEnter *.md if expand('%:t') =~ '_' | echo 'hierarchical relation' | endif
|
||||
autocmd BufEnter *.md if expand('%:t') =~ '--' | echo 'relation' | endif
|
||||
autocmd BufEnter *.md if expand('%:t') =~ '<>' | echo 'dichotomy' | endif
|
||||
autocmd BufEnter *.md if expand('%:t') =~ 'my-' | echo 'personal file' | endif
|
||||
autocmd BufEnter *.md if expand('%:t') =~ 'project_' | echo 'project file' | endif
|
||||
function! ZKContextualEcho()
|
||||
let l:name = expand('%:t')
|
||||
if l:name =~ '_' | echo 'hierarchical relation'
|
||||
elseif l:name =~ '--' | echo 'relation'
|
||||
elseif l:name =~ '<>' | echo 'dichotomy'
|
||||
elseif l:name =~ 'my-' | echo 'personal file'
|
||||
elseif l:name =~ 'project_' | echo 'project file'
|
||||
endif
|
||||
endfunction
|
||||
execute 'autocmd BufEnter' g:zk_path . '/*.md' 'call ZKContextualEcho()'
|
||||
|
||||
" Only load wiki.vim for zk directory
|
||||
let g:wiki_index_name='index'
|
||||
|
||||
12
dots/.config/nvim/flake.lock
generated
12
dots/.config/nvim/flake.lock
generated
@@ -42,11 +42,11 @@
|
||||
},
|
||||
"nixCats": {
|
||||
"locked": {
|
||||
"lastModified": 1774835836,
|
||||
"narHash": "sha256-6ok7iv/9R82vl6MYe3Lwyyb6S5bmW2PxEZtmjzlqyPs=",
|
||||
"lastModified": 1776724015,
|
||||
"narHash": "sha256-kFpzUivYI8F75cZcggmjKM8HEEJPajKNLweYsTYdM7Q=",
|
||||
"owner": "BirdeeHub",
|
||||
"repo": "nixCats-nvim",
|
||||
"rev": "ebb9f279a55ca60ff4e37e4accf6518dc627aa8d",
|
||||
"rev": "da76c45b33d589836946bb566bd91df4cd3cfb09",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -73,11 +73,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1775608838,
|
||||
"narHash": "sha256-2ySoGH+SAi34U0PeuQgABC0WiH9LQ3tkyHTiE93KUeg=",
|
||||
"lastModified": 1776949667,
|
||||
"narHash": "sha256-GMSVw35Q+294GlrTUKlx087E31z7KurReQ1YHSKp5iw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9a01fad67a57e44e1b3e1d905c6881bcfb209e8a",
|
||||
"rev": "01fbdeef22b76df85ea168fbfe1bfd9e63681b30",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
{
|
||||
lspsAndRuntimeDeps = with pkgs; {
|
||||
general = [
|
||||
nodejs_24
|
||||
black
|
||||
clang
|
||||
clang-tools
|
||||
|
||||
@@ -9,5 +9,6 @@ vim.filetype.add({
|
||||
["%.env.*"] = "dotenv",
|
||||
["%.pl$"] = "prolog",
|
||||
[".*.containerfile.*"] = "dockerfile",
|
||||
["%.hydra$"] = "javascript",
|
||||
},
|
||||
})
|
||||
|
||||
@@ -13,28 +13,31 @@ local function get_markdown_files(base)
|
||||
return items
|
||||
end
|
||||
|
||||
function source:get_keyword_pattern()
|
||||
return "[%w%./%-]*"
|
||||
end
|
||||
|
||||
function source:complete(params, callback)
|
||||
local cursor_before_line = params.context.cursor_before_line
|
||||
local cursor_after_line = params.context.cursor_after_line or ""
|
||||
|
||||
local trigger = cursor_before_line:match("%[[^%]]*%]%(([^)]*)$")
|
||||
|
||||
if trigger ~= nil then
|
||||
local items = get_markdown_files(".")
|
||||
local next_char = cursor_after_line:sub(1, 1)
|
||||
|
||||
for _, item in ipairs(items) do
|
||||
if next_char == ")" then
|
||||
item.insertText = item.label
|
||||
else
|
||||
item.insertText = item.label .. ")"
|
||||
end
|
||||
end
|
||||
|
||||
callback(items)
|
||||
else
|
||||
if not cursor_before_line:match("%[[^%]]*%]%(") then
|
||||
callback({})
|
||||
return
|
||||
end
|
||||
|
||||
local items = get_markdown_files(".")
|
||||
local next_char = cursor_after_line:sub(1, 1)
|
||||
|
||||
for _, item in ipairs(items) do
|
||||
if next_char == ")" then
|
||||
item.insertText = item.label
|
||||
else
|
||||
item.insertText = item.label .. ")"
|
||||
end
|
||||
end
|
||||
|
||||
callback(items)
|
||||
end
|
||||
|
||||
function source:get_trigger_characters()
|
||||
|
||||
@@ -47,7 +47,10 @@
|
||||
printing.enable = true;
|
||||
modeling.enable = true;
|
||||
};
|
||||
ai-tools.opencode.enable = true;
|
||||
ai-tools = {
|
||||
claude-code.enable = true;
|
||||
opencode.enable = true;
|
||||
};
|
||||
browser.primary = "librewolf";
|
||||
cloud.hetzner.enable = true;
|
||||
comms.signal.enable = true;
|
||||
|
||||
@@ -43,7 +43,10 @@
|
||||
};
|
||||
|
||||
modules."3d".printing.enable = true;
|
||||
ai-tools.opencode.enable = true;
|
||||
ai-tools = {
|
||||
claude-code.enable = true;
|
||||
opencode.enable = true;
|
||||
};
|
||||
browser.primary = "librewolf";
|
||||
cloud.hetzner.enable = true;
|
||||
comms.signal.enable = true;
|
||||
|
||||
@@ -68,7 +68,7 @@ in
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
})
|
||||
mcp-nixos
|
||||
# mcp-nixos
|
||||
];
|
||||
})
|
||||
(lib.mkIf cfg.tirith.enable {
|
||||
|
||||
@@ -6,6 +6,7 @@ let
|
||||
in
|
||||
{
|
||||
config = {
|
||||
nixpkgs.allowedUnfree = [ "claude-code" ];
|
||||
secrets.groups.opencode = [ "api-key" ];
|
||||
|
||||
sops.templates."opencode/auth.json" = {
|
||||
|
||||
7
modules/desktops/logind.nix
Normal file
7
modules/desktops/logind.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
services.logind.settings.Login = {
|
||||
HandleLidSwitch = "suspend";
|
||||
IdleAction = "suspend";
|
||||
IdleActionSec = 1800;
|
||||
};
|
||||
}
|
||||
@@ -9,6 +9,8 @@ let
|
||||
cfg = config.desktop;
|
||||
in
|
||||
{
|
||||
imports = [ ../logind.nix ];
|
||||
|
||||
options.desktop = {
|
||||
ly = {
|
||||
enable = lib.mkOption {
|
||||
@@ -38,12 +40,6 @@ in
|
||||
services = {
|
||||
gnome.gnome-keyring.enable = false;
|
||||
dbus.enable = true;
|
||||
logind.settings.Login = {
|
||||
HandleLidSwitch = "suspend";
|
||||
IdleAction = "suspend";
|
||||
IdleActionSec = 1800;
|
||||
};
|
||||
|
||||
displayManager.ly = lib.mkIf cfg.ly.enable {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user