chore: clean up dotfiles and add gitignore whitelist

Switch to whitelist-based .gitignore to only track essential configs:
nvim, yazi, kitty, zsh, ideavim, karabiner, tmux, scripts, starship.
Remove history, compiled files, and plugin dirs from tracking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Thomas Naderer
2026-03-11 12:57:14 +01:00
parent 61b1e3d2a9
commit d8a20d620a
32 changed files with 1471 additions and 2868 deletions

View File

@@ -1,41 +0,0 @@
local cmp = require('cmp')
local luasnip = require('luasnip')
require("luasnip.loaders.from_vscode").lazy_load() -- Load friendly-snippets
require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/snippets" }) -- Load custom Lua snippets
cmp.setup({
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body) -- Use LuaSnip for expanding snippets
end,
},
mapping = {
['<C-Space>'] = cmp.mapping.complete(), -- Trigger completion manually
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Confirm completion
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' }, -- LSP suggestions
{ name = 'luasnip' }, -- Snippets
{ name = 'buffer' }, -- Buffer words
{ name = 'path' }, -- File paths
})
})

View File

@@ -1,182 +0,0 @@
# vim:fileencoding=utf-8:foldmethod=marker
vim.cmd [[packadd packer.nvim]]
require('packer').startup(function(use)
-- {{{ Packer manages itself
use 'wbthomason/packer.nvim' -- Packer manages itself
-- }}}
-- {{{ VIM AutoSave
use({
'okuuva/auto-save.nvim',
tag = 'v1*',
config = function()
require('auto-save').setup({
-- your config goes here
-- or just leave it empty :)
})
end,
})
-- }}}
-- {{{ Nvim-Tree
use {
'nvim-tree/nvim-tree.lua',
config = function()
require('plugins.nvim-tree').setup()
end,
}
-- }}}
-- {{{ Themes
use 'gruvbox-community/gruvbox' -- Gruvbox theme
use 'folke/tokyonight.nvim' -- Tokyo Night theme
-- }}}
-- {{{ Treesitter
use {
'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate' -- Keep parsers up to date
}
require('plugins.treesitter')
-- }}}
-- {{{ Rainbow Delimiters
use 'HiPhish/rainbow-delimiters.nvim'
require('plugins.rainbow_delimiters')
-- }}}
-- {{{ Git Integration
use 'lewis6991/gitsigns.nvim' -- Git decorations in the gutter
use 'tpope/vim-fugitive' -- Git commands in Neovim
-- }}}
-- {{{ Status Line
use {
'nvim-lualine/lualine.nvim',
requires = { 'kyazdani42/nvim-web-devicons', opt = true } -- Optional icons
}
require('plugins.lualine')
-- Override background transparency with custom highlights
vim.cmd [[
highlight lualine_a_normal guibg=NONE
highlight lualine_b_normal guibg=NONE
highlight lualine_c_normal guibg=NONE
]]
-- }}}
-- {{{ HardTime
use {
'm4xshen/hardtime.nvim',
requires = { 'MunifTanjim/nui.nvim' }
}
-- }}}
-- {{{ FZF
use {
'junegunn/fzf',
run = function() vim.fn['fzf#install']() end
}
use 'junegunn/fzf.vim'
-- }}}
-- {{{ Productivity
use 'numToStr/Comment.nvim'
use 'windwp/nvim-autopairs'
use 'tpope/vim-surround'
-- }}}
-- {{{ LaTeX
use 'lervag/vimtex'
require('plugins.vimtex')
-- }}}
-- -- {{{ Outline
-- use {
-- 'hedyhli/outline.nvim',
-- config = function()
-- require('plugins.outline').setup()
-- end
-- }
-- }}}
-- {{{ Org-Mode
use {'nvim-orgmode/orgmode', config = function()
require('orgmode').setup{}
end
}
--}}}
-- {{{ Telescope
use {
'nvim-telescope/telescope.nvim',
requires = { {'nvim-lua/plenary.nvim'} },
config = function()
-- Leader key mappings for Telescope
vim.api.nvim_set_keymap('n', '<leader>ff', ':Telescope find_files<CR>'
, { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>fg', ':Telescope live_grep<CR>',
{ noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>fb', ':Telescope buffers<CR>', {
noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>fh', ':Telescope help_tags<CR>',
{ noremap = true, silent = true })
end
}
-- }}}
-- Yazi.nvim {{{
use({
"mikavilpas/yazi.nvim",
config = function()
require("yazi").setup({
open_for_directories = false,
keymaps = {
show_help = "<F1>",
},
})
end,
})
--- }}}
-- Hop.nvim {{{
use {
'phaazon/hop.nvim',
branch = 'v2', -- optional but strongly recommended
config = function()
-- you can configure Hop the way you like here; see :h hop-config
require'hop'.setup { keys = 'etovxqpdygfblzhckisuran' }
end
}
-- }}}
-- nvim.cmp {{{
use {
'hrsh7th/nvim-cmp',
requires = {
'hrsh7th/cmp-buffer', -- Buffer completions
'hrsh7th/cmp-path', -- Path completions
'hrsh7th/cmp-nvim-lsp', -- LSP completions
'hrsh7th/cmp-nvim-lua', -- Neovim API completions
'saadparwaiz1/cmp_luasnip', -- Snippet completions
'L3MON4D3/LuaSnip', -- Snippet engine
'rafamadriz/friendly-snippets', -- Predefined snippets
'evesdropper/luasnip-latex-snippets.nvim'
}
}
-- }}}
-- Markdown {{{
use 'SidOfc/mkdx'
use({
'MeanderingProgrammer/render-markdown.nvim',
after = { 'nvim-treesitter' },
-- requires = { 'echasnovski/mini.nvim', opt = true }, -- if you use the mini.nvim suite
requires = { 'echasnovski/mini.icons', opt = true }, -- if you use standalone mini plugins
-- requires = { 'nvim-tree/nvim-web-devicons', opt = true }, -- if you prefer nvim-web-devicons
config = function()
require('render-markdown').setup({})
end,
})
-- }}}
-- Code Formatting {{{
use({
"nvimtools/none-ls.nvim",
config = function()
requires = { "nvim-lua/plenary.nvim" },
require("plugins.prettier")
end,
})
-- }}}
-- Zotero Integration (deactivated){{{
-- use {
-- 'jalvesaq/zotcite',
-- requires = {
-- 'vim-pandoc/vim-pandoc',
-- 'vim-pandoc/vim-pandoc-syntax'
-- }
-- }}}
end)

View File

@@ -11,25 +11,6 @@ return {
"okuuva/auto-save.nvim",
version = "v1.*",
event = { "InsertLeave", "TextChanged" },
init = function()
local group = vim.api.nvim_create_augroup("autosave_message", { clear = true })
vim.api.nvim_create_autocmd("User", {
pattern = "AutoSaveWritePost",
group = group,
callback = function(opts)
local saved_buffer = opts.data and opts.data.saved_buffer
if not saved_buffer then
return
end
local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(saved_buffer), ":t")
if filename == "" then
filename = "[No Name]"
end
vim.notify("AutoSave: " .. filename, vim.log.levels.INFO, { title = "auto-save.nvim" })
end,
})
end,
opts = {
enabled = true,
trigger_events = {
@@ -129,7 +110,13 @@ return {
{
"folke/flash.nvim",
event = "VeryLazy",
opts = {},
opts = {
modes = {
char = {
enabled = false,
},
},
},
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash jump" },
{ "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash treesitter" },
@@ -204,6 +191,39 @@ return {
-- Markdown
{ "SidOfc/mkdx", ft = "markdown" },
{
"epwalsh/obsidian.nvim",
version = "*",
lazy = true,
ft = "markdown",
dependencies = { "nvim-lua/plenary.nvim" },
keys = {
{ "<leader>on", "<cmd>ObsidianNew<cr>", desc = "New note" },
{ "<leader>oo", "<cmd>ObsidianQuickSwitch<cr>", desc = "Quick switch" },
{ "<leader>os", "<cmd>ObsidianSearch<cr>", desc = "Search notes" },
{ "<leader>ob", "<cmd>ObsidianBacklinks<cr>", desc = "Backlinks" },
{ "<leader>ot", "<cmd>ObsidianTags<cr>", desc = "Tags" },
{ "<leader>od", "<cmd>ObsidianToday<cr>", desc = "Today's note" },
},
opts = {
workspaces = {
{ name = "private", path = "~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Private" },
{ name = "work", path = "~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Work" },
},
completion = { nvim_cmp = false, min_chars = 2 },
ui = { enable = false }, -- render-markdown.nvim übernimmt das
disable_frontmatter = true,
},
},
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreview", "MarkdownPreviewStop", "MarkdownPreviewToggle" },
ft = { "markdown" },
build = function() vim.fn["mkdp#util#install"]() end,
keys = {
{ "<leader>mp", "<cmd>MarkdownPreviewToggle<cr>", desc = "Markdown Preview" },
},
},
{
"MeanderingProgrammer/render-markdown.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" },

View File

@@ -104,7 +104,7 @@ return {
end,
},
{
"fmuaddel/blink-copilot",
"giuxtaposition/blink-cmp-copilot",
dependencies = { "zbirenbaum/copilot.lua" },
},
},
@@ -126,7 +126,7 @@ return {
},
copilot = {
name = "copilot",
module = "blink-copilot",
module = "blink-cmp-copilot",
score_offset = 50,
async = true,
},

View File

@@ -34,6 +34,9 @@ return {
highlight_git = true,
highlight_opened_files = "all",
icons = {
show = {
diagnostics = false,
},
glyphs = {
default = "",
symlink = "",
@@ -61,12 +64,6 @@ return {
diagnostics = {
enable = true,
show_on_dirs = true,
icons = {
hint = "",
info = "",
warning = "",
error = "",
},
},
filters = {
dotfiles = false,

View File

@@ -18,7 +18,7 @@ return {
json = { "prettier" },
html = { "prettier" },
css = { "prettier" },
markdown = { "prettier" },
markdown = { "mdformat" },
yaml = { "prettier" },
},
format_on_save = {

View File

@@ -6,18 +6,42 @@ local f = ls.function_node
-- Get current date in YYYY-MM-DD format
local function date()
return os.date("%Y-%m-%d")
return os.date("%Y-%m-%d")
end
return {
s("env", {
t({"---",
"title: "}), i(1, "Title"), t({"",
"tags: ["}), i(2, "tag1, tag2"), t({"]",
"date: "}), f(date, {}), t({"",
"---", ""}),
i(0),
}),
}
s("env", {
t({
"---",
"title: ",
}),
i(1, "Title"),
t({ "", "tags: [" }),
i(2, "tag1, tag2"),
t({ "]", "date: " }),
f(date, {}),
t({ "", "---", "" }),
i(0),
}),
s(
"ippd",
t({
"Institute of Polymer Processing and Digital Transformation",
})
),
s(
"TN",
t({
"Thomas Naderer",
})
),
s(
"GBW",
t({
"Gerald Berger-Weber",
})
),
}