Fix sshfs intricacies; Add todo cycle for markdown

This commit is contained in:
Martin Pander
2026-07-10 09:02:17 +02:00
parent 653ec4e4af
commit 5e0ebe4406
6 changed files with 131 additions and 62 deletions

66
flake.lock generated
View File

@@ -125,11 +125,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778716662, "lastModified": 1782949081,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -181,11 +181,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782704057, "lastModified": 1783221248,
"narHash": "sha256-G1I1gd32F7mp9LAe1DaZ4ZL7NX5gyiKwdCMwro1Vrck=", "narHash": "sha256-ESQnuNHEDChsB4IxoLRhscVahqkDWkTb+qdIz8euYt4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "868d0a692de703c2de98fab61968e4e310b7c28e", "rev": "af2beae5f0fae0a4310cc0e6aef2572f56090353",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -202,11 +202,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782704057, "lastModified": 1783221248,
"narHash": "sha256-G1I1gd32F7mp9LAe1DaZ4ZL7NX5gyiKwdCMwro1Vrck=", "narHash": "sha256-ESQnuNHEDChsB4IxoLRhscVahqkDWkTb+qdIz8euYt4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "868d0a692de703c2de98fab61968e4e310b7c28e", "rev": "af2beae5f0fae0a4310cc0e6aef2572f56090353",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -224,11 +224,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782739581, "lastModified": 1783426737,
"narHash": "sha256-0zK4mQsx4dTQ0D8xY/6REuvE+onPfKSUvvZz+bAVwIw=", "narHash": "sha256-yQFZXU2rFrwR+OJMktg9Zvrn3jnfVcQAuT8fWVNsnCs=",
"owner": "modem-dev", "owner": "modem-dev",
"repo": "hunk", "repo": "hunk",
"rev": "65a27400099dd5db29d10e1dcbdd0918748cadba", "rev": "059dd13c8bd27fe503ef59652077edf0041034c8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -262,11 +262,11 @@
"treefmt-nix": "treefmt-nix_2" "treefmt-nix": "treefmt-nix_2"
}, },
"locked": { "locked": {
"lastModified": 1782888034, "lastModified": 1783567605,
"narHash": "sha256-bmM+TfnodBmk/95HE/eIoNzRY8b7wRWbcYU3cUvKIZw=", "narHash": "sha256-LyF84yqWppXAAEOAkL325Lt+DrVmkbbeXGzDgX9zMzI=",
"owner": "numtide", "owner": "numtide",
"repo": "llm-agents.nix", "repo": "llm-agents.nix",
"rev": "2a0d5e87e34cbec74c2df9764eeddf1a655d2046", "rev": "a4c847460f0e773d02d0655ce28dc6b532dd65d6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -282,11 +282,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1781761792, "lastModified": 1783395956,
"narHash": "sha256-rCPytmKNjctLloB6UgK5CRrHSwV4b0ygxtJLPPp8R14=", "narHash": "sha256-AAbexQvDoK+6GFJdhY6kqjA+6ECKRkidgWxkn4gMwAA=",
"owner": "LnL7", "owner": "LnL7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "a1fa429e945becaf60468600daf649be4ba0350c", "rev": "d5bd9cd77aea4c0a8f49e7fd85545671a208ed15",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -340,11 +340,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1782760764, "lastModified": 1783279667,
"narHash": "sha256-N66fYdUuZ9hpdM7jsQ7CUWtLJduqGDyTGCaLR62CXaQ=", "narHash": "sha256-/NAkDSsve+GNM0Bt6tleJdCGfsTlK89nPjkVOzZMo0s=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7a1a64774a5fd0b0cd39ac95d0e170ace8b266a0", "rev": "f205b5574fd0cb7da5b702a2da51507b7f4fdd1b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -386,11 +386,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1782847225, "lastModified": 1783389287,
"narHash": "sha256-JC9PjqKYG9ve5U8aDOLQipp3+KLANBHUvGdLZlxzdKI=", "narHash": "sha256-0xIy4dVLqq47rA+mRy0hXDfjhQd4E5PoIns/RmB7nR4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "95ca1e203c0750115fd4a6f17d5a245dfe6b1edd", "rev": "0ad6f47ea4fe188f4bc8f0380f93ae8523337c6c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -402,11 +402,11 @@
}, },
"nixpkgs-wsl-stable": { "nixpkgs-wsl-stable": {
"locked": { "locked": {
"lastModified": 1782847225, "lastModified": 1783389287,
"narHash": "sha256-JC9PjqKYG9ve5U8aDOLQipp3+KLANBHUvGdLZlxzdKI=", "narHash": "sha256-0xIy4dVLqq47rA+mRy0hXDfjhQd4E5PoIns/RmB7nR4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "95ca1e203c0750115fd4a6f17d5a245dfe6b1edd", "rev": "0ad6f47ea4fe188f4bc8f0380f93ae8523337c6c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -418,11 +418,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1782723713, "lastModified": 1783224372,
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=", "narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8", "rev": "d407951447dcd00442e97087bf374aad70c04cea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -471,11 +471,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782165805, "lastModified": 1783174389,
"narHash": "sha256-478kKQBvK6SYTOdN2h9jhKJv94nbXRbFMfuL1WshErg=", "narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "56b24064fdcaedca53553b1a6d607fd23b613a24", "rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -39,6 +39,16 @@ in
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
nix-direnv.enable = true; nix-direnv.enable = true;
stdlib = ''
: ''${XDG_CACHE_HOME:=$HOME/.cache}
declare -A direnv_layout_dirs
direnv_layout_dir() {
echo "''${direnv_layout_dirs[$PWD]:=$(
echo -n "$XDG_CACHE_HOME"/direnv/layouts/
echo -n "$PWD" | sha1sum | cut -d ' ' -f 1
)}"
}
'';
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [

View File

@@ -123,6 +123,9 @@ in
set -s set-clipboard on set -s set-clipboard on
set -g extended-keys on set -g extended-keys on
set -g extended-keys-format csi-u set -g extended-keys-format csi-u
set -g renumber-windows on
set -g base-index 1
set -g pane-base-index 1
unbind S unbind S
bind S command-prompt "switch -t %1" bind S command-prompt "switch -t %1"
@@ -168,10 +171,8 @@ in
set -g status-right "#[bg=#BCBCBC] %H:%M #[bg=#808080,fg=#ffffff] %d.%m.%y " set -g status-right "#[bg=#BCBCBC] %H:%M #[bg=#808080,fg=#ffffff] %d.%m.%y "
# setw -g window-status-format " #W#F " setw -g window-status-format "#W:#I "
# setw -g window-status-current-format " #W#F " setw -g window-status-current-format " #W:#I "
setw -g window-status-format " #W "
setw -g window-status-current-format " #W "
setw -g window-status-separator "" setw -g window-status-separator ""
####################################### #######################################

View File

@@ -80,6 +80,11 @@ vim.g.clipboard = {
} }
if vim.fn.has("wsl") == 1 then if vim.fn.has("wsl") == 1 then
local function win32yank_works()
return os.execute("win32yank.exe -o >/dev/null 2>&1") == 0
end
if win32yank_works() then
vim.g.clipboard = { vim.g.clipboard = {
name = 'WslClipboard', name = 'WslClipboard',
copy = { copy = {
@@ -93,6 +98,7 @@ if vim.fn.has("wsl") == 1 then
cache_enabled = 0, cache_enabled = 0,
} }
end end
end
vim.opt.clipboard = 'unnamedplus' vim.opt.clipboard = 'unnamedplus'

View File

@@ -89,6 +89,63 @@ vim.api.nvim_create_autocmd('FileType', {
end, end,
}) })
local function cycle_todo()
local line = vim.api.nvim_get_current_line()
-- 0. STRICT CHECK: If the line doesn't start with a list marker (-), fall back to normal Enter behavior
if not line:match("^%s*%-") then
-- This simulates a normal carriage return if mapped to <CR>
local keys = vim.api.nvim_replace_termcodes("<CR>", true, false, true)
vim.api.nvim_feedkeys(keys, "n", false)
return
end
-- The sequence of checkbox states we want to cycle through
local states = { " ", ">", "x", "!", "~", "c" }
-- 1. If it's a cancelled todo [c], strip the brackets but KEEP the list item (- )
if line:match("^%s*%-%s*%[c%]") then
local clean_line = line:gsub("(%s*%-%s*)%[c%]%s*", "%1")
vim.api.nvim_set_current_line(clean_line)
return
end
-- 2. If it's a standard list item without a checkbox, turn it into `- [ ]`
if not line:match("^%s*%-%s*%[.%]") then
-- Matches the list prefix (e.g., "- " or " - ") and appends "[ ] "
local new_line = line:gsub("^(%s*%-%s*)", "%1[ ] ")
vim.api.nvim_set_current_line(new_line)
return
end
-- 3. Cycle through the custom states natively
for i, state in ipairs(states) do
-- Escape special Lua magic characters like !, >, ~, c
local escaped_state = state:gsub("([^%w])", "%%%1")
local pattern = "^(%s*%-%s*%[)" .. escaped_state .. "(%])"
if line:match(pattern) then
local next_state = states[(i % #states) + 1]
local new_line = line:gsub(pattern, "%1" .. next_state .. "%2", 1)
vim.api.nvim_set_current_line(new_line)
return
end
end
end
vim.api.nvim_create_autocmd('FileType', {
group = vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }),
pattern = 'markdown',
once = true,
callback = function()
vim.keymap.set('n', '<CR>', cycle_todo, {
buffer = true,
desc = 'Cycle todo state'
})
end,
})
-- vim.api.nvim_create_autocmd('FileType', { -- vim.api.nvim_create_autocmd('FileType', {
-- group = vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }), -- group = vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }),
-- pattern = 'proto', -- pattern = 'proto',
@@ -97,13 +154,6 @@ vim.api.nvim_create_autocmd('FileType', {
-- end, -- end,
-- }) -- })
-- --
-- vim.api.nvim_create_autocmd('FileType', {
-- group = vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }),
-- pattern = 'markdown',
-- once = true,
-- callback = function()
-- end,
-- })
-- --
-- vim.api.nvim_create_autocmd('FileType', { -- vim.api.nvim_create_autocmd('FileType', {
-- group = vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }), -- group = vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }),

