Sync config for all systems

This commit is contained in:
Martin
2025-07-10 20:03:17 +02:00
parent 2517fd0269
commit 4d7caf0abe
10 changed files with 176 additions and 35 deletions

View File

@ -6,4 +6,8 @@
enableZshIntegration = true;
nix-direnv.enable = true;
};
home.packages = with pkgs; [
visidata
];
}

View File

@ -61,4 +61,19 @@
".envrc"
];
};
programs.lazygit = {
enable = true;
settings = {
theme.lightTheme = "true";
git = {
log = {
format = "%C(yellow)%h%Creset %C(bold blue)<%an>%Creset %s %Cgreen(%cr)%Creset";
graph = "true";
};
};
};
};
programs.jujutsu.enable = true;
}

View File

@ -59,6 +59,7 @@
img-clip-nvim
markdown-preview-nvim
vim-markdown
plantuml-syntax
bullets-vim
obsidian-nvim
nvim-dap

View File

@ -51,10 +51,11 @@
HISTIGNORE='&:[ ]*:exit:ls:bg:fg:history:clear'
unsetopt beep
# Rustup initialization
if [[ "$(uname -s)" == "Darwin" ]]; then
export RUSTUP_HOME="$HOME/.rustup"
export CARGO_HOME="$HOME/.cargo"
[ -f "$CARGO_HOME/env" ] && . "$CARGO_HOME/env"
fi;
'';
};
@ -79,6 +80,7 @@
programs.bat.enable = true;
programs.ripgrep.enable = true;
programs.btop.enable = true;
programs.ranger.enable = true;
home.packages = with pkgs; [
fd
@ -87,7 +89,7 @@
ripgrep-all
viddy
duf
(python313.withPackages(ps: [ ps.llm ps.llm-anthropic ps.llm-gemini ]))
(python3.withPackages(ps: [ ps.llm ps.llm-gemini ]))
#nerdfonts
];
@ -95,4 +97,16 @@
BAT_THEME = "Coldark-Cold";
}
];
home.shellAliases = lib.mkMerge [
{
lst = "lsd --tree";
}
# This is the correct way to use lib.mkIf within lib.mkMerge
# (lib.mkIf pkgs.stdenv.targetPlatform.isWindows {
(lib.mkIf (lib.strings.hasSuffix "windows" pkgs.system) {
open = "explorer.exe .";
})
];
}

View File

