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

58
.gitignore vendored Normal file
View File

@@ -0,0 +1,58 @@
# Ignore everything by default
*
!.gitignore
# === Core dotfiles ===
# Neovim
!nvim/
!nvim/**
nvim/plugin/
nvim/.nvimlog
nvim/lazy-lock.json
# Yazi
!yazi/
!yazi/**
yazi/plugins/
# Kitty
!kitty/
!kitty/**
# Zsh (only .zshrc)
!zsh/
!zsh/.zshrc
# IdeaVim
!ideavim/
!ideavim/**
# === Definitely persist ===
# Karabiner (not automatic_backups)
!karabiner/
!karabiner/**
karabiner/automatic_backups/
# Tmux (not plugins)
!tmux/
!tmux/**
tmux/plugins/
# Scripts
!scripts/
!scripts/**
# Starship prompt
!starship.toml
# === Always ignore ===
.DS_Store
**/.DS_Store
**/.claude/
*.nvimlog
*.log
*.bak
kitty/kitty-themes/
kitty/kitty-dark.png

View File

@@ -476,15 +476,7 @@
"key_code": "e",
"modifiers": { "mandatory": ["left_command", "right_command", "right_control", "right_shift", "right_option"] }
},
"to": [{ "shell_command": "open -a 'Microsoft Excel'" }],
"type": "basic"
},
{
"from": {
"key_code": "e",
"modifiers": { "mandatory": ["left_command", "right_command", "right_control", "right_shift", "right_option"] }
},
"to": [{ "shell_command": "open -a 'Safari'" }],
"to": [{ "key_code": "f16" }],
"type": "basic"
},
{
@@ -503,6 +495,19 @@
"to": [{ "shell_command": "open -a 'BusyCal'" }],
"type": "basic"
},
{
"from": {
"key_code": "p",
"modifiers": { "mandatory": ["right_command", "right_control", "right_shift", "right_option"] }
},
"to": [
{
"key_code": "spacebar",
"modifiers": ["left_command", "left_shift"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "p",
@@ -630,7 +635,7 @@
"to": [
{
"key_code": "tab",
"modifiers": ["left_command"]
"modifiers": ["left_option"]
}
],
"type": "basic"
@@ -643,7 +648,7 @@
"to": [
{
"key_code": "tab",
"modifiers": ["left_command", "left_shift"]
"modifiers": ["left_option", "left_shift"]
}
],
"type": "basic"
@@ -828,6 +833,18 @@
],
"type": "basic"
},
{
"from": {
"key_code": "n",
"modifiers": { "mandatory": ["right_command", "right_control", "right_shift", "right_option"] }
},
"to": [
{
"shell_command": "osascript -e 'tell application \"System Events\" to keystroke (do shell script \"date +%F\")'"
}
],
"type": "basic"
},
{
"from": {
"key_code": "spacebar",
@@ -1073,6 +1090,27 @@
}
]
},
{
"description": "Hyper WM Mode Trigger",
"manipulators": [
{
"from": {
"key_code": "semicolon",
"modifiers": { "mandatory": ["right_command", "right_control", "right_shift", "right_option"] }
},
"to": [{ "key_code": "f18" }],
"type": "basic"
},
{
"from": {
"key_code": "comma",
"modifiers": { "mandatory": ["left_shift", "right_command", "right_control", "right_shift", "right_option"] }
},
"to": [{ "key_code": "f18" }],
"type": "basic"
}
]
},
{
"description": "CapsLock to Hyper/Escape",
"manipulators": [

View File

@@ -1,50 +1,80 @@
# vim:ft=kitty
## name: Tokyo Night Moon
## name: Catppuccin-Mocha
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## author: Folke Lemaitre
## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_moon.conf
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
background #222436
foreground #c8d3f5
selection_background #2d3f76
selection_foreground #c8d3f5
url_color #4fd6be
cursor #c8d3f5
cursor_text_color #222436
# Tabs
active_tab_background #82aaff
active_tab_foreground #1e2030
inactive_tab_background #2f334d
inactive_tab_foreground #545c7e
#tab_bar_background #1b1d2b
# The basic colors
foreground #CDD6F4
background #1E1E2E
selection_foreground #1E1E2E
selection_background #F5E0DC
# Windows
active_border_color #82aaff
inactive_border_color #2f334d
# Cursor colors
cursor #F5E0DC
cursor_text_color #1E1E2E
# normal
color0 #1b1d2b
color1 #ff757f
color2 #c3e88d
color3 #ffc777
color4 #82aaff
color5 #c099ff
color6 #86e1fc
color7 #828bb8
# URL underline color when hovering with mouse
url_color #F5E0DC
# bright
color8 #444a73
color9 #ff8d94
color10 #c7fb6d
color11 #ffd8ab
color12 #9ab8ff
color13 #caabff
color14 #b2ebff
color15 #c8d3f5
# Kitty window border colors
active_border_color #B4BEFE
inactive_border_color #6C7086
bell_border_color #F9E2AF
# extended colors
color16 #ff966c
color17 #c53b53
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111B
active_tab_background #CBA6F7
inactive_tab_foreground #CDD6F4
inactive_tab_background #181825
tab_bar_background #11111B
# Colors for marks (marked text in the terminal)
mark1_foreground #1E1E2E
mark1_background #B4BEFE
mark2_foreground #1E1E2E
mark2_background #CBA6F7
mark3_foreground #1E1E2E
mark3_background #74C7EC
# The 16 terminal colors
# black
color0 #45475A
color8 #585B70
# red
color1 #F38BA8
color9 #F38BA8
# green
color2 #A6E3A1
color10 #A6E3A1
# yellow
color3 #F9E2AF
color11 #F9E2AF
# blue
color4 #89B4FA
color12 #89B4FA
# magenta
color5 #F5C2E7
color13 #F5C2E7
# cyan
color6 #94E2D5
color14 #94E2D5
# white
color7 #BAC2DE
color15 #A6ADC8

View File

@@ -1,5 +1,14 @@
# Font Configuration
font_family MesloLGS NF
# -- Uncomment one font_family line to switch fonts (reload with ctrl+shift+F5) --
# font_family MesloLGS NF
# font_family JetBrainsMono Nerd Font
# font_family MonaspaceNeon Nerd Font
# font_family MonaspaceArgon Nerd Font
# font_family MonaspaceXenon Nerd Font
# font_family MonaspaceRadon Nerd Font
# font_family MonaspaceKrypton Nerd Font
font_family Maple Mono NF
# font_family VulfMono Demo Regular
bold_font auto
italic_font auto
bold_italic_font auto
@@ -8,15 +17,25 @@ font_size 15
# Font rendering improvements
disable_ligatures never
font_features MesloLGSNF +calt +liga
# Nerd Font symbol fallback for fonts without glyphs (e.g. Vulf Mono)
# symbol_map U+E000-U+F8FF,U+23FB-U+23FE,U+2665,U+26A1,U+F000-U+FFFD MesloLGS NF
text_composition_strategy platform
undercurl_style thin-sparse
# Cursor Configuration
cursor_shape beam
cursor_shape block
cursor_beam_thickness 1.5
cursor_underline_thickness 2.0
cursor_blink_interval 0.5
cursor_stop_blinking_after 15.0
cursor_text_color background
# Cursor trail (animated cursor movement)
cursor_trail 1
cursor_trail_decay 0.20 0.30
# optional tweaks
cursor_trail_start_threshold 20
# cursor_trail_color red
# Window Configuration
window_padding_width 0
@@ -58,7 +77,7 @@ include ./keymap.conf
macos_show_window_title_in none
# BEGIN_KITTY_THEME
# Catppuccin-Macchiato
# Catppuccin-Mocha
include current-theme.conf
# END_KITTY_THEME

56
kitty/theme.conf Normal file
View File

@@ -0,0 +1,56 @@
# Based on https://github.com/morhetz/gruvbox by morhetz <morhetz@gmail.com>
# Adapted to kitty by wdomitrz <witekdomitrz@gmail.com>
cursor #928374
cursor_text_color background
url_color #83a598
visual_bell_color #8ec07c
bell_border_color #8ec07c
active_border_color #d3869b
inactive_border_color #665c54
foreground #ebdbb2
background #282828
selection_foreground #928374
selection_background #ebdbb2
active_tab_foreground #fbf1c7
active_tab_background #665c54
inactive_tab_foreground #a89984
inactive_tab_background #3c3836
# black (bg3/bg4)
color0 #665c54
color8 #7c6f64
# red
color1 #cc241d
color9 #fb4934
#: green
color2 #98971a
color10 #b8bb26
# yellow
color3 #d79921
color11 #fabd2f
# blue
color4 #458588
color12 #83a598
# purple
color5 #b16286
color13 #d3869b
# aqua
color6 #689d6a
color14 #8ec07c
# white (fg4/fg3)
color7 #a89984
color15 #bdae93

19
kitty/toggle_blur.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
CONFIG_FILE="/Users/thomasnaderer/.config/kitty/kitty.conf"
# Check current blur setting
current_blur=$(grep "^background_blur" "$CONFIG_FILE" | awk '{print $2}')
if [ "$current_blur" = "0" ] || [ -z "$current_blur" ]; then
# Currently no blur, enable it
sed -i '' 's/^background_blur.*/background_blur 20/' "$CONFIG_FILE"
echo "Background blur enabled"
else
# Currently blurred, disable it
sed -i '' 's/^background_blur.*/background_blur 0/' "$CONFIG_FILE"
echo "Background blur disabled"
fi
# Reload kitty configuration
/opt/homebrew/bin/kitty @ load-config

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

@@ -11,13 +11,37 @@ end
return {
s("env", {
t({"---",
"title: "}), i(1, "Title"), t({"",
"tags: ["}), i(2, "tag1, tag2"), t({"]",
"date: "}), f(date, {}), t({"",
"---", ""}),
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",
})
),
}

View File

@@ -1,257 +0,0 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/Users/thomasnaderer/.cache/nvim/packer_hererocks/2.1.1734355927/share/lua/5.1/?.lua;/Users/thomasnaderer/.cache/nvim/packer_hererocks/2.1.1734355927/share/lua/5.1/?/init.lua;/Users/thomasnaderer/.cache/nvim/packer_hererocks/2.1.1734355927/lib/luarocks/rocks-5.1/?.lua;/Users/thomasnaderer/.cache/nvim/packer_hererocks/2.1.1734355927/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/Users/thomasnaderer/.cache/nvim/packer_hererocks/2.1.1734355927/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
["Comment.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/Comment.nvim",
url = "https://github.com/numToStr/Comment.nvim"
},
["auto-save.nvim"] = {
config = { "\27LJ\2\n;\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\14auto-save\frequire\0" },
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/auto-save.nvim",
url = "https://github.com/okuuva/auto-save.nvim"
},
["dashboard-nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/dashboard-nvim",
url = "https://github.com/glepnir/dashboard-nvim"
},
fzf = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/fzf",
url = "https://github.com/junegunn/fzf"
},
["fzf.vim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/fzf.vim",
url = "https://github.com/junegunn/fzf.vim"
},
["gitsigns.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
url = "https://github.com/lewis6991/gitsigns.nvim"
},
gruvbox = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/gruvbox",
url = "https://github.com/gruvbox-community/gruvbox"
},
["hardtime.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/hardtime.nvim",
url = "https://github.com/m4xshen/hardtime.nvim"
},
["headlines.nvim"] = {
config = { "\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14headlines\frequire\0" },
load_after = {},
loaded = true,
needs_bufread = false,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/opt/headlines.nvim",
url = "https://github.com/lukas-reineke/headlines.nvim"
},
["lualine.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["nui.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/nui.nvim",
url = "https://github.com/MunifTanjim/nui.nvim"
},
["nvim-autopairs"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
url = "https://github.com/windwp/nvim-autopairs"
},
["nvim-tree.lua"] = {
config = { "\27LJ\2\n?\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\22plugins.nvim-tree\frequire\0" },
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
url = "https://github.com/nvim-tree/nvim-tree.lua"
},
["nvim-treesitter"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["nvim-web-devicons"] = {
loaded = false,
needs_bufread = false,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons",
url = "https://github.com/kyazdani42/nvim-web-devicons"
},
orgmode = {
config = { "\27LJ\2\n9\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\forgmode\frequire\0" },
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/orgmode",
url = "https://github.com/nvim-orgmode/orgmode"
},
["outline.nvim"] = {
config = { "\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20plugins.outline\frequire\0" },
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/outline.nvim",
url = "https://github.com/hedyhli/outline.nvim"
},
["packer.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
["plenary.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["rainbow-delimiters.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/rainbow-delimiters.nvim",
url = "https://github.com/HiPhish/rainbow-delimiters.nvim"
},
["telescope.nvim"] = {
config = { "\27LJ\2\n\3\0\0\6\0\16\0!6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\a\0'\4\b\0005\5\t\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\n\0'\4\v\0005\5\f\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\r\0'\4\14\0005\5\15\0B\0\5\1K\0\1\0\1\0\2\fnoremap\2\vsilent\2\29:Telescope help_tags<CR>\15<leader>fh\1\0\2\fnoremap\2\vsilent\2\27:Telescope buffers<CR>\15<leader>fb\1\0\2\fnoremap\2\vsilent\2\29:Telescope live_grep<CR>\15<leader>fg\1\0\2\fnoremap\2\vsilent\2\30:Telescope find_files<CR>\15<leader>ff\6n\20nvim_set_keymap\bapi\bvim\0" },
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
["tokyonight.nvim"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/tokyonight.nvim",
url = "https://github.com/folke/tokyonight.nvim"
},
["vim-fugitive"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/vim-fugitive",
url = "https://github.com/tpope/vim-fugitive"
},
["vim-surround"] = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/vim-surround",
url = "https://github.com/tpope/vim-surround"
},
vimtex = {
loaded = true,
path = "/Users/thomasnaderer/.local/share/nvim/site/pack/packer/start/vimtex",
url = "https://github.com/lervag/vimtex"
}
}
time([[Defining packer_plugins]], false)
-- Config for: orgmode
time([[Config for orgmode]], true)
try_loadstring("\27LJ\2\n9\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\forgmode\frequire\0", "config", "orgmode")
time([[Config for orgmode]], false)
-- Config for: outline.nvim
time([[Config for outline.nvim]], true)
try_loadstring("\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20plugins.outline\frequire\0", "config", "outline.nvim")
time([[Config for outline.nvim]], false)
-- Config for: auto-save.nvim
time([[Config for auto-save.nvim]], true)
try_loadstring("\27LJ\2\n;\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\14auto-save\frequire\0", "config", "auto-save.nvim")
time([[Config for auto-save.nvim]], false)
-- Config for: telescope.nvim
time([[Config for telescope.nvim]], true)
try_loadstring("\27LJ\2\n\3\0\0\6\0\16\0!6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\a\0'\4\b\0005\5\t\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\n\0'\4\v\0005\5\f\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\r\0'\4\14\0005\5\15\0B\0\5\1K\0\1\0\1\0\2\fnoremap\2\vsilent\2\29:Telescope help_tags<CR>\15<leader>fh\1\0\2\fnoremap\2\vsilent\2\27:Telescope buffers<CR>\15<leader>fb\1\0\2\fnoremap\2\vsilent\2\29:Telescope live_grep<CR>\15<leader>fg\1\0\2\fnoremap\2\vsilent\2\30:Telescope find_files<CR>\15<leader>ff\6n\20nvim_set_keymap\bapi\bvim\0", "config", "telescope.nvim")
time([[Config for telescope.nvim]], false)
-- Config for: nvim-tree.lua
time([[Config for nvim-tree.lua]], true)
try_loadstring("\27LJ\2\n?\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\22plugins.nvim-tree\frequire\0", "config", "nvim-tree.lua")
time([[Config for nvim-tree.lua]], false)
-- Load plugins in order defined by `after`
time([[Sequenced loading]], true)
vim.cmd [[ packadd nvim-treesitter ]]
vim.cmd [[ packadd headlines.nvim ]]
-- Config for: headlines.nvim
try_loadstring("\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14headlines\frequire\0", "config", "headlines.nvim")
time([[Sequenced loading]], false)
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

36
scripts/start-kanata.sh Executable file
View File

@@ -0,0 +1,36 @@
#!/bin/bash
# Kanata Startup Script
# Starts Kanata with proper configuration and logging
KANATA_CONFIG="$HOME/Library/Application Support/kanata/kanata.kbd"
LOG_FILE="$HOME/Library/Logs/kanata.log"
# Create log directory if it doesn't exist
mkdir -p "$(dirname "$LOG_FILE")"
# Check if kanata is already running
if pgrep -x "kanata" > /dev/null; then
echo "$(date): Kanata is already running" >> "$LOG_FILE"
exit 0
fi
# Check if config file exists
if [ ! -f "$KANATA_CONFIG" ]; then
echo "$(date): ERROR - Kanata config file not found: $KANATA_CONFIG" >> "$LOG_FILE"
exit 1
fi
# Start Kanata
echo "$(date): Starting Kanata with config: $KANATA_CONFIG" >> "$LOG_FILE"
# Run kanata in the background with logging
/opt/homebrew/bin/kanata -c "$KANATA_CONFIG" >> "$LOG_FILE" 2>&1 &
# Get the PID
KANATA_PID=$!
# Save PID for easier management
echo "$KANATA_PID" > "$HOME/.kanata.pid"
echo "$(date): Kanata started with PID: $KANATA_PID" >> "$LOG_FILE"

32
scripts/stop-kanata.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/bash
# Kanata Stop Script
# Stops Kanata process gracefully
LOG_FILE="$HOME/Library/Logs/kanata.log"
PID_FILE="$HOME/.kanata.pid"
# Check if PID file exists
if [ -f "$PID_FILE" ]; then
KANATA_PID=$(cat "$PID_FILE")
# Check if process is running
if ps -p "$KANATA_PID" > /dev/null 2>&1; then
echo "$(date): Stopping Kanata (PID: $KANATA_PID)" >> "$LOG_FILE"
sudo kill "$KANATA_PID"
rm -f "$PID_FILE"
echo "$(date): Kanata stopped" >> "$LOG_FILE"
else
echo "$(date): Kanata process not found (PID: $KANATA_PID)" >> "$LOG_FILE"
rm -f "$PID_FILE"
fi
else
# Try to kill any running kanata process
if pgrep -x "kanata" > /dev/null; then
echo "$(date): Killing all Kanata processes" >> "$LOG_FILE"
sudo pkill kanata
echo "$(date): Kanata processes killed" >> "$LOG_FILE"
else
echo "$(date): No Kanata processes found" >> "$LOG_FILE"
fi
fi

View File

@@ -1,20 +1,47 @@
#!/bin/zsh
set -euo pipefail
# Auto-remount TN shares when network changes.
# Credentials should be stored in macOS Keychain (connect once via Finder, remember password).
# User Configuration
USER="AK127132" # Insert Your AK Number
PASSWORD="enzfcj4bhg!mwr8BUH" # Insert your password
SERVER="140.78.8.107"
SHARE1="TNGROUP/tn-group/ipec"
SHARE2="TNHOME/home/AK127132"
# Mount TNGROUP
echo "Mounting TNGROUP..."
osascript -e "try" -e "mount volume \"smb://$USER:$PASSWORD@$SERVER/$SHARE1\"" -e "end try"
# Use URL-encoded path segments for spaces if needed.
SHARE1_URL="smb://$SERVER/TNGROUP/tn-group/ipec"
SHARE2_URL="smb://$SERVER/TNHOME/home/AK127132"
# Mount TNHOME
echo "Mounting TNHOME..."
osascript -e "try" -e "mount volume \"smb://$USER:$PASSWORD@$SERVER/$SHARE2\"" -e "end try"
# Expected mount points under /Volumes (adjust if your Finder mount names differ)
MOUNT1="/Volumes/ipec"
MOUNT2="/Volumes/AK127132"
echo "Mounting complete."
log() {
echo "[tnmount] $*"
}
is_mounted() {
local mountpoint="$1"
mount | grep -q " on ${mountpoint} "
}
mount_if_missing() {
local mountpoint="$1"
local url="$2"
if is_mounted "$mountpoint"; then
log "Already mounted: $mountpoint"
else
log "Mounting: $url"
open "$url"
fi
}
# Skip when server is unreachable (offsite/no VPN), try again on next interval.
if ! nc -zw2 "$SERVER" 445 >/dev/null 2>&1; then
log "Server $SERVER:445 not reachable; skipping"
exit 0
fi
mount_if_missing "$MOUNT1" "$SHARE1_URL"
mount_if_missing "$MOUNT2" "$SHARE2_URL"
log "Done"

32
starship.toml Normal file
View File

@@ -0,0 +1,32 @@
# Starship - Standard sane config
# Path: ~/.config/starship.toml
format = "$directory$git_branch$git_status$line_break$character"
add_newline = true
[character]
success_symbol = "[](bold green)"
error_symbol = "[](bold red)"
[directory]
truncation_length = 3
truncation_symbol = "…/"
style = "bold blue"
[git_branch]
symbol = " "
style = "bold purple"
[git_status]
style = "red"
format = '([$all_status$ahead_behind]($style) )'
conflicted = "=${count}"
ahead = "⇡${count}"
behind = "⇣${count}"
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
untracked = "?${count}"
stashed = "*${count}"
modified = "!${count}"
staged = "+${count}"
renamed = ">${count}"
deleted = "x${count}"

View File

@@ -0,0 +1,22 @@
# This tmux statusbar config was created by tmuxline.vim
# on Sun, 01 Mar 2026
# Reworked: Tokyo Night Moon — readable, transparent, not loud
set -g status-justify "centre"
set -g status "on"
set -g status-left-style "none"
set -g message-command-style "fg=#c8d3f5,bg=default"
set -g status-right-style "none"
set -g pane-active-border-style "fg=#82aaff"
set -g status-style "none,bg=default"
set -g message-style "fg=#c8d3f5,bg=default"
set -g pane-border-style "fg=#3b4261"
set -g status-right-length "100"
set -g status-left-length "100"
setw -g window-status-activity-style "underscore,fg=#444a73,bg=default"
setw -g window-status-separator ""
setw -g window-status-style "none,fg=#636da6,bg=default"
set -g status-left "#[fg=#636da6,bg=default] #S #[fg=default,bg=default,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=default,bg=default,nobold,nounderscore,noitalics]#[fg=#636da6,bg=default] %H:%M #[fg=default,bg=default,nobold,nounderscore,noitalics]#[fg=#636da6,bg=default] %d %b "
setw -g window-status-format "#[fg=default,bg=default,nobold,nounderscore,noitalics]#[fg=#636da6,bg=default] #I #W#{?window_zoomed_flag, [Z],} #[fg=default,bg=default,nobold,nounderscore,noitalics]"
setw -g window-status-current-format "#[fg=#2d3f76,bg=default,nobold,nounderscore,noitalics]#[fg=#c8d3f5,bg=#2d3f76] #I #W#{?window_zoomed_flag, [Z],} #[fg=#2d3f76,bg=default,nobold,nounderscore,noitalics]"

View File

@@ -1,5 +1,22 @@
# This tmux statusbar config was created by tmuxline.vim
# on Sun, 01 Mar 2026
# Reworked: Catppuccin Mocha — readable, transparent, not loud
set -g status-style fg=colour#3b4261,bg=colour#1e2030
set -g window-status-current-style fg=colour#828bb8,bg=colour#1e2030
set -g status-justify "centre"
set -g status "on"
set -g status-left-style "none"
set -g message-command-style "fg=#cdd6f4,bg=default"
set -g status-right-style "none"
set -g pane-active-border-style "fg=#cba6f7"
set -g status-style "none,bg=default"
set -g message-style "fg=#cdd6f4,bg=default"
set -g pane-border-style "fg=#313244"
set -g status-right-length "100"
set -g status-left-length "100"
setw -g window-status-activity-style "none,fg=#45475a,bg=default"
setw -g window-status-separator ""
setw -g window-status-style "none,fg=#6c7086,bg=default"
set -g status-left "#[fg=#6c7086,bg=default] #S #[fg=default,bg=default,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=default,bg=default,nobold,nounderscore,noitalics]#[fg=#6c7086,bg=default] %H:%M #[fg=default,bg=default,nobold,nounderscore,noitalics]#[fg=#6c7086,bg=default] %d %b "
setw -g window-status-format "#[fg=default,bg=default,nobold,nounderscore,noitalics]#[fg=#6c7086,bg=default] #I #W#{?window_zoomed_flag, 󰁌,} #[fg=default,bg=default,nobold,nounderscore,noitalics]"
setw -g window-status-current-format "#[fg=#313244,bg=default,nobold,nounderscore,noitalics]#[fg=#b4befe,bg=#313244] #I #W#{?window_zoomed_flag, 󰁌,} #[fg=#313244,bg=default,nobold,nounderscore,noitalics]"

View File

@@ -37,8 +37,9 @@ set -g renumber-windows on
# Increase scrollback buffer size
set -g history-limit 10000
# Enable automatic renaming for nerd font icons
set-option -g allow-rename on
# Let tmux auto-name unnamed windows, but keep manual names sticky.
# `allow-rename` lets shells/apps overwrite names via terminal title escapes.
set-option -g allow-rename off
set-option -g automatic-rename on
# Reduce escape time for neovim
@@ -134,6 +135,7 @@ set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'sainnhe/tmux-fzf'
set -g @plugin 'laktak/extrakto'
set -g @plugin 'wfxr/tmux-fzf-url'
@@ -190,6 +192,9 @@ source-file ~/.config/tmux/themes/tmuxline.tmux
# KEYBINDINGS
# ============================================
# Clear stale bindings removed from older config revisions
unbind /
# Three-way toggle: top → bottom → hidden → top
bind b if -F "#{==:#{status},off}" \
"set -g status on ; set -g status-position top ; set -g pane-border-status top" \
@@ -200,5 +205,8 @@ bind b if -F "#{==:#{status},off}" \
# Reload config
bind r source-file ~/.config/tmux/tmux.conf \; display-message "󰑓 Config reloaded!"
# SessionX in window mode on demand
bind O run-shell 'old_mode="$(tmux show-option -gqv @sessionx-window-mode)"; tmux set-option -g @sessionx-window-mode on; ~/.config/tmux/plugins/tmux-sessionx/sessionx.tmux >/dev/null 2>&1; ~/.config/tmux/plugins/tmux-sessionx/scripts/sessionx.sh; if [ -n "$old_mode" ]; then tmux set-option -g @sessionx-window-mode "$old_mode"; else tmux set-option -gu @sessionx-window-mode; fi; ~/.config/tmux/plugins/tmux-sessionx/sessionx.tmux >/dev/null 2>&1'
# Initialize TMUX plugin manager (keep this line at the very bottom)
run '~/.config/tmux/plugins/tpm/tpm'

View File

@@ -100,6 +100,7 @@ keymap = [
{ on = [ "c", "d" ], run = "copy dirname", desc = "Copy the directory path" },
{ on = [ "c", "f" ], run = "copy filename", desc = "Copy the filename" },
{ on = [ "c", "n" ], run = "copy name_without_ext", desc = "Copy the filename without extension" },
{ on = [ "c", "y" ], run = "shell --block 'osascript -e \"on run argv\" -e \"set fList to {}\" -e \"repeat with p in argv\" -e \"set end of fList to (POSIX file p as alias)\" -e \"end repeat\" -e \"tell application \\\"Finder\\\" to set the clipboard to fList\" -e \"end run\" \"$@\" || printf \"%s\\n\" \"$@\" | pbcopy' --confirm", desc = "Copy selected files to Finder clipboard (fallback: copy paths as text)" },
# Filter
{ on = "f", run = "filter --smart", desc = "Filter files" },
@@ -122,8 +123,18 @@ keymap = [
{ on = [ "<C-y>", "o", "w" ], run = "shell 'cp -r \"$@\" ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Work/' --confirm", desc = "Copy to Obsidian/Work" },
# Copy to JKU dirs
{ on = [ "<C-y>", "j", "b" ], run = "shell 'cp -r \"$@\" ~/Documents/JKU/Studium/BWL/' --confirm", desc = "Copy to JKU/BWL" },
{ on = [ "<C-y>", "j", "w" ], run = "shell 'cp -r \"$@\" ~/Documents/JKU/Work/' --confirm", desc = "Copy to JKU/Work" },
{ on = [ "<C-y>", "j", "b" ], run = "shell 'cp -r \"$@\" ~/Documents/JKU/Studies/BWL/' --confirm", desc = "Copy to JKU/Studies/BWL" },
{ on = [ "<C-y>", "j", "r" ], run = "shell 'cp -r \"$@\" ~/Documents/JKU/Research/' --confirm", desc = "Copy to JKU/Research" },
{ on = [ "<C-y>", "j", "s" ], run = "shell 'cp -r \"$@\" ~/Documents/JKU/Studies/' --confirm", desc = "Copy to JKU/Studies" },
{ on = [ "<C-y>", "j", "a" ], run = "shell 'cp -r \"$@\" ~/Documents/JKU/Admin/' --confirm", desc = "Copy to JKU/Admin" },
# Copy to Projects
{ on = [ "<C-y>", "p", "<Space>" ], run = "shell 'cp -r \"$@\" ~/Projects/' --confirm", desc = "Copy to Projects" },
{ on = [ "<C-y>", "p", "a" ], run = "shell 'cp -r \"$@\" ~/Projects/adonis-ag/' --confirm", desc = "Copy to Projects/adonis-ag" },
{ on = [ "<C-y>", "p", "c" ], run = "shell 'cp -r \"$@\" ~/Projects/crypto/' --confirm", desc = "Copy to Projects/crypto" },
{ on = [ "<C-y>", "p", "j" ], run = "shell 'cp -r \"$@\" ~/Projects/jku/' --confirm", desc = "Copy to Projects/jku" },
{ on = [ "<C-y>", "p", "n" ], run = "shell 'cp -r \"$@\" ~/Projects/naderer.digital/' --confirm", desc = "Copy to Projects/naderer.digital" },
{ on = [ "<C-y>", "p", "p" ], run = "shell 'cp -r \"$@\" ~/Projects/personal/' --confirm", desc = "Copy to Projects/personal" },
# Move to destination (Ctrl+X)
{ on = [ "<C-x>", "h" ], run = "shell 'mv \"$@\" ~/' --confirm", desc = "Move to home" },
@@ -143,8 +154,18 @@ keymap = [
{ on = [ "<C-x>", "o", "w" ], run = "shell 'mv \"$@\" ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Work/' --confirm", desc = "Move to Obsidian/Work" },
# Move to JKU dirs
{ on = [ "<C-x>", "j", "b" ], run = "shell 'mv \"$@\" ~/Documents/JKU/Studium/BWL/' --confirm", desc = "Move to JKU/BWL" },
{ on = [ "<C-x>", "j", "w" ], run = "shell 'mv \"$@\" ~/Documents/JKU/Work/' --confirm", desc = "Move to JKU/Work" },
{ on = [ "<C-x>", "j", "b" ], run = "shell 'mv \"$@\" ~/Documents/JKU/Studies/BWL/' --confirm", desc = "Move to JKU/Studies/BWL" },
{ on = [ "<C-x>", "j", "r" ], run = "shell 'mv \"$@\" ~/Documents/JKU/Research/' --confirm", desc = "Move to JKU/Research" },
{ on = [ "<C-x>", "j", "s" ], run = "shell 'mv \"$@\" ~/Documents/JKU/Studies/' --confirm", desc = "Move to JKU/Studies" },
{ on = [ "<C-x>", "j", "a" ], run = "shell 'mv \"$@\" ~/Documents/JKU/Admin/' --confirm", desc = "Move to JKU/Admin" },
# Move to Projects
{ on = [ "<C-x>", "p", "<Space>" ], run = "shell 'mv \"$@\" ~/Projects/' --confirm", desc = "Move to Projects" },
{ on = [ "<C-x>", "p", "a" ], run = "shell 'mv \"$@\" ~/Projects/adonis-ag/' --confirm", desc = "Move to Projects/adonis-ag" },
{ on = [ "<C-x>", "p", "c" ], run = "shell 'mv \"$@\" ~/Projects/crypto/' --confirm", desc = "Move to Projects/crypto" },
{ on = [ "<C-x>", "p", "j" ], run = "shell 'mv \"$@\" ~/Projects/jku/' --confirm", desc = "Move to Projects/jku" },
{ on = [ "<C-x>", "p", "n" ], run = "shell 'mv \"$@\" ~/Projects/naderer.digital/' --confirm", desc = "Move to Projects/naderer.digital" },
{ on = [ "<C-x>", "p", "p" ], run = "shell 'mv \"$@\" ~/Projects/personal/' --confirm", desc = "Move to Projects/personal" },
# Find
{ on = "/", run = "find --smart", desc = "Find next file" },
@@ -176,39 +197,50 @@ keymap = [
{ on = [ "g", "D" ], run = "cd ~/Documents", desc = "Goto ~/Documents" },
{ on = [ "g", "t" , "<Space>" ], run = "cd ~/Torrents", desc = "Goto ~/Torrents" },
{ on = [ "g", "t", "b"], run = "cd ~/Torrents/Books", desc = "Goto Books" },
{ on = [ "g", "t", "a"], run = "cd ~/Torrents/Audiobooks", desc = "Goto Books" },
{ on = [ "g", "t", "a"], run = "cd ~/Torrents/Audiobooks", desc = "Goto Audiobooks" },
{ on = [ "g", "t", "s"], run = "cd ~/Torrents/Shows", desc = "Goto Shows" },
{ on = [ "g", "t", "m"], run = "cd ~/Torrents/Movies", desc = "Goto Shows" },
{ on = [ "g", "t", "m"], run = "cd ~/Torrents/Movies", desc = "Goto Movies" },
{ on = [ "g", "s" ], run = "cd \"~/Music/Sheet Music/Alto Saxophone\"", desc = "Goto Sax Sheets" },
#Studies
{ on = [ "g", "j", "b" ], run = "cd \"~/Documents/JKU/Studium/BWL\"", desc = "Goto BWL" },
{ on = [ "g", "j", "w" ], run = "cd \"~/Documents/JKU/Work\"", desc = "Goto Work(local)" },
{ on = [ "g", "w" ], run = "cd \"~/Pictures/Wallpapers\"", desc = "Goto Wallpapers)" },
{ on = [ "g", "o", "p" ], run = "cd ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Private/", desc = "Goto Obsidian/Privat" },
#JKU
{ on = [ "g", "j", "<Space>" ], run = "cd ~/Documents/JKU", desc = "Goto JKU" },
{ on = [ "g", "j", "b" ], run = "cd \"~/Documents/JKU/Studies/BWL\"", desc = "Goto JKU/Studies/BWL" },
{ on = [ "g", "j", "r" ], run = "cd \"~/Documents/JKU/Research\"", desc = "Goto JKU/Research" },
{ on = [ "g", "j", "s" ], run = "cd \"~/Documents/JKU/Studies\"", desc = "Goto JKU/Studies" },
{ on = [ "g", "j", "a" ], run = "cd \"~/Documents/JKU/Admin\"", desc = "Goto JKU/Admin" },
{ on = [ "g", "w" ], run = "cd \"~/Pictures/Wallpapers\"", desc = "Goto Wallpapers" },
{ on = [ "g", "o", "p" ], run = "cd ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Private/", desc = "Goto Obsidian/Private" },
{ on = [ "g", "o", "d" ], run = "shell --confirm 'touch $(date +%F).md'", desc = "Create Daily Note in Obsidian" },
{ on = [ "g", "o", "w" ], run = "cd ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Work/", desc = "Goto Obsidian/Work" },
#Work Related - Network drive
#Local Projects
{ on = [ "g", "p", "<Space>" ], run = "cd ~/Projects", desc = "Goto Projects" },
{ on = [ "g", "p", "a" ], run = "cd ~/Projects/adonis-ag", desc = "Goto Projects/adonis-ag" },
{ on = [ "g", "p", "c" ], run = "cd ~/Projects/crypto", desc = "Goto Projects/crypto" },
{ on = [ "g", "p", "j" ], run = "cd ~/Projects/jku", desc = "Goto Projects/jku" },
{ on = [ "g", "p", "n" ], run = "cd ~/Projects/naderer.digital", desc = "Goto Projects/naderer.digital" },
{ on = [ "g", "p", "p" ], run = "cd ~/Projects/personal", desc = "Goto Projects/personal" },
#Network drive - Personal (TNHOME)
{ on = [ "g", "a", "<Space>" ], run = "cd /Volumes/TNHOME/home/AK127132", desc = "Goto AK127132" },
{ on = [ "g", "a", "z" ], run = "cd /Volumes/TNHOME/home/AK127132/Zeitaufzeichnung", desc = "Goto Zeitaufzeichnung" },
#Network drive - IPPD/Internal
{ on = [ "g", "i", "<Space>" ], run = "cd /Volumes/ipec/intern", desc = "Goto Intern" },
{ on = [ "g", "p", "b" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P63_Berndorf Band\"", desc = "Goto Berndorf" },
{ on = [ "g", "p", "s" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P42b_Senoplast SenoSmartCoex\"", desc = "Goto SenoSmartCoex" },
{ on = [ "g", "p", "m" , "<Space>" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL\"", desc = "Goto MoNoQEL" },
{ on = [ "g", "p", "m" , "p" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/02 Projektmanagemant/\"", desc = "Goto MoNoQEL/Projektmanagement" },
{ on = [ "g", "p", "m" , "1" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP1 Projektmanagement und Dissemination/\"", desc = "Goto MoNoQEL/AP1 Projektmanagemant & Dissemination" },
{ on = [ "g", "p", "m" , "2" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP2 Grundlagenforschung zu optischen Kontrastmechanismen/\"", desc = "Goto MoNoQEL/AP2 Grundlagenforschung" },
{ on = [ "g", "p", "m" , "3" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP3 Optimierung hochauflösender OCT-Messtechnik/\"", desc = "Goto MoNoQEL/AP3 OCT-Optimierung" },
{ on = [ "g", "p", "m" , "4" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP4 KI-gestützte Bildanalyse und Defektklassifizierung/\"", desc = "Goto MoNoQEL/AP4 Bildanalyse" },
{ on = [ "g", "p", "m" , "5" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP5 Prozessintegration und Inline-Demonstration/\"", desc = "Goto MoNoQEL/AP5 Prozessintegration" },
{ on = [ "g", "p", "m" , "6" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP6 Systemvalidierung und Technologietransfer/\"", desc = "Goto MoNoQEL/AP6 Systemvalidierung" },
{ on = [ "g", "i", "p" ], run = "cd \"/Volumes/ipec/intern/05_Institutsbesprechungen/Projektstatusberichte\"", desc = "Goto Projektstatusberichte" },
{ on = [ "g", "i", "p", "b" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P63_Berndorf Band\"", desc = "Goto Berndorf" },
{ on = [ "g", "i", "p", "s" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P42b_Senoplast SenoSmartCoex\"", desc = "Goto SenoSmartCoex" },
{ on = [ "g", "i", "p", "m", "<Space>" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL\"", desc = "Goto MoNoQEL" },
{ on = [ "g", "i", "p", "m", "p" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/02 Projektmanagemant/\"", desc = "Goto MoNoQEL/Projektmanagement" },
{ on = [ "g", "i", "p", "m", "1" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP1 Projektmanagement und Dissemination/\"", desc = "Goto MoNoQEL/AP1 Projektmanagemant & Dissemination" },
{ on = [ "g", "i", "p", "m", "2" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP2 Grundlagenforschung zu optischen Kontrastmechanismen/\"", desc = "Goto MoNoQEL/AP2 Grundlagenforschung" },
{ on = [ "g", "i", "p", "m", "3" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP3 Optimierung hochauflösender OCT-Messtechnik/\"", desc = "Goto MoNoQEL/AP3 OCT-Optimierung" },
{ on = [ "g", "i", "p", "m", "4" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP4 KI-gestützte Bildanalyse und Defektklassifizierung/\"", desc = "Goto MoNoQEL/AP4 Bildanalyse" },
{ on = [ "g", "i", "p", "m", "5" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP5 Prozessintegration und Inline-Demonstration/\"", desc = "Goto MoNoQEL/AP5 Prozessintegration" },
{ on = [ "g", "i", "p", "m", "6" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P62_MoNoQEL/03 Arbeitspakete/AP6 Systemvalidierung und Technologietransfer/\"", desc = "Goto MoNoQEL/AP6 Systemvalidierung" },
{ on = [ "g", "i", "b", "p" ], run = "cd \"/Volumes/ipec/intern/05_Institutsbesprechungen/Projektstatusberichte\"", desc = "Goto Projektstatusberichte" },
{ on = [ "g", "i", "b" ], run = "cd \"/Volumes/ipec/intern/05_Institutsbesprechungen\"", desc = "Goto Institutsbesprechungen" },
{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Jump interactively" },
{ on = "R", run = "open -a Finder .", desc = "Open current folder in Finder" },
{ on = "E", run = "shell 'open -a Finder \"$(pwd)\"'", desc = "Open current folder in Finder" },
# Tabs
{ on = "t", run = "tab_create --current", desc = "Create a new tab with CWD" },
@@ -444,6 +476,36 @@ on = "l"
run = "plugin smart-enter"
desc = "Enter the child directory, or open the file"
[[mgr.prepend_keymap]]
on = "T"
run = "plugin toggle-pane --args max-preview"
desc = "Maximize preview pane"
[[mgr.prepend_keymap]]
on = "I"
run = "plugin toggle-pane --args min-preview"
desc = "Hide/show preview pane"
[[mgr.prepend_keymap]]
on = ["c", "m"]
run = "plugin chmod"
desc = "Chmod selected files"
[[mgr.prepend_keymap]]
on = [",", "d"]
run = "plugin diff"
desc = "Diff selected files"
[[mgr.prepend_keymap]]
on = "+"
run = "plugin zoom 1"
desc = "Zoom into image preview"
[[mgr.prepend_keymap]]
on = "-"
run = "plugin zoom -1"
desc = "Zoom out of image preview"
[[plugin.prepend_fetchers]]
id = "git"

View File

@@ -13,5 +13,25 @@ use = "yazi-rs/plugins:smart-enter"
rev = "b886025"
hash = "56fdabc96fc1f4d53c96eb884b02a5be"
[[plugin.deps]]
use = "yazi-rs/plugins:zoom"
rev = "1962818"
hash = ""
[[plugin.deps]]
use = "yazi-rs/plugins:toggle-pane"
rev = "1962818"
hash = ""
[[plugin.deps]]
use = "yazi-rs/plugins:chmod"
rev = "1962818"
hash = ""
[[plugin.deps]]
use = "yazi-rs/plugins:diff"
rev = "1962818"
hash = ""
[flavor]
deps = []

View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2023 yazi-rs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,32 +0,0 @@
# full-border.yazi
Add a full border to Yazi to make it look fancier.
![full-border](https://github.com/yazi-rs/plugins/assets/17523360/ef81b560-2465-4d36-abf2-5d21dcb7b987)
## Installation
```sh
ya pkg add yazi-rs/plugins:full-border
```
## Usage
Add this to your `init.lua` to enable the plugin:
```lua
require("full-border"):setup()
```
Or you can customize the border type:
```lua
require("full-border"):setup {
-- Available values: ui.Border.PLAIN, ui.Border.ROUNDED
type = ui.Border.ROUNDED,
}
```
## License
This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.

View File

@@ -1,43 +0,0 @@
--- @since 25.2.26
local function setup(_, opts)
local type = opts and opts.type or ui.Border.ROUNDED
local old_build = Tab.build
Tab.build = function(self, ...)
local bar = function(c, x, y)
if x <= 0 or x == self._area.w - 1 or th.mgr.border_symbol ~= "" then
return ui.Bar(ui.Edge.TOP)
end
return ui.Bar(ui.Edge.TOP)
:area(
ui.Rect { x = x, y = math.max(0, y), w = ya.clamp(0, self._area.w - x, 1), h = math.min(1, self._area.h) }
)
:symbol(c)
end
local c = self._chunks
self._chunks = {
c[1]:pad(ui.Pad.y(1)),
c[2]:pad(ui.Pad(1, c[3].w > 0 and 0 or 1, 1, c[1].w > 0 and 0 or 1)),
c[3]:pad(ui.Pad.y(1)),
}
local style = th.mgr.border_style
self._base = ya.list_merge(self._base or {}, {
ui.Border(ui.Edge.ALL):area(self._area):type(type):style(style),
ui.Bar(ui.Edge.RIGHT):area(self._chunks[1]):style(style),
ui.Bar(ui.Edge.LEFT):area(self._chunks[3]):style(style),
bar("", c[1].right - 1, c[1].y),
bar("", c[1].right - 1, c[1].bottom - 1),
bar("", c[2].right, c[2].y),
bar("", c[2].right, c[2].bottom - 1),
})
old_build(self, ...)
end
end
return { setup = setup }

View File

@@ -0,0 +1,771 @@
[app]
overall = { bg = "#1e1e2e" }
[mgr]
cwd = { fg = "#94e2d5" }
find_keyword = { fg = "#f9e2af", italic = true }
find_position = { fg = "#f5c2e7", bg = "reset", italic = true }
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
marker_selected = { fg = "#b4befe", bg = "#b4befe" }
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
count_selected = { fg = "#1e1e2e", bg = "#b4befe" }
border_symbol = "│"
border_style = { fg = "#7f849c" }
syntect_theme = "~/.config/yazi/Catppuccin-mocha.tmTheme"
[tabs]
active = { fg = "#1e1e2e", bg = "#cdd6f4", bold = true }
inactive = { fg = "#cdd6f4", bg = "#45475a" }
[mode]
normal_main = { fg = "#1e1e2e", bg = "#b4befe", bold = true }
normal_alt = { fg = "#b4befe", bg = "#313244"}
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
select_alt = { fg = "#a6e3a1", bg = "#313244"}
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
unset_alt = { fg = "#f2cdcd", bg = "#313244"}
[indicator]
parent = { fg = "#1e1e2e", bg = "#cdd6f4" }
current = { fg = "#1e1e2e", bg = "#b4befe" }
preview = { fg = "#1e1e2e", bg = "#cdd6f4" }
[status]
sep_left = { open = "", close = "" }
sep_right = { open = "", close = "" }
progress_label = { fg = "#ffffff", bold = true }
progress_normal = { fg = "#a6e3a1", bg = "#45475a" }
progress_error = { fg = "#f9e2af", bg = "#f38ba8" }
perm_type = { fg = "#89b4fa" }
perm_read = { fg = "#f9e2af" }
perm_write = { fg = "#f38ba8" }
perm_exec = { fg = "#a6e3a1" }
perm_sep = { fg = "#7f849c" }
[input]
border = { fg = "#b4befe" }
title = {}
value = {}
selected = { reversed = true }
[pick]
border = { fg = "#b4befe" }
active = { fg = "#f5c2e7" }
inactive = {}
[confirm]
border = { fg = "#b4befe" }
title = { fg = "#b4befe" }
body = {}
list = {}
btn_yes = { reversed = true }
btn_no = {}
[cmp]
border = { fg = "#b4befe" }
[tasks]
border = { fg = "#b4befe" }
title = {}
hovered = { fg = "#f5c2e7", bold = true }
[which]
mask = { bg = "#313244" }
cand = { fg = "#94e2d5" }
rest = { fg = "#9399b2" }
desc = { fg = "#f5c2e7" }
separator = "  "
separator_style = { fg = "#585b70" }
[help]
on = { fg = "#94e2d5" }
run = { fg = "#f5c2e7" }
desc = { fg = "#9399b2" }
hovered = { bg = "#585b70", bold = true }
footer = { fg = "#cdd6f4", bg = "#45475a" }
[notify]
title_info = { fg = "#94e2d5" }
title_warn = { fg = "#f9e2af" }
title_error = { fg = "#f38ba8" }
[filetype]
rules = [
# Media
{ mime = "image/*", fg = "#94e2d5" },
{ mime = "{audio,video}/*", fg = "#f9e2af" },
# Archives
{ mime = "application/*zip", fg = "#f5c2e7" },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
# Documents
{ mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
# Virtual file system
{ mime = "vfs/{absent,stale}", fg = "#45475a" },
# Special file
{ url = "*", is = "orphan", bg = "#f38ba8" },
{ url = "*", is = "exec" , fg = "#a6e3a1" },
# Dummy file
{ url = "*", is = "dummy", bg = "#f38ba8" },
{ url = "*/", is = "dummy", bg = "#f38ba8" },
# Fallback
{ url = "*/", fg = "#b4befe" },
]
[spot]
border = { fg = "#b4befe" }
title = { fg = "#b4befe" }
tbl_cell = { fg = "#b4befe", reversed = true }
tbl_col = { bold = true }
[icon]
files = [
{ name = "kritadisplayrc", text = "", fg = "#cba6f7" },
{ name = ".gtkrc-2.0", text = "", fg = "#f5e0dc" },
{ name = "bspwmrc", text = "", fg = "#313244" },
{ name = "webpack", text = "󰜫", fg = "#74c7ec" },
{ name = "tsconfig.json", text = "", fg = "#74c7ec" },
{ name = ".vimrc", text = "", fg = "#a6e3a1" },
{ name = "gemfile$", text = "", fg = "#313244" },
{ name = "xmobarrc", text = "", fg = "#f38ba8" },
{ name = "avif", text = "", fg = "#7f849c" },
{ name = "fp-info-cache", text = "", fg = "#f5e0dc" },
{ name = ".zshrc", text = "", fg = "#a6e3a1" },
{ name = "robots.txt", text = "󰚩", fg = "#6c7086" },
{ name = "dockerfile", text = "󰡨", fg = "#89b4fa" },
{ name = ".git-blame-ignore-revs", text = "", fg = "#fab387" },
{ name = ".nvmrc", text = "", fg = "#a6e3a1" },
{ name = "hyprpaper.conf", text = "", fg = "#74c7ec" },
{ name = ".prettierignore", text = "", fg = "#89b4fa" },
{ name = "rakefile", text = "", fg = "#313244" },
{ name = "code_of_conduct", text = "", fg = "#f38ba8" },
{ name = "cmakelists.txt", text = "", fg = "#cdd6f4" },
{ name = ".env", text = "", fg = "#f9e2af" },
{ name = "copying.lesser", text = "", fg = "#f9e2af" },
{ name = "readme", text = "󰂺", fg = "#f5e0dc" },
{ name = "settings.gradle", text = "", fg = "#585b70" },
{ name = "gruntfile.coffee", text = "", fg = "#fab387" },
{ name = ".eslintignore", text = "", fg = "#585b70" },
{ name = "kalgebrarc", text = "", fg = "#89b4fa" },
{ name = "kdenliverc", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.cjs", text = "", fg = "#89b4fa" },
{ name = "cantorrc", text = "", fg = "#89b4fa" },
{ name = "rmd", text = "", fg = "#74c7ec" },
{ name = "vagrantfile$", text = "", fg = "#6c7086" },
{ name = ".Xauthority", text = "", fg = "#fab387" },
{ name = "prettier.config.ts", text = "", fg = "#89b4fa" },
{ name = "node_modules", text = "", fg = "#f38ba8" },
{ name = ".prettierrc.toml", text = "", fg = "#89b4fa" },
{ name = "build.zig.zon", text = "", fg = "#fab387" },
{ name = ".ds_store", text = "", fg = "#45475a" },
{ name = "PKGBUILD", text = "", fg = "#89b4fa" },
{ name = ".prettierrc", text = "", fg = "#89b4fa" },
{ name = ".bash_profile", text = "", fg = "#a6e3a1" },
{ name = ".npmignore", text = "", fg = "#f38ba8" },
{ name = ".mailmap", text = "󰊢", fg = "#fab387" },
{ name = ".codespellrc", text = "󰓆", fg = "#a6e3a1" },
{ name = "svelte.config.js", text = "", fg = "#fab387" },
{ name = "eslint.config.ts", text = "", fg = "#585b70" },
{ name = "config", text = "", fg = "#7f849c" },
{ name = ".gitlab-ci.yml", text = "", fg = "#fab387" },
{ name = ".gitconfig", text = "", fg = "#fab387" },
{ name = "_gvimrc", text = "", fg = "#a6e3a1" },
{ name = ".xinitrc", text = "", fg = "#fab387" },
{ name = "checkhealth", text = "󰓙", fg = "#89b4fa" },
{ name = "sxhkdrc", text = "", fg = "#313244" },
{ name = ".bashrc", text = "", fg = "#a6e3a1" },
{ name = "tailwind.config.mjs", text = "󱏿", fg = "#74c7ec" },
{ name = "ext_typoscript_setup.txt", text = "", fg = "#fab387" },
{ name = "commitlint.config.ts", text = "󰜘", fg = "#94e2d5" },
{ name = "py.typed", text = "", fg = "#f9e2af" },
{ name = ".nanorc", text = "", fg = "#313244" },
{ name = "commit_editmsg", text = "", fg = "#fab387" },
{ name = ".luaurc", text = "", fg = "#89b4fa" },
{ name = "fp-lib-table", text = "", fg = "#f5e0dc" },
{ name = ".editorconfig", text = "", fg = "#f5e0dc" },
{ name = "justfile", text = "", fg = "#7f849c" },
{ name = "kdeglobals", text = "", fg = "#89b4fa" },
{ name = "license.md", text = "", fg = "#f9e2af" },
{ name = ".clang-format", text = "", fg = "#7f849c" },
{ name = "docker-compose.yaml", text = "󰡨", fg = "#89b4fa" },
{ name = "copying", text = "", fg = "#f9e2af" },
{ name = "go.mod", text = "", fg = "#74c7ec" },
{ name = "lxqt.conf", text = "", fg = "#89b4fa" },
{ name = "brewfile", text = "", fg = "#313244" },
{ name = "gulpfile.coffee", text = "", fg = "#f38ba8" },
{ name = ".dockerignore", text = "󰡨", fg = "#89b4fa" },
{ name = ".settings.json", text = "", fg = "#6c7086" },
{ name = "tailwind.config.js", text = "󱏿", fg = "#74c7ec" },
{ name = ".clang-tidy", text = "", fg = "#7f849c" },
{ name = ".gvimrc", text = "", fg = "#a6e3a1" },
{ name = "nuxt.config.cjs", text = "󱄆", fg = "#a6e3a1" },
{ name = "xsettingsd.conf", text = "", fg = "#fab387" },
{ name = "nuxt.config.js", text = "󱄆", fg = "#a6e3a1" },
{ name = "eslint.config.cjs", text = "", fg = "#585b70" },
{ name = "sym-lib-table", text = "", fg = "#f5e0dc" },
{ name = ".condarc", text = "", fg = "#a6e3a1" },
{ name = "xmonad.hs", text = "", fg = "#f38ba8" },
{ name = "tmux.conf", text = "", fg = "#a6e3a1" },
{ name = "xmobarrc.hs", text = "", fg = "#f38ba8" },
{ name = ".prettierrc.yaml", text = "", fg = "#89b4fa" },
{ name = ".pre-commit-config.yaml", text = "󰛢", fg = "#fab387" },
{ name = "i3blocks.conf", text = "", fg = "#f5e0dc" },
{ name = "xorg.conf", text = "", fg = "#fab387" },
{ name = ".zshenv", text = "", fg = "#a6e3a1" },
{ name = "vlcrc", text = "󰕼", fg = "#fab387" },
{ name = "license", text = "", fg = "#f9e2af" },
{ name = "unlicense", text = "", fg = "#f9e2af" },
{ name = "tmux.conf.local", text = "", fg = "#a6e3a1" },
{ name = ".SRCINFO", text = "󰣇", fg = "#89b4fa" },
{ name = "tailwind.config.ts", text = "󱏿", fg = "#74c7ec" },
{ name = "security.md", text = "󰒃", fg = "#bac2de" },
{ name = "security", text = "󰒃", fg = "#bac2de" },
{ name = ".eslintrc", text = "", fg = "#585b70" },
{ name = "gradle.properties", text = "", fg = "#585b70" },
{ name = "code_of_conduct.md", text = "", fg = "#f38ba8" },
{ name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#fab387" },
{ name = "PrusaSlicer.ini", text = "", fg = "#fab387" },
{ name = "procfile", text = "", fg = "#7f849c" },
{ name = "mpv.conf", text = "", fg = "#1e1e2e" },
{ name = ".prettierrc.json5", text = "", fg = "#89b4fa" },
{ name = "i3status.conf", text = "", fg = "#f5e0dc" },
{ name = "prettier.config.mjs", text = "", fg = "#89b4fa" },
{ name = ".pylintrc", text = "", fg = "#7f849c" },
{ name = "prettier.config.cjs", text = "", fg = "#89b4fa" },
{ name = ".luacheckrc", text = "", fg = "#89b4fa" },
{ name = "containerfile", text = "󰡨", fg = "#89b4fa" },
{ name = "eslint.config.mjs", text = "", fg = "#585b70" },
{ name = "gruntfile.js", text = "", fg = "#fab387" },
{ name = "bun.lockb", text = "", fg = "#f5e0dc" },
{ name = ".gitattributes", text = "", fg = "#fab387" },
{ name = "gruntfile.ts", text = "", fg = "#fab387" },
{ name = "pom.xml", text = "", fg = "#313244" },
{ name = "favicon.ico", text = "", fg = "#f9e2af" },
{ name = "package-lock.json", text = "", fg = "#313244" },
{ name = "build", text = "", fg = "#a6e3a1" },
{ name = "package.json", text = "", fg = "#f38ba8" },
{ name = "nuxt.config.ts", text = "󱄆", fg = "#a6e3a1" },
{ name = "nuxt.config.mjs", text = "󱄆", fg = "#a6e3a1" },
{ name = "mix.lock", text = "", fg = "#7f849c" },
{ name = "makefile", text = "", fg = "#7f849c" },
{ name = "gulpfile.js", text = "", fg = "#f38ba8" },
{ name = "lxde-rc.xml", text = "", fg = "#9399b2" },
{ name = "kritarc", text = "", fg = "#cba6f7" },
{ name = "gtkrc", text = "", fg = "#f5e0dc" },
{ name = "ionic.config.json", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.mjs", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.yml", text = "", fg = "#89b4fa" },
{ name = ".npmrc", text = "", fg = "#f38ba8" },
{ name = "weston.ini", text = "", fg = "#f9e2af" },
{ name = "gulpfile.babel.js", text = "", fg = "#f38ba8" },
{ name = "i18n.config.ts", text = "󰗊", fg = "#7f849c" },
{ name = "commitlint.config.js", text = "󰜘", fg = "#94e2d5" },
{ name = ".gitmodules", text = "", fg = "#fab387" },
{ name = "gradle-wrapper.properties", text = "", fg = "#585b70" },
{ name = "hypridle.conf", text = "", fg = "#74c7ec" },
{ name = "vercel.json", text = "▲", fg = "#f5e0dc" },
{ name = "hyprlock.conf", text = "", fg = "#74c7ec" },
{ name = "go.sum", text = "", fg = "#74c7ec" },
{ name = "kdenlive-layoutsrc", text = "", fg = "#89b4fa" },
{ name = "gruntfile.babel.js", text = "", fg = "#fab387" },
{ name = "compose.yml", text = "󰡨", fg = "#89b4fa" },
{ name = "i18n.config.js", text = "󰗊", fg = "#7f849c" },
{ name = "readme.md", text = "󰂺", fg = "#f5e0dc" },
{ name = "gradlew", text = "", fg = "#585b70" },
{ name = "go.work", text = "", fg = "#74c7ec" },
{ name = "gulpfile.ts", text = "", fg = "#f38ba8" },
{ name = "gnumakefile", text = "", fg = "#7f849c" },
{ name = "FreeCAD.conf", text = "", fg = "#f38ba8" },
{ name = "compose.yaml", text = "󰡨", fg = "#89b4fa" },
{ name = "eslint.config.js", text = "", fg = "#585b70" },
{ name = "hyprland.conf", text = "", fg = "#74c7ec" },
{ name = "docker-compose.yml", text = "󰡨", fg = "#89b4fa" },
{ name = "groovy", text = "", fg = "#585b70" },
{ name = "QtProject.conf", text = "", fg = "#a6e3a1" },
{ name = "platformio.ini", text = "", fg = "#fab387" },
{ name = "build.gradle", text = "", fg = "#585b70" },
{ name = ".nuxtrc", text = "󱄆", fg = "#a6e3a1" },
{ name = "_vimrc", text = "", fg = "#a6e3a1" },
{ name = ".zprofile", text = "", fg = "#a6e3a1" },
{ name = ".xsession", text = "", fg = "#fab387" },
{ name = "prettier.config.js", text = "", fg = "#89b4fa" },
{ name = ".babelrc", text = "", fg = "#f9e2af" },
{ name = "workspace", text = "", fg = "#a6e3a1" },
{ name = ".prettierrc.json", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.js", text = "", fg = "#89b4fa" },
{ name = ".Xresources", text = "", fg = "#fab387" },
{ name = ".gitignore", text = "", fg = "#fab387" },
{ name = ".justfile", text = "", fg = "#7f849c" },
]
exts = [
{ name = "otf", text = "", fg = "#f5e0dc" },
{ name = "import", text = "", fg = "#f5e0dc" },
{ name = "krz", text = "", fg = "#cba6f7" },
{ name = "adb", text = "", fg = "#94e2d5" },
{ name = "ttf", text = "", fg = "#f5e0dc" },
{ name = "webpack", text = "󰜫", fg = "#74c7ec" },
{ name = "dart", text = "", fg = "#585b70" },
{ name = "vsh", text = "", fg = "#7f849c" },
{ name = "doc", text = "󰈬", fg = "#585b70" },
{ name = "zsh", text = "", fg = "#a6e3a1" },
{ name = "ex", text = "", fg = "#7f849c" },
{ name = "hx", text = "", fg = "#fab387" },
{ name = "fodt", text = "", fg = "#74c7ec" },
{ name = "mojo", text = "", fg = "#fab387" },
{ name = "templ", text = "", fg = "#f9e2af" },
{ name = "nix", text = "", fg = "#74c7ec" },
{ name = "cshtml", text = "󱦗", fg = "#585b70" },
{ name = "fish", text = "", fg = "#585b70" },
{ name = "ply", text = "󰆧", fg = "#7f849c" },
{ name = "sldprt", text = "󰻫", fg = "#a6e3a1" },
{ name = "gemspec", text = "", fg = "#313244" },
{ name = "mjs", text = "", fg = "#f9e2af" },
{ name = "csh", text = "", fg = "#585b70" },
{ name = "cmake", text = "", fg = "#cdd6f4" },
{ name = "fodp", text = "", fg = "#fab387" },
{ name = "vi", text = "", fg = "#f9e2af" },
{ name = "msf", text = "", fg = "#89b4fa" },
{ name = "blp", text = "󰺾", fg = "#89b4fa" },
{ name = "less", text = "", fg = "#45475a" },
{ name = "sh", text = "", fg = "#585b70" },
{ name = "odg", text = "", fg = "#f9e2af" },
{ name = "mint", text = "󰌪", fg = "#a6e3a1" },
{ name = "dll", text = "", fg = "#11111b" },
{ name = "odf", text = "", fg = "#f38ba8" },
{ name = "sqlite3", text = "", fg = "#f5e0dc" },
{ name = "Dockerfile", text = "󰡨", fg = "#89b4fa" },
{ name = "ksh", text = "", fg = "#585b70" },
{ name = "rmd", text = "", fg = "#74c7ec" },
{ name = "wv", text = "", fg = "#74c7ec" },
{ name = "xml", text = "󰗀", fg = "#fab387" },
{ name = "markdown", text = "", fg = "#cdd6f4" },
{ name = "qml", text = "", fg = "#a6e3a1" },
{ name = "3gp", text = "", fg = "#fab387" },
{ name = "pxi", text = "", fg = "#89b4fa" },
{ name = "flac", text = "", fg = "#6c7086" },
{ name = "gpr", text = "", fg = "#cba6f7" },
{ name = "huff", text = "󰡘", fg = "#585b70" },
{ name = "json", text = "", fg = "#f9e2af" },
{ name = "gv", text = "󱁉", fg = "#585b70" },
{ name = "bmp", text = "", fg = "#7f849c" },
{ name = "lock", text = "", fg = "#bac2de" },
{ name = "sha384", text = "󰕥", fg = "#7f849c" },
{ name = "cobol", text = "⚙", fg = "#585b70" },
{ name = "cob", text = "⚙", fg = "#585b70" },
{ name = "java", text = "", fg = "#f38ba8" },
{ name = "cjs", text = "", fg = "#f9e2af" },
{ name = "qm", text = "", fg = "#74c7ec" },
{ name = "ebuild", text = "", fg = "#45475a" },
{ name = "mustache", text = "", fg = "#fab387" },
{ name = "terminal", text = "", fg = "#a6e3a1" },
{ name = "ejs", text = "", fg = "#f9e2af" },
{ name = "brep", text = "󰻫", fg = "#a6e3a1" },
{ name = "rar", text = "", fg = "#fab387" },
{ name = "gradle", text = "", fg = "#585b70" },
{ name = "gnumakefile", text = "", fg = "#7f849c" },
{ name = "applescript", text = "", fg = "#7f849c" },
{ name = "elm", text = "", fg = "#74c7ec" },
{ name = "ebook", text = "", fg = "#fab387" },
{ name = "kra", text = "", fg = "#cba6f7" },
{ name = "tf", text = "", fg = "#585b70" },
{ name = "xls", text = "󰈛", fg = "#585b70" },
{ name = "fnl", text = "", fg = "#f9e2af" },
{ name = "kdbx", text = "", fg = "#a6e3a1" },
{ name = "kicad_pcb", text = "", fg = "#f5e0dc" },
{ name = "cfg", text = "", fg = "#7f849c" },
{ name = "ape", text = "", fg = "#74c7ec" },
{ name = "org", text = "", fg = "#94e2d5" },
{ name = "yml", text = "", fg = "#7f849c" },
{ name = "swift", text = "", fg = "#fab387" },
{ name = "eln", text = "", fg = "#7f849c" },
{ name = "sol", text = "", fg = "#74c7ec" },
{ name = "awk", text = "", fg = "#585b70" },
{ name = "7z", text = "", fg = "#fab387" },
{ name = "apl", text = "⍝", fg = "#fab387" },
{ name = "epp", text = "", fg = "#fab387" },
{ name = "app", text = "", fg = "#45475a" },
{ name = "dot", text = "󱁉", fg = "#585b70" },
{ name = "kpp", text = "", fg = "#cba6f7" },
{ name = "eot", text = "", fg = "#f5e0dc" },
{ name = "hpp", text = "", fg = "#7f849c" },
{ name = "spec.tsx", text = "", fg = "#585b70" },
{ name = "hurl", text = "", fg = "#f38ba8" },
{ name = "cxxm", text = "", fg = "#74c7ec" },
{ name = "c", text = "", fg = "#89b4fa" },
{ name = "fcmacro", text = "", fg = "#f38ba8" },
{ name = "sass", text = "", fg = "#f38ba8" },
{ name = "yaml", text = "", fg = "#7f849c" },
{ name = "xz", text = "", fg = "#fab387" },
{ name = "material", text = "󰔉", fg = "#f38ba8" },
{ name = "json5", text = "", fg = "#f9e2af" },
{ name = "signature", text = "λ", fg = "#fab387" },
{ name = "3mf", text = "󰆧", fg = "#7f849c" },
{ name = "jpg", text = "", fg = "#7f849c" },
{ name = "xpi", text = "", fg = "#fab387" },
{ name = "fcmat", text = "", fg = "#f38ba8" },
{ name = "pot", text = "", fg = "#74c7ec" },
{ name = "bin", text = "", fg = "#45475a" },
{ name = "xlsx", text = "󰈛", fg = "#585b70" },
{ name = "aac", text = "", fg = "#74c7ec" },
{ name = "kicad_sym", text = "", fg = "#f5e0dc" },
{ name = "xcstrings", text = "", fg = "#74c7ec" },
{ name = "lff", text = "", fg = "#f5e0dc" },
{ name = "xcf", text = "", fg = "#585b70" },
{ name = "azcli", text = "", fg = "#6c7086" },
{ name = "license", text = "", fg = "#f9e2af" },
{ name = "jsonc", text = "", fg = "#f9e2af" },
{ name = "xaml", text = "󰙳", fg = "#585b70" },
{ name = "md5", text = "󰕥", fg = "#7f849c" },
{ name = "xm", text = "", fg = "#74c7ec" },
{ name = "sln", text = "", fg = "#6c7086" },
{ name = "jl", text = "", fg = "#7f849c" },
{ name = "ml", text = "", fg = "#fab387" },
{ name = "http", text = "", fg = "#89b4fa" },
{ name = "x", text = "", fg = "#89b4fa" },
{ name = "wvc", text = "", fg = "#74c7ec" },
{ name = "wrz", text = "󰆧", fg = "#7f849c" },
{ name = "csproj", text = "󰪮", fg = "#585b70" },
{ name = "wrl", text = "󰆧", fg = "#7f849c" },
{ name = "wma", text = "", fg = "#74c7ec" },
{ name = "woff2", text = "", fg = "#f5e0dc" },
{ name = "woff", text = "", fg = "#f5e0dc" },
{ name = "tscn", text = "", fg = "#7f849c" },
{ name = "webmanifest", text = "", fg = "#f9e2af" },
{ name = "webm", text = "", fg = "#fab387" },
{ name = "fcbak", text = "", fg = "#f38ba8" },
{ name = "log", text = "󰌱", fg = "#cdd6f4" },
{ name = "wav", text = "", fg = "#74c7ec" },
{ name = "wasm", text = "", fg = "#585b70" },
{ name = "styl", text = "", fg = "#a6e3a1" },
{ name = "gif", text = "", fg = "#7f849c" },
{ name = "resi", text = "", fg = "#f38ba8" },
{ name = "aiff", text = "", fg = "#74c7ec" },
{ name = "sha256", text = "󰕥", fg = "#7f849c" },
{ name = "igs", text = "󰻫", fg = "#a6e3a1" },
{ name = "vsix", text = "", fg = "#6c7086" },
{ name = "vim", text = "", fg = "#a6e3a1" },
{ name = "diff", text = "", fg = "#45475a" },
{ name = "drl", text = "", fg = "#eba0ac" },
{ name = "erl", text = "", fg = "#f38ba8" },
{ name = "vhdl", text = "󰍛", fg = "#a6e3a1" },
{ name = "🔥", text = "", fg = "#fab387" },
{ name = "hrl", text = "", fg = "#f38ba8" },
{ name = "fsi", text = "", fg = "#74c7ec" },
{ name = "mm", text = "", fg = "#74c7ec" },
{ name = "bz", text = "", fg = "#fab387" },
{ name = "vh", text = "󰍛", fg = "#a6e3a1" },
{ name = "kdb", text = "", fg = "#a6e3a1" },
{ name = "gz", text = "", fg = "#fab387" },
{ name = "cpp", text = "", fg = "#74c7ec" },
{ name = "ui", text = "", fg = "#6c7086" },
{ name = "txt", text = "󰈙", fg = "#a6e3a1" },
{ name = "spec.ts", text = "", fg = "#74c7ec" },
{ name = "ccm", text = "", fg = "#f38ba8" },
{ name = "typoscript", text = "", fg = "#fab387" },
{ name = "typ", text = "", fg = "#89dceb" },
{ name = "txz", text = "", fg = "#fab387" },
{ name = "test.ts", text = "", fg = "#74c7ec" },
{ name = "tsx", text = "", fg = "#585b70" },
{ name = "mk", text = "", fg = "#7f849c" },
{ name = "webp", text = "", fg = "#7f849c" },
{ name = "opus", text = "", fg = "#6c7086" },
{ name = "bicep", text = "", fg = "#74c7ec" },
{ name = "ts", text = "", fg = "#74c7ec" },
{ name = "tres", text = "", fg = "#7f849c" },
{ name = "torrent", text = "", fg = "#94e2d5" },
{ name = "cxx", text = "", fg = "#74c7ec" },
{ name = "iso", text = "", fg = "#f2cdcd" },
{ name = "ixx", text = "", fg = "#74c7ec" },
{ name = "hxx", text = "", fg = "#7f849c" },
{ name = "gql", text = "", fg = "#f38ba8" },
{ name = "tmux", text = "", fg = "#a6e3a1" },
{ name = "ini", text = "", fg = "#7f849c" },
{ name = "m3u8", text = "󰲹", fg = "#f38ba8" },
{ name = "image", text = "", fg = "#f2cdcd" },
{ name = "tfvars", text = "", fg = "#585b70" },
{ name = "tex", text = "", fg = "#45475a" },
{ name = "cbl", text = "⚙", fg = "#585b70" },
{ name = "flc", text = "", fg = "#f5e0dc" },
{ name = "elc", text = "", fg = "#7f849c" },
{ name = "test.tsx", text = "", fg = "#585b70" },
{ name = "twig", text = "", fg = "#a6e3a1" },
{ name = "sql", text = "", fg = "#f5e0dc" },
{ name = "test.jsx", text = "", fg = "#74c7ec" },
{ name = "htm", text = "", fg = "#fab387" },
{ name = "gcode", text = "󰐫", fg = "#6c7086" },
{ name = "test.js", text = "", fg = "#f9e2af" },
{ name = "ino", text = "", fg = "#74c7ec" },
{ name = "tcl", text = "󰛓", fg = "#585b70" },
{ name = "cljs", text = "", fg = "#74c7ec" },
{ name = "tsconfig", text = "", fg = "#fab387" },
{ name = "img", text = "", fg = "#f2cdcd" },
{ name = "t", text = "", fg = "#74c7ec" },
{ name = "fcstd1", text = "", fg = "#f38ba8" },
{ name = "out", text = "", fg = "#45475a" },
{ name = "jsx", text = "", fg = "#74c7ec" },
{ name = "bash", text = "", fg = "#a6e3a1" },
{ name = "edn", text = "", fg = "#74c7ec" },
{ name = "rss", text = "", fg = "#fab387" },
{ name = "flf", text = "", fg = "#f5e0dc" },
{ name = "cache", text = "", fg = "#f5e0dc" },
{ name = "sbt", text = "", fg = "#f38ba8" },
{ name = "cppm", text = "", fg = "#74c7ec" },
{ name = "svelte", text = "", fg = "#fab387" },
{ name = "mo", text = "∞", fg = "#7f849c" },
{ name = "sv", text = "󰍛", fg = "#a6e3a1" },
{ name = "ko", text = "", fg = "#f5e0dc" },
{ name = "suo", text = "", fg = "#6c7086" },
{ name = "sldasm", text = "󰻫", fg = "#a6e3a1" },
{ name = "icalendar", text = "", fg = "#313244" },
{ name = "go", text = "", fg = "#74c7ec" },
{ name = "sublime", text = "", fg = "#fab387" },
{ name = "stl", text = "󰆧", fg = "#7f849c" },
{ name = "mobi", text = "", fg = "#fab387" },
{ name = "graphql", text = "", fg = "#f38ba8" },
{ name = "m3u", text = "󰲹", fg = "#f38ba8" },
{ name = "cpy", text = "⚙", fg = "#585b70" },
{ name = "kdenlive", text = "", fg = "#89b4fa" },
{ name = "pyo", text = "", fg = "#f9e2af" },
{ name = "po", text = "", fg = "#74c7ec" },
{ name = "scala", text = "", fg = "#f38ba8" },
{ name = "exs", text = "", fg = "#7f849c" },
{ name = "odp", text = "", fg = "#fab387" },
{ name = "dump", text = "", fg = "#f5e0dc" },
{ name = "stp", text = "󰻫", fg = "#a6e3a1" },
{ name = "step", text = "󰻫", fg = "#a6e3a1" },
{ name = "ste", text = "󰻫", fg = "#a6e3a1" },
{ name = "aif", text = "", fg = "#74c7ec" },
{ name = "strings", text = "", fg = "#74c7ec" },
{ name = "cp", text = "", fg = "#74c7ec" },
{ name = "fsscript", text = "", fg = "#74c7ec" },
{ name = "mli", text = "", fg = "#fab387" },
{ name = "bak", text = "󰁯", fg = "#7f849c" },
{ name = "ssa", text = "󰨖", fg = "#f9e2af" },
{ name = "toml", text = "", fg = "#585b70" },
{ name = "makefile", text = "", fg = "#7f849c" },
{ name = "php", text = "", fg = "#7f849c" },
{ name = "zst", text = "", fg = "#fab387" },
{ name = "spec.jsx", text = "", fg = "#74c7ec" },
{ name = "kbx", text = "󰯄", fg = "#6c7086" },
{ name = "fbx", text = "󰆧", fg = "#7f849c" },
{ name = "blend", text = "󰂫", fg = "#fab387" },
{ name = "ifc", text = "󰻫", fg = "#a6e3a1" },
{ name = "spec.js", text = "", fg = "#f9e2af" },
{ name = "so", text = "", fg = "#f5e0dc" },
{ name = "desktop", text = "", fg = "#45475a" },
{ name = "sml", text = "λ", fg = "#fab387" },
{ name = "slvs", text = "󰻫", fg = "#a6e3a1" },
{ name = "pp", text = "", fg = "#fab387" },
{ name = "ps1", text = "󰨊", fg = "#6c7086" },
{ name = "dropbox", text = "", fg = "#6c7086" },
{ name = "kicad_mod", text = "", fg = "#f5e0dc" },
{ name = "bat", text = "", fg = "#a6e3a1" },
{ name = "slim", text = "", fg = "#fab387" },
{ name = "skp", text = "󰻫", fg = "#a6e3a1" },
{ name = "css", text = "", fg = "#89b4fa" },
{ name = "xul", text = "", fg = "#fab387" },
{ name = "ige", text = "󰻫", fg = "#a6e3a1" },
{ name = "glb", text = "", fg = "#fab387" },
{ name = "ppt", text = "󰈧", fg = "#f38ba8" },
{ name = "sha512", text = "󰕥", fg = "#7f849c" },
{ name = "ics", text = "", fg = "#313244" },
{ name = "mdx", text = "", fg = "#74c7ec" },
{ name = "sha1", text = "󰕥", fg = "#7f849c" },
{ name = "f3d", text = "󰻫", fg = "#a6e3a1" },
{ name = "ass", text = "󰨖", fg = "#f9e2af" },
{ name = "godot", text = "", fg = "#7f849c" },
{ name = "ifb", text = "", fg = "#313244" },
{ name = "cson", text = "", fg = "#f9e2af" },
{ name = "lib", text = "", fg = "#11111b" },
{ name = "luac", text = "", fg = "#74c7ec" },
{ name = "heex", text = "", fg = "#7f849c" },
{ name = "scm", text = "󰘧", fg = "#f5e0dc" },
{ name = "psd1", text = "󰨊", fg = "#7f849c" },
{ name = "sc", text = "", fg = "#f38ba8" },
{ name = "scad", text = "", fg = "#f9e2af" },
{ name = "kts", text = "", fg = "#6c7086" },
{ name = "svh", text = "󰍛", fg = "#a6e3a1" },
{ name = "mts", text = "", fg = "#74c7ec" },
{ name = "nfo", text = "", fg = "#f9e2af" },
{ name = "pck", text = "", fg = "#7f849c" },
{ name = "rproj", text = "󰗆", fg = "#a6e3a1" },
{ name = "rlib", text = "", fg = "#fab387" },
{ name = "cljd", text = "", fg = "#74c7ec" },
{ name = "ods", text = "", fg = "#a6e3a1" },
{ name = "res", text = "", fg = "#f38ba8" },
{ name = "apk", text = "", fg = "#a6e3a1" },
{ name = "haml", text = "", fg = "#f5e0dc" },
{ name = "d.ts", text = "", fg = "#fab387" },
{ name = "razor", text = "󱦘", fg = "#585b70" },
{ name = "rake", text = "", fg = "#313244" },
{ name = "patch", text = "", fg = "#45475a" },
{ name = "cuh", text = "", fg = "#7f849c" },
{ name = "d", text = "", fg = "#f38ba8" },
{ name = "query", text = "", fg = "#a6e3a1" },
{ name = "psb", text = "", fg = "#74c7ec" },
{ name = "nu", text = ">", fg = "#a6e3a1" },
{ name = "mov", text = "", fg = "#fab387" },
{ name = "lrc", text = "󰨖", fg = "#f9e2af" },
{ name = "pyx", text = "", fg = "#89b4fa" },
{ name = "pyw", text = "", fg = "#89b4fa" },
{ name = "cu", text = "", fg = "#a6e3a1" },
{ name = "bazel", text = "", fg = "#a6e3a1" },
{ name = "obj", text = "󰆧", fg = "#7f849c" },
{ name = "pyi", text = "", fg = "#f9e2af" },
{ name = "pyd", text = "", fg = "#f9e2af" },
{ name = "exe", text = "", fg = "#45475a" },
{ name = "pyc", text = "", fg = "#f9e2af" },
{ name = "fctb", text = "", fg = "#f38ba8" },
{ name = "part", text = "", fg = "#94e2d5" },
{ name = "blade.php", text = "", fg = "#f38ba8" },
{ name = "git", text = "", fg = "#fab387" },
{ name = "psd", text = "", fg = "#74c7ec" },
{ name = "qss", text = "", fg = "#a6e3a1" },
{ name = "csv", text = "", fg = "#a6e3a1" },
{ name = "psm1", text = "󰨊", fg = "#7f849c" },
{ name = "dconf", text = "", fg = "#f5e0dc" },
{ name = "config.ru", text = "", fg = "#313244" },
{ name = "prisma", text = "", fg = "#6c7086" },
{ name = "conf", text = "", fg = "#7f849c" },
{ name = "clj", text = "", fg = "#a6e3a1" },
{ name = "o", text = "", fg = "#45475a" },
{ name = "mp4", text = "", fg = "#fab387" },
{ name = "cc", text = "", fg = "#f38ba8" },
{ name = "kicad_prl", text = "", fg = "#f5e0dc" },
{ name = "bz3", text = "", fg = "#fab387" },
{ name = "asc", text = "󰦝", fg = "#6c7086" },
{ name = "png", text = "", fg = "#7f849c" },
{ name = "android", text = "", fg = "#a6e3a1" },
{ name = "pm", text = "", fg = "#74c7ec" },
{ name = "h", text = "", fg = "#7f849c" },
{ name = "pls", text = "󰲹", fg = "#f38ba8" },
{ name = "ipynb", text = "", fg = "#fab387" },
{ name = "pl", text = "", fg = "#74c7ec" },
{ name = "ads", text = "", fg = "#f5e0dc" },
{ name = "sqlite", text = "", fg = "#f5e0dc" },
{ name = "pdf", text = "", fg = "#585b70" },
{ name = "pcm", text = "", fg = "#6c7086" },
{ name = "ico", text = "", fg = "#f9e2af" },
{ name = "a", text = "", fg = "#f5e0dc" },
{ name = "R", text = "󰟔", fg = "#6c7086" },
{ name = "ogg", text = "", fg = "#6c7086" },
{ name = "pxd", text = "", fg = "#89b4fa" },
{ name = "kdenlivetitle", text = "", fg = "#89b4fa" },
{ name = "jxl", text = "", fg = "#7f849c" },
{ name = "nswag", text = "", fg = "#a6e3a1" },
{ name = "nim", text = "", fg = "#f9e2af" },
{ name = "bqn", text = "⎉", fg = "#6c7086" },
{ name = "cts", text = "", fg = "#74c7ec" },
{ name = "fcparam", text = "", fg = "#f38ba8" },
{ name = "rs", text = "", fg = "#fab387" },
{ name = "mpp", text = "", fg = "#74c7ec" },
{ name = "fdmdownload", text = "", fg = "#94e2d5" },
{ name = "pptx", text = "󰈧", fg = "#f38ba8" },
{ name = "jpeg", text = "", fg = "#7f849c" },
{ name = "bib", text = "󱉟", fg = "#f9e2af" },
{ name = "vhd", text = "󰍛", fg = "#a6e3a1" },
{ name = "m", text = "", fg = "#89b4fa" },
{ name = "js", text = "", fg = "#f9e2af" },
{ name = "eex", text = "", fg = "#7f849c" },
{ name = "tbc", text = "󰛓", fg = "#585b70" },
{ name = "astro", text = "", fg = "#f38ba8" },
{ name = "sha224", text = "󰕥", fg = "#7f849c" },
{ name = "xcplayground", text = "", fg = "#fab387" },
{ name = "el", text = "", fg = "#7f849c" },
{ name = "m4v", text = "", fg = "#fab387" },
{ name = "m4a", text = "", fg = "#74c7ec" },
{ name = "cs", text = "󰌛", fg = "#585b70" },
{ name = "hs", text = "", fg = "#7f849c" },
{ name = "tgz", text = "", fg = "#fab387" },
{ name = "fs", text = "", fg = "#74c7ec" },
{ name = "luau", text = "", fg = "#89b4fa" },
{ name = "dxf", text = "󰻫", fg = "#a6e3a1" },
{ name = "download", text = "", fg = "#94e2d5" },
{ name = "cast", text = "", fg = "#fab387" },
{ name = "qrc", text = "", fg = "#a6e3a1" },
{ name = "lua", text = "", fg = "#74c7ec" },
{ name = "lhs", text = "", fg = "#7f849c" },
{ name = "md", text = "", fg = "#cdd6f4" },
{ name = "leex", text = "", fg = "#7f849c" },
{ name = "ai", text = "", fg = "#f9e2af" },
{ name = "lck", text = "", fg = "#bac2de" },
{ name = "kt", text = "", fg = "#6c7086" },
{ name = "bicepparam", text = "", fg = "#7f849c" },
{ name = "hex", text = "", fg = "#6c7086" },
{ name = "zig", text = "", fg = "#fab387" },
{ name = "bzl", text = "", fg = "#a6e3a1" },
{ name = "cljc", text = "", fg = "#a6e3a1" },
{ name = "kicad_dru", text = "", fg = "#f5e0dc" },
{ name = "fctl", text = "", fg = "#f38ba8" },
{ name = "f#", text = "", fg = "#74c7ec" },
{ name = "odt", text = "", fg = "#74c7ec" },
{ name = "conda", text = "", fg = "#a6e3a1" },
{ name = "vala", text = "", fg = "#585b70" },
{ name = "erb", text = "", fg = "#313244" },
{ name = "mp3", text = "", fg = "#74c7ec" },
{ name = "bz2", text = "", fg = "#fab387" },
{ name = "coffee", text = "", fg = "#f9e2af" },
{ name = "cr", text = "", fg = "#f5e0dc" },
{ name = "f90", text = "󱈚", fg = "#585b70" },
{ name = "jwmrc", text = "", fg = "#6c7086" },
{ name = "c++", text = "", fg = "#f38ba8" },
{ name = "fcscript", text = "", fg = "#f38ba8" },
{ name = "fods", text = "", fg = "#a6e3a1" },
{ name = "cue", text = "󰲹", fg = "#f38ba8" },
{ name = "srt", text = "󰨖", fg = "#f9e2af" },
{ name = "info", text = "", fg = "#f9e2af" },
{ name = "hh", text = "", fg = "#7f849c" },
{ name = "sig", text = "λ", fg = "#fab387" },
{ name = "html", text = "", fg = "#fab387" },
{ name = "iges", text = "󰻫", fg = "#a6e3a1" },
{ name = "kicad_wks", text = "", fg = "#f5e0dc" },
{ name = "hbs", text = "", fg = "#fab387" },
{ name = "fcstd", text = "", fg = "#f38ba8" },
{ name = "gresource", text = "", fg = "#f5e0dc" },
{ name = "sub", text = "󰨖", fg = "#f9e2af" },
{ name = "ical", text = "", fg = "#313244" },
{ name = "crdownload", text = "", fg = "#94e2d5" },
{ name = "pub", text = "󰷖", fg = "#f9e2af" },
{ name = "vue", text = "", fg = "#a6e3a1" },
{ name = "gd", text = "", fg = "#7f849c" },
{ name = "fsx", text = "", fg = "#74c7ec" },
{ name = "mkv", text = "", fg = "#fab387" },
{ name = "py", text = "", fg = "#f9e2af" },
{ name = "kicad_sch", text = "", fg = "#f5e0dc" },
{ name = "epub", text = "", fg = "#fab387" },
{ name = "env", text = "", fg = "#f9e2af" },
{ name = "magnet", text = "", fg = "#45475a" },
{ name = "elf", text = "", fg = "#45475a" },
{ name = "fodg", text = "", fg = "#f9e2af" },
{ name = "svg", text = "󰜡", fg = "#fab387" },
{ name = "dwg", text = "󰻫", fg = "#a6e3a1" },
{ name = "docx", text = "󰈬", fg = "#585b70" },
{ name = "pro", text = "", fg = "#f9e2af" },
{ name = "db", text = "", fg = "#f5e0dc" },
{ name = "rb", text = "", fg = "#313244" },
{ name = "r", text = "󰟔", fg = "#6c7086" },
{ name = "scss", text = "", fg = "#f38ba8" },
{ name = "cow", text = "󰆚", fg = "#fab387" },
{ name = "gleam", text = "", fg = "#f5c2e7" },
{ name = "v", text = "󰍛", fg = "#a6e3a1" },
{ name = "kicad_pro", text = "", fg = "#f5e0dc" },
{ name = "liquid", text = "", fg = "#a6e3a1" },
{ name = "zip", text = "", fg = "#fab387" },
]

View File

@@ -1,23 +1,17 @@
# Temporarily disable all config for testing
max_width=3000
max_height=3000
[opener]
play = [
{ run = 'open -a IINA "$@"', orphan = true, for = "unix", desc='IINA'}
]
[image]
renderer = "kitty"
renderer = "auto"
[preview]
max_width = 1000
max_height = 1000
# [mgr]
# ratio = [2, 6, 5] # left, center, right pane width ratios
max_width = 2000
max_height = 2000
[plugin]
prepend_previewers = [
{ name = "*.md", run = "glow" },
{ mime = "image/*", run = "zoom" },
]

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,92 +0,0 @@
: 1735721099:0;l
: 1735721105:0;h
: 1735721106:0;l
: 1735721117:0;y
: 1735721152:0;exec zsh
: 1735721153:0;l
: 1735721165:0;p10k configure
: 1735721180:0;.zshrc
: 1735721185:0;n .zshrc
: 1735721196:0;n .zshenv
: 1735721237:0;mv .zshrc .zshrc_backup
: 1735721238:0;l
: 1735721246:0;rm .zsh_history
: 1735721247:0;l
: 1735721248:0;ksadlfjk
: 1735721249:0;klsdfjkl
: 1735721250:0;l
: 1735721257:0;exec zsh
: 1735721258:0;l
: 1735721265:0;rm .zshrc_backup
: 1735721266:0;l
: 1735721271:0;nz
: 1735721275:0;y
: 1735721438:0;source .zshrc
: 1735721443:0;l
: 1735721451:0;exec zsh
: 1735721459:0;ne
: 1735721469:0;n .zshenv
: 1735721472:0;..
: 1735721473:0;h
: 1735721474:0;l
: 1735721479:0;n .zshenv
: 1735721569:0;source .zshenv
: 1735721573:0;exec zsh
: 1735721574:0;l
: 1735721589:0;nz
: 1735721623:0;exec zsh
: 1735721624:0;l
: 1735721635:0;nvim .zshenv
: 1735721645:0;ll
: 1735721651:0;y
: 1735721657:0;nz
: 1735721661:0;l
: 1735721680:0;source .config/zsh/.zshrc
: 1735721735:0;nz
: 1735721753:0;l
: 1735721772:0;n .zshenv
: 1735721793:0;zoxide
: 1735721797:0;nz
: 1735721896:0;n .zshenv
: 1735721941:0;l
: 1735722093:0;y
: 1735722123:0;pwd Dhamma\ Wheel.jpg
: 1735722132:0;pwd Dhamma Wheel.jpg
: 1735722134:0;l
: 1735722144:0;pwd 'Dhamma Wheel.jpg'| xclip
: 1735722150:0;pwd 'Dhamma Wheel.jpg'
: 1735722157:0;pwd
: 1735722281:0;l
: 1735722353:0;y
: 1735722410:0;l
: 1735722411:0;y
: 1735722433:0;l
: 1735722453:0;y
: 1735722572:0;l
: 1735722579:0;y
: 1735722622:0;l
: 1735722645:0;y
: 1735722671:0;l
: 1735722673:0;y
: 1735723245:0;l
: 1735723250:0;y
: 1735723410:0;l
: 1735723414:0;y
: 1735723448:0;exit
: 1735723509:0;l
: 1735723514:0;y
: 1735723558:0;l
: 1735724181:0;y
: 1735724209:0;brew list
: 1735727868:0;y
: 1735729702:0;telnet towel.blinkenlights.nl
: 1735729774:0;y
: 1735761687:0;git diff plugins.lua
: 1735761723:0;n plugins.lua
: 1735761758:0;n
: 1735761765:0;l
: 1735761774:0;n keymaps.lua
: 1735761786:0;n
: 1735761793:0;n keymaps.lua
: 1735761812:0;git commit
: 1735761828:0;git add ../../zsh/

View File

@@ -16,6 +16,9 @@ export MANPAGER="nvim +Man!"
## Use IINA CLI
export YTFZF_PLAYER="iina"
# Doom Emacs
export PATH="$HOME/.emacs.d/bin:$PATH"
# }}}
# # ~/.config/secrets/.env
@@ -23,14 +26,27 @@ for f in ~/.config/secrets/.env; do
export $(grep -v '^#' "$f" | xargs)
done
# Prompt engine toggle {{{
# 1 = Starship, 0 = Powerlevel10k
export USE_STARSHIP=1
# }}}
# Load Oh My Zsh {{{
export ZSH="$XDG_CONFIG_HOME/.oh-my-zsh" # set path to Oh My Zsh
ZSH_THEME="powerlevel10k/powerlevel10k" # set theme to Powerlevel10k BEFORE loading Oh My Zsh
if [[ "$USE_STARSHIP" == "1" ]]; then
ZSH_THEME="" # disable OMZ theme when using starship
else
ZSH_THEME="powerlevel10k/powerlevel10k"
fi
source $ZSH/oh-my-zsh.sh # load Oh My Zsh framework (plugins, completions, themes)
# }}}
# Theme and prompt {{{
if [[ "$USE_STARSHIP" == "1" ]]; then
eval "$(starship init zsh)"
else
source $XDG_CONFIG_HOME/p10k/.p10k.zsh # load Powerlevel10k configuration
fi
# }}}
# ZSH Plugins {{{
@@ -47,6 +63,17 @@ export KEYTIMEOUT=1 # make ESC faster when using vi keybindings
# }}}
# Aliases and Functions {{{
alias openclaw='/Users/thomasnaderer/.nvm/versions/node/v22.22.0/bin/node /Users/thomasnaderer/.nvm/versions/node/v22.22.0/bin/openclaw'
openclaw_tui() {
local token
token="$(jq -r '.gateway.auth.token // empty' "$HOME/.openclaw/openclaw.json" 2>/dev/null)"
if [ -z "$token" ]; then
echo "openclaw_tui: missing gateway token in ~/.openclaw/openclaw.json"
return 1
fi
OPENCLAW_GATEWAY_TOKEN="$token" openclaw tui --token "$token" "$@"
}
alias octui='openclaw_tui'
alias wfy="ssh ftp5794822\@www76.world4you.com"
alias h="cd ~" # go to home folder
alias f="open ." # open current folder in Finder
@@ -56,6 +83,7 @@ alias tni="cd /Volumes/ipec/intern" # quick cd to mounted volume intern
alias l='eza --color=always --icons -la --group-directories-first' # fancy ls with icons and sorting
alias n='nvim' # shortcut for Neovim
alias m='neomutt' # open Neomutt mail client
alias tm='tmux' # open Tmux Terminal Multiplexer
# Quick Access to Config Files
alias ne='nvim ~/.zshenv' # edit global zshenv
@@ -79,15 +107,14 @@ alias g='git' # shorthand for git
alias gs='git status' # git status
alias gc='git commit' # git commit
alias gt='git log --oneline --graph --decorate --all' # git log in graph(tree) format
alias lg='lazygit' # open Lazygit
# Docker
alias ld='lazydocker' # open Lazydocker
# Scripts
alias mnt='sh $HOME/.config/scripts/tnmount.sh' # run tnmount.sh script
# Quick access to notes
alias nt='nvim ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Privat/TODO.md' # open TODO list
alias ne='nvim ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Privat/Einkaufsliste.md' # open shopping list
alias nb='nvim ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Privat/Persönliches/Bucketlists/2025.md' # open 2025 bucket list
# Custom Functions
# Start yazi with "y", and when you quit yazi, your shell will "cd" to the folder you navigated to in yazi
function y() {
@@ -103,10 +130,6 @@ function y() {
}
# }}}
# iTerm2 shell integration {{{
source $XDG_CONFIG_HOME/iterm2/.iterm2_shell_integration.zsh # load iTerm2 shell integration (enables iTerm2 features)
# }}}
# Conda initialize {{{
# export PATH="/opt/homebrew/anaconda3/bin:$PATH" # commented out by conda initialize
# >>> conda initialize >>>
@@ -129,3 +152,12 @@ export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
# fzf + fd integration
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
# fzf shell integration (keybindings + completion)
eval "$(fzf --zsh)"