Compare commits

...

22 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
22 changed files with 178 additions and 41 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ URxvt.foreground: white
!URxvt.borderColor: dark grey !URxvt.borderColor: dark grey
URxvt.scrollBar: false URxvt.scrollBar: false
URxvt.cursorColor: green 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.perl-ext-common: default,matcher
URxvt.url-launcher: /usr/bin/xdg-open URxvt.url-launcher: /usr/bin/xdg-open
URxvt.matcher.button: 1 URxvt.matcher.button: 1
+1
View File
@@ -5,6 +5,7 @@ text = "#000000"
[env] [env]
# set this to have true color when using nvim etc. in remote tmux session # set this to have true color when using nvim etc. in remote tmux session
TERM = "xterm-256color" TERM = "xterm-256color"
WINIT_X11_SCALE_FACTOR = "1.0"
[font] [font]
size = 9 size = 9
+8 -1
View File
@@ -1,3 +1,6 @@
-- utilities functions
--require("utils")
require("config.remap") require("config.remap")
require("config.set") require("config.set")
require("config.commands") require("config.commands")
@@ -11,7 +14,6 @@ require("config.lazy")
-- plugins -- plugins
require("config.cmp") require("config.cmp")
require("config.gen-private")
require("config.lsp") require("config.lsp")
require("config.mason") require("config.mason")
require("config.treesitter") require("config.treesitter")
@@ -20,6 +22,11 @@ require("config.gitsigns")
require("config.lualine") require("config.lualine")
require("config.telescope") require("config.telescope")
require("config.indentline") 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 -- for some reason this must be placed in init.lua file
-- it doesn't work in any lua/config/*.lua files -- it doesn't work in any lua/config/*.lua files
+1
View File
@@ -25,6 +25,7 @@ cmp.setup({
end, end,
}, },
-- switch on rounded borders in floating completion windows -- switch on rounded borders in floating completion windows
-- additionally vim.o.winborder = 'rounded' must be set (set.lua)
window = { window = {
completion = cmp.config.window.bordered(), completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(),
+2
View File
@@ -0,0 +1,2 @@
require("diffview").setup({
})
+44
View File
@@ -21,3 +21,47 @@ vim.api.nvim_create_autocmd('Filetype', {
}, },
command = 'setlocal shiftwidth=2 tabstop=2 expandtab' 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 { return {
model = "llama3.2", model = "llama3.3",
host = "foo", host = "owu-zegv-api.med.tu-dresden.de",
port = "11343", port = "443",
https = true,
} }
+4
View File
@@ -2,6 +2,10 @@ require('gitsigns').setup()
local gitsigns = require('gitsigns') 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>gm', gitsigns.blame_line, { desc = 'Show git message 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>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.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>H', gitsigns.prev_hunk, { desc = 'Move to previous hunk' })
vim.keymap.set('n', '<leader>ph', gitsigns.preview_hunk, { desc = 'Preview hunk in popup' }) vim.keymap.set('n', '<leader>ph', gitsigns.preview_hunk, { desc = 'Preview hunk in popup' })
+1
View File
@@ -33,6 +33,7 @@ require("lazy").setup({
install = { colorscheme = { "habamax" } }, install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates -- automatically check for plugin updates
checker = { enabled = true }, 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 = { ui = {
border = "rounded", border = "rounded",
}, },
+7
View File
@@ -32,3 +32,10 @@ vim.api.nvim_create_autocmd('LspAttach', {
vim.keymap.set('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>', opts) vim.keymap.set('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>', opts)
end, end,
}) })
-- helper plugin configuration
require'py_lsp'.setup{
host_python = '/usr/bin/python3',
default_venv_name = "venv",
language_server = "pylsp",
}
+10
View File
@@ -10,3 +10,13 @@ vim.opt.scrolloff = 8
vim.opt.incsearch = true vim.opt.incsearch = true
vim.opt.signcolumn = "yes" vim.opt.signcolumn = "yes"
vim.o.termguicolors = true
vim.diagnostic.config({
virtual_text = true,
})
vim.opt.undofile = true
vim.o.winborder = 'rounded'
+11 -6
View File
@@ -17,11 +17,16 @@ table.insert(vimgrep_arguments, "--glob")
table.insert(vimgrep_arguments, "!**/.git/*") table.insert(vimgrep_arguments, "!**/.git/*")
require('telescope').setup({ require('telescope').setup({
defaults = { defaults = {
vimgrep_arguments = vimgrep_arguments, vimgrep_arguments = vimgrep_arguments,
layout_strategy = 'vertical', layout_strategy = 'vertical',
layout_config = { layout_config = {
vertical = { width = 0.95 } vertical = { width = 0.95 }
},
},
pickers = {
find_files = {
find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/*" },
},
}, },
},
}) })
+1 -1
View File
@@ -1,6 +1,6 @@
require'nvim-treesitter.configs'.setup { require'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all" (the listed parsers MUST always be installed) -- 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`) -- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false, sync_install = false,
+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,
}},
}
+2
View File
@@ -2,4 +2,6 @@ return {
{'neovim/nvim-lspconfig', tag = 'v1.7.0'}, -- pin to a version thats compatible with nvim < 0.10 {'neovim/nvim-lspconfig', tag = 'v1.7.0'}, -- pin to a version thats compatible with nvim < 0.10
{'hrsh7th/cmp-nvim-lsp'}, {'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/nvim-cmp'}, {'hrsh7th/nvim-cmp'},
-- helper plugins
{'HallerPatrick/py_lsp.nvim'},
} }
+4
View File
@@ -0,0 +1,4 @@
return {
"frankroeder/parrot.nvim",
dependencies = { "ibhagwan/fzf-lua", "nvim-lua/plenary.nvim" },
}
+6
View File
@@ -87,6 +87,12 @@ handle_extension() {
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5 pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## DOCX
docx)
## Uses: https://github.com/bgreenwell/doxx
doxx "${FILE_PATH}" && exit 5
exit 1;;
## XLSX ## XLSX
xlsx) xlsx)
## Preview as csv conversion ## Preview as csv conversion
+1 -1
View File
@@ -7,7 +7,7 @@ set-window-option -g window-style bg="#32302f"
set-option -g focus-events on set-option -g focus-events on
# https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6 # https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6
set -g default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",$TERM:RGB" set -ag terminal-overrides ",xterm-256color:RGB"
# List of plugins # List of plugins
+40
View File
@@ -21,6 +21,10 @@ checkcert()
{ {
openssl s_client -connect "$1":443 2>/dev/null openssl s_client -connect "$1":443 2>/dev/null
} }
pem2crt()
{
openssl x509 -inform PEM -in "$1" -out "${1%.*}.crt"
}
# works only without tex-ending # works only without tex-ending
tex2pdf() tex2pdf()
@@ -59,6 +63,42 @@ m4a2mp3()
done 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: # show the current mode:
#PR_VIMODE="#" #PR_VIMODE="#"
#function zle-keymap-select #function zle-keymap-select
+3 -2
View File
@@ -106,7 +106,7 @@ autoload -U promptinit
promptinit promptinit
export XDG_CONFIG_HOME=$HOME/.config/ export XDG_CONFIG_HOME=$HOME/.config/
export EDITOR=vim export EDITOR=nvim
alias ls='ls --color=always' alias ls='ls --color=always'
alias grep='grep --color=always' alias grep='grep --color=always'
@@ -114,6 +114,7 @@ alias less='less -R'
alias dd='dd status=progress oflag=direct' alias dd='dd status=progress oflag=direct'
alias dotfiles='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' alias dotfiles='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
alias hibernate='sudo systemctl hibernate' 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 cpup="cp -T $0 ../$0"
alias pythonweb="python -m SimpleHTTPServer 8090" alias pythonweb="python -m SimpleHTTPServer 8090"
alias sayhi="echo hi"