@ -8,13 +8,37 @@
config = {
weekstart = "monday";
context.today.read = "(prio:H or +next)";
context.today.write = "prio:H +next";
uda.energy.type="string";
uda.energy.label="Energy";
uda.energy.values="h,m,l";
uda.energy.default="m";
uda.priority.values = "H,M,,L";
urgency.uda.priority.L.coefficient = -0.5;
urgency.user.tag.deferred.coefficient = -15.0;
urgency.user.tag.cust.coefficient = 5.0;
context.today.read = "-deferred and (prio:H or +next)";
context.today.write = "prio:H or +next";
report.next.columns="id,start.age,entry.age,depends,priority,energy,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency";
report.next.labels="ID,Active,Age,Deps,P,E,Project,Tag,Recur,S,Due,Until,Description,Urg";
report.next.filter="status:pending -WAITING -deferred";
report.deferred.columns="id,start.age,entry.age,depends,priority,energy,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency";
report.deferred.context="1";
report.deferred.description="Deferred and waiting tasks";
report.deferred.labels="ID,Active,Age,Deps,P,E,Project,Tag,Recur,S,Due,Until,Description,Urg";
report.deferred.filter="status:pending +deferred";
report.deferred.sort="urgency-";
report.low.columns="id,start.age,entry.age,depends,priority,energy,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency";
report.low.context="1";
report.low.description="Low energy tasks";
report.low.filter="status:pending -WAITING -deferred";
report.low.labels="ID,Active,Age,Deps,P,E,Project,Tag,Recur,S,Due,Until,Description,Urg";
report.low.sort="energy+,urgency-";
context.deferred.read = "+deferred";
context.deferred.write = "+deferred";
context.customer.read = "+cust";

View File

@ -25,6 +25,11 @@
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -a -c "#{pane_current_path}"
bind C-s display-popup -E "zsh ~/bin/tmuxp_selector.sh"
bind C-g display-popup -E -d "#{pane_current_path}" -xC -yC -w 95% -h 95% "lazygit"
bind C-t display-popup -E -xC -yC -w 95% -h 95% "tasksquire"
bind C-n display-popup -E -xC -yC -w 95% -h 95% "vim /mnt/c/Users/marti/Documents/notes/Work/quick_notes.md"
#######################################
# status line
#######################################

View File

@ -26,7 +26,8 @@ vim.opt.smartcase = true
vim.opt.hidden = true
vim.opt.splitright = true
vim.opt.splitbelow = true
vim.opt.swapfile = false
vim.opt.swapfile = true
vim.opt.directory= '~/.cache/nvim/swap//,$TEMP//,/tmp//'
vim.opt.wildmode = 'longest,list'
vim.opt.wildignore = vim.opt.wildignore + 'main,*.o,*.d,*.aux,*.bbl,*.lof,*.loa,*.blg,*.fdb_latexmk,*.fls,*.tdo,*.pdf,*.pyc'
vim.opt.spell = false

View File

@ -1,3 +1,6 @@
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require("lspconfig")
vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true })
vim.api.nvim_create_autocmd('FileType', {
@ -32,7 +35,16 @@ vim.api.nvim_create_autocmd('FileType', {
callback = function()
require('dap-python').setup()
-- lspconfig.pyright.setup({ capabilities = capabilities })
lspconfig.rust_analyzer.setup({
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
checkOnSave = {
command = "clippy",
},
},
},
})
require("conform").setup({
rust = {"rustfmt"},
@ -45,6 +57,47 @@ vim.api.nvim_create_autocmd('FileType', {
pattern = 'markdown',
callback = function()
lspconfig.marksman.setup({ capabilities = capabilities })
require("todo-comments").setup()
end,
})
vim.api.nvim_create_autocmd('FileType', {
group = 'FileTypeConfigs',
pattern = 'dockerfile',
callback = function()
lspconfig.dockerls.setup({ capabilities = capabilities })
lspconfig.docker_compose_language_service.setup({ capabilities = capabilities })
end,
})
vim.api.nvim_create_autocmd('FileType', {
group = 'FileTypeConfigs',
pattern = 'cs',
callback = function()
lspconfig.omnisharp.setup({ capabilities = capabilities })
end,
})
vim.api.nvim_create_autocmd('FileType', {
group = 'FileTypeConfigs',
pattern = 'yaml',
callback = function()
lspconfig.yamlls.setup({ capabilities = capabilities })
lspconfig.docker_compose_language_service.setup({ capabilities = capabilities })
end,
})
vim.api.nvim_create_autocmd('FileType', {
group = 'FileTypeConfigs',
pattern = {'c', 'cpp', 'objc', 'objcpp'},
callback = function()
lspconfig.clangd.setup({ capabilities = capabilities })
end,
})
vim.api.nvim_create_autocmd('FileType', {
group = 'FileTypeConfigs',
pattern = 'sql',
callback = function()
lspconfig.sqls.setup({ capabilities = capabilities })
end,
})

View File

@ -18,6 +18,16 @@ vim.keymap.set('t', '<C-M-h>', '<C-\\><C-n><C-w>h', {})
vim.keymap.set('t', '<C-M-j>', '<C-\\><C-n><C-w>j', {})
vim.keymap.set('t', '<C-M-k>', '<C-\\><C-n><C-w>k', {})
vim.keymap.set('t', '<C-M-l>', '<C-\\><C-n><C-w>l', {})
vim.keymap.set('n', '<leader>zm', '<C-W>_<C-W>|', { noremap = true, silent = true })
vim.keymap.set('n', '<C-M-Y>', '<C-w>5<', {})
vim.keymap.set('n', '<C-M-U>', '<C-w>5+', {})
vim.keymap.set('n', '<C-M-I>', '<C-w>5-', {})
vim.keymap.set('n', '<C-M-O>', '<C-w>5>', {})
vim.keymap.set('t', '<C-M-Y>', '<C-\\><C-n><C-w>5<', {})
vim.keymap.set('t', '<C-M-U>', '<C-\\><C-n><C-w>5+', {})
vim.keymap.set('t', '<C-M-I>', '<C-\\><C-n><C-w>5-', {})
vim.keymap.set('t', '<C-M-O>', '<C-\\><C-n><C-w>5>', {})
vim.keymap.set('n', '<leader>s', ':call WindowSwap#EasyWindowSwap()<CR>', {})
@ -53,8 +63,7 @@ vim.keymap.set({"n","x"}, "y", "<Plug>(YankyYank)")
vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle)
-- DAP
vim.keymap.set('n', '<Leader>db', function() require('dap').toggle_breakpoint() end)
vim.keymap.set('n', '<Leader>dB', function() require('dap').set_breakpoint() end)
vim.keymap.set('n', "<Leader>db", function() require("dap").toggle_breakpoint() end)
vim.keymap.set('n', "<leader>dB", function() require("dap").set_breakpoint(vim.fn.input('Breakpoint condition: ')) end)
vim.keymap.set('n', "<leader>dc", function() require("dap").continue() end)
vim.keymap.set('n', "<leader>da", function() require("dap").continue({ before = get_args }) end)
@ -72,5 +81,10 @@ vim.keymap.set('n', "<leader>ds", function() require("dap").session() end)
vim.keymap.set('n', "<leader>dt", function() require("dap").terminate() end)
vim.keymap.set('n', "<leader>dw", function() require("dap.ui.widgets").hover() end)
vim.keymap.set('n', "<F5>", function() require("dap").continue() end)
vim.keymap.set('n', "<F11>", function() require("dap").step_into() end)
vim.keymap.set('n', "<F10>", function() require("dap").step_over() end)
vim.keymap.set('n', "<F12>", function() require("dap").step_out() end)
-- nnoremap <silent> <leader>t :CtrlPBufTagAll<CR>
-- nnoremap <silent> <leader>T :TagbarToggle<CR>

View File

@ -98,16 +98,9 @@ cmp.setup.cmdline(':', {
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require("lspconfig")
-- lspconfig.svelte.setup({ capabilities = capabilities })
-- lspconfig.omnisharp.setup({ capabilities = capabilities })
-- lspconfig.clangd.setup({ capabilities = capabilities })
-- lspconfig.dockerls.setup({ capabilities = capabilities })
-- lspconfig.docker_compose_language_service.setup({ capabilities = capabilities })
-- lspconfig.flow.setup({ capabilities = capabilities })
-- lspconfig.sqls.setup({ capabilities = capabilities })
-- lspconfig.yamlls.setup({ capabilities = capabilities })
-- lspconfig.nil_ls.setup({ capabilities = capabilities })
-- local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true
@ -282,7 +275,13 @@ require('gitsigns').setup {
},
}
require("conform").setup({
python = {"black"},
rust = {"rustfmt"},
go = {"gofmt"},
})
require("trouble").setup()
require("todo-comments").setup()
require("dapui").setup()
require("nvim-dap-virtual-text").setup()
@ -301,7 +300,7 @@ dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end
require("obsidian").setup({
if vim.fn.has("mac") then
workspaces = {
{
name = "privat",
@ -311,10 +310,32 @@ require("obsidian").setup({
name = "joplin",
path = "~/Documents/notes/fromjoplin",
},
}
daily_notes = {
folder = "Journal",
date_format = "%Y-%m-%d",
default_tags = { "journal" },
template = "daily.md"
}
elseif vim.fn.has("win32") then
workspaces = {
{
name = "work",
path = "/mnt/c/Users/marti/Documents/notes/Work",
},
{
name = "privat",
path = "/mnt/c/Users/marti/Documents/notes/privat",
},
}
daily_notes = {}
end
require("obsidian").setup({
workspaces = workspaces,
templates = {
folder = "_templates",
date_format = "%Y-%m-%d-%a",
date_format = "%Y-%m-%d %a",
time_format = "%H:%M",
},
ui = {
@ -324,6 +345,7 @@ require("obsidian").setup({
["x"] = { char = "", hl_group = "ObsidianDone" },
["~"] = { char = "󰰱", hl_group = "ObsidianTilde" },
["!"] = { char = "", hl_group = "ObsidianImportant" },
["?"] = { char = "?", hl_group = "ObsidianImportant" }
},
},
disable_frontmatter = false,
@ -335,8 +357,6 @@ require("obsidian").setup({
local out = { id = note.id, tags = note.tags }
-- `note.metadata` contains any manually added fields in the frontmatter.
-- So here we just make sure those fields are kept in the frontmatter.
if note.metadata ~= nil and not vim.tbl_isempty(note.metadata) then
for k, v in pairs(note.metadata) do
out[k] = v
@ -346,18 +366,8 @@ require("obsidian").setup({
return out
end,
note_path_func = function(spec)
-- This is equivalent to the default behavior.
local path = spec.dir / spec.title
return path:with_suffix(".md")
end,
daily_notes = {
-- Optional, if you keep daily notes in a separate directory.
folder = "Journal",
-- Optional, if you want to change the date format for the ID of daily notes.
date_format = "%Y-%m-%d",
-- Optional, default tags to add to each new daily note created.
default_tags = { "journal" },
-- Optional, if you want to automatically insert a template from your template directory like 'daily.md'
template = "daily.md"
},
daily_notes = daily_notes,
})