View File

@@ -465,7 +465,7 @@ require("obsidian").setup({
time_format = "%H:%M", time_format = "%H:%M",
}, },
checkbox = { checkbox = {
order = { " ", ">", "x", "!", "~", "" }, order = { " ", ">", "x", "!", "~", "c", "" },
}, },
frontmatter = { frontmatter = {
enabled = true, enabled = true,
@@ -516,8 +516,10 @@ require('render-markdown').setup({
}, },
custom = { custom = {
next = { raw = '[!]', rendered = '', highlight = 'RenderMarkdownNext', scope_highlight = nil }, next = { raw = '[!]', rendered = '', highlight = 'RenderMarkdownNext', scope_highlight = nil },
ongoing = { raw = '[>]', rendered = '', highlight = 'RenderMarkdownOngoing', scope_highlight = nil }, in_progress = { raw = '[>]', rendered = '', highlight = 'RenderMarkdownOngoing', scope_highlight = nil },
waiting = { raw = '[~]', rendered = '󰥔', highlight = 'RenderMarkdownWaiting', scope_highlight = nil }, waiting = { raw = '[~]', rendered = '󰥔', highlight = 'RenderMarkdownWaiting', scope_highlight = nil },
cancelled = { raw = '[c]', rendered = 'x', highlight = 'RenderMarkdownCancelled', scope_highlight = nil },
}, },
}, },
}) })