Compare commits

...

40 Commits

Author SHA1 Message Date
don philipe 15240d7e86 Add zsh function to run git commands for codebase diagnose 2026-04-21 17:32:32 +02:00
don philipe 97e16f6273 Merge branch 'master' of https://github.com/don-philipe/dotfiles 2026-03-27 19:42:48 +01:00
don philipe 16d1175f21 Add pem-to-crt with openssl zsh func 2026-03-26 10:11:57 +01:00
don philipe 5ede1b3b47 Merge branch 'master' of https://github.com/don-philipe/dotfiles 2026-03-20 10:40:49 +01:00
don philipe 6033bd016e Add nvim dap, parrot 2026-03-20 10:40:42 +01:00
don philipe 4f6b390ba6 Disable lazy change_detection due to possible memory leakage 2026-03-17 13:03:37 +01:00
don philipe 1b6cad45f5 Add shortcuts for staging hunks and buffers 2026-03-11 10:19:11 +01:00
don philipe b648f0a936 Fix cmp borders by setting them globally 2026-02-18 10:28:56 +01:00
don philipe 434df00be3 Add LSP helper plugin for python lang 2026-02-17 14:26:00 +01:00
don philipe 6a82e1dc6f Add detection of ansible files in nvim 2026-02-17 14:24:19 +01:00
don philipe 081a2f5498 Switch to parrot as LLM plugin for nvim 2026-02-17 13:27:31 +01:00
don philipe d6707b3dff nvim persist undo after file closing 2025-11-10 21:52:36 +01:00
don philipe d3494b9830 Add rainbow csv nvim plugin 2025-09-26 10:28:25 +02:00
don philipe f6bbc705f8 Add latex to treesitter config 2025-09-23 23:14:08 +02:00
don philipe 30d3a8c29a Merge neovim settings 2025-09-04 09:20:03 +02:00
don philipe a414890f69 Fix coloring in nvim in tmux remote sessions 2025-09-04 04:53:16 +02:00
don philipe 2df66474db Merge zsh functions 2025-09-04 04:51:08 +02:00
don philipe 3e30bb71a0 Add zsh function to list all git blobs in a repo 2025-09-02 13:23:45 +02:00
don philipe 177716cdbe Find dotfiles when they are not gitignored 2025-09-01 13:09:47 +02:00
don philipe f8cf65bda9 Add doxx for docx file preview in ranger 2025-08-19 10:27:11 +02:00
don philipe bea47efec4 Keymap for resetting hunk 2025-08-18 09:47:29 +02:00
don philipe 10de9c300b Add diffview nvim plugin 2025-08-14 10:39:43 +02:00
don philipe 5feff36b73 Add redmine plugin to nvim 2025-06-17 10:53:54 +02:00
don philipe 8f50d2cb75 Add TypeScript LSP 2025-06-17 10:52:04 +02:00
don philipe b62f1697a2 Ensure autoreload works with nvim+tmux 2025-06-05 09:38:51 +02:00
don philipe 4260c7876c Add nvim plugins for showing context and indent lines 2025-06-05 00:50:19 +02:00
don philipe ff7deb9cee Shortcut for preview hunk 2025-05-26 13:47:16 +02:00
don philipe f84673ed16 gitsigns.nvim vertical split 2025-05-26 13:42:02 +02:00
don philipe 5bdd07c204 Pin gitsigns version 2025-05-14 13:36:26 +02:00
don philipe 469435454e Pin mason version 2025-05-14 10:17:44 +02:00
don philipe 3e51152da9 Search hidden files with telescope 2025-05-14 10:11:37 +02:00
don philipe 6a710bac5f Switch to new diff pane after gitsigns diffthis 2025-04-24 14:21:22 +02:00
don philipe af50ddd8ea Add rounded borders for completion plugin 2025-04-23 22:04:41 +02:00
don philipe 7128760315 Add rounded borders for lazy plugin manager 2025-04-23 22:03:35 +02:00
don philipe f078314b0d Custom nvim indents for various filetypes 2025-04-23 22:02:28 +02:00
don philipe 9803f705e4 Pin version of nvim plugins lsp and treesitter
For using named plugins with neovim < 0.10 plugin versions not above a
certain value are needed.
2025-04-08 12:50:46 +02:00
don philipe b3d8e46003 Set LLM_KEY env var in nvim config 2025-04-02 09:17:12 +02:00
don philipe cfafeb5c04 Find selected text via telescope 2025-03-25 11:28:12 +01:00
don philipe 33f864dea8 Merge alacritty config 2025-03-25 09:48:43 +01:00
don philipe 7b473872b4 Add tmux option for true color over ssh 2025-03-25 09:44:38 +01:00
31 changed files with 266 additions and 45 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ URxvt.foreground: white
!URxvt.borderColor: dark grey
URxvt.scrollBar: false
URxvt.cursorColor: green
URxvt.font: xft:monospace:size=9,xft:Noto Color Emoji
URxvt.font: xft:Jet Brains Mono Nerd Font:size=9,xft:monospace:size=9,xft:Noto Color Emoji
URxvt.perl-ext-common: default,matcher
URxvt.url-launcher: /usr/bin/xdg-open
URxvt.matcher.button: 1
+2
View File
@@ -5,12 +5,14 @@ text = "#000000"
[env]
# set this to have true color when using nvim etc. in remote tmux session
TERM = "xterm-256color"
WINIT_X11_SCALE_FACTOR = "1.0"
[font]
size = 9
[font.normal]
family = "Jet Brains Mono Nerd Font"
#family = "Mononoki Nerd Font"
[general]
# https://github.com/alacritty/alacritty-theme
+14 -1
View File
@@ -1,19 +1,32 @@
-- utilities functions
--require("utils")
require("config.remap")
require("config.set")
require("config.commands")
-- env vars used only for neovim
require("config.env")
-- configurations for various filetypes
require("config.filetypes")
-- plugin manager
require("config.lazy")
-- plugins
require("config.cmp")
require("config.gen-private")
require("config.lsp")
require("config.mason")
require("config.treesitter")
require("config.treesitter-context")
require("config.gitsigns")
require("config.lualine")
require("config.telescope")
require("config.indentline")
--require("config.redmine")
require("config.diffview")
require("config.dap")
require("config.parrot")
--require("config.gitea")
-- for some reason this must be placed in init.lua file
-- it doesn't work in any lua/config/*.lua files
+6
View File
@@ -24,4 +24,10 @@ cmp.setup({
vim.snippet.expand(args.body)
end,
},
-- switch on rounded borders in floating completion windows
-- additionally vim.o.winborder = 'rounded' must be set (set.lua)
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
})
+2
View File
@@ -0,0 +1,2 @@
require("diffview").setup({
})
+1
View File
@@ -0,0 +1 @@
vim.env.LLM_KEY = "None"
+67
View File
@@ -0,0 +1,67 @@
vim.api.nvim_create_autocmd('Filetype', {
pattern = {
'xml',
'html',
'xhtml',
'css',
'scss',
'javascript',
'typescript',
'lua',
'jsx',
'tsx',
'typescriptreact',
'javascriptreact',
'htmldjango'
},
command = 'setlocal shiftwidth=4 tabstop=4 expandtab'
})
vim.api.nvim_create_autocmd('Filetype', {
pattern = { 'yaml',
},
command = 'setlocal shiftwidth=2 tabstop=2 expandtab'
})
if vim.filetype then
vim.filetype.add({
pattern = {
[".*/defaults/.*%.ya?ml"] = "yaml.ansible",
[".*/host_vars/.*%.ya?ml"] = "yaml.ansible",
[".*/group_vars/.*%.ya?ml"] = "yaml.ansible",
[".*/group_vars/.*/.*%.ya?ml"] = "yaml.ansible",
[".*/playbook.*%.ya?ml"] = "yaml.ansible",
[".*/playbooks/.*%.ya?ml"] = "yaml.ansible",
[".*/roles/.*/tasks/.*%.ya?ml"] = "yaml.ansible",
[".*/roles/.*/handlers/.*%.ya?ml"] = "yaml.ansible",
[".*/tasks/.*%.ya?ml"] = "yaml.ansible",
[".*/molecule/.*%.ya?ml"] = "yaml.ansible",
},
})
else
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
pattern = {
"*/defaults/*.yml",
"*/defaults/*.yaml",
"*/host_vars/*.yml",
"*/host_vars/*.yaml",
"*/group_vars/*.yml",
"*/group_vars/*.yaml",
"*/group_vars/*/*.yml",
"*/group_vars/*/*.yaml",
"*/playbook*.yml",
"*/playbook*.yaml",
"*/playbooks/*.yml",
"*/playbooks/*.yaml",
"*/roles/*/tasks/*.yml",
"*/roles/*/tasks/*.yaml",
"*/roles/*/handlers/*.yml",
"*/roles/*/handlers/*.yaml",
"*/tasks/*.yml",
"*/tasks/*.yaml",
"*/molecule/*.yml",
"*/molecule/*.yaml",
},
callback = function()
vim.bo.filetype = "yaml.ansible"
end,
})
end
+9 -3
View File
@@ -1,5 +1,11 @@
-- return {
-- model = "llama3.2",
-- host = "jupiter",
-- port = "11434",
-- }
return {
model = "llama3.2",
host = "foo",
port = "11343",
model = "llama3.3",
host = "owu-zegv-api.med.tu-dresden.de",
port = "443",
https = true,
}
+6 -1
View File
@@ -1,6 +1,11 @@
require('gitsigns').setup()
local gitsigns = require('gitsigns')
vim.keymap.set('n', '<leader>gm', gitsigns.blame_line, { desc = 'Show git message for current line' })
vim.keymap.set('n', '<leader>gd', gitsigns.diffthis, { desc = 'Show diff for current line' })
vim.keymap.set('n', '<leader>gd', ':Gitsigns diffthis ~ vertical=true<CR>:wincmd w<CR>', { desc = 'Show diff for current line' })
vim.keymap.set('n', '<leader>gs', gitsigns.stage_hunk, { desc = 'Stage current hunk' })
vim.keymap.set('n', '<leader>gS', gitsigns.stage_buffer, { desc = 'Stage current buffer' })
vim.keymap.set('n', '<leader>gr', gitsigns.reset_hunk, { desc = 'Reset current hunk' })
vim.keymap.set('n', '<leader>gR', gitsigns.reset_buffer, { desc = 'Reset current buffer' })
vim.keymap.set('n', '<leader>h', gitsigns.next_hunk, { desc = 'Move to next hunk' })
vim.keymap.set('n', '<leader>H', gitsigns.prev_hunk, { desc = 'Move to previous hunk' })
vim.keymap.set('n', '<leader>ph', gitsigns.preview_hunk, { desc = 'Preview hunk in popup' })
+3
View File
@@ -0,0 +1,3 @@
require'indentmini'.setup()
vim.cmd.highlight('IndentLine guifg=#444444')
vim.cmd.highlight('IndentLineCurrent guifg=#557755')
+4
View File
@@ -33,6 +33,10 @@ require("lazy").setup({
install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates
checker = { enabled = true },
change_detection = { enabled = false }, -- active change detection seems to eat up memory over time https://github.com/folke/lazy.nvim/issues/1008
ui = {
border = "rounded",
},
})
-- Open lazy menu with :Lazy check
+9
View File
@@ -11,6 +11,8 @@ lspconfig_defaults.capabilities = vim.tbl_deep_extend(
require('cmp_nvim_lsp').default_capabilities()
)
require'lspconfig'.ts_ls.setup{}
-- This is where you enable features that only work
-- if there is a language server active in the file
vim.api.nvim_create_autocmd('LspAttach', {
@@ -30,3 +32,10 @@ vim.api.nvim_create_autocmd('LspAttach', {
vim.keymap.set('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>', opts)
end,
})
-- helper plugin configuration
require'py_lsp'.setup{
host_python = '/usr/bin/python3',
default_venv_name = "venv",
language_server = "pylsp",
}
+9
View File
@@ -11,3 +11,12 @@ vim.opt.incsearch = true
vim.opt.signcolumn = "yes"
vim.o.termguicolors = true
vim.diagnostic.config({
virtual_text = true,
})
vim.opt.undofile = true
vim.o.winborder = 'rounded'
+17
View File
@@ -4,12 +4,29 @@ vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live gr
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
vim.keymap.set('n', '<leader>ft', builtin.treesitter, { desc = 'Telescope treesitter picker' })
-- find selected text in visual mode with Ctrl-f via telescope:
vim.keymap.set('v', '<C-f>', 'y<ESC>:Telescope live_grep default_text=<C-r>0<CR>', default_opts)
-- grep hidden files as well
local telescopeConfig = require("telescope.config")
local vimgrep_arguments = { unpack(telescopeConfig.values.vimgrep_arguments) }
-- I want to search in hidden/dot files.
table.insert(vimgrep_arguments, "--hidden")
-- I don't want to search in the `.git` directory.
table.insert(vimgrep_arguments, "--glob")
table.insert(vimgrep_arguments, "!**/.git/*")
require('telescope').setup({
defaults = {
vimgrep_arguments = vimgrep_arguments,
layout_strategy = 'vertical',
layout_config = {
vertical = { width = 0.95 }
},
},
pickers = {
find_files = {
find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/*" },
},
},
})
@@ -0,0 +1,3 @@
require'treesitter-context'.setup{
enable = true,
}
+6 -1
View File
@@ -1,6 +1,6 @@
require'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all" (the listed parsers MUST always be installed)
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline", "python", "javascript", "css", "html", "yaml", "java", "bash", "csv", "dockerfile", "htmldjango", "json", "nginx" },
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline", "python", "javascript", "css", "html", "yaml", "java", "bash", "csv", "dockerfile", "htmldjango", "json", "nginx", "latex" },
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
@@ -34,4 +34,9 @@ require'nvim-treesitter.configs'.setup {
-- Instead of true it can also be a list of languages
additional_vim_regex_highlighting = false,
},
-- indent with treesitter is currently experimental, just mark text and hit "="
indent = {
enable = true,
},
}
+19
View File
@@ -0,0 +1,19 @@
return {
'cameron-wags/rainbow_csv.nvim',
config = true,
ft = {
'csv',
'tsv',
'csv_semicolon',
'csv_whitespace',
'csv_pipe',
'rfc_csv',
'rfc_semicolon'
},
cmd = {
'RainbowDelim',
'RainbowDelimSimple',
'RainbowDelimQuoted',
'RainbowMultiDelim'
}
}
+3
View File
@@ -0,0 +1,3 @@
return {
"sindrets/diffview.nvim"
}
-26
View File
@@ -1,26 +0,0 @@
local ok, vars = pcall(require, 'config.gen-private')
if not ok then
print("Missing gen-private configuration file.")
end
return {
{ "David-Kunz/gen.nvim",
opts = {
model = vars["model"],
host = vars["host"],
port = vars["port"],
https = vars["https"],
show_prompt = true,
debug = false,
-- https://github.com/David-Kunz/gen.nvim/issues/116
command = function(options)
local body = { model = options.model, stream = true }
local schema = "http"
if options.https then
schema = "https"
end
return "curl --silent --no-buffer -X POST " .. schema .. "://" .. options.host .. ":" .. options.port .. "/api/chat -d $body"
end,
}},
}
+1 -1
View File
@@ -1,3 +1,3 @@
return {
{'lewis6991/gitsigns.nvim'}
{'lewis6991/gitsigns.nvim', version='^1.0.2'}
}
+3
View File
@@ -0,0 +1,3 @@
return {
"nvimdev/indentmini.nvim",
}
+3 -1
View File
@@ -1,5 +1,7 @@
return {
{'neovim/nvim-lspconfig'},
{'neovim/nvim-lspconfig', tag = 'v1.7.0'}, -- pin to a version thats compatible with nvim < 0.10
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/nvim-cmp'},
-- helper plugins
{'HallerPatrick/py_lsp.nvim'},
}
+3 -2
View File
@@ -1,6 +1,7 @@
return {
-- pin version due to https://github.com/mason-org/mason.nvim/issues/1929
-- mason for downloading language servers
{'williamboman/mason.nvim'},
{'williamboman/mason.nvim', version = "^1.0.0"},
-- mason-lspconfig to configure auto setup of language servers
{'williamboman/mason-lspconfig.nvim'},
{'williamboman/mason-lspconfig.nvim', version = "^1.0.0"},
}
+4
View File
@@ -0,0 +1,4 @@
return {
"frankroeder/parrot.nvim",
dependencies = { "ibhagwan/fzf-lua", "nvim-lua/plenary.nvim" },
}
+6
View File
@@ -0,0 +1,6 @@
return {
"sgross-emlix/angerona.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
},
}
@@ -0,0 +1,4 @@
return {
{'nvim-treesitter/nvim-treesitter-context',
},
}
+2 -1
View File
@@ -1,5 +1,6 @@
return {
{'nvim-treesitter/nvim-treesitter'}
{'nvim-treesitter/nvim-treesitter',
tag = 'v0.9.3'}, -- pin to a version that works with nvim < 0.10
-- configure parsers via config/treesitter.lua
-- update parsers with :TSUpdate
}
+6
View File
@@ -87,6 +87,12 @@ handle_extension() {
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
exit 1;;
## DOCX
docx)
## Uses: https://github.com/bgreenwell/doxx
doxx "${FILE_PATH}" && exit 5
exit 1;;
## XLSX
xlsx)
## Preview as csv conversion
+5
View File
@@ -3,6 +3,11 @@ set -g default-shell /usr/bin/zsh
set-window-option -g window-active-style bg=terminal
# grayed background for inactive panes
set-window-option -g window-style bg="#32302f"
# ensure "autoread" works in nvim (auto reload files when changed)
set-option -g focus-events on
# https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
# List of plugins
+40
View File
@@ -21,6 +21,10 @@ checkcert()
{
openssl s_client -connect "$1":443 2>/dev/null
}
pem2crt()
{
openssl x509 -inform PEM -in "$1" -out "${1%.*}.crt"
}
# works only without tex-ending
tex2pdf()
@@ -59,6 +63,42 @@ m4a2mp3()
done
}
# Show all blob objects in repo sorted from smalles to largest
# https://stackoverflow.com/a/42544963
git-blobs()
{
git rev-list --objects --all --missing=print |
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
sed -n 's/^blob //p' |
sort --numeric-sort --key=2 |
cut -c 1-12,41- |
$(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
}
# Do a short code review via several git commands
# https://piechowski.io/post/git-commands-before-reading-code/
git-review()
{
echo "### What Changes the Most (1y ago) ###"
git log --format=format: --name-only --since="1 year ago" | sort | uniq -c | sort -nr | head -20
echo "\n### Who Built This ###"
git --no-pager shortlog -sn --no-merges
echo "\n### Where Do Bugs Cluster ###"
git log -i -E --grep="fix|bug|broken" --name-only --format='' | sort | uniq -c | sort -nr | head -20
echo "\n### Is This Project Accelerating or Dying (commit count per m) ###"
git log --format='%ad' --date=format:'%Y-%m' | sort | uniq -c
echo "\n### How Often Is the Team Firefighting ###"
git log --oneline --since="1 year ago" | grep -iE 'revert|hotfix|emergency|rollback'
}
sshs()
{
tmprc=$(ssh $1 "mktemp --directory")
scp -q $HOME/.zshrc $1:$tmprc
ssh -t $1 "export ZDOTDIR=${tmprc}; trap 'rm -rf ${tmprc}' EXIT INT TERM; exec zsh"
#ssh $1 "rm -rf ${tmprc}"
}
# show the current mode:
#PR_VIMODE="#"
#function zle-keymap-select
+3 -2
View File
@@ -106,7 +106,7 @@ autoload -U promptinit
promptinit
export XDG_CONFIG_HOME=$HOME/.config/
export EDITOR=vim
export EDITOR=nvim
alias ls='ls --color=always'
alias grep='grep --color=always'
@@ -114,6 +114,7 @@ alias less='less -R'
alias dd='dd status=progress oflag=direct'
alias dotfiles='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
alias hibernate='sudo systemctl hibernate'
alias ssh="TERM=linux ssh" # for not complaining urxvt about terminals without TERM set
#alias ssh="TERM=linux ssh" # for not complaining urxvt about terminals without TERM set
alias cpup="cp -T $0 ../$0"
alias pythonweb="python -m SimpleHTTPServer 8090"
alias sayhi="echo hi"