Compare commits
10 Commits
58cbde4ce4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8a20d620a | ||
|
|
61b1e3d2a9 | ||
|
|
82fc23530d | ||
|
|
2229f7741b | ||
|
|
6d691fd94e | ||
|
|
2be5018eaf | ||
|
|
5767108c56 | ||
|
|
a9b83a5aff | ||
|
|
28fc598f33 | ||
|
|
6e03fe4eda |
58
.gitignore
vendored
Normal file
58
.gitignore
vendored
Normal 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
|
||||
@@ -675,6 +675,25 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "p",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"right_command",
|
||||
"right_control",
|
||||
"right_shift",
|
||||
"right_option"
|
||||
]
|
||||
}
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "page_down"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
@@ -731,25 +750,6 @@
|
||||
"key_code": "end"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "p",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"right_command",
|
||||
"right_control",
|
||||
"right_shift",
|
||||
"right_option"
|
||||
]
|
||||
}
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "page_down"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -770,9 +770,9 @@
|
||||
}
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
{
|
||||
"mouse_key": {
|
||||
"x": -345
|
||||
"x": -750
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -793,7 +793,7 @@
|
||||
"to": [
|
||||
{
|
||||
"mouse_key": {
|
||||
"y": 345
|
||||
"y": 750
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -814,7 +814,7 @@
|
||||
"to": [
|
||||
{
|
||||
"mouse_key": {
|
||||
"y": -345
|
||||
"y": -750
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -835,7 +835,7 @@
|
||||
"to": [
|
||||
{
|
||||
"mouse_key": {
|
||||
"x": 345
|
||||
"x": 750
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1152,29 +1152,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "a",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"left_command",
|
||||
"right_command",
|
||||
"right_control",
|
||||
"right_shift",
|
||||
"right_option"
|
||||
]
|
||||
}
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "up_arrow",
|
||||
"modifiers": [
|
||||
"left_control"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
@@ -1268,28 +1245,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "z",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"right_command",
|
||||
"right_control",
|
||||
"right_shift",
|
||||
"right_option"
|
||||
]
|
||||
}
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "z",
|
||||
"modifiers": [
|
||||
"left_control"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
@@ -1402,6 +1357,26 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"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": {
|
||||
@@ -1437,7 +1412,7 @@
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -a 'iTerm'"
|
||||
"shell_command": "open -a 'kitty'"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1461,12 +1436,13 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "t",
|
||||
"key_code": "s",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"left_command",
|
||||
"right_command",
|
||||
"right_control",
|
||||
"right_shift",
|
||||
@@ -1476,10 +1452,10 @@
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -a 'Visual Studio Code'"
|
||||
"shell_command": "open -a Spotify"
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
@@ -1496,7 +1472,7 @@
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -a 'Typora'"
|
||||
"shell_command": "open -a Transmission"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1522,7 +1498,26 @@
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "d",
|
||||
"key_code": "a",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"right_command",
|
||||
"right_control",
|
||||
"right_shift",
|
||||
"right_option"
|
||||
]
|
||||
}
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -a 'Alfred'"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "a",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"left_command",
|
||||
@@ -1535,7 +1530,7 @@
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -a 'Dictionary'"
|
||||
"shell_command": "open -a 'Mail'"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1554,10 +1549,30 @@
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -b com.runningwithcrayons.Alfred-3"
|
||||
"shell_command": "open -a 'Zen Browser'"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"key_code": "z",
|
||||
"modifiers": {
|
||||
"mandatory": [
|
||||
"right_command",
|
||||
"right_control",
|
||||
"right_shift",
|
||||
"right_option"
|
||||
]
|
||||
}
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -a 'zoom.us'"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
@@ -1629,7 +1644,7 @@
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"shell_command": "open -a 'Google Chrome'"
|
||||
"shell_command": "open -a 'ChatGPT'"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"profiles": [
|
||||
{
|
||||
"name": "Default profile",
|
||||
"selected": true,
|
||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
{
|
||||
"profiles": [
|
||||
{
|
||||
"complex_modifications": {
|
||||
"rules": [
|
||||
{
|
||||
"description": "Left ctrl + hjkl to arrow keys Vim",
|
||||
"manipulators": [
|
||||
{
|
||||
"from": {
|
||||
"key_code": "h",
|
||||
"modifiers": {
|
||||
"mandatory": ["left_control"],
|
||||
"optional": ["any"]
|
||||
}
|
||||
},
|
||||
"to": [{ "key_code": "left_arrow" }],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"key_code": "j",
|
||||
"modifiers": {
|
||||
"mandatory": ["left_control"],
|
||||
"optional": ["any"]
|
||||
}
|
||||
},
|
||||
"to": [{ "key_code": "down_arrow" }],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"key_code": "k",
|
||||
"modifiers": {
|
||||
"mandatory": ["left_control"],
|
||||
"optional": ["any"]
|
||||
}
|
||||
},
|
||||
"to": [{ "key_code": "up_arrow" }],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"key_code": "l",
|
||||
"modifiers": {
|
||||
"mandatory": ["left_control"],
|
||||
"optional": ["any"]
|
||||
}
|
||||
},
|
||||
"to": [{ "key_code": "right_arrow" }],
|
||||
"type": "basic"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"devices": [
|
||||
{
|
||||
"identifiers": { "is_keyboard": true },
|
||||
"simple_modifications": [
|
||||
{
|
||||
"from": { "key_code": "caps_lock" },
|
||||
"to": [{ "key_code": "escape" }]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifiers": {
|
||||
"is_keyboard": true,
|
||||
"product_id": 620,
|
||||
"vendor_id": 76
|
||||
},
|
||||
"simple_modifications": [
|
||||
{
|
||||
"from": { "key_code": "caps_lock" },
|
||||
"to": [{ "key_code": "escape" }]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "Default profile",
|
||||
"selected": true,
|
||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,47 +1,80 @@
|
||||
background #3b3c35
|
||||
foreground #fdfff1
|
||||
# vim:ft=kitty
|
||||
|
||||
cursor #fdfff1
|
||||
cursor_text_color #000000
|
||||
selection_foreground #3b3c35
|
||||
selection_background #fdfff1
|
||||
## name: Catppuccin-Mocha
|
||||
## author: Pocco81 (https://github.com/Pocco81)
|
||||
## license: MIT
|
||||
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
|
||||
## blurb: Soothing pastel theme for the high-spirited!
|
||||
|
||||
# dull black
|
||||
color0 #3b3c35
|
||||
# light black
|
||||
color8 #6e7066
|
||||
|
||||
# dull red
|
||||
color1 #f82570
|
||||
# light red
|
||||
color9 #f82570
|
||||
|
||||
# dull green
|
||||
color2 #a6e12d
|
||||
# light green
|
||||
color10 #a6e12d
|
||||
# The basic colors
|
||||
foreground #CDD6F4
|
||||
background #1E1E2E
|
||||
selection_foreground #1E1E2E
|
||||
selection_background #F5E0DC
|
||||
|
||||
# Cursor colors
|
||||
cursor #F5E0DC
|
||||
cursor_text_color #1E1E2E
|
||||
|
||||
# URL underline color when hovering with mouse
|
||||
url_color #F5E0DC
|
||||
|
||||
# Kitty window border colors
|
||||
active_border_color #B4BEFE
|
||||
inactive_border_color #6C7086
|
||||
bell_border_color #F9E2AF
|
||||
|
||||
# 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 #e4db73
|
||||
# light yellow
|
||||
color11 #e4db73
|
||||
color3 #F9E2AF
|
||||
color11 #F9E2AF
|
||||
|
||||
# blue
|
||||
color4 #fc961f
|
||||
# light blue
|
||||
color12 #fc961f
|
||||
color4 #89B4FA
|
||||
color12 #89B4FA
|
||||
|
||||
# magenta
|
||||
color5 #ae81ff
|
||||
# light magenta
|
||||
color13 #ae81ff
|
||||
color5 #F5C2E7
|
||||
color13 #F5C2E7
|
||||
|
||||
# cyan
|
||||
color6 #66d9ee
|
||||
# light cyan
|
||||
color14 #66d9ee
|
||||
color6 #94E2D5
|
||||
color14 #94E2D5
|
||||
|
||||
# dull white
|
||||
color7 #fdfff1
|
||||
# bright white
|
||||
color15 #fdfff1
|
||||
# white
|
||||
color7 #BAC2DE
|
||||
color15 #A6ADC8
|
||||
|
||||
@@ -30,7 +30,7 @@ map ctrl+shift+u input_unicode_character
|
||||
map ctrl+home resize_window reset
|
||||
|
||||
# Text Selection & Search
|
||||
map ctrl+shift+f show_scrollback
|
||||
map ctrl+shift+o show_scrollback
|
||||
map ctrl+shift+h show_last_command_output
|
||||
map cmd+f launch --type=overlay --stdin-source=@screen_scrollback /usr/bin/less +G -R
|
||||
|
||||
@@ -40,6 +40,13 @@ map cmd+minus change_font_size all -2.0
|
||||
map cmd+0 change_font_size all 0
|
||||
|
||||
# Background Opacity
|
||||
# Fast opacity controls
|
||||
map cmd+alt+up set_background_opacity +0.05
|
||||
map cmd+alt+down set_background_opacity -0.05
|
||||
map cmd+alt+t remote_control set-background-opacity --toggle 0.85
|
||||
map cmd+alt+backspace set_background_opacity default
|
||||
|
||||
# Prefix-based opacity controls (existing)
|
||||
map ctrl+shift+a>m set_background_opacity +0.1
|
||||
map ctrl+shift+a>l set_background_opacity -0.1
|
||||
map ctrl+shift+a>1 set_background_opacity 1
|
||||
@@ -57,4 +64,3 @@ map ctrl+shift+g show_last_command_output
|
||||
|
||||
# German character mappings
|
||||
map alt+s send_text all ß
|
||||
|
||||
|
||||
@@ -1,22 +1,41 @@
|
||||
# Font Configuration
|
||||
font_family MesloGS 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
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
font_size 15
|
||||
|
||||
# Font rendering improvements
|
||||
disable_ligatures never
|
||||
font_features MesloGSNF +calt +liga
|
||||
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
|
||||
@@ -41,7 +60,7 @@ background_blur 3
|
||||
|
||||
# macOS Specific
|
||||
hide_window_decorations yes
|
||||
macos_titlebar_color background
|
||||
# macos_titlebar_color background
|
||||
macos_option_as_alt yes
|
||||
macos_window_resizable yes
|
||||
|
||||
@@ -58,7 +77,7 @@ include ./keymap.conf
|
||||
macos_show_window_title_in none
|
||||
|
||||
# BEGIN_KITTY_THEME
|
||||
# Monokai Classic
|
||||
# Catppuccin-Mocha
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
|
||||
@@ -76,21 +95,19 @@ touch_scroll_multiplier 1.0
|
||||
|
||||
# URL Handling
|
||||
detect_urls yes
|
||||
url_color #0087bd
|
||||
# url_color #0087bd
|
||||
url_style curly
|
||||
open_url_with default
|
||||
copy_on_select no
|
||||
strip_trailing_spaces never
|
||||
|
||||
# Selection
|
||||
rectangle_select_modifiers ctrl+alt
|
||||
terminal_select_modifiers shift
|
||||
select_by_word_characters @-./_~?&=%+#
|
||||
|
||||
# Advanced Features
|
||||
allow_hyperlinks yes
|
||||
shell_integration enabled
|
||||
term xterm-256color
|
||||
# term xterm-256color
|
||||
# Fixed backspace mapping
|
||||
map backspace send_text all \x7f
|
||||
|
||||
@@ -110,7 +127,6 @@ clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-
|
||||
clipboard_max_size 64
|
||||
|
||||
# Notifications
|
||||
enable_notifications yes
|
||||
notify_on_cmd_finish invisible 30.0
|
||||
|
||||
# Ask for confirmation on program close (Cmd+Q) but not on tab close
|
||||
|
||||
56
kitty/theme.conf
Normal file
56
kitty/theme.conf
Normal 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
19
kitty/toggle_blur.sh
Executable 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
|
||||
@@ -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
|
||||
})
|
||||
})
|
||||
@@ -5,7 +5,7 @@ local opt = { noremap = true }
|
||||
local opts = { noremap = true, silent = true }
|
||||
local term_opts = { silent = true }
|
||||
|
||||
local keymap = vim.api.nvim_set_keymap
|
||||
local keymap = vim.keymap.set
|
||||
|
||||
-- {{{ Leader Key (moved to init.lua)
|
||||
-- vim.g.mapleader = " " -- set <Space> as leader key
|
||||
@@ -13,15 +13,15 @@ local keymap = vim.api.nvim_set_keymap
|
||||
-- }}}
|
||||
|
||||
-- {{{ Basic Mappings
|
||||
keymap("n", ";", ":", opt) -- remap ; to :
|
||||
keymap("n", ":", ";", opt) -- remap : to ;
|
||||
keymap("n", ";", ":", opt) -- remap ; to :
|
||||
keymap("n", ":", ";", opt) -- remap : to ;
|
||||
|
||||
keymap("n", "<leader>w", ":w<cr>", opts) -- save
|
||||
keymap("n", "<leader>q", ":q<cr>", opts) -- quit
|
||||
keymap("n", "<leader>wq", ":wq<cr>", opts) -- save and quit
|
||||
keymap("n", "<leader>W", ":w!<cr>", opts) -- force save
|
||||
keymap("n", "<leader>Q", ":q!<cr>", opts) -- force quit
|
||||
keymap("n", "<leader>WQ", ":wq!<cr>", opts) -- force save and quit
|
||||
keymap("n", "<leader>w", ":w<cr>", opts) -- save current buffer
|
||||
keymap("n", "<leader>q", ":confirm qall<cr>", opts) -- quit Neovim (prompt on unsaved changes)
|
||||
keymap("n", "<leader>wq", ":wall | qa<cr>", opts) -- save all writable buffers and quit
|
||||
keymap("n", "<leader>W", ":w!<cr>", opts) -- force save current buffer
|
||||
keymap("n", "<leader>Q", ":qall!<cr>", opts) -- force quit Neovim
|
||||
keymap("n", "<leader>WQ", ":wall! | qa!<cr>", opts) -- force save all and quit
|
||||
-- }}}
|
||||
|
||||
-- {{{ Navigation
|
||||
@@ -29,125 +29,122 @@ keymap("n", "j", "gj", opts) -- move visually down wrapped lines
|
||||
keymap("n", "k", "gk", opts) -- move visually up wrapped lines
|
||||
|
||||
-- Keep arrow key navigation (non-standard but you requested it)
|
||||
keymap("n", "<Left>", "<C-w>h", opts) -- move to left window
|
||||
keymap("n", "<Right>", "<C-w>l", opts) -- move to right window
|
||||
keymap("n", "<Up>", "<C-w>k", opts) -- move to upper window
|
||||
keymap("n", "<Down>", "<C-w>j", opts) -- move to lower window
|
||||
keymap("n", "<Left>", "<C-w>h", opts) -- move to left window
|
||||
keymap("n", "<Right>", "<C-w>l", opts) -- move to right window
|
||||
keymap("n", "<Up>", "<C-w>k", opts) -- move to upper window
|
||||
keymap("n", "<Down>", "<C-w>j", opts) -- move to lower window
|
||||
|
||||
keymap("n", "<s-l>", ":bnext<cr>", opts) -- next buffer
|
||||
keymap("n", "<s-l>", ":bnext<cr>", opts) -- next buffer
|
||||
keymap("n", "<s-h>", ":bprevious<cr>", opts) -- previous buffer
|
||||
-- }}}
|
||||
|
||||
-- {{{ Window Splitting
|
||||
keymap("n", "<leader>sv", ":vsplit<cr>", opts) -- split vertically
|
||||
keymap("n", "<leader>sh", ":split<cr>", opts) -- split horizontally
|
||||
keymap("n", "<leader>sc", ":close<cr>", opts) -- close current split
|
||||
keymap("n", "<leader>so", ":only<cr>", opts) -- close all other splits
|
||||
keymap("n", "<leader>sh", ":split<cr>", opts) -- split horizontally
|
||||
keymap("n", "<leader>sc", ":close<cr>", opts) -- close current split
|
||||
keymap("n", "<leader>so", ":only<cr>", opts) -- close all other splits
|
||||
-- }}}
|
||||
|
||||
-- {{{ Window Resizing
|
||||
keymap("n", "<leader>+", ":resize +5<cr>", opts) -- increase window height
|
||||
keymap("n", "<leader>-", ":resize -5<cr>", opts) -- decrease window height
|
||||
keymap("n", "<leader>+", ":resize +5<cr>", opts) -- increase window height
|
||||
keymap("n", "<leader>-", ":resize -5<cr>", opts) -- decrease window height
|
||||
keymap("n", "<leader><", ":vertical resize -5<cr>", opts) -- decrease window width
|
||||
keymap("n", "<leader>>", ":vertical resize +5<cr>", opts) -- increase window width
|
||||
keymap("n", "<leader>=", "<C-w>=", opts) -- equalize window sizes
|
||||
keymap("n", "<leader>=", "<C-w>=", opts) -- equalize window sizes
|
||||
-- }}}
|
||||
|
||||
-- {{{ Visual Mode / Text, Clipboard
|
||||
keymap("v", ">", ">gv", opts) -- indent right, stay in visual mode
|
||||
keymap("v", "<", "<gv", opts) -- indent left, stay in visual mode
|
||||
keymap("v", ">", ">gv", opts) -- indent right, stay in visual mode
|
||||
keymap("v", "<", "<gv", opts) -- indent left, stay in visual mode
|
||||
|
||||
keymap("x", "<s-j>", ":move '>+1<CR>gv-gv", opts) -- move selected block down
|
||||
keymap("x", "<s-k>", ":move '<-2<CR>gv-gv", opts) -- move selected block up
|
||||
keymap("x", "<s-j>", ":move '>+1<CR>gv-gv", opts) -- move selected block down
|
||||
keymap("x", "<s-k>", ":move '<-2<CR>gv-gv", opts) -- move selected block up
|
||||
|
||||
keymap("n", "Q", "gq", opts) -- format paragraph
|
||||
keymap("x", "Q", "gq", opts) -- format selection
|
||||
keymap("n", "Q", "gq", opts) -- format paragraph
|
||||
keymap("x", "Q", "gq", opts) -- format selection
|
||||
|
||||
keymap("x", "Y", '"+y', opt) -- yank to system clipboard
|
||||
keymap("x", "Y", '"+y', opt) -- yank to system clipboard
|
||||
|
||||
keymap("n", "<space><space>", [[:%s/\<<c-r>=expand("<cword>")<cr>\>/]], opt) -- replace word under cursor
|
||||
-- }}}
|
||||
|
||||
-- {{{ Editing / Behavior
|
||||
keymap("n", "q", "<nop>", opts) -- disable q (record macro)
|
||||
keymap("n", "qq", "q", opts) -- if you really want to record macro use qq
|
||||
keymap("n", "q", "<nop>", opts) -- disable q (record macro)
|
||||
keymap("n", "qq", "q", opts) -- if you really want to record macro use qq
|
||||
|
||||
keymap("n", "c", '"_c', opts) -- change without yanking to default register
|
||||
keymap("n", "C", '"_C', opts) -- change line without yanking to default register
|
||||
keymap("n", "c", '"_c', opts) -- change without yanking to default register
|
||||
keymap("n", "C", '"_C', opts) -- change line without yanking to default register
|
||||
|
||||
vim.keymap.set("n", "<leader>n", function() -- toggle line numbers
|
||||
if vim.wo.number and vim.wo.relativenumber then
|
||||
vim.wo.number = false
|
||||
vim.wo.relativenumber = false
|
||||
elseif vim.wo.number then
|
||||
vim.wo.relativenumber = true
|
||||
else
|
||||
vim.wo.number = true
|
||||
end
|
||||
if vim.wo.number and vim.wo.relativenumber then
|
||||
vim.wo.number = false
|
||||
vim.wo.relativenumber = false
|
||||
elseif vim.wo.number then
|
||||
vim.wo.relativenumber = true
|
||||
else
|
||||
vim.wo.number = true
|
||||
end
|
||||
end, { desc = "Toggle line number modes" })
|
||||
|
||||
keymap("n", "<leader>c", ":set cursorcolumn! cursorline! <cr>", opts) -- toggle cursor column and line
|
||||
|
||||
keymap("n", "<esc>", ":nohlsearch<cr><esc>", opts) -- clear search highlight
|
||||
keymap("n", "<esc>", ":nohlsearch<cr><esc>", opts) -- clear search highlight
|
||||
-- }}}
|
||||
|
||||
-- {{{ Spellcheck
|
||||
keymap("n", "<leader>se", ":setlocal spell! spelllang=en_us<cr>", opts) -- toggle English spell check
|
||||
keymap("n", "<leader>sd", ":setlocal spell! spelllang=de_at<cr>", opts) -- toggle Austrian German spell check
|
||||
keymap("n", "<leader>ss", ":setlocal spell! spelllang=es<cr>", opts) -- toggle Spanish spell check
|
||||
keymap("n", "<leader>ss", ":setlocal spell! spelllang=es<cr>", opts) -- toggle Spanish spell check
|
||||
-- }}}
|
||||
|
||||
-- {{{ Timestamp / Date
|
||||
keymap("n", "<leader>dt", [[i<c-r>=strftime("%d.%m.%Y")<cr><space>]], opts) -- insert current date
|
||||
keymap("n", "<leader>tt", [[i<c-r>=strftime("%H:%M")<cr><space>]], opts) -- insert current time
|
||||
keymap("n", "<leader>tt", [[i<c-r>=strftime("%H:%M")<cr><space>]], opts) -- insert current time
|
||||
-- }}}
|
||||
|
||||
-- {{{ External / System
|
||||
keymap("n", "<leader>x", [[:!open %<cr><cr>]], opts) -- open current file with system default app
|
||||
|
||||
keymap("c", "w!!", [[w !sudo tee %]], opt) -- save file with sudo
|
||||
keymap("c", "w!!", [[w !sudo tee %]], opt) -- save file with sudo
|
||||
-- }}}
|
||||
|
||||
-- {{{ Diff / Git
|
||||
keymap("n", "<leader>gd", ":Gvdiffsplit<cr>", opts) -- git diff split (requires fugitive)
|
||||
keymap("n", "<leader>gs", ":Git<cr>", opts) -- open git status tree (requires fugitive)
|
||||
keymap("n", "<leader>gr", ":terminal git log --graph --oneline --decorate --all<CR>i", opts) -- show git log graph in terminal
|
||||
|
||||
-- GitSigns toggles
|
||||
vim.keymap.set('n', '<leader>gt', function() require('gitsigns').toggle_signs() end, { desc = 'Toggle git signs' })
|
||||
vim.keymap.set('n', '<leader>gb', function() require('gitsigns').toggle_current_line_blame() end, { desc = 'Toggle git blame' })
|
||||
vim.keymap.set('n', '<leader>gb', function() require('gitsigns').toggle_current_line_blame() end,
|
||||
{ desc = 'Toggle git blame' })
|
||||
vim.keymap.set('n', '<leader>gx', function() require('gitsigns').toggle_deleted() end, { desc = 'Toggle git deleted' })
|
||||
vim.keymap.set('n', '<leader>gn', function() require('gitsigns').toggle_numhl() end, { desc = 'Toggle git number highlights' })
|
||||
vim.keymap.set('n', '<leader>gn', function() require('gitsigns').toggle_numhl() end,
|
||||
{ desc = 'Toggle git number highlights' })
|
||||
vim.keymap.set('n', '<leader>gc', function() require('gitsigns').toggle_linehl() end, { desc = 'Toggle git line colors' })
|
||||
|
||||
-- LSP diagnostic toggle
|
||||
vim.keymap.set('n', '<leader>ld', function()
|
||||
local config = vim.diagnostic.config()
|
||||
vim.diagnostic.config({
|
||||
virtual_text = not config.virtual_text,
|
||||
signs = not config.signs,
|
||||
underline = not config.underline,
|
||||
})
|
||||
local config = vim.diagnostic.config()
|
||||
vim.diagnostic.config({
|
||||
virtual_text = not config.virtual_text,
|
||||
signs = not config.signs,
|
||||
underline = not config.underline,
|
||||
})
|
||||
end, { desc = 'Toggle LSP diagnostics' })
|
||||
|
||||
-- Toggle fold column
|
||||
vim.keymap.set("n", "<leader>un", function()
|
||||
vim.wo.foldcolumn = vim.wo.foldcolumn == "0" and "1" or "0"
|
||||
vim.wo.foldcolumn = vim.wo.foldcolumn == "0" and "1" or "0"
|
||||
end, { desc = "Toggle fold column" })
|
||||
|
||||
keymap("n", "<leader>si", ":source $MYVIMRC<CR>", opts) -- source init.lua ($MYVIMRC is auto path to your init.lua)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Plugins
|
||||
-- Yazi (keeping this here since it's a simple command keymap)
|
||||
keymap("n", "<leader>y", ":Yazi<cr>", opt) -- open Yazi file manager
|
||||
|
||||
-- mkdx checkbox toggle (disable default space key, use leader+t instead)
|
||||
vim.g["mkdx#settings"] = {
|
||||
checkbox = {
|
||||
toggles = {' ', 'x', '-'},
|
||||
toggle_key = ''
|
||||
}
|
||||
checkbox = {
|
||||
toggles = { ' ', 'x', '-' },
|
||||
toggle_key = ''
|
||||
}
|
||||
}
|
||||
keymap("n", "<leader>t", "<Plug>(mkdx-checkbox-next-n)", opt) -- toggle markdown checkbox
|
||||
-- }}}
|
||||
|
||||
@@ -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)
|
||||
@@ -1,233 +1,302 @@
|
||||
-- ~/.config/nvim/lua/plugins/init.lua
|
||||
return {
|
||||
-- Colorschemes
|
||||
{ "gruvbox-community/gruvbox", priority = 1000 },
|
||||
{ "folke/tokyonight.nvim", priority = 1000 },
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
{ "EdenEast/nightfox.nvim", priority = 1000 },
|
||||
{ "rose-pine/neovim", name = "rose-pine", priority = 1000 },
|
||||
{ "rebelot/kanagawa.nvim", priority = 1000 },
|
||||
{ "sainnhe/everforest", priority = 1000 },
|
||||
|
||||
|
||||
-- Auto-save
|
||||
{
|
||||
"okuuva/auto-save.nvim",
|
||||
version = "v1.*",
|
||||
event = { "InsertLeave", "TextChanged" },
|
||||
opts = {
|
||||
enabled = true,
|
||||
execution_message = {
|
||||
enabled = false,
|
||||
},
|
||||
trigger_events = {
|
||||
immediate_save = { "BufLeave", "FocusLost" },
|
||||
defer_save = { "InsertLeave", "TextChanged" },
|
||||
cancel_defered_save = { "InsertEnter" },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- File explorer
|
||||
{ import = "plugins.nvim-tree" },
|
||||
|
||||
-- Treesitter
|
||||
{ import = "plugins.treesitter" },
|
||||
|
||||
-- Rainbow delimiters
|
||||
{ import = "plugins.rainbow_delimiters" },
|
||||
|
||||
-- Git integration
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = "│" },
|
||||
change = { text = "│" },
|
||||
delete = { text = "_" },
|
||||
topdelete = { text = "‾" },
|
||||
changedelete = { text = "~" },
|
||||
untracked = { text = "┆" },
|
||||
},
|
||||
signcolumn = false, -- Disable signs by default
|
||||
numhl = false, -- Disable number highlights by default
|
||||
linehl = false, -- Disable line highlights by default
|
||||
word_diff = false,
|
||||
current_line_blame = false,
|
||||
}
|
||||
},
|
||||
{ "tpope/vim-fugitive" },
|
||||
|
||||
-- Status line
|
||||
{ import = "plugins.lualine" },
|
||||
|
||||
-- FZF
|
||||
{
|
||||
"junegunn/fzf",
|
||||
build = function()
|
||||
vim.fn["fzf#install"]()
|
||||
end,
|
||||
},
|
||||
{ "junegunn/fzf.vim" },
|
||||
|
||||
-- Productivity
|
||||
{ "numToStr/Comment.nvim", opts = {} },
|
||||
{ "windwp/nvim-autopairs", opts = {} },
|
||||
{ "tpope/vim-surround" },
|
||||
|
||||
-- Tmux navigation
|
||||
{ "christoomey/vim-tmux-navigator" },
|
||||
|
||||
-- LaTeX
|
||||
{ import = "plugins.vimtex" },
|
||||
|
||||
-- Org-mode
|
||||
{
|
||||
"nvim-orgmode/orgmode",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- Telescope
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
keys = {
|
||||
{ "<leader>ff", ":Telescope find_files<CR>", desc = "Find files" },
|
||||
{ "<leader>fg", ":Telescope live_grep<CR>", desc = "Live grep" },
|
||||
{ "<leader>fb", ":Telescope buffers<CR>", desc = "Buffers" },
|
||||
{ "<leader>fh", ":Telescope help_tags<CR>", desc = "Help tags" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Yazi file manager
|
||||
{
|
||||
"mikavilpas/yazi.nvim",
|
||||
keys = {
|
||||
{ "<leader>y", ":Yazi<CR>", desc = "Open Yazi" },
|
||||
},
|
||||
opts = {
|
||||
open_for_directories = false,
|
||||
keymaps = {
|
||||
show_help = "<F1>",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Leap (motion)
|
||||
{
|
||||
"ggandor/leap.nvim",
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
require('leap').add_default_mappings()
|
||||
-- Override default s/S with f/F to avoid conflict with surround
|
||||
vim.keymap.del({'n', 'x', 'o'}, 's')
|
||||
vim.keymap.del({'n', 'x', 'o'}, 'S')
|
||||
vim.keymap.set({'n', 'x', 'o'}, 'f', '<Plug>(leap-forward)')
|
||||
vim.keymap.set({'n', 'x', 'o'}, 'F', '<Plug>(leap-backward)')
|
||||
end,
|
||||
},
|
||||
|
||||
-- Markdown
|
||||
{ "SidOfc/mkdx" },
|
||||
{
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" },
|
||||
ft = { "markdown", "norg", "rmd", "org" },
|
||||
config = function()
|
||||
require('render-markdown').setup({
|
||||
heading = {
|
||||
enabled = true,
|
||||
sign = true,
|
||||
position = 'overlay',
|
||||
icons = { ' ', ' ', ' ', ' ', ' ', ' ' },
|
||||
backgrounds = {
|
||||
'RenderMarkdownH1Bg',
|
||||
'RenderMarkdownH2Bg',
|
||||
'RenderMarkdownH3Bg',
|
||||
'RenderMarkdownH4Bg',
|
||||
'RenderMarkdownH5Bg',
|
||||
'RenderMarkdownH6Bg',
|
||||
},
|
||||
foregrounds = {
|
||||
'RenderMarkdownH1',
|
||||
'RenderMarkdownH2',
|
||||
'RenderMarkdownH3',
|
||||
'RenderMarkdownH4',
|
||||
'RenderMarkdownH5',
|
||||
'RenderMarkdownH6',
|
||||
},
|
||||
-- Colorschemes
|
||||
{ "gruvbox-community/gruvbox", priority = 1000 },
|
||||
{ "folke/tokyonight.nvim", priority = 1000 },
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
|
||||
|
||||
-- Auto-save
|
||||
{
|
||||
"okuuva/auto-save.nvim",
|
||||
version = "v1.*",
|
||||
event = { "InsertLeave", "TextChanged" },
|
||||
opts = {
|
||||
enabled = true,
|
||||
trigger_events = {
|
||||
immediate_save = { "BufLeave", "FocusLost" },
|
||||
defer_save = { "InsertLeave", "TextChanged" },
|
||||
cancel_deferred_save = { "InsertEnter" },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Set highlights after ColorScheme event to ensure they persist
|
||||
vim.api.nvim_create_autocmd("ColorScheme", {
|
||||
callback = function()
|
||||
-- Translucent heading backgrounds with alpha blending
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH1Bg', { bg = '#2d5a7b', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH2Bg', { bg = '#3d5f4e', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH3Bg', { bg = '#5f5e3a', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH4Bg', { bg = '#5f4a3e', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH5Bg', { bg = '#4e4a5f', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH6Bg', { bg = '#4a5e5f', fg = 'NONE' })
|
||||
|
||||
-- Bold, colored heading text
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH1', { fg = '#88c0d0', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH2', { fg = '#a3be8c', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH3', { fg = '#ebcb8b', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH4', { fg = '#d08770', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH5', { fg = '#b48ead', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH6', { fg = '#8fbcbb', bold = true })
|
||||
end,
|
||||
})
|
||||
|
||||
-- Apply highlights immediately
|
||||
vim.schedule(function()
|
||||
vim.cmd('doautocmd ColorScheme')
|
||||
end)
|
||||
end,
|
||||
},
|
||||
|
||||
-- Code formatting
|
||||
{ import = "plugins.prettier" },
|
||||
|
||||
-- Copilot
|
||||
{
|
||||
"zbirenbaum/copilot.lua",
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
suggestion = { enabled = true },
|
||||
panel = { enabled = true },
|
||||
},
|
||||
},
|
||||
|
||||
-- Indent guides
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- UFO (folding)
|
||||
{
|
||||
"kevinhwang91/nvim-ufo",
|
||||
dependencies = { "kevinhwang91/promise-async" },
|
||||
event = "BufReadPost",
|
||||
config = function()
|
||||
vim.o.foldcolumn = "0"
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
-- File explorer
|
||||
{ import = "plugins.nvim-tree" },
|
||||
|
||||
require("ufo").setup({
|
||||
provider_selector = function(bufnr, filetype, buftype)
|
||||
-- Disable for latex and markdown files
|
||||
if filetype == "tex" or filetype == "latex" or filetype == "markdown" then
|
||||
return ""
|
||||
end
|
||||
return { "treesitter", "indent" }
|
||||
-- Treesitter
|
||||
{ import = "plugins.treesitter" },
|
||||
|
||||
-- Rainbow delimiters
|
||||
{ import = "plugins.rainbow_delimiters" },
|
||||
|
||||
-- Git integration
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = "│" },
|
||||
change = { text = "│" },
|
||||
delete = { text = "_" },
|
||||
topdelete = { text = "‾" },
|
||||
changedelete = { text = "~" },
|
||||
untracked = { text = "┆" },
|
||||
},
|
||||
signcolumn = false, -- Disable signs by default
|
||||
numhl = false, -- Disable number highlights by default
|
||||
linehl = false, -- Disable line highlights by default
|
||||
word_diff = false,
|
||||
current_line_blame = false,
|
||||
}
|
||||
},
|
||||
{
|
||||
"kdheepak/lazygit.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
cmd = {
|
||||
"LazyGit",
|
||||
"LazyGitConfig",
|
||||
"LazyGitCurrentFile",
|
||||
"LazyGitFilter",
|
||||
"LazyGitFilterCurrentFile",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>gg", "<cmd>LazyGit<cr>", desc = "LazyGit" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Status line
|
||||
{ import = "plugins.lualine" },
|
||||
|
||||
-- Tmux statusline generator (run :TmuxlineSnapshot ~/.config/tmux/themes/tmuxline.tmux)
|
||||
{
|
||||
"edkolev/tmuxline.vim",
|
||||
cmd = { "Tmuxline", "TmuxlineSnapshot" },
|
||||
config = function()
|
||||
vim.g.tmuxline_separators = {
|
||||
left = "",
|
||||
left_alt = "",
|
||||
right = "",
|
||||
right_alt = "",
|
||||
space = " ",
|
||||
}
|
||||
-- Tokyo Night Moon colors, transparent background
|
||||
vim.g.tmuxline_theme = {
|
||||
a = { "#1e2030", "#82aaff" },
|
||||
b = { "#82aaff", "default" },
|
||||
c = { "#636da6", "default" },
|
||||
x = { "#636da6", "default" },
|
||||
y = { "#82aaff", "default" },
|
||||
z = { "#1e2030", "#82aaff" },
|
||||
win = { "#636da6", "default" },
|
||||
cwin = { "#1e2030", "#c099ff" },
|
||||
bg = { "#636da6", "default" },
|
||||
}
|
||||
vim.g.tmuxline_preset = {
|
||||
a = "#S",
|
||||
win = "#I #W",
|
||||
cwin = "#I #W",
|
||||
y = "%H:%M",
|
||||
z = "%d %b",
|
||||
}
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
||||
-- Productivity
|
||||
{ "windwp/nvim-autopairs", event = "InsertEnter", opts = {} },
|
||||
{ "tpope/vim-surround", event = "VeryLazy" },
|
||||
|
||||
-- Flash: jump anywhere with 2 chars (replaces f/t for long range)
|
||||
{
|
||||
"folke/flash.nvim",
|
||||
event = "VeryLazy",
|
||||
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" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Which-key: show available keybindings after leader
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
spec = {
|
||||
{ "<leader>f", group = "find" },
|
||||
{ "<leader>g", group = "git" },
|
||||
{ "<leader>s", group = "split/spell" },
|
||||
{ "<leader>w", group = "write" },
|
||||
{ "<leader>d", group = "date" },
|
||||
{ "<leader>l", group = "lsp" },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Snacks: notifications + quality-of-life utilities
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
opts = {
|
||||
notifier = { enabled = true },
|
||||
words = { enabled = true },
|
||||
},
|
||||
},
|
||||
|
||||
-- -- Tmux navigation
|
||||
-- { "christoomey/vim-tmux-navigator" },
|
||||
|
||||
-- LaTeX
|
||||
{ import = "plugins.vimtex" },
|
||||
|
||||
-- Org-mode
|
||||
{
|
||||
"nvim-orgmode/orgmode",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- Telescope
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
keys = {
|
||||
{ "<leader>ff", ":Telescope find_files<CR>", desc = "Find files" },
|
||||
{ "<leader>fg", ":Telescope live_grep<CR>", desc = "Live grep" },
|
||||
{ "<leader>fb", ":Telescope buffers<CR>", desc = "Buffers" },
|
||||
{ "<leader>fh", ":Telescope help_tags<CR>", desc = "Help tags" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Yazi file manager
|
||||
{
|
||||
"mikavilpas/yazi.nvim",
|
||||
keys = {
|
||||
{ "<leader>y", ":Yazi<CR>", desc = "Open Yazi" },
|
||||
},
|
||||
opts = {
|
||||
open_for_directories = false,
|
||||
keymaps = {
|
||||
show_help = "<F1>",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- 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" },
|
||||
ft = { "markdown", "norg", "rmd", "org" },
|
||||
config = function()
|
||||
require('render-markdown').setup({
|
||||
heading = {
|
||||
enabled = true,
|
||||
sign = true,
|
||||
position = 'overlay',
|
||||
icons = { ' ', ' ', ' ', ' ', ' ', ' ' },
|
||||
backgrounds = {
|
||||
'RenderMarkdownH1Bg',
|
||||
'RenderMarkdownH2Bg',
|
||||
'RenderMarkdownH3Bg',
|
||||
'RenderMarkdownH4Bg',
|
||||
'RenderMarkdownH5Bg',
|
||||
'RenderMarkdownH6Bg',
|
||||
},
|
||||
foregrounds = {
|
||||
'RenderMarkdownH1',
|
||||
'RenderMarkdownH2',
|
||||
'RenderMarkdownH3',
|
||||
'RenderMarkdownH4',
|
||||
'RenderMarkdownH5',
|
||||
'RenderMarkdownH6',
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- Code formatting
|
||||
{ import = "plugins.prettier" },
|
||||
|
||||
-- Copilot
|
||||
{
|
||||
"zbirenbaum/copilot.lua",
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
suggestion = { enabled = true },
|
||||
panel = { enabled = true },
|
||||
},
|
||||
},
|
||||
|
||||
-- Indent guides
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- UFO (folding)
|
||||
{
|
||||
"kevinhwang91/nvim-ufo",
|
||||
dependencies = { "kevinhwang91/promise-async" },
|
||||
event = "BufReadPost",
|
||||
config = function()
|
||||
vim.o.foldcolumn = "0"
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
|
||||
require("ufo").setup({
|
||||
provider_selector = function(bufnr, filetype, buftype)
|
||||
-- Disable for latex and markdown files
|
||||
if filetype == "tex" or filetype == "latex" or filetype == "markdown" then
|
||||
return ""
|
||||
end
|
||||
return { "treesitter", "indent" }
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
-- ~/.config/nvim/lua/plugins/lsp.lua
|
||||
return {
|
||||
-- Lazydev: proper Lua LSP for neovim config files
|
||||
{
|
||||
"folke/lazydev.nvim",
|
||||
ft = "lua",
|
||||
opts = {
|
||||
library = {
|
||||
{ path = "luvit-meta/library", words = { "vim%.uv" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Mason (LSP installer)
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
build = ":MasonUpdate",
|
||||
opts = {},
|
||||
},
|
||||
|
||||
|
||||
-- Mason LSP config integration
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
@@ -15,19 +26,19 @@ return {
|
||||
ensure_installed = { "lua_ls", "pyright", "texlab", "bashls", "marksman" },
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
-- LSP configuration
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
dependencies = {
|
||||
"mason.nvim",
|
||||
"mason-lspconfig.nvim",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"saghen/blink.cmp",
|
||||
},
|
||||
config = function()
|
||||
local lspconfig = require("lspconfig")
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
|
||||
local capabilities = require("blink.cmp").get_lsp_capabilities()
|
||||
local servers = { "lua_ls", "pyright", "texlab", "bashls", "marksman" }
|
||||
|
||||
-- Configure diagnostics to be hidden by default
|
||||
vim.diagnostic.config({
|
||||
virtual_text = false,
|
||||
@@ -36,7 +47,7 @@ return {
|
||||
update_in_insert = false,
|
||||
severity_sort = false,
|
||||
})
|
||||
|
||||
|
||||
-- Set up keymaps for LSP
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
|
||||
@@ -51,86 +62,80 @@ return {
|
||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
|
||||
end,
|
||||
})
|
||||
|
||||
-- Language servers setup with capabilities
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
lspconfig.pyright.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
lspconfig.texlab.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
lspconfig.bashls.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
lspconfig.marksman.setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
|
||||
-- Use Neovim 0.11+ LSP API to avoid deprecated lspconfig setup calls.
|
||||
if vim.lsp.config and vim.lsp.enable then
|
||||
for _, server in ipairs(servers) do
|
||||
vim.lsp.config(server, { capabilities = capabilities })
|
||||
end
|
||||
vim.lsp.enable(servers)
|
||||
else
|
||||
local lspconfig = require("lspconfig")
|
||||
for _, server in ipairs(servers) do
|
||||
lspconfig[server].setup({ capabilities = capabilities })
|
||||
end
|
||||
end
|
||||
end,
|
||||
},
|
||||
|
||||
-- Completion
|
||||
|
||||
-- Copilot (suggestion/panel disabled — blink-copilot handles completions)
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
"zbirenbaum/copilot.lua",
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
suggestion = { enabled = false },
|
||||
panel = { enabled = false },
|
||||
},
|
||||
},
|
||||
|
||||
-- blink.cmp: fast Rust-powered completion engine
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
version = "*",
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"rafamadriz/friendly-snippets",
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
dependencies = { "rafamadriz/friendly-snippets", "evesdropper/luasnip-latex-snippets.nvim" },
|
||||
build = "make install_jsregexp",
|
||||
dependencies = { "evesdropper/luasnip-latex-snippets.nvim" },
|
||||
config = function()
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/snippets" })
|
||||
end,
|
||||
},
|
||||
{
|
||||
"giuxtaposition/blink-cmp-copilot",
|
||||
dependencies = { "zbirenbaum/copilot.lua" },
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local cmp = require("cmp")
|
||||
local luasnip = require("luasnip")
|
||||
|
||||
-- Load snippets
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/snippets" })
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
opts = {
|
||||
keymap = {
|
||||
preset = "default",
|
||||
["<Tab>"] = { "select_next", "snippet_forward", "fallback" },
|
||||
["<S-Tab>"] = { "select_prev", "snippet_backward", "fallback" },
|
||||
["<CR>"] = { "accept", "fallback" },
|
||||
},
|
||||
appearance = { nerd_font_variant = "mono" },
|
||||
sources = {
|
||||
default = { "lazydev", "lsp", "path", "snippets", "buffer", "copilot" },
|
||||
providers = {
|
||||
lazydev = {
|
||||
name = "LazyDev",
|
||||
module = "lazydev.integrations.blink",
|
||||
score_offset = 100,
|
||||
},
|
||||
copilot = {
|
||||
name = "copilot",
|
||||
module = "blink-cmp-copilot",
|
||||
score_offset = 50,
|
||||
async = true,
|
||||
},
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if require("copilot.suggestion").is_visible() then
|
||||
require("copilot.suggestion").accept()
|
||||
elseif 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" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "buffer" },
|
||||
{ name = "path" },
|
||||
}),
|
||||
})
|
||||
end,
|
||||
},
|
||||
snippets = { preset = "luasnip" },
|
||||
completion = {
|
||||
ghost_text = { enabled = true },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,67 +1,66 @@
|
||||
local colors = {
|
||||
bg = "none",
|
||||
fg = "#ebdbb2",
|
||||
yellow = "#fabd2f",
|
||||
cyan = "#8ec07c",
|
||||
darkblue = "#458588",
|
||||
green = "#b8bb26",
|
||||
orange = "#fe8019",
|
||||
violet = "#d3869b",
|
||||
magenta = "#d3869b",
|
||||
blue = "#83a598",
|
||||
red = "#fb4934",
|
||||
grey = "#504945",
|
||||
black = "#282828",
|
||||
white = "#fbf1c7",
|
||||
darkgrey = "#3c3836",
|
||||
lightgrey = "#665c54",
|
||||
base = "#1e1e2e",
|
||||
surface0 = "#313244",
|
||||
surface1 = "#45475a",
|
||||
overlay0 = "#6c7086",
|
||||
text = "#cdd6f4",
|
||||
subtext = "#a6adc8",
|
||||
crust = "#11111b",
|
||||
mauve = "#cba6f7",
|
||||
blue = "#89b4fa",
|
||||
green = "#a6e3a1",
|
||||
red = "#f38ba8",
|
||||
yellow = "#f9e2af",
|
||||
peach = "#fab387",
|
||||
lavender = "#b4befe",
|
||||
cyan = "#94e2d5",
|
||||
}
|
||||
|
||||
local theme = {
|
||||
normal = {
|
||||
a = { fg = colors.black, bg = colors.blue, gui = "bold" },
|
||||
b = { fg = colors.blue, bg = colors.grey },
|
||||
c = { fg = colors.white, bg = colors.darkgrey },
|
||||
x = { fg = colors.white, bg = colors.darkgrey },
|
||||
y = { fg = colors.blue, bg = colors.grey },
|
||||
z = { fg = colors.black, bg = colors.blue, gui = "bold" },
|
||||
a = { fg = colors.crust, bg = colors.mauve, gui = "bold" },
|
||||
b = { fg = colors.mauve, bg = colors.surface1 },
|
||||
c = { fg = colors.text, bg = colors.base },
|
||||
x = { fg = colors.text, bg = colors.base },
|
||||
y = { fg = colors.mauve, bg = colors.surface1 },
|
||||
z = { fg = colors.crust, bg = colors.mauve, gui = "bold" },
|
||||
},
|
||||
insert = {
|
||||
a = { fg = colors.black, bg = colors.green, gui = "bold" },
|
||||
b = { fg = colors.green, bg = colors.grey },
|
||||
c = { fg = colors.white, bg = colors.darkgrey },
|
||||
x = { fg = colors.white, bg = colors.darkgrey },
|
||||
y = { fg = colors.green, bg = colors.grey },
|
||||
z = { fg = colors.black, bg = colors.green, gui = "bold" },
|
||||
a = { fg = colors.crust, bg = colors.green, gui = "bold" },
|
||||
b = { fg = colors.green, bg = colors.surface1 },
|
||||
c = { fg = colors.text, bg = colors.base },
|
||||
x = { fg = colors.text, bg = colors.base },
|
||||
y = { fg = colors.green, bg = colors.surface1 },
|
||||
z = { fg = colors.crust, bg = colors.green, gui = "bold" },
|
||||
},
|
||||
visual = {
|
||||
a = { fg = colors.black, bg = colors.magenta, gui = "bold" },
|
||||
b = { fg = colors.magenta, bg = colors.grey },
|
||||
c = { fg = colors.white, bg = colors.darkgrey },
|
||||
x = { fg = colors.white, bg = colors.darkgrey },
|
||||
y = { fg = colors.magenta, bg = colors.grey },
|
||||
z = { fg = colors.black, bg = colors.magenta, gui = "bold" },
|
||||
a = { fg = colors.crust, bg = colors.lavender, gui = "bold" },
|
||||
b = { fg = colors.lavender, bg = colors.surface1 },
|
||||
c = { fg = colors.text, bg = colors.base },
|
||||
x = { fg = colors.text, bg = colors.base },
|
||||
y = { fg = colors.lavender, bg = colors.surface1 },
|
||||
z = { fg = colors.crust, bg = colors.lavender, gui = "bold" },
|
||||
},
|
||||
replace = {
|
||||
a = { fg = colors.black, bg = colors.red, gui = "bold" },
|
||||
b = { fg = colors.red, bg = colors.grey },
|
||||
c = { fg = colors.white, bg = colors.darkgrey },
|
||||
x = { fg = colors.white, bg = colors.darkgrey },
|
||||
y = { fg = colors.red, bg = colors.grey },
|
||||
z = { fg = colors.black, bg = colors.red, gui = "bold" },
|
||||
a = { fg = colors.crust, bg = colors.red, gui = "bold" },
|
||||
b = { fg = colors.red, bg = colors.surface1 },
|
||||
c = { fg = colors.text, bg = colors.base },
|
||||
x = { fg = colors.text, bg = colors.base },
|
||||
y = { fg = colors.red, bg = colors.surface1 },
|
||||
z = { fg = colors.crust, bg = colors.red, gui = "bold" },
|
||||
},
|
||||
command = {
|
||||
a = { fg = colors.black, bg = colors.yellow, gui = "bold" },
|
||||
b = { fg = colors.yellow, bg = colors.grey },
|
||||
c = { fg = colors.white, bg = colors.darkgrey },
|
||||
x = { fg = colors.white, bg = colors.darkgrey },
|
||||
y = { fg = colors.yellow, bg = colors.grey },
|
||||
z = { fg = colors.black, bg = colors.yellow, gui = "bold" },
|
||||
a = { fg = colors.crust, bg = colors.yellow, gui = "bold" },
|
||||
b = { fg = colors.yellow, bg = colors.surface1 },
|
||||
c = { fg = colors.text, bg = colors.base },
|
||||
x = { fg = colors.text, bg = colors.base },
|
||||
y = { fg = colors.yellow, bg = colors.surface1 },
|
||||
z = { fg = colors.crust, bg = colors.yellow, gui = "bold" },
|
||||
},
|
||||
inactive = {
|
||||
a = { fg = colors.white, bg = colors.darkgrey },
|
||||
b = { fg = colors.white, bg = colors.darkgrey },
|
||||
c = { fg = colors.white, bg = colors.darkgrey },
|
||||
a = { fg = colors.subtext, bg = colors.base },
|
||||
b = { fg = colors.subtext, bg = colors.base },
|
||||
c = { fg = colors.subtext, bg = colors.base },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -146,7 +145,7 @@ return {
|
||||
end
|
||||
return " " .. table.concat(client_names, ", ")
|
||||
end,
|
||||
color = { fg = colors.cyan },
|
||||
color = { fg = colors.cyan },
|
||||
separator = { left = "" }
|
||||
},
|
||||
{
|
||||
@@ -189,6 +188,6 @@ return {
|
||||
tabline = {},
|
||||
winbar = {},
|
||||
inactive_winbar = {},
|
||||
extensions = { "nvim-tree", "fzf", "lazy" },
|
||||
extensions = { "nvim-tree", "lazy" },
|
||||
},
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
return {
|
||||
"nvimtools/none-ls.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
null_ls.setup({
|
||||
debug = false,
|
||||
sources = {
|
||||
-- null_ls.builtins.diagnostics.markdownlint.with({
|
||||
-- filetypes = { "markdown", "markdown.pandoc", "pandoc" },
|
||||
-- }),
|
||||
null_ls.builtins.formatting.prettier.with({
|
||||
filetypes = { "markdown", "markdown.pandoc", "pandoc" },
|
||||
}),
|
||||
},
|
||||
on_attach = function(client, bufnr)
|
||||
if client.supports_method("textDocument/formatting") then
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ bufnr = bufnr })
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufWritePre" },
|
||||
cmd = { "ConformInfo" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>fm",
|
||||
function() require("conform").format({ async = true }) end,
|
||||
desc = "Format buffer",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
formatters_by_ft = {
|
||||
javascript = { "prettier" },
|
||||
typescript = { "prettier" },
|
||||
javascriptreact = { "prettier" },
|
||||
typescriptreact = { "prettier" },
|
||||
json = { "prettier" },
|
||||
html = { "prettier" },
|
||||
css = { "prettier" },
|
||||
markdown = { "mdformat" },
|
||||
yaml = { "prettier" },
|
||||
},
|
||||
format_on_save = {
|
||||
timeout_ms = 500,
|
||||
lsp_fallback = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter-textobjects" },
|
||||
config = function()
|
||||
require("nvim-treesitter.configs").setup({
|
||||
ensure_installed = { "c", "lua", "python", "javascript", "markdown", "markdown_inline", "html", "css", "bash", "vim", "vimdoc" },
|
||||
@@ -39,6 +41,29 @@ return {
|
||||
node_decremental = "grm",
|
||||
},
|
||||
},
|
||||
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
["aa"] = "@parameter.outer",
|
||||
["ia"] = "@parameter.inner",
|
||||
},
|
||||
},
|
||||
move = {
|
||||
enable = true,
|
||||
set_jumps = true,
|
||||
goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer" },
|
||||
goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer" },
|
||||
goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer" },
|
||||
goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer" },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Better folding setup
|
||||
@@ -47,4 +72,5 @@ return {
|
||||
vim.opt.foldlevel = 20
|
||||
vim.opt.foldenable = false
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
-- Global settings
|
||||
vim.opt.tabstop = 4 -- Number of spaces that a <Tab> counts for
|
||||
vim.opt.shiftwidth = 4 -- Number of spaces for indentation
|
||||
vim.opt.expandtab = true -- Use spaces instead of tabs
|
||||
vim.opt.cmdheight = 0 -- Hide command line when not in use
|
||||
vim.opt.tabstop = 4 -- Number of spaces that a <Tab> counts for
|
||||
vim.opt.shiftwidth = 4 -- Number of spaces for indentation
|
||||
vim.opt.expandtab = true -- Use spaces instead of tabs
|
||||
vim.opt.cmdheight = 0 -- Hide command line when not in use
|
||||
|
||||
vim.cmd([[highlight CursorLine guibg=#3c3836]]) -- Darker background for the line
|
||||
vim.cmd([[highlight CursorColumn guibg=#504945]]) -- Slightly darker for the column
|
||||
vim.cmd([[highlight CursorLine guibg=#313244]]) -- Catppuccin surface0
|
||||
vim.cmd([[highlight CursorColumn guibg=#45475a]]) -- Catppuccin surface1
|
||||
|
||||
vim.cmd([[set incsearch ]]) -- Enables incremental search
|
||||
vim.cmd([[set hlsearch ]]) -- Highlights search results
|
||||
vim.cmd([[set ignorecase]]) -- Case insensitive search
|
||||
vim.cmd([[set smartcase ]]) -- Case sensitive if uppercase letters are used
|
||||
vim.cmd([[set incsearch ]]) -- Enables incremental search
|
||||
vim.cmd([[set hlsearch ]]) -- Highlights search results
|
||||
vim.cmd([[set ignorecase]]) -- Case insensitive search
|
||||
vim.cmd([[set smartcase ]]) -- Case sensitive if uppercase letters are used
|
||||
|
||||
-- Coloscheme
|
||||
vim.cmd([[colorscheme gruvbox]])
|
||||
-- Colorscheme
|
||||
vim.cmd([[colorscheme catppuccin-mocha]])
|
||||
|
||||
vim.cmd([[set spelllang=en]])
|
||||
|
||||
@@ -26,10 +26,10 @@ vim.o.title = true
|
||||
vim.o.titlestring = "nvim: %f"
|
||||
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "lua",
|
||||
callback = function()
|
||||
vim.opt_local.foldmethod = "marker"
|
||||
vim.opt_local.foldlevel = 99 -- so folds are open by default
|
||||
vim.opt_local.fileencoding = "utf-8"
|
||||
end,
|
||||
pattern = "lua",
|
||||
callback = function()
|
||||
vim.opt_local.foldmethod = "marker"
|
||||
vim.opt_local.foldlevel = 99 -- so folds are open by default
|
||||
vim.opt_local.fileencoding = "utf-8"
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -6,18 +6,42 @@ local f = ls.function_node
|
||||
|
||||
-- Get current date in YYYY-MM-DD format
|
||||
local function date()
|
||||
return os.date("%Y-%m-%d")
|
||||
return os.date("%Y-%m-%d")
|
||||
end
|
||||
|
||||
return {
|
||||
s("env", {
|
||||
t({"---",
|
||||
"title: "}), i(1, "Title"), t({"",
|
||||
"tags: ["}), i(2, "tag1, tag2"), t({"]",
|
||||
"date: "}), f(date, {}), t({"",
|
||||
"---", ""}),
|
||||
i(0),
|
||||
}),
|
||||
}
|
||||
s("env", {
|
||||
t({
|
||||
"---",
|
||||
"title: ",
|
||||
}),
|
||||
i(1, "Title"),
|
||||
t({ "", "tags: [" }),
|
||||
i(2, "tag1, tag2"),
|
||||
t({ "]", "date: " }),
|
||||
f(date, {}),
|
||||
t({ "", "---", "" }),
|
||||
i(0),
|
||||
}),
|
||||
|
||||
s(
|
||||
"ippd",
|
||||
t({
|
||||
"Institute of Polymer Processing and Digital Transformation",
|
||||
})
|
||||
),
|
||||
|
||||
s(
|
||||
"TN",
|
||||
t({
|
||||
"Thomas Naderer",
|
||||
})
|
||||
),
|
||||
|
||||
s(
|
||||
"GBW",
|
||||
t({
|
||||
"Gerald Berger-Weber",
|
||||
})
|
||||
),
|
||||
}
|
||||
|
||||
@@ -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
36
scripts/start-kanata.sh
Executable 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
32
scripts/stop-kanata.sh
Executable 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
|
||||
@@ -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
32
starship.toml
Normal 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}"
|
||||
@@ -1,59 +0,0 @@
|
||||
# Reset prefix to Ctrl-b
|
||||
unbind C-a # Unbind any custom prefixes (e.g., Ctrl-a)
|
||||
set-option -g prefix C-b
|
||||
bind C-b send-prefix # Ensure Ctrl-b works as the prefix
|
||||
# Sensible Defaults
|
||||
set -g mouse on # Enable mouse support
|
||||
set -g history-limit 10000 # Large scrollback history
|
||||
setw -g automatic-rename off # Keep pane names static
|
||||
set -g base-index 1 # Pane numbering starts at 1
|
||||
setw -g pane-base-index 1 # Pane numbering starts at 1
|
||||
set-option -g status-keys vi # Use vi-style keybindings
|
||||
|
||||
# Status Bar Customization
|
||||
set -g status off
|
||||
set -g status-bg black
|
||||
set -g status-fg white
|
||||
set -g status-interval 5
|
||||
|
||||
# Left: Session name
|
||||
set -g status-left "#S "
|
||||
|
||||
# Right: Time and date
|
||||
set -g status-right "%H:%M | %d-%b-%Y"
|
||||
|
||||
# Window options
|
||||
setw -g window-status-format " #I:#W "
|
||||
setw -g window-status-current-format " #I:#W "
|
||||
setw -g window-status-separator ""
|
||||
|
||||
|
||||
# Key Bindings
|
||||
bind r source-file ~/.config/tmux/.tmux.conf \; display-message "Config Reloaded"
|
||||
bind \\ split-window -h # Split panes horizontally
|
||||
bind - split-window -v # Split panes vertically
|
||||
bind h select-pane -L # Move between panes
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# Resize panes
|
||||
bind -r C-h resize-pane -L 5
|
||||
bind -r C-j resize-pane -D 5
|
||||
bind -r C-k resize-pane -U 5
|
||||
bind -r C-l resize-pane -R 5
|
||||
|
||||
# Copy Mode
|
||||
setw -g mode-keys vi # Vi copy mode
|
||||
bind-key -T copy-mode-vi v send -X begin-selection
|
||||
bind-key -T copy-mode-vi y send -X copy-selection \; send-keys -X cancel
|
||||
|
||||
# Plugins (optional)
|
||||
set -g @plugin 'tmux-plugins/tpm' # Tmux Plugin Manager
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
|
||||
set -g @plugin 'tmux-plugins/tmux-powerline'
|
||||
|
||||
# Initialize plugins
|
||||
run '/opt/homebrew/opt/tpm/share/tpm/tpm'
|
||||
1
tmux/plugins/tmux-urlview
Submodule
1
tmux/plugins/tmux-urlview
Submodule
Submodule tmux/plugins/tmux-urlview added at b84c876cff
28
tmux/themes/catppuccin.tmux
Normal file
28
tmux/themes/catppuccin.tmux
Normal file
@@ -0,0 +1,28 @@
|
||||
# Catppuccin Mocha - powerline style
|
||||
|
||||
# Status bar
|
||||
set -g status-style "bg=#1e1e2e,fg=#cdd6f4"
|
||||
|
||||
# Pane borders
|
||||
set -g pane-border-style "fg=#313244"
|
||||
set -g pane-active-border-style "fg=#cba6f7,bold"
|
||||
set -g pane-border-format "#[fg=#cdd6f4] #P #[fg=#6c7086]| #[fg=#89b4fa]#{pane_current_command} #[fg=#6c7086]| #[fg=#a6adc8]#{pane_current_path}"
|
||||
|
||||
# Message styling
|
||||
set -g message-style "bg=#cba6f7,fg=#1e1e2e,bold"
|
||||
set -g message-command-style "bg=#cba6f7,fg=#1e1e2e,bold"
|
||||
|
||||
# Mode styling
|
||||
set -g mode-style "bg=#cba6f7,fg=#1e1e2e,bold"
|
||||
|
||||
# Window tabs - inactive subtle, active with powerline arrows
|
||||
set -g window-status-style "fg=#6c7086,bg=#1e1e2e"
|
||||
set -g window-status-format " #[fg=#6c7086]#I #W "
|
||||
set -g window-status-current-style "fg=#1e1e2e,bg=#cba6f7,bold"
|
||||
set -g window-status-current-format "#[fg=#cba6f7,bg=#1e1e2e] #[fg=#1e1e2e,bg=#cba6f7,bold] #I #[fg=#cba6f7,bg=#89b4fa] #[fg=#1e1e2e,bg=#89b4fa,bold] #W #[fg=#89b4fa,bg=#1e1e2e,nobold] "
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Status bar content
|
||||
set -g status-left "#[fg=#1e1e2e,bg=#cba6f7,bold] #S #[fg=#cba6f7,bg=#1e1e2e] "
|
||||
set -g status-right "#[fg=#cba6f7,bg=#1e1e2e]#[fg=#1e1e2e,bg=#cba6f7] %H:%M %d %b "
|
||||
set -g status-justify left
|
||||
16
tmux/themes/gruvbox.tmux
Normal file
16
tmux/themes/gruvbox.tmux
Normal file
@@ -0,0 +1,16 @@
|
||||
# Gruvbox theme preset (sleek minimal)
|
||||
set -g status-style "bg=#282828,fg=#ebdbb2"
|
||||
set -g pane-border-style "fg=#928374"
|
||||
set -g pane-active-border-style "fg=#d79921,bold"
|
||||
set -g message-style "bg=#d79921,fg=#282828,bold"
|
||||
set -g mode-style "bg=#d79921,fg=#282828,bold"
|
||||
|
||||
set -g window-status-style "fg=#928374,bg=#282828"
|
||||
set -g window-status-format " #[fg=#928374]#I #[fg=#928374]#W "
|
||||
set -g window-status-current-style "fg=#282828,bg=#fabd2f,bold"
|
||||
set -g window-status-current-format " #[fg=#282828,bg=#fabd2f,bold]#I #[fg=#282828,bg=#fabd2f,bold]#W "
|
||||
|
||||
set -g status-left "#[fg=#d79921,bold] #S "
|
||||
set -g status-right "#[fg=#928374]#{pane_current_command} #[fg=#928374]| #[fg=#ebdbb2]%H:%M #[fg=#928374]| #[fg=#ebdbb2]%a %d %b "
|
||||
set -g window-status-separator ""
|
||||
set -g status-justify left
|
||||
22
tmux/themes/tmuxline-tokyonight.tmux
Normal file
22
tmux/themes/tmuxline-tokyonight.tmux
Normal 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]"
|
||||
22
tmux/themes/tmuxline.tmux
Normal file
22
tmux/themes/tmuxline.tmux
Normal file
@@ -0,0 +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-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]"
|
||||
16
tmux/themes/tokyonight.tmux
Normal file
16
tmux/themes/tokyonight.tmux
Normal file
@@ -0,0 +1,16 @@
|
||||
# Tokyonight theme preset (sleek minimal)
|
||||
set -g status-style "bg=#1a1b26,fg=#c0caf5"
|
||||
set -g pane-border-style "fg=#9aa5ce"
|
||||
set -g pane-active-border-style "fg=#7aa2f7,bold"
|
||||
set -g message-style "bg=#7aa2f7,fg=#1a1b26,bold"
|
||||
set -g mode-style "bg=#7aa2f7,fg=#1a1b26,bold"
|
||||
|
||||
set -g window-status-style "fg=#9aa5ce,bg=#1a1b26"
|
||||
set -g window-status-format " #[fg=#9aa5ce]#I #[fg=#9aa5ce]#W "
|
||||
set -g window-status-current-style "fg=#1a1b26,bg=#73daca,bold"
|
||||
set -g window-status-current-format " #[fg=#1a1b26,bg=#73daca,bold]#I #[fg=#1a1b26,bg=#73daca,bold]#W "
|
||||
|
||||
set -g status-left "#[fg=#7aa2f7,bold] #S "
|
||||
set -g status-right "#[fg=#9aa5ce]#{pane_current_command} #[fg=#9aa5ce]| #[fg=#c0caf5]%H:%M #[fg=#9aa5ce]| #[fg=#c0caf5]%a %d %b "
|
||||
set -g window-status-separator ""
|
||||
set -g status-justify left
|
||||
151
tmux/tmux.conf
151
tmux/tmux.conf
@@ -1,5 +1,5 @@
|
||||
# ============================================
|
||||
# TMUX CONFIGURATION - CLEAN GRUVBOX
|
||||
# TMUX CONFIGURATION
|
||||
# ============================================
|
||||
|
||||
# ============================================
|
||||
@@ -10,16 +10,16 @@
|
||||
set -g allow-passthrough on
|
||||
set -ga update-environment TERM
|
||||
set -ga update-environment TERM_PROGRAM
|
||||
set -g default-terminal "xterm-256color"
|
||||
set -g default-terminal "tmux-256color"
|
||||
set-option -ga terminal-overrides ",xterm-kitty:Tc,*:Tc,*:RGB"
|
||||
set -as terminal-features ",xterm-256color:RGB,tmux-256color:RGB"
|
||||
|
||||
# Shell configuration
|
||||
set -g default-shell /bin/zsh
|
||||
set -g default-command /bin/zsh
|
||||
|
||||
# Environment variables for proper shell integration
|
||||
set -ga update-environment KITTY_WINDOW_ID
|
||||
set -ga update-environment KITTY_PID
|
||||
# KITTY_WINDOW_ID and KITTY_PID intentionally NOT passed through
|
||||
# so Yazi inside tmux doesn't auto-detect Kitty and send kitty graphics protocol
|
||||
set -ga update-environment XDG_CONFIG_HOME
|
||||
set -ga update-environment ZDOTDIR
|
||||
|
||||
@@ -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
|
||||
@@ -53,8 +54,8 @@ set -g display-panes-time 2000
|
||||
# Show messages longer
|
||||
set -g display-time 2000
|
||||
|
||||
# Aggressive resize for multiple clients
|
||||
setw -g aggressive-resize on
|
||||
# Resize to largest attached client
|
||||
set -g window-size largest
|
||||
|
||||
# ============================================
|
||||
# VI-LIKE KEYBINDINGS
|
||||
@@ -64,12 +65,7 @@ setw -g aggressive-resize on
|
||||
setw -g mode-keys vi
|
||||
set -g status-keys vi
|
||||
|
||||
# Smart pane switching with awareness of Vim splits
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
||||
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
||||
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
||||
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
||||
# Smart pane switching with vim awareness handled by vim-tmux-navigator plugin
|
||||
|
||||
# Vi-like pane resizing
|
||||
bind -r H resize-pane -L 5
|
||||
@@ -89,18 +85,17 @@ bind Escape copy-mode
|
||||
# PANE MANAGEMENT
|
||||
# ============================================
|
||||
|
||||
# Split panes with v and s (vi-like)
|
||||
# Split panes with v and s (vi-like), defaults % and " still work
|
||||
bind v split-window -h -c "#{pane_current_path}"
|
||||
bind s split-window -v -c "#{pane_current_path}"
|
||||
unbind '"'
|
||||
unbind %
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
bind '"' split-window -v -c "#{pane_current_path}"
|
||||
|
||||
# New window in current path
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
|
||||
# Quick pane cycling
|
||||
bind -r C-h select-window -t :-
|
||||
# bind -r C-l select-window -t :+
|
||||
|
||||
# Kill pane without confirmation
|
||||
bind x kill-pane
|
||||
@@ -111,12 +106,6 @@ bind X kill-window
|
||||
# Toggle zoom
|
||||
bind z resize-pane -Z
|
||||
|
||||
# Flash currently active pane border (helpful when visually lost)
|
||||
bind Space display-message "Active pane: #P (#{pane_current_command})"
|
||||
|
||||
# Synchronize panes with status message
|
||||
bind y set-window-option synchronize-panes \; display-message "Synchronize panes #{?synchronize-panes,ON,OFF}"
|
||||
|
||||
# Quick session switching
|
||||
bind S choose-tree -sZ -O name
|
||||
|
||||
@@ -132,61 +121,49 @@ set -g mouse on
|
||||
# Don't jump to bottom when mouse selecting
|
||||
unbind -T copy-mode-vi MouseDragEnd1Pane
|
||||
|
||||
# URL handling - enable clickable URLs
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-urlview'
|
||||
|
||||
# Nerd font window name plugin
|
||||
set -g @plugin 'joshmedeski/tmux-nerd-font-window-name'
|
||||
|
||||
# Mouse click behavior - simple pane selection without copy-mode
|
||||
bind-key -T copy-mode-vi MouseDown1Pane select-pane
|
||||
bind-key -T copy-mode MouseDown1Pane select-pane
|
||||
bind-key -n MouseDown1Pane select-pane -t =
|
||||
|
||||
# ============================================
|
||||
# GRUVBOX STYLING
|
||||
# PLUGINS
|
||||
# ============================================
|
||||
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
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'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'fcsonline/tmux-thumbs'
|
||||
set -g @plugin 'omerxx/tmux-sessionx'
|
||||
set -g @plugin 'joshmedeski/tmux-nerd-font-window-name'
|
||||
|
||||
# Persist and restore tmux sessions across restarts
|
||||
set -g @resurrect-capture-pane-contents 'on'
|
||||
set -g @continuum-restore 'on'
|
||||
set -g @continuum-save-interval '15'
|
||||
|
||||
# sessionx
|
||||
set -g @sessionx-bind 'o'
|
||||
|
||||
# tmux-thumbs
|
||||
set -g @thumbs-key 'f'
|
||||
set -g @thumbs-command 'echo -n {} | pbcopy && tmux display-message "Copied!"'
|
||||
|
||||
# ============================================
|
||||
# STYLING
|
||||
# ============================================
|
||||
|
||||
# Status bar position
|
||||
set -g status-position top
|
||||
|
||||
# Status bar styling
|
||||
set -g status-style "bg=#3c3836,fg=#ebdbb2"
|
||||
set -g status-left-length 100
|
||||
set -g status-right-length 100
|
||||
|
||||
# Pane borders (strong active contrast)
|
||||
set -g pane-border-style "fg=#3c3836"
|
||||
set -g pane-active-border-style "fg=#fabd2f,bold"
|
||||
|
||||
# Show pane labels on borders for easier focus tracking
|
||||
set -g pane-border-status top
|
||||
set -g pane-border-format "#{?pane_active,#[fg=#282828,bg=#fabd2f,bold] ACTIVE #[default],#[fg=#928374] pane #[default]}#[fg=#ebdbb2] #P #[fg=#928374]| #[fg=#83a598]#{pane_current_command} #[fg=#928374]| #[fg=#bdae93]#{pane_current_path}"
|
||||
|
||||
# Message styling
|
||||
set -g message-style "bg=#d79921,fg=#282828,bold"
|
||||
set -g message-command-style "bg=#d79921,fg=#282828,bold"
|
||||
|
||||
# Mode styling
|
||||
set -g mode-style "bg=#d79921,fg=#282828,bold"
|
||||
|
||||
# Colorful window status styling
|
||||
set -g window-status-style "fg=#a89984,bg=#3c3836"
|
||||
set -g window-status-format "#[fg=#282828,bg=#504945] #I #[fg=#a89984,bg=#3c3836] #W #[fg=#3c3836,bg=default]"
|
||||
|
||||
# Current window status (powerline highlight)
|
||||
set -g window-status-current-style "fg=#282828,bg=#fabd2f,bold"
|
||||
set -g window-status-current-format "#[fg=#282828,bg=#fabd2f,bold] #I #[fg=#282828,bg=#d79921,bold] #W #[fg=#d79921,bg=default]"
|
||||
|
||||
# Status bar content
|
||||
set -g status-left "#[fg=#282828,bg=#d79921,bold] #S #[fg=#d79921,bg=#3c3836]"
|
||||
set -g status-right "#[fg=#a89984] %H:%M #[fg=#d79921,bg=#3c3836]#[fg=#282828,bg=#d79921] %d %b "
|
||||
|
||||
# Status bar separators
|
||||
set -g window-status-separator ""
|
||||
set -g status-justify left
|
||||
set -g status-interval 1
|
||||
set -g pane-border-format "#[fg=#cdd6f4] #P #[fg=#6c7086]| #[fg=#89b4fa]#{pane_current_command} #[fg=#6c7086]| #[fg=#a6adc8]#{pane_current_path}"
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Activity monitoring
|
||||
set -g monitor-activity on
|
||||
@@ -198,30 +175,38 @@ set -g monitor-bell on
|
||||
set -g visual-bell off
|
||||
set -g bell-action any
|
||||
|
||||
# Clock colors
|
||||
set -g clock-mode-colour "#d79921"
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Optionally also dim inactive windows further
|
||||
set -g window-status-style "fg=#928374,bg=#3c3836"
|
||||
|
||||
# ============================================
|
||||
# TRANSPARENCY SETTINGS
|
||||
# TRANSPARENCY
|
||||
# ============================================
|
||||
|
||||
# Make pane backgrounds transparent
|
||||
set -g window-style "bg=default"
|
||||
set -g window-active-style "bg=default"
|
||||
|
||||
# ============================================
|
||||
# RELOAD CONFIG
|
||||
# THEME
|
||||
# ============================================
|
||||
|
||||
# Toggle top status bar on/off (Prefix + b)
|
||||
bind b if -F "#{==:#{status},on}" "set -g status off" "set -g status on"
|
||||
source-file ~/.config/tmux/themes/tmuxline.tmux
|
||||
|
||||
# Reload config file with message
|
||||
# ============================================
|
||||
# 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" \
|
||||
"if -F '#{==:#{status-position},top}' \
|
||||
'set -g status-position bottom' \
|
||||
'set -g status off ; set -g pane-border-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'
|
||||
|
||||
143
yazi/keymap.toml
143
yazi/keymap.toml
@@ -100,10 +100,73 @@ 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" },
|
||||
|
||||
# Copy to destination (Ctrl+Y)
|
||||
{ on = [ "<C-y>", "h" ], run = "shell 'cp -r \"$@\" ~/' --confirm", desc = "Copy to home" },
|
||||
{ on = [ "<C-y>", "c" ], run = "shell 'cp -r \"$@\" ~/.config/' --confirm", desc = "Copy to ~/.config" },
|
||||
{ on = [ "<C-y>", "d" ], run = "shell 'cp -r \"$@\" ~/Downloads/' --confirm", desc = "Copy to Downloads" },
|
||||
{ on = [ "<C-y>", "D" ], run = "shell 'cp -r \"$@\" ~/Documents/' --confirm", desc = "Copy to Documents" },
|
||||
{ on = [ "<C-y>", "w" ], run = "shell 'cp -r \"$@\" ~/Pictures/Wallpapers/' --confirm", desc = "Copy to Wallpapers" },
|
||||
|
||||
# Copy to Torrents subdirs
|
||||
{ on = [ "<C-y>", "t", "b" ], run = "shell 'cp -r \"$@\" ~/Torrents/Books/' --confirm", desc = "Copy to Torrents/Books" },
|
||||
{ on = [ "<C-y>", "t", "a" ], run = "shell 'cp -r \"$@\" ~/Torrents/Audiobooks/' --confirm", desc = "Copy to Torrents/Audiobooks" },
|
||||
{ on = [ "<C-y>", "t", "s" ], run = "shell 'cp -r \"$@\" ~/Torrents/Shows/' --confirm", desc = "Copy to Torrents/Shows" },
|
||||
{ on = [ "<C-y>", "t", "m" ], run = "shell 'cp -r \"$@\" ~/Torrents/Movies/' --confirm", desc = "Copy to Torrents/Movies" },
|
||||
|
||||
# Copy to Obsidian
|
||||
{ on = [ "<C-y>", "o", "p" ], run = "shell 'cp -r \"$@\" ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Private/' --confirm", desc = "Copy to Obsidian/Private" },
|
||||
{ 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/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" },
|
||||
{ on = [ "<C-x>", "c" ], run = "shell 'mv \"$@\" ~/.config/' --confirm", desc = "Move to ~/.config" },
|
||||
{ on = [ "<C-x>", "d" ], run = "shell 'mv \"$@\" ~/Downloads/' --confirm", desc = "Move to Downloads" },
|
||||
{ on = [ "<C-x>", "D" ], run = "shell 'mv \"$@\" ~/Documents/' --confirm", desc = "Move to Documents" },
|
||||
{ on = [ "<C-x>", "w" ], run = "shell 'mv \"$@\" ~/Pictures/Wallpapers/' --confirm", desc = "Move to Wallpapers" },
|
||||
|
||||
# Move to Torrents subdirs
|
||||
{ on = [ "<C-x>", "t", "b" ], run = "shell 'mv \"$@\" ~/Torrents/Books/' --confirm", desc = "Move to Torrents/Books" },
|
||||
{ on = [ "<C-x>", "t", "a" ], run = "shell 'mv \"$@\" ~/Torrents/Audiobooks/' --confirm", desc = "Move to Torrents/Audiobooks" },
|
||||
{ on = [ "<C-x>", "t", "s" ], run = "shell 'mv \"$@\" ~/Torrents/Shows/' --confirm", desc = "Move to Torrents/Shows" },
|
||||
{ on = [ "<C-x>", "t", "m" ], run = "shell 'mv \"$@\" ~/Torrents/Movies/' --confirm", desc = "Move to Torrents/Movies" },
|
||||
|
||||
# Move to Obsidian
|
||||
{ on = [ "<C-x>", "o", "p" ], run = "shell 'mv \"$@\" ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Private/' --confirm", desc = "Move to Obsidian/Private" },
|
||||
{ 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/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" },
|
||||
{ on = "?", run = "find --previous --smart", desc = "Find previous file" },
|
||||
@@ -134,32 +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", "s"], run = "cd ~/Torrents/Shows", desc = "Goto Shows" },
|
||||
{ on = [ "g", "t", "m"], run = "cd ~/Torrents/Movies", desc = "Goto Shows" },
|
||||
{ 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 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/Privat/", 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
|
||||
{ on = [ "g", "a", "<Space>" ], run = "cd /Volumes/AK127132", desc = "Goto AK127132" },
|
||||
{ on = [ "g", "a", "z" ], run = "cd /Volumes/AK127132/Zeitaufzeichnung", desc = "Goto Zeitaufzeichnung" },
|
||||
#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/P54_EDIH TBI 80 Brückner\"", desc = "Goto Brückner" },
|
||||
{ on = [ "g", "p", "s" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P42b_Senoplast SenoSmartCoex\"", desc = "Goto SenoSmartCoex" },
|
||||
{ on = [ "g", "p", "n" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P59_EDIH TBI 193 Naku\"", desc = "Goto SenoSmartCoex" },
|
||||
{ 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" },
|
||||
|
||||
@@ -395,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"
|
||||
|
||||
@@ -1,388 +0,0 @@
|
||||
#. A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
|
||||
|
||||
[manager]
|
||||
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
|
||||
{ on = "q", run = "quit", desc = "Quit the process" },
|
||||
{ on = "Q", run = "quit --no-cwd-file", desc = "Quit the process without outputting cwd-file" },
|
||||
{ on = "<C-c>", run = "close", desc = "Close the current tab, or quit if it's last" },
|
||||
{ on = "<C-z>", run = "suspend", desc = "Suspend the process" },
|
||||
|
||||
# Hopping
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<C-u>", run = "arrow -50%", desc = "Move cursor up half page" },
|
||||
{ on = "<C-d>", run = "arrow 50%", desc = "Move cursor down half page" },
|
||||
{ on = "<C-b>", run = "arrow -100%", desc = "Move cursor up one page" },
|
||||
{ on = "<C-f>", run = "arrow 100%", desc = "Move cursor down one page" },
|
||||
|
||||
{ on = "<S-PageUp>", run = "arrow -50%", desc = "Move cursor up half page" },
|
||||
{ on = "<S-PageDown>", run = "arrow 50%", desc = "Move cursor down half page" },
|
||||
{ on = "<PageUp>", run = "arrow -100%", desc = "Move cursor up one page" },
|
||||
{ on = "<PageDown>", run = "arrow 100%", desc = "Move cursor down one page" },
|
||||
|
||||
{ on = [ "g", "g" ], run = "arrow -99999999", desc = "Move cursor to the top" },
|
||||
{ on = "G", run = "arrow 99999999", desc = "Move cursor to the bottom" },
|
||||
|
||||
# Navigation
|
||||
{ on = "h", run = "leave", desc = "Go back to the parent directory" },
|
||||
{ on = "l", run = "enter", desc = "Enter the child directory" },
|
||||
|
||||
{ on = "<Left>", run = "leave", desc = "Go back to the parent directory" },
|
||||
{ on = "<Right>", run = "enter", desc = "Enter the child directory" },
|
||||
|
||||
{ on = "H", run = "back", desc = "Go back to the previous directory" },
|
||||
{ on = "L", run = "forward", desc = "Go forward to the next directory" },
|
||||
|
||||
# Toggle
|
||||
{ on = "<Space>", run = [ "toggle", "arrow 1" ], desc = "Toggle the current selection state" },
|
||||
{ on = "<C-a>", run = "toggle_all --state=on", desc = "Select all files" },
|
||||
{ on = "<C-r>", run = "toggle_all", desc = "Invert selection of all files" },
|
||||
|
||||
# Visual mode
|
||||
{ on = "v", run = "visual_mode", desc = "Enter visual mode (selection mode)" },
|
||||
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
|
||||
|
||||
# Seeking
|
||||
{ on = "K", run = "seek -5", desc = "Seek up 5 units in the preview" },
|
||||
{ on = "J", run = "seek 5", desc = "Seek down 5 units in the preview" },
|
||||
|
||||
# Spotting
|
||||
{ on = "<Tab>", run = "spot", desc = "Spot hovered file" },
|
||||
|
||||
# Operation
|
||||
{ on = "o", run = "open", desc = "Open selected files" },
|
||||
{ on = "O", run = "open --interactive", desc = "Open selected files interactively" },
|
||||
{ on = "<Enter>", run = "open", desc = "Open selected files" },
|
||||
{ on = "<S-Enter>", run = "open --interactive", desc = "Open selected files interactively" },
|
||||
{ on = "y", run = "yank", desc = "Yank selected files (copy)" },
|
||||
{ on = "x", run = "yank --cut", desc = "Yank selected files (cut)" },
|
||||
{ on = "p", run = "paste", desc = "Paste yanked files" },
|
||||
{ on = "P", run = "paste --force", desc = "Paste yanked files (overwrite if the destination exists)" },
|
||||
{ on = "-", run = "link", desc = "Symlink the absolute path of yanked files" },
|
||||
{ on = "_", run = "link --relative", desc = "Symlink the relative path of yanked files" },
|
||||
{ on = "<C-->", run = "hardlink", desc = "Hardlink yanked files" },
|
||||
{ on = "Y", run = "unyank", desc = "Cancel the yank status" },
|
||||
{ on = "X", run = "unyank", desc = "Cancel the yank status" },
|
||||
{ on = "d", run = "remove", desc = "Trash selected files" },
|
||||
{ on = "D", run = "remove --permanently", desc = "Permanently delete selected files" },
|
||||
{ on = "a", run = "create", desc = "Create a file (ends with / for directories)" },
|
||||
{ on = "r", run = "rename --cursor=before_ext", desc = "Rename selected file(s)" },
|
||||
{ on = ";", run = "shell --interactive", desc = "Run a shell command" },
|
||||
{ on = ":", run = "shell --block --interactive", desc = "Run a shell command (block until finishes)" },
|
||||
{ on = ".", run = "hidden toggle", desc = "Toggle the visibility of hidden files" },
|
||||
{ on = "s", run = "search --via=fd", desc = "Search files by name via fd" },
|
||||
{ on = "S", run = "search --via=rg", desc = "Search files by content via ripgrep" },
|
||||
{ on = "<C-s>", run = "escape --search", desc = "Cancel the ongoing search" },
|
||||
{ on = "z", run = "plugin zoxide", desc = "Jump to a directory via zoxide" },
|
||||
{ on = "Z", run = "plugin fzf", desc = "Jump to a file/directory via fzf" },
|
||||
|
||||
# Linemode
|
||||
{ on = [ "m", "s" ], run = "linemode size", desc = "Linemode: size" },
|
||||
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Linemode: permissions" },
|
||||
{ on = [ "m", "b" ], run = "linemode btime", desc = "Linemode: btime" },
|
||||
{ on = [ "m", "m" ], run = "linemode mtime", desc = "Linemode: mtime" },
|
||||
{ on = [ "m", "o" ], run = "linemode owner", desc = "Linemode: owner" },
|
||||
{ on = [ "m", "n" ], run = "linemode none", desc = "Linemode: none" },
|
||||
|
||||
# Copy
|
||||
{ on = [ "c", "c" ], run = "copy path", desc = "Copy the file path" },
|
||||
{ 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" },
|
||||
|
||||
# Filter
|
||||
{ on = "f", run = "filter --smart", desc = "Filter files" },
|
||||
|
||||
# Find
|
||||
{ on = "/", run = "find --smart", desc = "Find next file" },
|
||||
{ on = "?", run = "find --previous --smart", desc = "Find previous file" },
|
||||
{ on = "n", run = "find_arrow", desc = "Goto the next found" },
|
||||
{ on = "N", run = "find_arrow --previous", desc = "Goto the previous found" },
|
||||
|
||||
# Sorting
|
||||
{ on = [ ",", "m" ], run = [ "sort mtime --reverse=no", "linemode mtime" ], desc = "Sort by modified time" },
|
||||
{ on = [ ",", "M" ], run = [ "sort mtime --reverse", "linemode mtime" ], desc = "Sort by modified time (reverse)" },
|
||||
{ on = [ ",", "b" ], run = [ "sort btime --reverse=no", "linemode btime" ], desc = "Sort by birth time" },
|
||||
{ on = [ ",", "B" ], run = [ "sort btime --reverse", "linemode btime" ], desc = "Sort by birth time (reverse)" },
|
||||
{ on = [ ",", "e" ], run = "sort extension --reverse=no", desc = "Sort by extension" },
|
||||
{ on = [ ",", "E" ], run = "sort extension --reverse", desc = "Sort by extension (reverse)" },
|
||||
{ on = [ ",", "a" ], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" },
|
||||
{ on = [ ",", "A" ], run = "sort alphabetical --reverse", desc = "Sort alphabetically (reverse)" },
|
||||
{ on = [ ",", "n" ], run = "sort natural --reverse=no", desc = "Sort naturally" },
|
||||
{ on = [ ",", "N" ], run = "sort natural --reverse", desc = "Sort naturally (reverse)" },
|
||||
{ on = [ ",", "s" ], run = [ "sort size --reverse=no", "linemode size" ], desc = "Sort by size" },
|
||||
{ on = [ ",", "S" ], run = [ "sort size --reverse", "linemode size" ], desc = "Sort by size (reverse)" },
|
||||
{ on = [ ",", "r" ], run = "sort random --reverse=no", desc = "Sort randomly" },
|
||||
|
||||
# Goto
|
||||
{ on = [ "g", "h" ], run = "cd ~", desc = "Go home" },
|
||||
{ on = [ "g", "c" ], run = "cd ~/.config", desc = "Goto ~/.config" },
|
||||
{ on = [ "g", "v" ], run = "cd /Volumes", desc = "Goto /Volumes" },
|
||||
#Media and Docs
|
||||
{ on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Goto ~/Downloads" },
|
||||
{ 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", "s"], run = "cd ~/Torrents/Shows", desc = "Goto Shows" },
|
||||
{ on = [ "g", "t", "m"], run = "cd ~/Torrents/Movies", desc = "Goto Shows" },
|
||||
{ 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", "o", "p" ], run = "cd ~/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/Privat/", desc = "Goto Obsidian/Privat" },
|
||||
{ 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
|
||||
{ on = [ "g", "a", "<Space>" ], run = "cd /Volumes/AK127132", desc = "Goto AK127132" },
|
||||
{ on = [ "g", "a", "z" ], run = "cd /Volumes/AK127132/Zeitaufzeichnung", desc = "Goto Zeitaufzeichnung" },
|
||||
|
||||
{ on = [ "g", "i", "<Space>" ], run = "cd /Volumes/ipec/intern", desc = "Goto Intern" },
|
||||
{ on = [ "g", "p", "b" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P54_EDIH TBI 80 Brückner\"", desc = "Goto Brückner" },
|
||||
{ on = [ "g", "p", "s" ], run = "cd \"/Volumes/ipec/intern/02_Projekte/P42b_Senoplast SenoSmartCoex\"", desc = "Goto SenoSmartCoex" },
|
||||
{ on = [ "g", "i", "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" },
|
||||
# Tabs
|
||||
{ on = "t", run = "tab_create --current", desc = "Create a new tab with CWD" },
|
||||
|
||||
{ on = "1", run = "tab_switch 0", desc = "Switch to the first tab" },
|
||||
{ on = "2", run = "tab_switch 1", desc = "Switch to the second tab" },
|
||||
{ on = "3", run = "tab_switch 2", desc = "Switch to the third tab" },
|
||||
{ on = "4", run = "tab_switch 3", desc = "Switch to the fourth tab" },
|
||||
{ on = "5", run = "tab_switch 4", desc = "Switch to the fifth tab" },
|
||||
{ on = "6", run = "tab_switch 5", desc = "Switch to the sixth tab" },
|
||||
{ on = "7", run = "tab_switch 6", desc = "Switch to the seventh tab" },
|
||||
{ on = "8", run = "tab_switch 7", desc = "Switch to the eighth tab" },
|
||||
{ on = "9", run = "tab_switch 8", desc = "Switch to the ninth tab" },
|
||||
|
||||
{ on = "[", run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
|
||||
{ on = "]", run = "tab_switch 1 --relative", desc = "Switch to the next tab" },
|
||||
|
||||
{ on = "{", run = "tab_swap -1", desc = "Swap current tab with previous tab" },
|
||||
{ on = "}", run = "tab_swap 1", desc = "Swap current tab with next tab" },
|
||||
|
||||
# Tasks
|
||||
{ on = "w", run = "tasks_show", desc = "Show task manager" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Close task manager" },
|
||||
{ on = "<C-[>", run = "close", desc = "Close task manager" },
|
||||
{ on = "<C-c>", run = "close", desc = "Close task manager" },
|
||||
{ on = "w", run = "close", desc = "Close task manager" },
|
||||
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Enter>", run = "inspect", desc = "Inspect the task" },
|
||||
{ on = "x", run = "cancel", desc = "Cancel the task" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[spot]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Close the spot" },
|
||||
{ on = "<C-[>", run = "close", desc = "Close the spot" },
|
||||
{ on = "<C-c>", run = "close", desc = "Close the spot" },
|
||||
{ on = "<Tab>", run = "close", desc = "Close the spot" },
|
||||
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
{ on = "h", run = "swipe -1", desc = "Swipe to the next file" },
|
||||
{ on = "l", run = "swipe 1", desc = "Swipe to the previous file" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
{ on = "<Left>", run = "swipe -1", desc = "Swipe to the next file" },
|
||||
{ on = "<Right>", run = "swipe 1", desc = "Swipe to the previous file" },
|
||||
|
||||
# Copy
|
||||
{ on = [ "c", "c" ], run = "copy cell", desc = "Copy selected cell" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[pick]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Cancel pick" },
|
||||
{ on = "<C-[>", run = "close", desc = "Cancel pick" },
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel pick" },
|
||||
{ on = "<Enter>", run = "close --submit", desc = "Submit the pick" },
|
||||
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[input]
|
||||
|
||||
keymap = [
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel input" },
|
||||
{ on = "<Enter>", run = "close --submit", desc = "Submit input" },
|
||||
{ on = "<Esc>", run = "escape", desc = "Go back the normal mode, or cancel input" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Go back the normal mode, or cancel input" },
|
||||
|
||||
# Mode
|
||||
{ on = "i", run = "insert", desc = "Enter insert mode" },
|
||||
{ on = "a", run = "insert --append", desc = "Enter append mode" },
|
||||
{ on = "I", run = [ "move -999", "insert" ], desc = "Move to the BOL, and enter insert mode" },
|
||||
{ on = "A", run = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" },
|
||||
{ on = "v", run = "visual", desc = "Enter visual mode" },
|
||||
{ on = "V", run = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" },
|
||||
|
||||
# Character-wise movement
|
||||
{ on = "h", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "l", run = "move 1", desc = "Move forward a character" },
|
||||
{ on = "<Left>", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "<Right>", run = "move 1", desc = "Move forward a character" },
|
||||
{ on = "<C-b>", run = "move -1", desc = "Move back a character" },
|
||||
{ on = "<C-f>", run = "move 1", desc = "Move forward a character" },
|
||||
|
||||
# Word-wise movement
|
||||
{ on = "b", run = "backward", desc = "Move back to the start of the current or previous word" },
|
||||
{ on = "w", run = "forward", desc = "Move forward to the start of the next word" },
|
||||
{ on = "e", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
|
||||
{ on = "<A-b>", run = "backward", desc = "Move back to the start of the current or previous word" },
|
||||
{ on = "<A-f>", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
|
||||
|
||||
# Line-wise movement
|
||||
{ on = "0", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "$", run = "move 999", desc = "Move to the EOL" },
|
||||
{ on = "<C-a>", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "<C-e>", run = "move 999", desc = "Move to the EOL" },
|
||||
{ on = "<Home>", run = "move -999", desc = "Move to the BOL" },
|
||||
{ on = "<End>", run = "move 999", desc = "Move to the EOL" },
|
||||
|
||||
# Delete
|
||||
{ on = "<Backspace>", run = "backspace", desc = "Delete the character before the cursor" },
|
||||
{ on = "<Delete>", run = "backspace --under", desc = "Delete the character under the cursor" },
|
||||
{ on = "<C-h>", run = "backspace", desc = "Delete the character before the cursor" },
|
||||
{ on = "<C-d>", run = "backspace --under", desc = "Delete the character under the cursor" },
|
||||
|
||||
# Kill
|
||||
{ on = "<C-u>", run = "kill bol", desc = "Kill backwards to the BOL" },
|
||||
{ on = "<C-k>", run = "kill eol", desc = "Kill forwards to the EOL" },
|
||||
{ on = "<C-w>", run = "kill backward", desc = "Kill backwards to the start of the current word" },
|
||||
{ on = "<A-d>", run = "kill forward", desc = "Kill forwards to the end of the current word" },
|
||||
|
||||
# Cut/Yank/Paste
|
||||
{ on = "d", run = "delete --cut", desc = "Cut the selected characters" },
|
||||
{ on = "D", run = [ "delete --cut", "move 999" ], desc = "Cut until the EOL" },
|
||||
{ on = "c", run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
|
||||
{ on = "C", run = [ "delete --cut --insert", "move 999" ], desc = "Cut until the EOL, and enter insert mode" },
|
||||
{ on = "x", run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" },
|
||||
{ on = "y", run = "yank", desc = "Copy the selected characters" },
|
||||
{ on = "p", run = "paste", desc = "Paste the copied characters after the cursor" },
|
||||
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
|
||||
|
||||
# Undo/Redo
|
||||
{ on = "u", run = "undo", desc = "Undo the last operation" },
|
||||
{ on = "<C-r>", run = "redo", desc = "Redo the last operation" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[confirm]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "close", desc = "Cancel the confirm" },
|
||||
{ on = "<C-[>", run = "close", desc = "Cancel the confirm" },
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel the confirm" },
|
||||
{ on = "<Enter>", run = "close --submit", desc = "Submit the confirm" },
|
||||
|
||||
{ on = "n", run = "close", desc = "Cancel the confirm" },
|
||||
{ on = "y", run = "close --submit", desc = "Submit the confirm" },
|
||||
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[completion]
|
||||
|
||||
keymap = [
|
||||
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
|
||||
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
|
||||
{ on = "<Enter>", run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" },
|
||||
|
||||
{ on = "<A-k>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<A-j>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<C-p>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<C-n>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Help
|
||||
{ on = "~", run = "help", desc = "Open help" },
|
||||
{ on = "<F3>", run = "help", desc = "Open help" },
|
||||
]
|
||||
|
||||
[help]
|
||||
|
||||
keymap = [
|
||||
{ on = "<Esc>", run = "escape", desc = "Clear the filter, or hide the help" },
|
||||
{ on = "<C-[>", run = "escape", desc = "Clear the filter, or hide the help" },
|
||||
{ on = "<C-c>", run = "close", desc = "Hide the help" },
|
||||
|
||||
# Navigation
|
||||
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||
|
||||
# Filtering
|
||||
{ on = "f", run = "filter", desc = "Apply a filter for the help items" },
|
||||
]
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = "f"
|
||||
run = "plugin jump-to-char"
|
||||
desc = "Jump to char"
|
||||
@@ -1,22 +1,37 @@
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:jump-to-char"
|
||||
rev = "c0ad8a3"
|
||||
hash = "30fc0b37f03a597b92d387268319450f"
|
||||
rev = "eaf6920"
|
||||
hash = "ce67445ebb1bf3d97b8e44f50904b2c5"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "Reledia/glow"
|
||||
rev = "2da96e3"
|
||||
hash = "f9ee1436e3b853508d87f7d49dce56e6"
|
||||
rev = "bd3eaa5"
|
||||
hash = "92b5c58159a51c567f82b618cee2b78"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:smart-enter"
|
||||
rev = "2ad42fa"
|
||||
rev = "b886025"
|
||||
hash = "56fdabc96fc1f4d53c96eb884b02a5be"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:git"
|
||||
rev = "2ad42fa"
|
||||
hash = "e01006bfb38951ea89031bd918b20dbb"
|
||||
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 = []
|
||||
|
||||
@@ -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.
|
||||
@@ -1,32 +0,0 @@
|
||||
# full-border.yazi
|
||||
|
||||
Add a full border to Yazi to make it look fancier.
|
||||
|
||||

|
||||
|
||||
## 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.
|
||||
@@ -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 }
|
||||
@@ -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.
|
||||
@@ -1,75 +0,0 @@
|
||||
# git.yazi
|
||||
|
||||
Show the status of Git file changes as linemode in the file list.
|
||||
|
||||
https://github.com/user-attachments/assets/34976be9-a871-4ffe-9d5a-c4cdd0bf4576
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pkg add yazi-rs/plugins:git
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
Add the following to your `~/.config/yazi/init.lua`:
|
||||
|
||||
```lua
|
||||
require("git"):setup()
|
||||
```
|
||||
|
||||
And register it as fetchers in your `~/.config/yazi/yazi.toml`:
|
||||
|
||||
```toml
|
||||
[[plugin.prepend_fetchers]]
|
||||
id = "git"
|
||||
name = "*"
|
||||
run = "git"
|
||||
|
||||
[[plugin.prepend_fetchers]]
|
||||
id = "git"
|
||||
name = "*/"
|
||||
run = "git"
|
||||
```
|
||||
|
||||
## Advanced
|
||||
|
||||
You can customize the [Style](https://yazi-rs.github.io/docs/plugins/layout#style) of the status sign with:
|
||||
|
||||
- `th.git.modified`
|
||||
- `th.git.added`
|
||||
- `th.git.untracked`
|
||||
- `th.git.ignored`
|
||||
- `th.git.deleted`
|
||||
- `th.git.updated`
|
||||
|
||||
For example:
|
||||
|
||||
```lua
|
||||
-- ~/.config/yazi/init.lua
|
||||
th.git = th.git or {}
|
||||
th.git.modified = ui.Style():fg("blue")
|
||||
th.git.deleted = ui.Style():fg("red"):bold()
|
||||
```
|
||||
|
||||
You can also customize the text of the status sign with:
|
||||
|
||||
- `th.git.modified_sign`
|
||||
- `th.git.added_sign`
|
||||
- `th.git.untracked_sign`
|
||||
- `th.git.ignored_sign`
|
||||
- `th.git.deleted_sign`
|
||||
- `th.git.updated_sign`
|
||||
|
||||
For example:
|
||||
|
||||
```lua
|
||||
-- ~/.config/yazi/init.lua
|
||||
th.git = th.git or {}
|
||||
th.git.modified_sign = "M"
|
||||
th.git.deleted_sign = "D"
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
|
||||
@@ -1,228 +0,0 @@
|
||||
--- @since 25.5.31
|
||||
|
||||
local WINDOWS = ya.target_family() == "windows"
|
||||
|
||||
-- The code of supported git status,
|
||||
-- also used to determine which status to show for directories when they contain different statuses
|
||||
-- see `bubble_up`
|
||||
local CODES = {
|
||||
excluded = 100, -- ignored directory
|
||||
ignored = 6, -- ignored file
|
||||
untracked = 5,
|
||||
modified = 4,
|
||||
added = 3,
|
||||
deleted = 2,
|
||||
updated = 1,
|
||||
unknown = 0,
|
||||
}
|
||||
|
||||
local PATTERNS = {
|
||||
{ "!$", CODES.ignored },
|
||||
{ "?$", CODES.untracked },
|
||||
{ "[MT]", CODES.modified },
|
||||
{ "[AC]", CODES.added },
|
||||
{ "D", CODES.deleted },
|
||||
{ "U", CODES.updated },
|
||||
{ "[AD][AD]", CODES.updated },
|
||||
}
|
||||
|
||||
local function match(line)
|
||||
local signs = line:sub(1, 2)
|
||||
for _, p in ipairs(PATTERNS) do
|
||||
local path, pattern, code = nil, p[1], p[2]
|
||||
if signs:find(pattern) then
|
||||
path = line:sub(4, 4) == '"' and line:sub(5, -2) or line:sub(4)
|
||||
path = WINDOWS and path:gsub("/", "\\") or path
|
||||
end
|
||||
if not path then
|
||||
elseif path:find("[/\\]$") then
|
||||
-- Mark the ignored directory as `excluded`, so we can process it further within `propagate_down`
|
||||
return code == CODES.ignored and CODES.excluded or code, path:sub(1, -2)
|
||||
else
|
||||
return code, path
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function root(cwd)
|
||||
local is_worktree = function(url)
|
||||
local file, head = io.open(tostring(url)), nil
|
||||
if file then
|
||||
head = file:read(8)
|
||||
file:close()
|
||||
end
|
||||
return head == "gitdir: "
|
||||
end
|
||||
|
||||
repeat
|
||||
local next = cwd:join(".git")
|
||||
local cha = fs.cha(next)
|
||||
if cha and (cha.is_dir or is_worktree(next)) then
|
||||
return tostring(cwd)
|
||||
end
|
||||
cwd = cwd.parent
|
||||
until not cwd
|
||||
end
|
||||
|
||||
local function bubble_up(changed)
|
||||
local new, empty = {}, Url("")
|
||||
for path, code in pairs(changed) do
|
||||
if code ~= CODES.ignored then
|
||||
local url = Url(path).parent
|
||||
while url and url ~= empty do
|
||||
local s = tostring(url)
|
||||
new[s] = (new[s] or CODES.unknown) > code and new[s] or code
|
||||
url = url.parent
|
||||
end
|
||||
end
|
||||
end
|
||||
return new
|
||||
end
|
||||
|
||||
local function propagate_down(excluded, cwd, repo)
|
||||
local new, rel = {}, cwd:strip_prefix(repo)
|
||||
for _, path in ipairs(excluded) do
|
||||
if rel:starts_with(path) then
|
||||
-- If `cwd` is a subdirectory of an excluded directory, also mark it as `excluded`
|
||||
new[tostring(cwd)] = CODES.excluded
|
||||
elseif cwd == repo:join(path).parent then
|
||||
-- If `path` is a direct subdirectory of `cwd`, mark it as `ignored`
|
||||
new[path] = CODES.ignored
|
||||
else
|
||||
-- Skipping, we only care about `cwd` itself and its direct subdirectories for maximum performance
|
||||
end
|
||||
end
|
||||
return new
|
||||
end
|
||||
|
||||
local add = ya.sync(function(st, cwd, repo, changed)
|
||||
st.dirs[cwd] = repo
|
||||
st.repos[repo] = st.repos[repo] or {}
|
||||
for path, code in pairs(changed) do
|
||||
if code == CODES.unknown then
|
||||
st.repos[repo][path] = nil
|
||||
elseif code == CODES.excluded then
|
||||
-- Mark the directory with a special value `excluded` so that it can be distinguished during UI rendering
|
||||
st.dirs[path] = CODES.excluded
|
||||
else
|
||||
st.repos[repo][path] = code
|
||||
end
|
||||
end
|
||||
ya.render()
|
||||
end)
|
||||
|
||||
local remove = ya.sync(function(st, cwd)
|
||||
local repo = st.dirs[cwd]
|
||||
if not repo then
|
||||
return
|
||||
end
|
||||
|
||||
ya.render()
|
||||
st.dirs[cwd] = nil
|
||||
if not st.repos[repo] then
|
||||
return
|
||||
end
|
||||
|
||||
for _, r in pairs(st.dirs) do
|
||||
if r == repo then
|
||||
return
|
||||
end
|
||||
end
|
||||
st.repos[repo] = nil
|
||||
end)
|
||||
|
||||
local function setup(st, opts)
|
||||
st.dirs = {} -- Mapping between a directory and its corresponding repository
|
||||
st.repos = {} -- Mapping between a repository and the status of each of its files
|
||||
|
||||
opts = opts or {}
|
||||
opts.order = opts.order or 1500
|
||||
|
||||
local t = th.git or {}
|
||||
local styles = {
|
||||
[CODES.ignored] = t.ignored and ui.Style(t.ignored) or ui.Style():fg("darkgray"),
|
||||
[CODES.untracked] = t.untracked and ui.Style(t.untracked) or ui.Style():fg("magenta"),
|
||||
[CODES.modified] = t.modified and ui.Style(t.modified) or ui.Style():fg("yellow"),
|
||||
[CODES.added] = t.added and ui.Style(t.added) or ui.Style():fg("green"),
|
||||
[CODES.deleted] = t.deleted and ui.Style(t.deleted) or ui.Style():fg("red"),
|
||||
[CODES.updated] = t.updated and ui.Style(t.updated) or ui.Style():fg("yellow"),
|
||||
}
|
||||
local signs = {
|
||||
[CODES.ignored] = t.ignored_sign or "",
|
||||
[CODES.untracked] = t.untracked_sign or "?",
|
||||
[CODES.modified] = t.modified_sign or "",
|
||||
[CODES.added] = t.added_sign or "",
|
||||
[CODES.deleted] = t.deleted_sign or "",
|
||||
[CODES.updated] = t.updated_sign or "",
|
||||
}
|
||||
|
||||
Linemode:children_add(function(self)
|
||||
local url = self._file.url
|
||||
local repo = st.dirs[tostring(url.base)]
|
||||
local code
|
||||
if repo then
|
||||
code = repo == CODES.excluded and CODES.ignored or st.repos[repo][tostring(url):sub(#repo + 2)]
|
||||
end
|
||||
|
||||
if not code or signs[code] == "" then
|
||||
return ""
|
||||
elseif self._file.is_hovered then
|
||||
return ui.Line { " ", signs[code] }
|
||||
else
|
||||
return ui.Line { " ", ui.Span(signs[code]):style(styles[code]) }
|
||||
end
|
||||
end, opts.order)
|
||||
end
|
||||
|
||||
local function fetch(_, job)
|
||||
local cwd = job.files[1].url.base
|
||||
local repo = root(cwd)
|
||||
if not repo then
|
||||
remove(tostring(cwd))
|
||||
return true
|
||||
end
|
||||
|
||||
local paths = {}
|
||||
for _, file in ipairs(job.files) do
|
||||
paths[#paths + 1] = tostring(file.url)
|
||||
end
|
||||
|
||||
-- stylua: ignore
|
||||
local output, err = Command("git")
|
||||
:cwd(tostring(cwd))
|
||||
:arg({ "--no-optional-locks", "-c", "core.quotePath=", "status", "--porcelain", "-unormal", "--no-renames", "--ignored=matching" })
|
||||
:arg(paths)
|
||||
:stdout(Command.PIPED)
|
||||
:output()
|
||||
if not output then
|
||||
return true, Err("Cannot spawn `git` command, error: %s", err)
|
||||
end
|
||||
|
||||
local changed, excluded = {}, {}
|
||||
for line in output.stdout:gmatch("[^\r\n]+") do
|
||||
local code, path = match(line)
|
||||
if code == CODES.excluded then
|
||||
excluded[#excluded + 1] = path
|
||||
else
|
||||
changed[path] = code
|
||||
end
|
||||
end
|
||||
|
||||
if job.files[1].cha.is_dir then
|
||||
ya.dict_merge(changed, bubble_up(changed))
|
||||
end
|
||||
ya.dict_merge(changed, propagate_down(excluded, cwd, Url(repo)))
|
||||
|
||||
-- Reset the status of any files that don't appear in the output of `git status` to `unknown`,
|
||||
-- so that cleaning up outdated statuses from `st.repos`
|
||||
for _, path in ipairs(paths) do
|
||||
local s = path:sub(#repo + 2)
|
||||
changed[s] = changed[s] or CODES.unknown
|
||||
end
|
||||
|
||||
add(tostring(cwd), repo, changed)
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
return { setup = setup, fetch = fetch }
|
||||
@@ -1,5 +1,8 @@
|
||||
# glow.yazi
|
||||
|
||||
>[!WARNING]
|
||||
>This plugin is now deprecated with the release of [Piper](https://github.com/yazi-rs/plugins/tree/main/piper.yazi#examples)
|
||||
|
||||
Plugin for [Yazi](https://github.com/sxyazi/yazi) to preview markdown files with [glow](https://github.com/charmbracelet/glow). To install, run the below mentioned command:
|
||||
|
||||
```bash
|
||||
|
||||
2
yazi/plugins/glow.yazi/main.lua
Normal file → Executable file
2
yazi/plugins/glow.yazi/main.lua
Normal file → Executable file
@@ -5,7 +5,7 @@ function M:peek(job)
|
||||
local preview_width = 55
|
||||
|
||||
local child = Command("glow")
|
||||
:args({
|
||||
:arg({
|
||||
"--style",
|
||||
"dark",
|
||||
"--width",
|
||||
|
||||
@@ -21,7 +21,7 @@ run = "plugin jump-to-char"
|
||||
desc = "Jump to char"
|
||||
```
|
||||
|
||||
Make sure the <kbd>f</kbd> key is not used elsewhere.
|
||||
Note that, the keybindings above are just examples, please tune them up as needed to ensure they don't conflict with your other commands/plugins.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--- @since 25.5.28
|
||||
--- @since 25.5.31
|
||||
|
||||
local AVAILABLE_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789."
|
||||
|
||||
|
||||
771
yazi/theme.toml
771
yazi/theme.toml
@@ -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" },
|
||||
]
|
||||
|
||||
@@ -1,16 +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'}
|
||||
]
|
||||
|
||||
# [mgr]
|
||||
# ratio = [2, 6, 5] # left, center, right pane width ratios
|
||||
[image]
|
||||
renderer = "auto"
|
||||
|
||||
[preview]
|
||||
max_width = 2000
|
||||
max_height = 2000
|
||||
|
||||
[plugin]
|
||||
prepend_previewers = [
|
||||
{ name = "*.md", run = "glow" },
|
||||
{ name = "*.md", run = "glow" },
|
||||
{ mime = "image/*", run = "zoom" },
|
||||
]
|
||||
|
||||
2043
zsh/.zcompdump
2043
zsh/.zcompdump
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -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/
|
||||
54
zsh/.zshrc
54
zsh/.zshrc
@@ -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 {{{
|
||||
source $XDG_CONFIG_HOME/p10k/.p10k.zsh # load Powerlevel10k configuration
|
||||
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)"
|
||||
|
||||
Reference in New Issue
Block a user