diff --git a/aerc/.config/aerc/aerc.conf b/aerc/.config/aerc/aerc.conf
index 712d20e..6ce822f 100644
--- a/aerc/.config/aerc/aerc.conf
+++ b/aerc/.config/aerc/aerc.conf
@@ -98,8 +98,7 @@ index-format=notmuch://~/.local/share/mail
#index-columns=flags:4,name<20%,subject,date>=
border-char-vertical="│"
border-char-horizontal="─"
-# styleset-name=catppuccin-mocha
-styleset-name=rose-pine
+# styleset-name=rose-pine
#
# Each name in index-columns must have a corresponding column-$name setting.
@@ -638,9 +637,16 @@ header-layout=From,To,Subject,Date
#parse-http-links=true
[compose]
-editor=nvim # or your preferred editor
+editor=nvim +'set ft=mail'
+
+# editor=nvim +setf\ mail
+# editor=nvim # or your preferred editor
+# Address book command
address-book-cmd=abook --mutt-query '%s'
-# Specifies the command to run the editor with. It will be shown in an embedded
+
+# Auto-complete addresses
+# address-book-cmd-match='%s'
+# address-book-cmd=abook --mutt-query '%s'
# terminal, though it may also launch a graphical window if the environment
# supports it. Defaults to $EDITOR, or vi.
#editor=
diff --git a/aerc/.config/aerc/themes/catppuccin-mocha b/aerc/.config/aerc/themes/catppuccin-mocha
deleted file mode 100644
index bf41e50..0000000
--- a/aerc/.config/aerc/themes/catppuccin-mocha
+++ /dev/null
@@ -1,51 +0,0 @@
-*.default=true
-*.normal=true
-
-default.fg=#cdd6f4
-
-error.fg=#f38ba8
-warning.fg=#fab387
-success.fg=#a6e3a1
-
-tab.fg=#6c7086
-tab.bg=#181825
-tab.selected.fg=#cdd6f4
-tab.selected.bg=#1e1e2e
-tab.selected.bold=true
-
-border.fg=#11111b
-border.bold=true
-
-msglist_unread.bold=true
-msglist_flagged.fg=#f9e2af
-msglist_flagged.bold=true
-msglist_result.fg=#89b4fa
-msglist_result.bold=true
-msglist_*.selected.bold=true
-msglist_*.selected.bg=#313244
-
-dirlist_*.selected.bold=true
-dirlist_*.selected.bg=#313244
-
-statusline_default.fg=#9399b2
-statusline_default.bg=#313244
-statusline_error.bold=true
-statusline_success.bold=true
-
-selector_focused.bg=#313244
-
-completion_default.selected.bg=#313244
-
-[viewer]
-url.fg=#89b4fa
-url.underline=true
-header.bold=true
-signature.dim=true
-diff_meta.bold=true
-diff_chunk.fg=#89b4fa
-diff_chunk_func.fg=#89b4fa
-diff_chunk_func.bold=true
-diff_add.fg=#a6e3a1
-diff_del.fg=#f38ba8
-quote_*.fg=#6c7086
-quote_1.fg=#9399b2
diff --git a/backgrounds/.config/backgrounds/slack breathing space community.pptx b/backgrounds/.config/backgrounds/slack breathing space community.pptx
new file mode 100644
index 0000000..f62660e
Binary files /dev/null and b/backgrounds/.config/backgrounds/slack breathing space community.pptx differ
diff --git a/hypr/.config/hypr/shaders/brightness.frag b/hypr/.config/hypr/shaders/brightness.frag
new file mode 100644
index 0000000..81000c1
--- /dev/null
+++ b/hypr/.config/hypr/shaders/brightness.frag
@@ -0,0 +1,16 @@
+#version 300 es
+
+precision mediump float;
+
+in vec2 v_texcoord;
+out vec4 fragColor;
+uniform sampler2D tex;
+
+void main() {
+ vec4 pixColor = texture(tex, v_texcoord);
+
+ // Adjust brightness
+ pixColor.rgb *= 1.00;
+
+ fragColor = pixColor;
+}
diff --git a/kitty/.config/kitty/current-theme.conf b/kitty/.config/kitty/current-theme.conf
index 4d4de88..a856d7f 100644
--- a/kitty/.config/kitty/current-theme.conf
+++ b/kitty/.config/kitty/current-theme.conf
@@ -1,56 +1,47 @@
-## name: Rosé Pine Moon
-## author: mvllow
-## license: MIT
-## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf
-## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
+background #282828
+foreground #d4be98
-foreground #e0def4
-background #232136
-selection_foreground #e0def4
-selection_background #44415a
+selection_background #d4be98
+selection_foreground #282828
-cursor #56526e
-cursor_text_color #e0def4
+cursor #a89984
+cursor_text_color background
-url_color #c4a7e7
+active_tab_background #282828
+active_tab_foreground #d4be98
+active_tab_font_style bold
+inactive_tab_background #282828
+inactive_tab_foreground #a89984
+inactive_tab_font_style normal
-active_tab_foreground #e0def4
-active_tab_background #393552
-inactive_tab_foreground #6e6a86
-inactive_tab_background #232136
+# Black
+color0 #665c54
+color8 #928374
-active_border_color #3e8fb0
-inactive_border_color #44415a
+# Red
+color1 #ea6962
+color9 #ea6962
-# black
-color0 #393552
-color8 #6e6a86
+# Green
+color2 #a9b665
+color10 #a9b665
-# red
-color1 #eb6f92
-color9 #eb6f92
+# Yellow
+color3 #e78a4e
+color11 #d8a657
-# green
-color2 #3e8fb0
-color10 #3e8fb0
+# Blue
+color4 #7daea3
+color12 #7daea3
-# yellow
-color3 #f6c177
-color11 #f6c177
+# Magenta
+color5 #d3869b
+color13 #d3869b
-# blue
-color4 #9ccfd8
-color12 #9ccfd8
-
-# magenta
-color5 #c4a7e7
-color13 #c4a7e7
-
-# cyan
-color6 #ea9a97
-color14 #ea9a97
-
-# white
-color7 #e0def4
-color15 #e0def4
+# Cyan
+color6 #89b482
+color14 #89b482
+# White
+color7 #d4be98
+color15 #d4be98
diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf
index ac36485..b547fa0 100644
--- a/kitty/.config/kitty/kitty.conf
+++ b/kitty/.config/kitty/kitty.conf
@@ -1,8 +1,9 @@
# BEGIN_KITTY_THEME
-# Rosé Pine Moon
+# Gruvbox Material
include current-theme.conf
# END_KITTY_THEME
#
+shell zsh --login
font_family JetBrainsMono Nerd Font
bold_font JetBrainsMono Nerd Font Bold
@@ -11,12 +12,12 @@ bold_italic_font JetBrainsMono Nerd Font Bold Italic
font_size 12
-# background_opacity 0.95
+background_opacity 0.90
term xterm-256color
-# allow_hyperlinks yes
+allow_hyperlinks yes
-# copy_on_select yes
-# paste_actions confirm-if-large
+copy_on_select yes
+paste_actions confirm-if-large
diff --git a/kitty/.config/kitty/kitty.conf.bak b/kitty/.config/kitty/kitty.conf.bak
index 4bd6cc0..99fdc20 100644
--- a/kitty/.config/kitty/kitty.conf.bak
+++ b/kitty/.config/kitty/kitty.conf.bak
@@ -1,5 +1,5 @@
# BEGIN_KITTY_THEME
-# Dracula
+# Catppuccin-Mocha
include current-theme.conf
# END_KITTY_THEME
#
diff --git a/kitty/.config/kitty/themes/catppuccin-mocha.conf b/kitty/.config/kitty/themes/catppuccin-mocha.conf
new file mode 100644
index 0000000..2533db7
--- /dev/null
+++ b/kitty/.config/kitty/themes/catppuccin-mocha.conf
@@ -0,0 +1,80 @@
+# vim:ft=kitty
+
+## 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!
+
+
+
+# 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 #F9E2AF
+color11 #F9E2AF
+
+# blue
+color4 #89B4FA
+color12 #89B4FA
+
+# magenta
+color5 #F5C2E7
+color13 #F5C2E7
+
+# cyan
+color6 #94E2D5
+color14 #94E2D5
+
+# white
+color7 #BAC2DE
+color15 #A6ADC8
diff --git a/niri/.config/niri/config.kdl b/niri/.config/niri/config.kdl
index 05a6532..60e4d0f 100644
--- a/niri/.config/niri/config.kdl
+++ b/niri/.config/niri/config.kdl
@@ -26,12 +26,21 @@ xwayland-satellite {
path "xwayland-satellite"
}
environment {
- ELECTRON_OZONE_PLATFORM_HINT "x11"
+ ELECTRON_OZONE_PLATFORM_HINT "auto"
ELECTRON_ENABLE_LOGGING "1"
+ // GDK_SCALE "1.75"
+ // GDK_DPI_SCALE "1"
}
output "eDP-1" {
- mode "1920x1080@120.030"
- position x=1280 y=0
+ mode "2880x1800@59.990"
+ scale 1.75
+ position x=0 y=0
+ focus-at-startup
+}
+output "HDMI-A-1" {
+ mode "2560x1440@59.951"
+ position x=1645 y=0
+ scale 1.0
}
layout {
gaps 2
@@ -46,7 +55,7 @@ layout {
}
focus-ring {
width 2
- active-color "#b4befe"
+ active-color "#c4a7e7"
inactive-color "#a6adc8"
}
border {
@@ -68,6 +77,7 @@ layout {
}
spawn-at-startup "waybar" "-c" "/home/liph/.config/niri/waybar-niri/config.jsonc" "-s" "/home/liph/.config/niri/waybar-niri/style.css"
spawn-at-startup "swaync"
+// spawn-at-startup "kanshi"
spawn-at-startup "swww-daemon"
spawn-at-startup "kitty"
spawn-at-startup "librewolf"
@@ -119,13 +129,48 @@ window-rule {
}
clip-to-geometry true
}
+window-rule {
+ match app-id="floating_btop"
+ default-column-width {
+ proportion 0.5
+ }
+ open-floating true
+}
+window-rule {
+ match app-id="floating_htop"
+ default-column-width {
+ proportion 0.5
+ }
+ open-floating true
+}
+window-rule {
+ match app-id="floating_bluetui"
+ default-column-width {
+ proportion 0.5
+ }
+ open-floating true
+}
+window-rule {
+ match app-id="floating_pulsemixer"
+ default-column-width {
+ proportion 0.5
+ }
+ open-floating true
+}
+window-rule {
+ match app-id="floating_wavemon"
+ default-column-width {
+ proportion 0.5
+ }
+ open-floating true
+}
window-rule {
geometry-corner-radius 5
clip-to-geometry true
}
binds {
// Mod+Shift+Slash { show-hotkey-overlay; }
- Mod+Shift+L {
+ Mod+Mod5+J {
spawn "hyprlock"
}
Mod+Alt+P hotkey-overlay-title="Open Bitwarden" {
@@ -134,10 +179,7 @@ binds {
Mod+Alt+T hotkey-overlay-title="Open Tipp10" {
spawn "tipp10"
}
- Mod+Alt+V hotkey-overlay-title="Open Vial" {
- spawn "Vial"
- }
- Mod+Alt+M hotkey-overlay-title="Open Tidal" {
+ Mod+Alt+S hotkey-overlay-title="Open Tidal" {
spawn "tidal-hifi" "--ozone-platform=wayland" "--enable-features=WaylandWindowDecorations"
}
Mod+Alt+O hotkey-overlay-title="Open Obsidian" {
@@ -155,6 +197,18 @@ binds {
Mod+Alt+Space hotkey-overlay-title="Open Wofi" {
spawn "wofi" "--show" "drun"
}
+ Mod+Mod5+Q hotkey-overlay-title="Open Htop" {
+ spawn "kitty" "--class" "floating_htop" "-e" "htop"
+ }
+ Mod+Mod5+W hotkey-overlay-title="Open Btop" {
+ spawn "kitty" "--class" "floating_btop" "-e" "btop"
+ }
+ Mod+Mod5+E hotkey-overlay-title="Open Pulsemixer" {
+ spawn "kitty" "--class" "floating_pulsemixer" "-e" "pulsemixer"
+ }
+ Mod+Mod5+R hotkey-overlay-title="Open Bluetui" {
+ spawn "kitty" "--class" "floating_bluetui" "-e" "bluetui"
+ }
// Brightness Controll
Mod+Ctrl+0 {
spawn "sh" "-c" "~/scripts/layer_notify.sh 0"
@@ -275,18 +329,30 @@ binds {
// Mod+Shift+Down { focus-monitor-down; }
// Mod+Shift+Up { focus-monitor-up; }
// Mod+Shift+Right { focus-monitor-right; }
- // Mod+Shift+H { focus-monitor-left; }
+ Mod+Shift+H {
+ focus-monitor-left
+ }
// Mod+Shift+J { focus-monitor-down; }
// Mod+Shift+K { focus-monitor-up; }
- // Mod+Shift+L { focus-monitor-right; }
- // Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
+ Mod+Shift+L {
+ focus-monitor-right
+ }
+ Mod+Shift+Ctrl+Left {
+ move-column-to-monitor-left
+ }
// Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
// Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
- // Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
- // Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
+ Mod+Shift+Ctrl+Right {
+ move-column-to-monitor-right
+ }
+ Mod+Shift+Ctrl+H {
+ move-column-to-monitor-left
+ }
// Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
// Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
- // Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
+ Mod+Shift+Ctrl+L {
+ move-column-to-monitor-right
+ }
Mod+U {
focus-workspace-down
}
diff --git a/niri/.config/niri/waybar-niri/colors.css b/niri/.config/niri/waybar-niri/colors.css
index 8af0bb9..8f8b238 100644
--- a/niri/.config/niri/waybar-niri/colors.css
+++ b/niri/.config/niri/waybar-niri/colors.css
@@ -17,25 +17,22 @@
color: @text;
}
.red {
- color: @red;
+ color: @love;
}
.yellow {
- color: @yellow;
+ color: @gold;
}
.green {
- color: @green;
-}
-.rose {
color: @rose;
}
+.rose {
+ color: @pine;
+}
.blue {
- color: @blue;
+ color: @foam;
}
.sky {
- color: @sky;
-}
-.mauve {
- color: @lavender;
+ color: @iris;
}
.highlightLow {
color: @highlightLow;
diff --git a/niri/.config/niri/waybar-niri/config.jsonc b/niri/.config/niri/waybar-niri/config.jsonc
index 0b4cde9..8e98273 100644
--- a/niri/.config/niri/waybar-niri/config.jsonc
+++ b/niri/.config/niri/waybar-niri/config.jsonc
@@ -1,4 +1,3 @@
-// -*- mode: jsonc -*-
{
"layer": "top",
"position": "top",
@@ -57,11 +56,13 @@
"format": " {usage}%",
"tooltip": false,
"interval": 1,
+ "on-click": "kitty --class floating_btop -e btop",
},
"memory": {
"format": " {}%",
// "format": " {}%",
"interval": 1,
+ "on-click": "kitty --class floating_btop -e htop",
},
"battery": {
"interval": 1,
@@ -92,6 +93,7 @@
"format-disconnected": "",
"format-alt": "{bandwidthDownBytes}",
"interval": 1,
+ // "on-click": "kitty --class floating_wavemon -e sudo wavemon",
},
"pulseaudio": {
"format": "{icon} {volume}%",
@@ -107,7 +109,7 @@
// "car": "",
"default": ["", "", ""],
},
- "on-click": "pavucontrol",
+ "on-click": "kitty --class floating_pulsemixer -e pulsemixer",
},
"custom/power": {
"format": "⏻",
@@ -119,9 +121,19 @@
"on-click": "wofi --show drun",
},
"bluetooth": {
- "format": "",
- "format-disabled": "",
- "format-connected": "",
- "on-click": "blueman-manager",
+ "format": " ",
+ "format-disabled": " ",
+ "format-connected": " ",
+ "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
+ "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
+ "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
+ "on-click": "kitty --class floating_bluetui -e bluetui",
},
+ // "bluetooth": {
+ // "format": "",
+ // "format-disabled": "",
+ // "format-connected": "",
+ // "on-click": "kitty --class floating_bluetui -e bluetui",
+ // },
}
diff --git a/niri/.config/niri/waybar-niri/config_2.jsonc b/niri/.config/niri/waybar-niri/config_2.jsonc
deleted file mode 100644
index a46cb05..0000000
--- a/niri/.config/niri/waybar-niri/config_2.jsonc
+++ /dev/null
@@ -1,160 +0,0 @@
-{
- "layer": "top",
- "position": "top",
- "mod": "dock",
- "exclusive": true,
- "passthrough": false,
- "gtk-layer-shell": true,
- "height": 0,
- "modules-left": ["clock", "custom/power_btn", "custom/lock_screen", "niri/workspaces"],
- "modules-center": ["niri/window"],
- "modules-right": [
- "network",
- "bluetooth",
- "pulseaudio",
- "pulseaudio#microphone",
- "tray"
- ],
- "niri/workspaces": {
- "all-outputs": true,
- "on-click": "activate",
- "persistent-workspaces": {
- "1": [],
- "2": [],
- "3": [],
- "4": [],
- "5": []
- }
- },
- "custom/launch_wofi": {
- "format": "",
- "on-click": "pkill wofi; wofi -n",
- "tooltip": false
- },
- "custom/lock_screen": {
- "format": "",
- "on-click": "sh -c '(sleep 0.5s; swaylock)' & disown",
- "tooltip": false
- },
- "custom/light_dark": {
- "format": "",
- "on-click": "~/.config/waybar/scripts/baraction light",
- "tooltip": false
- },
- "custom/power_btn": {
- "format": "",
- "on-click": "sh -c '(sleep 0.5s; wlogout --protocol layer-shell)' & disown",
- "tooltip": false
- },
- "cpu": {
- "interval": 10,
- "format": " {usage}%",
- "max-length": 10,
- "on-click": "kitty --start-as=fullscreen --title btop sh -c 'btop'"
- },
- "disk": {
- "interval": 30,
- "format": " {percentage_used}%",
- "path": "/",
- "tooltip": true,
- "tooltip-format": "HDD - {used} used out of {total} on {path} ({percentage_used}%)",
- "on-click": "kitty --start-as=fullscreen --title btop sh -c 'btop'"
- },
- "memory": {
- "interval": 30,
- "format": " {}%",
- "max-length": 10,
- "tooltip": true,
- "tooltip-format": "Memory - {used:0.1f}GB used",
- "on-click": "kitty --start-as=fullscreen --title btop sh -c 'btop'"
- },
- "custom/updates": {
- "format": " {}",
- "tooltip-format": "{}",
- "escape": true,
- "return-type": "json",
- "exec": "~/.config/waybar/scripts/update-sys",
- "restart-interval": 60,
- "on-click": "kitty -e ~/.config/waybar/scripts/update-sys update",
- "tooltip": false
- },
- "tray": {
- "icon-size": 13,
- "tooltip": false,
- "spacing": 10
- },
- "clock": {
- "format": "{: %R %d/%m}",
- "tooltip-format": "{:%Y %B}\n{calendar}"
- },
- "backlight": {
- "device": "intel_backlight",
- "format": "{icon} {percent}%",
- "format-icons": ["", "", ""],
- "on-scroll-up": "brightnessctl set 1%+",
- "on-scroll-down": "brightnessctl set 1%-",
- "min-length": 6
- },
- "battery": {
- "states": {
- "good": 95,
- "warning": 30,
- "critical": 20
- },
- "format": "{icon} {capacity}%",
- "format-charging": " {capacity}%",
- "format-plugged": " {capacity}%",
- "format-alt": "{time} {icon}",
- "format-icons": ["", "", "", "", "", "", "", "", "", "", ""]
- },
- "pulseaudio": {
- "format": "{icon} {volume}%",
- "tooltip": false,
- "format-muted": " Muted",
- "on-click": "pamixer -t",
- "on-scroll-up": "pamixer -i 5",
- "on-scroll-down": "pamixer -d 5",
- "scroll-step": 5,
- "format-icons": {
- "headphone": "",
- "hands-free": "",
- "headset": "",
- "phone": "",
- "portable": "",
- "car": "",
- "default": ["", "", ""]
- }
- },
- "pulseaudio#microphone": {
- "format": "{format_source}",
- "tooltip": false,
- "format-source": " {volume}%",
- "format-source-muted": " Muted",
- "on-click": "pamixer --default-source -t",
- "on-scroll-up": "pamixer --default-source -i 5",
- "on-scroll-down": "pamixer --default-source -d 5",
- "scroll-step": 5
- },
- "temperature": {
- "thermal-zone": 1,
- "format": "{temperatureF}°F ",
- "critical-threshold": 80,
- "format-critical": "{temperatureC}°C "
- },
- "network": {
- "format-wifi": " {signalStrength}%",
- "format-ethernet": " 100% ",
- "tooltip-format": "Connected to {essid} {ifname} via {gwaddr}",
- "format-linked": "{ifname} (No IP)",
- "format-disconnected": " 0% ",
- "on-click": "~/.config/rofi/wifi/wifi.sh"
- },
- "bluetooth": {
- "format": " {status}",
- "format-disabled": "",
- "format-off": "",
- "interval": 30,
- "on-click": "blueman-manager",
- "format-no-controller": ""
- }
-}
diff --git a/niri/.config/niri/waybar-niri/style.css b/niri/.config/niri/waybar-niri/style.css
index 30a8ce3..f512ed6 100644
--- a/niri/.config/niri/waybar-niri/style.css
+++ b/niri/.config/niri/waybar-niri/style.css
@@ -1,23 +1,26 @@
+@import "theme.css";
+@import "colors.css";
+
* {
font-family: "JetBrainsMono";
font-size: 12px;
}
window#waybar {
- background-color: rgba(43, 48, 59, 0.5);
- background: radial-gradient(alpha(@theme_base_color, 0.4), @theme_base_color);
+ background-color: @base;
+ /* background: radial-gradient(alpha(@theme_base_color, 0.4), @theme_base_color); */
color: @theme_fg_color;
transition-property: background-color;
transition-duration: 0.5s;
}
window#waybar.hidden {
- opacity: 0.2;
+ /* opacity: 0.2; */
}
button {
border: none;
border-radius: 0;
}
button:hover {
- background: inherit;
+ /* background: inherit; */
}
#workspaces {
padding: 5px;
@@ -29,15 +32,15 @@ button:hover {
border-radius: 10px;
}
#workspaces button:hover {
- color: #e5c890;
+ color: @gold;
}
#workspaces button.active,
#workspaces button.default,
#workspaces button.focused {
- background: #babbf1;
+ background: @rose;
}
#workspaces button.urgent {
- background-color: #eb4d4b;
+ background-color: @love;
}
#clock,
#battery,
@@ -71,13 +74,25 @@ button:hover {
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
-#clock,
-#battery,
-#cpu,
-#memory,
+#clock {
+ color: @text;
+}
+#battery {
+ color: @iris;
+}
+#cpu {
+ color: @iris;
+}
+#memory {
+ color: @foam;
+}
#backlight,
-#network,
-#pulseaudio,
+#network {
+ color: @gold;
+}
+#pulseaudio {
+ color: @rose;
+}
#custom-media,
#tray,
#custom-power,
@@ -90,7 +105,7 @@ button:hover {
margin: 0 4px;
}
#custom-power {
- background-color: #e78284;
+ background-color: @love;
border-radius: 20px 0 0 20px;
transition: all 250ms ease-in-out;
}
@@ -102,17 +117,15 @@ button:hover {
margin: 0 5px;
}
#pulseaudio.muted {
- color: orange;
}
#network.disconnected {
- color: red;
}
#tray {
border-radius: 20px;
margin: 0 5px;
}
#custom-logo {
- background-color: #8caaee;
+ background-color: @pine;
padding: 0 17px;
border-radius: 0 20px 20px 0;
}
@@ -122,4 +135,5 @@ button:hover {
#bluetooth {
border-radius: 20px;
margin: 0 5px;
+ color: @pine;
}
diff --git a/niri/.config/niri/waybar-niri/theme.css b/niri/.config/niri/waybar-niri/theme.css
deleted file mode 120000
index 4d54996..0000000
--- a/niri/.config/niri/waybar-niri/theme.css
+++ /dev/null
@@ -1 +0,0 @@
-/home/liph/.config/niri/waybar-niri/themes/catppuccin-mocha.css
\ No newline at end of file
diff --git a/niri/.config/niri/waybar-niri/theme.css b/niri/.config/niri/waybar-niri/theme.css
new file mode 100644
index 0000000..d1e318c
--- /dev/null
+++ b/niri/.config/niri/waybar-niri/theme.css
@@ -0,0 +1,15 @@
+@define-color base #191724;
+@define-color surface #1f1d2e;
+@define-color overlay #26233a;
+@define-color muted #6e6a86;
+@define-color subtle #908caa;
+@define-color text #e0def4;
+@define-color love #eb6f92;
+@define-color gold #f6c177;
+@define-color rose #ea9a97;
+@define-color pine #3e8fb0;
+@define-color foam #9ccfd8;
+@define-color iris #c4a7e7;
+@define-color highlightLow #21202e;
+@define-color highlightMed #403d52;
+@define-color highlightHigh #524f67;
diff --git a/niri/.config/niri/waybar-niri/themes/rose-pine.css b/niri/.config/niri/waybar-niri/themes/rose-pine.css
new file mode 100644
index 0000000..a3ae0e4
--- /dev/null
+++ b/niri/.config/niri/waybar-niri/themes/rose-pine.css
@@ -0,0 +1,23 @@
+/*
+* Variant: Rosé Pine
+* Maintainer: DankChoir
+*/
+
+@define-color base #191724;
+@define-color surface #1f1d2e;
+@define-color overlay #26233a;
+
+@define-color muted #6e6a86;
+@define-color subtle #908caa;
+@define-color text #e0def4;
+
+@define-color love #eb6f92;
+@define-color gold #f6c177;
+@define-color rose #ebbcba;
+@define-color pine #31748f;
+@define-color foam #9ccfd8;
+@define-color iris #c4a7e7;
+
+@define-color highlightLow #21202e;
+@define-color highlightMed #403d52;
+@define-color highlightHigh #524f67;
diff --git a/niri/.config/niri/waybar-niri_2/colors.css b/niri/.config/niri/waybar-niri_2/colors.css
deleted file mode 100644
index 8af0bb9..0000000
--- a/niri/.config/niri/waybar-niri_2/colors.css
+++ /dev/null
@@ -1,48 +0,0 @@
-.base {
- color: @base;
-}
-.surface {
- color: @surface;
-}
-.overlay {
- color: @overlay;
-}
-.muted {
- color: @muted;
-}
-.subtle {
- color: @subtle;
-}
-.text {
- color: @text;
-}
-.red {
- color: @red;
-}
-.yellow {
- color: @yellow;
-}
-.green {
- color: @green;
-}
-.rose {
- color: @rose;
-}
-.blue {
- color: @blue;
-}
-.sky {
- color: @sky;
-}
-.mauve {
- color: @lavender;
-}
-.highlightLow {
- color: @highlightLow;
-}
-.highlightMed {
- color: @highlightMed;
-}
-.highlightHigh {
- color: @highlightHigh;
-}
diff --git a/niri/.config/niri/waybar-niri_2/theme.css b/niri/.config/niri/waybar-niri_2/theme.css
deleted file mode 100644
index 53e95cd..0000000
--- a/niri/.config/niri/waybar-niri_2/theme.css
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-@define-color base #232136;
-@define-color surface #2a273f;
-@define-color overlay #393552;
-@define-color muted #6e6a86;
-@define-color subtle #908caa;
-@define-color text #e0def4;
-@define-color red #eb6f92;
-@define-color yellow #f6c177;
-@define-color rose #ea9a97;
-@define-color blue #3e8fb0;
-@define-color sky #9ccfd8;
-@define-color mauve #c4a7e7;
-@define-color highlightLow #2a283e;
-@define-color highlightMed #44415a;
-@define-color highlightHigh #56526e;
diff --git a/nvim/.config/nvim/after/ftplugin/mail.lua b/nvim/.config/nvim/after/ftplugin/mail.lua
new file mode 100644
index 0000000..3d2b075
--- /dev/null
+++ b/nvim/.config/nvim/after/ftplugin/mail.lua
@@ -0,0 +1,128 @@
+-- Helper function to extract clean email address
+local function extract_email(address_string)
+ -- Match email in angle brackets: "Name "
+ local email = address_string:match("<([^>]+)>")
+ if email then
+ return email
+ end
+
+ -- Match standalone email: "email@example.com"
+ email = address_string:match("([%w%._%+-]+@[%w%._%+-]+)")
+ if email then
+ return email
+ end
+
+ -- Fallback: return as-is if no pattern matches
+ return address_string
+end
+
+-- Option 2: Omnifunc completion
+function _G.mail_complete(findstart, base)
+ if findstart == 1 then
+ -- Find start of word
+ local line = vim.api.nvim_get_current_line()
+ local col = vim.fn.col('.')
+ local line_to_cursor = line:sub(1, col - 1)
+
+ -- Only on header lines
+ if not line_to_cursor:match("^%s*[ToCcBcFrom]+:%s*") then
+ return -1
+ end
+
+ -- Find start of current address
+ local start = line_to_cursor:reverse():find("[%s,]")
+ if start then
+ return col - start
+ else
+ return line_to_cursor:find(":") or 0
+ end
+ else
+ -- Get completions
+ local handle = io.popen(string.format('abook --mutt-query "%s" 2>/dev/null | tail -n +2', base))
+ if not handle then
+ return {}
+ end
+
+ local result = handle:read("*a")
+ handle:close()
+
+ local matches = {}
+ for address in result:gmatch("[^\r\n]+") do
+ if address ~= "" then
+ -- Extract clean email only
+ local clean_email = extract_email(address)
+ table.insert(matches, clean_email)
+ end
+ end
+
+ return matches
+ end
+end
+
+-- Set omnifunc
+vim.bo.omnifunc = 'v:lua.mail_complete'
+
+-- Map Tab to trigger completion on header lines
+vim.keymap.set('i', '', function()
+ local line = vim.api.nvim_get_current_line()
+ if line:match("^%s*[ToCcBcFrom]+:%s*") then
+ return ''
+ else
+ return ''
+ end
+end, { expr = true, buffer = true })
+
+-- Option 3: Interactive fzf picker
+local function pick_email()
+ -- Get all addresses
+ local handle = io.popen('abook --mutt-query "" 2>/dev/null | tail -n +2')
+ if not handle then
+ vim.notify("Could not query abook", vim.log.levels.ERROR)
+ return
+ end
+
+ local addresses = {}
+ local display_addresses = {}
+
+ for line in handle:lines() do
+ if line ~= "" then
+ local clean_email = extract_email(line)
+ table.insert(addresses, clean_email)
+ -- Show full format in picker, but insert clean email
+ table.insert(display_addresses, line .. " → " .. clean_email)
+ end
+ end
+ handle:close()
+
+ if #addresses == 0 then
+ vim.notify("No addresses in abook", vim.log.levels.WARN)
+ return
+ end
+
+ -- Use vim.ui.select (works with fzf-lua if installed)
+ vim.ui.select(display_addresses, {
+ prompt = "Select recipient:",
+ format_item = function(item)
+ return item
+ end,
+ }, function(choice, idx)
+ if choice and idx then
+ local email = addresses[idx]
+ -- Insert at cursor
+ local row, col = unpack(vim.api.nvim_win_get_cursor(0))
+ local line = vim.api.nvim_get_current_line()
+ local new_line = line:sub(1, col) .. email .. line:sub(col + 1)
+ vim.api.nvim_set_current_line(new_line)
+ -- Move cursor after inserted text
+ vim.api.nvim_win_set_cursor(0, {row, col + #email})
+ end
+ end)
+end
+
+-- Map Ctrl+f to pick email (Option 3)
+vim.keymap.set('i', '', pick_email, { buffer = true, desc = "Pick email address with fzf" })
+
+-- Optional: Map Ctrl+a for Tab completion manually (in case Tab doesn't work)
+vim.keymap.set('i', '', '', { buffer = true, desc = "Trigger address completion" })
+```
+im.keymap.set("i", "", "", { buffer = true, desc = "Trigger address completion" })
diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua
index 4bfcabf..4184f34 100644
--- a/nvim/.config/nvim/init.lua
+++ b/nvim/.config/nvim/init.lua
@@ -14,9 +14,17 @@ if not vim.loop.fs_stat(lazypath) then
end
vim.opt.rtp:prepend(lazypath)
+-- Enable spell check for mail files
+vim.api.nvim_create_autocmd("FileType", {
+ pattern = "mail",
+ callback = function()
+ vim.opt_local.spell = true
+ vim.opt_local.spelllang = "en_us,de" -- Add languages you need
+ end,
+})
-- Only enable spell checking for specific filetypes
vim.api.nvim_create_autocmd("FileType", {
- pattern = { "markdown", "text", "gitcommit", "tex", "plaintext" },
+ pattern = { "mail", "markdown", "text", "gitcommit", "tex", "plaintext" },
callback = function()
vim.opt_local.spell = true
vim.opt_local.spelllang = "en_us,de"
@@ -57,3 +65,10 @@ if vim.fn.filereadable(theme_file) == 1 then
else
vim.cmd.colorscheme("catppuccin") -- fallback
end
+
+vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
+vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
+vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" })
+vim.api.nvim_set_hl(0, "SignColumn", { bg = "none" })
+vim.api.nvim_set_hl(0, "FloatBorder", { bg = "none" })
+vim.api.nvim_set_hl(0, "LineNr", { bg = "none" })
diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json
index 3e1b9f2..04479ba 100644
--- a/nvim/.config/nvim/lazy-lock.json
+++ b/nvim/.config/nvim/lazy-lock.json
@@ -1,44 +1,46 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
- "LuaSnip": { "branch": "master", "commit": "fb525166ccc30296fb3457441eb979113de46b00" },
- "R.nvim": { "branch": "main", "commit": "b7de6e6f43d79e31b077096ca0089fde85190f46" },
+ "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" },
+ "R.nvim": { "branch": "main", "commit": "3db1971a81f8ad3d09aca698601abbe4cc909e37" },
"barbecue": { "branch": "main", "commit": "cd7e7da622d68136e13721865b4d919efd6325ed" },
+ "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
+ "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
+ "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp-r": { "branch": "main", "commit": "70bfe8f4c062acc10266e24825439c009a0b1b89" },
- "conform.nvim": { "branch": "master", "commit": "8314f4c9e205e7f30b62147069729f9a1227d8bf" },
+ "conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
"dashboard-nvim": { "branch": "master", "commit": "0775e567b6c0be96d01a61795f7b64c1758262f6" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dracula.nvim": { "branch": "main", "commit": "ae752c13e95fb7c5f58da4b5123cb804ea7568ee" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
- "everforest": { "branch": "master", "commit": "b90025cc84dbb9c46df5a2ae540d3f01cf85af74" },
+ "everforest": { "branch": "master", "commit": "b03a03148c8b34c24c96960b93da9c8883d11f54" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
- "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
- "fzf-lua": { "branch": "main", "commit": "b8d1356b7120f5cf111709cb2fa504096248fb26" },
- "gitsigns.nvim": { "branch": "main", "commit": "42d6aed4e94e0f0bbced16bbdcc42f57673bd75e" },
+ "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
+ "fzf-lua": { "branch": "main", "commit": "e5804f4924cf74ad03834c25988998a273ae0d7b" },
+ "gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" },
"grapple.nvim": { "branch": "main", "commit": "b41ddfc1c39f87f3d1799b99c2f0f1daa524c5f7" },
- "gruvbox-mat": { "branch": "master", "commit": "e4359a2f80ef7275b080be180841c62ca8322757" },
- "harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
+ "gruvbox-mat": { "branch": "master", "commit": "790afe9dd085aa04eccd1da3626c5fa05c620e53" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"kanagawa.nvim": { "branch": "master", "commit": "aef7f5cec0a40dbe7f3304214850c472e2264b10" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"luvit-meta": { "branch": "main", "commit": "0ea4ff636c5bb559ffa78108561d0976f4de9682" },
- "mason-lspconfig.nvim": { "branch": "main", "commit": "fe661093f4b05136437b531e7f959af2a2ae66c8" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "c953789db7fd28eafe5eb5659846d34b5024b3cc" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" },
- "neogit": { "branch": "master", "commit": "d8bf9102692250193b855acd9025a826f1af2729" },
+ "neogit": { "branch": "master", "commit": "73870229977fdd8747025820e15e98cfde787b9c" },
"nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
- "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" },
- "nvim-cmp": { "branch": "main", "commit": "85bbfad83f804f11688d1ab9486b459e699292d6" },
+ "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
+ "nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
- "nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" },
- "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" },
+ "nvim-lint": { "branch": "master", "commit": "bcd1a44edbea8cd473af7e7582d3f7ffc60d8e81" },
+ "nvim-lspconfig": { "branch": "master", "commit": "3f58aeca0c6ece8a9fb8782ea3fcb6024f285be3" },
"nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" },
"nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" },
"nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" },
@@ -47,22 +49,23 @@
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
- "nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" },
+ "nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" },
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
"onedark-warm": { "branch": "master", "commit": "213c23ae45a04797572242568d5d51937181792d" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"portal.nvim": { "branch": "main", "commit": "77d9d53fec945bfa407d5fd7120f1b4f117450ed" },
- "rainbow-delimiters.nvim": { "branch": "master", "commit": "8aafe2cbd89cd4090f573a98cab6b20366576fde" },
- "render-markdown.nvim": { "branch": "main", "commit": "73a6ebc842cf81926eb1d424820b800f6f6a1227" },
+ "rainbow-delimiters.nvim": { "branch": "master", "commit": "d6b802552cbe7d643a3b6b31f419c248d1f1e220" },
+ "render-markdown.nvim": { "branch": "main", "commit": "b3efd6408e4e4d66d6caaee0579e72b579bc0884" },
"rose-pine": { "branch": "main", "commit": "cf2a288696b03d0934da713d66c6d71557b5c997" },
- "sonokai": { "branch": "master", "commit": "5c7f88c0cac01b32cfce634f2a28947ab426537f" },
+ "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
+ "sonokai": { "branch": "master", "commit": "b023c5280b16fe2366f5e779d8d2756b3e5ee9c3" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
- "telescope.nvim": { "branch": "master", "commit": "3333a52ff548ba0a68af6d8da1e54f9cd96e9179" },
+ "telescope.nvim": { "branch": "master", "commit": "ad7d9580338354ccc136e5b8f0aa4f880434dcdc" },
"tokyonight": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
- "vim-test": { "branch": "master", "commit": "aa619692ff48a3cf3e6bdb893765039488d4e5f3" },
- "vimtex": { "branch": "master", "commit": "3abfa1ff75b81c01e4305e8062549ac0ea5cc9b8" },
+ "vim-test": { "branch": "master", "commit": "c569b3620d0e53572efc95159f66ace5e7b06b48" },
+ "vimtex": { "branch": "master", "commit": "f707368022cdb851716be0d2970b90599c84a6a6" },
"vimux": { "branch": "master", "commit": "614f0bb1fb598f97accdcea71d5f7b18d7d62436" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" },
- "yazi.nvim": { "branch": "main", "commit": "4a8bd3284708e11e48bcd865892902a46abdcce0" }
+ "yazi.nvim": { "branch": "main", "commit": "46fd318814b13cdb27750c045973df3f80425e68" }
}
diff --git a/nvim/.config/nvim/lua/plugins.inactive/cmp.lua b/nvim/.config/nvim/lua/plugins.inactive/cmp.lua
deleted file mode 100644
index b423a4e..0000000
--- a/nvim/.config/nvim/lua/plugins.inactive/cmp.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-return {
- {
- "hrsh7th/cmp-path", -- file and folders
- "hrsh7th/cmp-buffer", -- words from the current buffer
- "hrsh7th/cmp-nvim-lsp", -- LSP-based autocompletions
- "hrsh7th/cmp-cmdline", -- Command-line autocompletions
- "tzachar/cmp-tabnine"--, build = "./install.sh",
- },
-}
diff --git a/nvim/.config/nvim/lua/plugins.inactive/cmp_1.lua b/nvim/.config/nvim/lua/plugins.inactive/cmp_1.lua
deleted file mode 100644
index 5e54c38..0000000
--- a/nvim/.config/nvim/lua/plugins.inactive/cmp_1.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-return {
- {
- "hrsh7th/cmp-nvim-lsp",
- },
- {
- "L3MON4D3/LuaSnip",
- dependencies = {
- "saadparwaiz1/cmp_luasnip",
- "rafamadriz/friendly-snippets",
- },
- },
- {
- "hrsh7th/nvim-cmp",
- dependencies = {
- "hrsh7th/cmp-path",
- "hrsh7th/cmp-buffer",
- "hrsh7th/cmp-cmdline",
- },
- },
- {
- "tzachar/cmp-tabnine",
- build = "./install.sh",
- },
-}
diff --git a/nvim/.config/nvim/lua/plugins/harpoon.lua b/nvim/.config/nvim/lua/plugins.inactive/harpoon.lua
similarity index 100%
rename from nvim/.config/nvim/lua/plugins/harpoon.lua
rename to nvim/.config/nvim/lua/plugins.inactive/harpoon.lua
diff --git a/nvim/.config/nvim/lua/plugins.inactive/ufo.lua b/nvim/.config/nvim/lua/plugins.inactive/ufo.lua
new file mode 100644
index 0000000..3475e1f
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins.inactive/ufo.lua
@@ -0,0 +1,38 @@
+return {
+ "kevinhwang91/nvim-ufo",
+ dependencies = "kevinhwang91/promise-async",
+ event = { "BufReadPost", "BufNewFile" },
+ keys = {
+ {
+ "zR",
+ function()
+ require("ufo").openAllFolds()
+ end,
+ desc = "Ufo: open all folds",
+ },
+ {
+ "zM",
+ function()
+ require("ufo").closeAllFolds()
+ end,
+ desc = "Ufo: close all folds",
+ },
+ {
+ "zr",
+ function()
+ require("ufo").openFoldsExceptKinds()
+ end,
+ desc = "Ufo: open outer folds",
+ },
+ },
+ config = function()
+ local ufo = require("ufo")
+ ufo.setup({
+ provider_selector = function(bufnr, filetype, buftype)
+ -- prefer LSP, fall back to treesitter
+ return { "lsp", "treesitter" }
+ end,
+ fold_virt_text_handler = ufo.handler, -- default virtual text
+ })
+ end,
+}
diff --git a/nvim/.config/nvim/lua/plugins/vim-test.lua b/nvim/.config/nvim/lua/plugins.inactive/vim-test.lua
similarity index 100%
rename from nvim/.config/nvim/lua/plugins/vim-test.lua
rename to nvim/.config/nvim/lua/plugins.inactive/vim-test.lua
diff --git a/nvim/.config/nvim/lua/plugins/autopairs.lua b/nvim/.config/nvim/lua/plugins/autopairs.lua
index e3a4514..d271243 100644
--- a/nvim/.config/nvim/lua/plugins/autopairs.lua
+++ b/nvim/.config/nvim/lua/plugins/autopairs.lua
@@ -1,3 +1,5 @@
+-- autopairs.lua: Auto-inserts matching pairs for brackets, quotes, and delimiters during coding.
+
return {
{
"windwp/nvim-autopairs",
diff --git a/nvim/.config/nvim/lua/plugins/barbeque.lua b/nvim/.config/nvim/lua/plugins/barbeque.lua
index e762dd6..0422cb6 100644
--- a/nvim/.config/nvim/lua/plugins/barbeque.lua
+++ b/nvim/.config/nvim/lua/plugins/barbeque.lua
@@ -1,4 +1,4 @@
--- This is a VS Code like winbar that uses nvim-navic in order to get LSP context from your language server.
+-- barbcue.lua: Provides a minimal status line with contextual code structure (e.g., current function/method) using Treesitter and nvim-navic for lightweight navigation.
return {
{
@@ -14,39 +14,39 @@ return {
require("barbecue").setup({
-- Create autocmd to attach to LSP
attach_navic = true,
-
+
-- Create user commands
create_autocmd = true,
-
+
-- Whether to show/use file icons
show_modified = false,
-
+
-- Whether to show file path
show_dirname = true,
-
+
-- Whether to show basename
show_basename = true,
-
+
-- Filetypes to exclude
exclude_filetypes = { "netrw", "toggleterm", "alpha", "NvimTree" },
-
+
-- Modifiers to apply to dirname
modifiers = {
dirname = ":~:.",
basename = "",
},
-
+
-- Whether to display path to file
show_navic = true,
-
+
-- Custom section
custom_section = function()
return " "
end,
-
+
-- Theme configuration
theme = "auto", -- 'auto', 'tokyonight', 'catppuccin', etc.
-
+
-- Symbols for different node kinds
kinds = {
File = "",
diff --git a/nvim/.config/nvim/lua/plugins/blink.lua b/nvim/.config/nvim/lua/plugins/blink.lua
new file mode 100644
index 0000000..84e3d45
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/blink.lua
@@ -0,0 +1,63 @@
+-- blink.lua: Temporarily highlights cursor position after movement to improve visibility.
+
+return {
+ "saghen/blink.cmp",
+ version = "v1.*", -- stay on stable branch
+ build = "cargo build --release", -- compile matcher locally
+ lazy = false, -- must load before first lsp attach
+ dependencies = {
+ "L3MON4D3/LuaSnip",
+ "rafamadriz/friendly-snippets",
+ },
+ opts = {
+ -- completion sources ----------------------------------------------------
+ sources = {
+ min_keyword_length = 2, -- <-- Move it here from trigger section
+ default = { "nvim_lsp", "luasnip", "buffer", "path", "cmp_tabnine" },
+ providers = {
+ nvim_lsp = { name = "LSP", module = "blink.cmp.sources.lsp" },
+ luasnip = { name = "Snippets", module = "blink.cmp.sources.luasnip" },
+ buffer = { name = "Buffer", module = "blink.cmp.sources.buffer" },
+ path = { name = "Path", module = "blink.cmp.sources.path" },
+ cmp_tabnine = {
+ name = "TabNine",
+ module = "blink.compat.source",
+ score_offset = 3,
+ },
+ },
+ per_filetype = {
+ lua = { default = { "lazydev", "nvim_lsp", "luasnip", "buffer", "path" } },
+ },
+ },
+
+ -- completion behaviour --------------------------------------------------
+ completion = {
+ accept = { auto_brackets = { enabled = true } },
+ trigger = {
+ show_on_trigger_character = true, -- <-- Remove min_keyword_length from here
+ },
+ list = {
+ selection = {
+ preselect = function(ctx)
+ return ctx.mode ~= "cmdline"
+ end,
+ },
+ },
+ documentation = {
+ auto_show = true,
+ auto_show_delay_ms = 100,
+ },
+ },
+
+ signature = {
+ enabled = true,
+ window = { border = "rounded" },
+ },
+
+ cmdline = { enabled = true },
+ },
+
+ config = function(_, opts)
+ require("blink.cmp").setup(opts)
+ end,
+}
diff --git a/nvim/.config/nvim/lua/plugins/colorschemes.lua b/nvim/.config/nvim/lua/plugins/colorschemes.lua
index e259dbd..42c0388 100644
--- a/nvim/.config/nvim/lua/plugins/colorschemes.lua
+++ b/nvim/.config/nvim/lua/plugins/colorschemes.lua
@@ -1,3 +1,5 @@
+-- colorschemes.lua: Manages and switches between visual themes for the editor interface.
+
return {
{
"catppuccin/nvim",
diff --git a/nvim/.config/nvim/lua/plugins/comment.lua b/nvim/.config/nvim/lua/plugins/comment.lua
index b25f4d0..9fcee4b 100644
--- a/nvim/.config/nvim/lua/plugins/comment.lua
+++ b/nvim/.config/nvim/lua/plugins/comment.lua
@@ -1,3 +1,5 @@
+-- comment.lua: Toggles line or block comments with customizable keybindings.
+
return {
{
"numToStr/Comment.nvim",
@@ -21,21 +23,21 @@ return {
-- LHS of toggle mappings in NORMAL mode
toggler = {
- line = "gcc", -- Line-comment toggle keymap
+ line = "gcc", -- Line-comment toggle keymap
block = "gbc", -- Block-comment toggle keymap
},
-- LHS of operator-pending mappings in NORMAL and VISUAL mode
opleader = {
- line = "gc", -- Line-comment keymap
- block = "gb", -- Block-comment keymap
+ line = "gc", -- Line-comment keymap
+ block = "gb", -- Block-comment keymap
},
-- LHS of extra mappings
extra = {
above = "gcO", -- Add comment on the line above
below = "gco", -- Add comment on the line below
- eol = "gcA", -- Add comment at the end of line
+ eol = "gcA", -- Add comment at the end of line
},
-- Enable keybindings
diff --git a/nvim/.config/nvim/lua/plugins/completions.lua b/nvim/.config/nvim/lua/plugins/completions.lua
index 308ebd9..5609654 100644
--- a/nvim/.config/nvim/lua/plugins/completions.lua
+++ b/nvim/.config/nvim/lua/plugins/completions.lua
@@ -1,12 +1,20 @@
+-- completions.lua: Provides intelligent code completion via LSP or snippet engines.
+
return {
{
"hrsh7th/cmp-nvim-lsp",
},
{
- "hrsh7th/cmp-cmdline", -- NEW: Command line completion
+ "hrsh7th/cmp-cmdline", -- Command line completion
},
{
- "hrsh7th/cmp-nvim-lua", -- NEW: Better Neovim Lua API completion
+ "hrsh7th/cmp-nvim-lua", -- Better Neovim Lua API completion
+ },
+ {
+ "hrsh7th/cmp-path", -- ADD THIS: Path completion source
+ },
+ {
+ "hrsh7th/cmp-buffer", -- ADD THIS: Buffer completion source
},
{
"L3MON4D3/LuaSnip",
@@ -21,7 +29,6 @@ return {
config = function()
local cmp = require("cmp")
require("luasnip.loaders.from_vscode").lazy_load()
-
cmp.setup({
snippet = {
expand = function(args)
@@ -41,10 +48,12 @@ return {
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
- { name = "luasnip" }, -- For luasnip users.
+ { name = "luasnip" },
+ { name = "nvim_lua" }, -- ADD THIS: For nvim lua API completion
+ }, {
{ name = "buffer" },
{ name = "path" },
- { name = "cmp_tabnine" }, -- ai powerde suggestions
+ { name = "cmp_tabnine" }, -- ai powered suggestions
}),
})
end,
diff --git a/nvim/.config/nvim/lua/plugins/conform.lua b/nvim/.config/nvim/lua/plugins/conform.lua
index dd2d707..a1dff3d 100644
--- a/nvim/.config/nvim/lua/plugins/conform.lua
+++ b/nvim/.config/nvim/lua/plugins/conform.lua
@@ -1,3 +1,5 @@
+-- conform.lua: Automates code formatting on save or manual trigger.
+
return {
{
"stevearc/conform.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/dashboard.lua b/nvim/.config/nvim/lua/plugins/dashboard.lua
index fa4c12e..88dd3f7 100644
--- a/nvim/.config/nvim/lua/plugins/dashboard.lua
+++ b/nvim/.config/nvim/lua/plugins/dashboard.lua
@@ -1,3 +1,5 @@
+-- dashboard.lua: Creates a customizable start screen with project shortcuts and statistics.
+
return {
{
"nvimdev/dashboard-nvim",
diff --git a/nvim/.config/nvim/lua/plugins/dressing.lua b/nvim/.config/nvim/lua/plugins/dressing.lua
index 772d8cf..b924b9c 100644
--- a/nvim/.config/nvim/lua/plugins/dressing.lua
+++ b/nvim/.config/nvim/lua/plugins/dressing.lua
@@ -1,3 +1,5 @@
+-- dressing.lua: Enhances UI elements like input boxes and select menus for consistency.
+
return {
{
"stevearc/dressing.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/flash-nvim.lua b/nvim/.config/nvim/lua/plugins/flash-nvim.lua
index 7e7f638..1e4d927 100644
--- a/nvim/.config/nvim/lua/plugins/flash-nvim.lua
+++ b/nvim/.config/nvim/lua/plugins/flash-nvim.lua
@@ -1,50 +1,52 @@
+-- flash-nvim.lua: Highlights search matches and movement destinations for faster navigation.
+
return {
- {
- "folke/flash.nvim",
- event = "VeryLazy",
- ---@type Flash.Config
- opts = {},
- keys = {
- {
- "w",
- mode = { "n", "x", "o" },
- function()
- require("flash").jump()
- end,
- desc = "Flash",
- },
- {
- "W",
- mode = { "n", "x", "o" },
- function()
- require("flash").treesitter()
- end,
- desc = "Flash Treesitter",
- },
- {
- "r",
- mode = "o",
- function()
- require("flash").remote()
- end,
- desc = "Remote Flash",
- },
- {
- "R",
- mode = { "o", "x" },
- function()
- require("flash").treesitter_search()
- end,
- desc = "Treesitter Search",
- },
- {
- "",
- mode = { "c" },
- function()
- require("flash").toggle()
- end,
- desc = "Toggle Flash Search",
- },
- },
- },
+ {
+ "folke/flash.nvim",
+ event = "VeryLazy",
+ ---@type Flash.Config
+ opts = {},
+ keys = {
+ {
+ "w",
+ mode = { "n", "x", "o" },
+ function()
+ require("flash").jump()
+ end,
+ desc = "Flash",
+ },
+ {
+ "W",
+ mode = { "n", "x", "o" },
+ function()
+ require("flash").treesitter()
+ end,
+ desc = "Flash Treesitter",
+ },
+ {
+ "r",
+ mode = "o",
+ function()
+ require("flash").remote()
+ end,
+ desc = "Remote Flash",
+ },
+ {
+ "R",
+ mode = { "o", "x" },
+ function()
+ require("flash").treesitter_search()
+ end,
+ desc = "Treesitter Search",
+ },
+ {
+ "",
+ mode = { "c" },
+ function()
+ require("flash").toggle()
+ end,
+ desc = "Toggle Flash Search",
+ },
+ },
+ },
}
diff --git a/nvim/.config/nvim/lua/plugins/fzf.lua b/nvim/.config/nvim/lua/plugins/fzf.lua
index efe3d97..e57be86 100644
--- a/nvim/.config/nvim/lua/plugins/fzf.lua
+++ b/nvim/.config/nvim/lua/plugins/fzf.lua
@@ -1,3 +1,5 @@
+-- fzf.lua: Integrates fuzzy Finder for quick file, buffer, and command searching.
+
return {
{
"ibhagwan/fzf-lua",
diff --git a/nvim/.config/nvim/lua/plugins/git-signs.lua b/nvim/.config/nvim/lua/plugins/git-signs.lua
index 7ac67c2..57f68a1 100644
--- a/nvim/.config/nvim/lua/plugins/git-signs.lua
+++ b/nvim/.config/nvim/lua/plugins/git-signs.lua
@@ -1,3 +1,5 @@
+-- git-signs.lua: Displays Git diff markers directly in the editor margin.
+
return {
{
"lewis6991/gitsigns.nvim",
@@ -5,19 +7,19 @@ return {
config = function()
require("gitsigns").setup({
signs = {
- add = { text = "│" },
- change = { text = "│" },
- delete = { text = "_" },
- topdelete = { text = "‾" },
+ add = { text = "│" },
+ change = { text = "│" },
+ delete = { text = "_" },
+ topdelete = { text = "‾" },
changedelete = { text = "~" },
- untracked = { text = "┆" },
+ untracked = { text = "┆" },
},
- signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
- numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
- linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
- word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
+ signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
+ numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
+ linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
+ word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
- follow_files = true
+ follow_files = true,
},
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
@@ -38,7 +40,7 @@ return {
style = "minimal",
relative = "cursor",
row = 0,
- col = 1
+ col = 1,
},
on_attach = function(bufnr)
local gs = package.loaded.gitsigns
@@ -51,35 +53,51 @@ return {
-- Navigation
map("n", "]c", function()
- if vim.wo.diff then return "]c" end
- vim.schedule(function() gs.next_hunk() end)
+ if vim.wo.diff then
+ return "]c"
+ end
+ vim.schedule(function()
+ gs.next_hunk()
+ end)
return ""
end, { expr = true, desc = "Next hunk" })
map("n", "[c", function()
- if vim.wo.diff then return "[c" end
- vim.schedule(function() gs.prev_hunk() end)
+ if vim.wo.diff then
+ return "[c"
+ end
+ vim.schedule(function()
+ gs.prev_hunk()
+ end)
return ""
end, { expr = true, desc = "Previous hunk" })
-- Actions
map("n", "hs", gs.stage_hunk, { desc = "Stage hunk" })
map("n", "hr", gs.reset_hunk, { desc = "Reset hunk" })
- map("v", "hs", function() gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, { desc = "Stage hunk" })
- map("v", "hr", function() gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, { desc = "Reset hunk" })
+ map("v", "hs", function()
+ gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
+ end, { desc = "Stage hunk" })
+ map("v", "hr", function()
+ gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
+ end, { desc = "Reset hunk" })
map("n", "hS", gs.stage_buffer, { desc = "Stage buffer" })
map("n", "hu", gs.undo_stage_hunk, { desc = "Undo stage hunk" })
map("n", "hR", gs.reset_buffer, { desc = "Reset buffer" })
map("n", "hp", gs.preview_hunk, { desc = "Preview hunk" })
- map("n", "hb", function() gs.blame_line({ full = true }) end, { desc = "Blame line" })
+ map("n", "hb", function()
+ gs.blame_line({ full = true })
+ end, { desc = "Blame line" })
map("n", "tb", gs.toggle_current_line_blame, { desc = "Toggle line blame" })
map("n", "hd", gs.diffthis, { desc = "Diff this" })
- map("n", "hD", function() gs.diffthis("~") end, { desc = "Diff this ~" })
+ map("n", "hD", function()
+ gs.diffthis("~")
+ end, { desc = "Diff this ~" })
map("n", "td", gs.toggle_deleted, { desc = "Toggle deleted" })
-- Text object
map({ "o", "x" }, "ih", ":Gitsigns select_hunk", { desc = "Select hunk" })
- end
+ end,
})
end,
},
diff --git a/nvim/.config/nvim/lua/plugins/grapple.lua b/nvim/.config/nvim/lua/plugins/grapple.lua
new file mode 100644
index 0000000..e7db180
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/grapple.lua
@@ -0,0 +1,19 @@
+-- grapple.lua: Manages and switches between workspace tags for project organization.
+
+return {
+ "cbochs/grapple.nvim",
+ event = { "BufReadPost", "BufNewFile" },
+ dependencies = { "nvim-lua/plenary.nvim" },
+ keys = {
+ { "m", "Grapple toggle", desc = "Grapple: toggle file" },
+ { "M", "Grapple toggle_tags", desc = "Grapple: open tag menu" },
+ { "1", "Grapple select index=1", desc = "Grapple: goto tag 1" },
+ { "2", "Grapple select index=2", desc = "Grapple: goto tag 2" },
+ { "3", "Grapple select index=3", desc = "Grapple: goto tag 3" },
+ { "4", "Grapple select index=4", desc = "Grapple: goto tag 4" },
+ },
+ opts = {
+ scope = "git", -- per-branch scope
+ quick_select = "123456789",
+ },
+}
diff --git a/nvim/.config/nvim/lua/plugins/indent-blankline.lua b/nvim/.config/nvim/lua/plugins/indent-blankline.lua
index 7d901a9..7a5bb04 100644
--- a/nvim/.config/nvim/lua/plugins/indent-blankline.lua
+++ b/nvim/.config/nvim/lua/plugins/indent-blankline.lua
@@ -1,3 +1,5 @@
+-- indent-blankline.lua: Visualizes indentation levels with vertical guide lines.
+
return {
{
"lukas-reineke/indent-blankline.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/lazydev.lua b/nvim/.config/nvim/lua/plugins/lazydev.lua
index d65d74e..9f61a5d 100644
--- a/nvim/.config/nvim/lua/plugins/lazydev.lua
+++ b/nvim/.config/nvim/lua/plugins/lazydev.lua
@@ -1,3 +1,5 @@
+-- lazydev.lua: Streamlines Neovim plugin management and dependency loading.
+
return {
{
"folke/lazydev.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/lsp-config.lua b/nvim/.config/nvim/lua/plugins/lsp-config.lua
index 91205fc..1960493 100644
--- a/nvim/.config/nvim/lua/plugins/lsp-config.lua
+++ b/nvim/.config/nvim/lua/plugins/lsp-config.lua
@@ -1,3 +1,5 @@
+-- lsp-config.lua: Configures Language Server Protocol for code analysis and diagnostics.
+
return {
{
"williamboman/mason.nvim",
@@ -20,10 +22,10 @@ return {
"html",
"texlab",
"ltex",
- "dockerls", -- Fixed: correct name
- "yamlls", -- Fixed: correct name (not yaml-language-server)
- "taplo", -- TOML LSP
- "cssls", -- css
+ "dockerls",
+ "yamlls",
+ "taplo",
+ "cssls",
},
},
},
@@ -36,7 +38,6 @@ return {
config = function()
local capabilities = require("cmp_nvim_lsp").default_capabilities()
local navic = require("nvim-navic")
- -- local lspconfig = require("lspconfig")
-- Common on_attach function
local on_attach = function(client, bufnr)
@@ -88,11 +89,30 @@ return {
ltex = {
capabilities = capabilities,
on_attach = on_attach,
- filetypes = { "latex", "tex", "bib", "markdown" },
+ filetypes = { "latex", "tex", "bib", "markdown", "mail", "text" },
settings = {
ltex = {
language = "en-US",
- enabled = { "latex", "tex", "bib" },
+ enabled = { "latex", "tex", "bib", "markdown", "mail", "text" },
+ checkFrequency = "save", -- Only check when you save, not on every keystroke
+ diagnosticSeverity = "hint", -- Less intrusive
+ completionEnabled = true,
+ additionalRules = {
+ enablePickyRules = true,
+ motherTongue = "en-US",
+ },
+ disabledRules = {
+ -- Add rules you want to disable, e.g.:
+ -- ["en-US"] = { "MORFOLOGIK_RULE_EN_US" },
+ },
+ dictionary = {
+ -- Add custom words here that shouldn't be flagged
+ ["en-US"] = {
+ -- "aerc",
+ -- "notmuch",
+ -- "dovecot",
+ },
+ },
java = {
path = "",
initialHeapSize = 64,
@@ -129,7 +149,7 @@ return {
css = {
validate = true,
lint = {
- unknownAtRules = "ignore", -- Important for @define-color in GTK CSS
+ unknownAtRules = "ignore",
},
},
scss = {
@@ -185,11 +205,31 @@ return {
vim.lsp.enable(server)
end
+ -- Configure diagnostics globally
+ vim.diagnostic.config({
+ virtual_text = false, -- Disable inline diagnostic text (no more popups!)
+ signs = true, -- Keep gutter signs
+ underline = true, -- Underline errors
+ update_in_insert = false, -- Don't update diagnostics while typing
+ severity_sort = true,
+ float = {
+ border = "rounded",
+ source = "always",
+ header = "",
+ prefix = "",
+ },
+ })
+
-- LSP keymaps
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
vim.keymap.set("n", "gr", vim.lsp.buf.references, {})
vim.keymap.set("n", "ca", vim.lsp.buf.code_action, {})
+
+ -- Show diagnostics in floating window (optional - press this when you want to see the error)
+ vim.keymap.set("n", "e", vim.diagnostic.open_float, {})
+ vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, {})
+ vim.keymap.set("n", "]d", vim.diagnostic.goto_next, {})
end,
},
}
diff --git a/nvim/.config/nvim/lua/plugins/lualine.lua b/nvim/.config/nvim/lua/plugins/lualine.lua
index 6da1afe..b8435fd 100644
--- a/nvim/.config/nvim/lua/plugins/lualine.lua
+++ b/nvim/.config/nvim/lua/plugins/lualine.lua
@@ -1,3 +1,5 @@
+-- lualine.lua: Customizable status line showing file info, language, and mode.
+
return {
"nvim-lualine/lualine.nvim",
config = function()
diff --git a/nvim/.config/nvim/lua/plugins/neo-tree.lua b/nvim/.config/nvim/lua/plugins/neo-tree.lua
index 37a9fc4..0debd5d 100644
--- a/nvim/.config/nvim/lua/plugins/neo-tree.lua
+++ b/nvim/.config/nvim/lua/plugins/neo-tree.lua
@@ -1,3 +1,5 @@
+-- neo-tree.lua: File explorer with nested structure and Git integration.
+
return {
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
diff --git a/nvim/.config/nvim/lua/plugins/neogit.lua b/nvim/.config/nvim/lua/plugins/neogit.lua
index b530202..9c1c0ee 100644
--- a/nvim/.config/nvim/lua/plugins/neogit.lua
+++ b/nvim/.config/nvim/lua/plugins/neogit.lua
@@ -1,3 +1,5 @@
+-- neogit.lua: Embedded Git client with status, commits, and branch management.
+
return {
{
"NeogitOrg/neogit",
diff --git a/nvim/.config/nvim/lua/plugins/noice.lua b/nvim/.config/nvim/lua/plugins/noice.lua
index ab7f611..56d06b9 100644
--- a/nvim/.config/nvim/lua/plugins/noice.lua
+++ b/nvim/.config/nvim/lua/plugins/noice.lua
@@ -1,17 +1,19 @@
+-- noice.lua: Replaces default UI messages with polished, keyboard-friendly notifications.
+
return { -- lazy.nvim
- {
- "folke/noice.nvim",
- event = "VeryLazy",
- opts = {
- -- add any options here
- },
- dependencies = {
- -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
- "MunifTanjim/nui.nvim",
- -- OPTIONAL:
- -- `nvim-notify` is only needed, if you want to use the notification view.
- -- If not available, we use `mini` as the fallback
- "rcarriga/nvim-notify",
- },
- },
+ {
+ "folke/noice.nvim",
+ event = "VeryLazy",
+ opts = {
+ -- add any options here
+ },
+ dependencies = {
+ -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
+ "MunifTanjim/nui.nvim",
+ -- OPTIONAL:
+ -- `nvim-notify` is only needed, if you want to use the notification view.
+ -- If not available, we use `mini` as the fallback
+ "rcarriga/nvim-notify",
+ },
+ },
}
diff --git a/nvim/.config/nvim/lua/plugins/nvim-colorizer.lua b/nvim/.config/nvim/lua/plugins/nvim-colorizer.lua
index fca9b59..2009a5f 100644
--- a/nvim/.config/nvim/lua/plugins/nvim-colorizer.lua
+++ b/nvim/.config/nvim/lua/plugins/nvim-colorizer.lua
@@ -1,3 +1,5 @@
+-- nvim-colorizer.lua: Highlights color codes (e.g., #FFFFFF) directly in code.
+
return {
{
"norcalli/nvim-colorizer.lua",
diff --git a/nvim/.config/nvim/lua/plugins/nvim-lint.lua b/nvim/.config/nvim/lua/plugins/nvim-lint.lua
index 063e7f7..2b83509 100644
--- a/nvim/.config/nvim/lua/plugins/nvim-lint.lua
+++ b/nvim/.config/nvim/lua/plugins/nvim-lint.lua
@@ -1,3 +1,5 @@
+-- nvim-lint.lua: Runs linters automatically on save or on-demand for code quality.
+
return {
{
"mfussenegger/nvim-lint",
diff --git a/nvim/.config/nvim/lua/plugins/nvim-spectre.lua b/nvim/.config/nvim/lua/plugins/nvim-spectre.lua
index 8098071..8cfc135 100644
--- a/nvim/.config/nvim/lua/plugins/nvim-spectre.lua
+++ b/nvim/.config/nvim/lua/plugins/nvim-spectre.lua
@@ -1,159 +1,161 @@
+-- nvim-spectre.lua: Global search/replace tool with real-time preview and refactoring.
+
return {
- {
- "nvim-pack/nvim-spectre",
- dependencies = {
- "nvim-lua/plenary.nvim",
- },
- config = function()
- require("spectre").setup({
- -- Optional: customize colors
- color_devicons = true,
- open_cmd = "vnew",
- live_update = false, -- auto execute search again when you write any file
- line_sep_start = "┌-----------------------------------------",
- result_padding = "¦ ",
- line_sep = "└-----------------------------------------",
- highlight = {
- ui = "String",
- search = "DiffChange",
- replace = "DiffDelete",
- },
- mapping = {
- ["toggle_line"] = {
- map = "dd",
- cmd = "lua require('spectre').toggle_line()",
- desc = "toggle item",
- },
- ["enter_file"] = {
- map = "",
- cmd = "lua require('spectre.actions').select_entry()",
- desc = "open file",
- },
- ["send_to_qf"] = {
- map = "q",
- cmd = "lua require('spectre.actions').send_to_qf()",
- desc = "send all items to quickfix",
- },
- ["replace_cmd"] = {
- map = "c",
- cmd = "lua require('spectre.actions').replace_cmd()",
- desc = "input replace command",
- },
- ["show_option_menu"] = {
- map = "o",
- cmd = "lua require('spectre').show_options()",
- desc = "show options",
- },
- ["run_current_replace"] = {
- map = "rc",
- cmd = "lua require('spectre.actions').run_current_replace()",
- desc = "replace current line",
- },
- ["run_replace"] = {
- map = "R",
- cmd = "lua require('spectre.actions').run_replace()",
- desc = "replace all",
- },
- ["change_view_mode"] = {
- map = "v",
- cmd = "lua require('spectre').change_view()",
- desc = "change result view mode",
- },
- ["change_replace_sed"] = {
- map = "trs",
- cmd = "lua require('spectre').change_engine_replace('sed')",
- desc = "use sed to replace",
- },
- ["change_replace_oxi"] = {
- map = "tro",
- cmd = "lua require('spectre').change_engine_replace('oxi')",
- desc = "use oxi to replace",
- },
- ["toggle_live_update"] = {
- map = "tu",
- cmd = "lua require('spectre').toggle_live_update()",
- desc = "update when vim writes to file",
- },
- ["toggle_ignore_case"] = {
- map = "ti",
- cmd = "lua require('spectre').change_options('ignore-case')",
- desc = "toggle ignore case",
- },
- ["toggle_ignore_hidden"] = {
- map = "th",
- cmd = "lua require('spectre').change_options('hidden')",
- desc = "toggle search hidden",
- },
- ["resume_last_search"] = {
- map = "l",
- cmd = "lua require('spectre').resume_last_search()",
- desc = "resume last search",
- },
- },
- find_engine = {
- ["rg"] = {
- cmd = "rg",
- args = {
- "--color=never",
- "--no-heading",
- "--with-filename",
- "--line-number",
- "--column",
- },
- options = {
- ["ignore-case"] = {
- value = "--ignore-case",
- icon = "[I]",
- desc = "ignore case",
- },
- ["hidden"] = {
- value = "--hidden",
- desc = "hidden file",
- icon = "[H]",
- },
- },
- },
- },
- replace_engine = {
- ["sed"] = {
- cmd = "sed",
- args = nil,
- options = {
- ["ignore-case"] = {
- value = "--ignore-case",
- icon = "[I]",
- desc = "ignore case",
- },
- },
- },
- },
- default = {
- find = {
- cmd = "rg",
- options = { "ignore-case" },
- },
- replace = {
- cmd = "sed",
- },
- },
- })
+ {
+ "nvim-pack/nvim-spectre",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ },
+ config = function()
+ require("spectre").setup({
+ -- Optional: customize colors
+ color_devicons = true,
+ open_cmd = "vnew",
+ live_update = false, -- auto execute search again when you write any file
+ line_sep_start = "┌-----------------------------------------",
+ result_padding = "¦ ",
+ line_sep = "└-----------------------------------------",
+ highlight = {
+ ui = "String",
+ search = "DiffChange",
+ replace = "DiffDelete",
+ },
+ mapping = {
+ ["toggle_line"] = {
+ map = "dd",
+ cmd = "lua require('spectre').toggle_line()",
+ desc = "toggle item",
+ },
+ ["enter_file"] = {
+ map = "",
+ cmd = "lua require('spectre.actions').select_entry()",
+ desc = "open file",
+ },
+ ["send_to_qf"] = {
+ map = "q",
+ cmd = "lua require('spectre.actions').send_to_qf()",
+ desc = "send all items to quickfix",
+ },
+ ["replace_cmd"] = {
+ map = "c",
+ cmd = "lua require('spectre.actions').replace_cmd()",
+ desc = "input replace command",
+ },
+ ["show_option_menu"] = {
+ map = "o",
+ cmd = "lua require('spectre').show_options()",
+ desc = "show options",
+ },
+ ["run_current_replace"] = {
+ map = "rc",
+ cmd = "lua require('spectre.actions').run_current_replace()",
+ desc = "replace current line",
+ },
+ ["run_replace"] = {
+ map = "R",
+ cmd = "lua require('spectre.actions').run_replace()",
+ desc = "replace all",
+ },
+ ["change_view_mode"] = {
+ map = "v",
+ cmd = "lua require('spectre').change_view()",
+ desc = "change result view mode",
+ },
+ ["change_replace_sed"] = {
+ map = "trs",
+ cmd = "lua require('spectre').change_engine_replace('sed')",
+ desc = "use sed to replace",
+ },
+ ["change_replace_oxi"] = {
+ map = "tro",
+ cmd = "lua require('spectre').change_engine_replace('oxi')",
+ desc = "use oxi to replace",
+ },
+ ["toggle_live_update"] = {
+ map = "tu",
+ cmd = "lua require('spectre').toggle_live_update()",
+ desc = "update when vim writes to file",
+ },
+ ["toggle_ignore_case"] = {
+ map = "ti",
+ cmd = "lua require('spectre').change_options('ignore-case')",
+ desc = "toggle ignore case",
+ },
+ ["toggle_ignore_hidden"] = {
+ map = "th",
+ cmd = "lua require('spectre').change_options('hidden')",
+ desc = "toggle search hidden",
+ },
+ ["resume_last_search"] = {
+ map = "l",
+ cmd = "lua require('spectre').resume_last_search()",
+ desc = "resume last search",
+ },
+ },
+ find_engine = {
+ ["rg"] = {
+ cmd = "rg",
+ args = {
+ "--color=never",
+ "--no-heading",
+ "--with-filename",
+ "--line-number",
+ "--column",
+ },
+ options = {
+ ["ignore-case"] = {
+ value = "--ignore-case",
+ icon = "[I]",
+ desc = "ignore case",
+ },
+ ["hidden"] = {
+ value = "--hidden",
+ desc = "hidden file",
+ icon = "[H]",
+ },
+ },
+ },
+ },
+ replace_engine = {
+ ["sed"] = {
+ cmd = "sed",
+ args = nil,
+ options = {
+ ["ignore-case"] = {
+ value = "--ignore-case",
+ icon = "[I]",
+ desc = "ignore case",
+ },
+ },
+ },
+ },
+ default = {
+ find = {
+ cmd = "rg",
+ options = { "ignore-case" },
+ },
+ replace = {
+ cmd = "sed",
+ },
+ },
+ })
- -- Global keymaps
- vim.keymap.set("n", "S", 'lua require("spectre").toggle()', {
- desc = "Toggle Spectre",
- })
+ -- Global keymaps
+ vim.keymap.set("n", "S", 'lua require("spectre").toggle()', {
+ desc = "Toggle Spectre",
+ })
- vim.keymap.set("n", "sw", 'lua require("spectre").open_visual({select_word=true})', {
- desc = "Search current word",
- })
+ vim.keymap.set("n", "sw", 'lua require("spectre").open_visual({select_word=true})', {
+ desc = "Search current word",
+ })
- vim.keymap.set("v", "sw", 'lua require("spectre").open_visual()', {
- desc = "Search current word",
- })
+ vim.keymap.set("v", "sw", 'lua require("spectre").open_visual()', {
+ desc = "Search current word",
+ })
- vim.keymap.set("n", "sp", 'lua require("spectre").open_file_search({select_word=true})', {
- desc = "Search in current file",
- })
- end,
- },
+ vim.keymap.set("n", "sp", 'lua require("spectre").open_file_search({select_word=true})', {
+ desc = "Search in current file",
+ })
+ end,
+ },
}
diff --git a/nvim/.config/nvim/lua/plugins/nvim-surround.lua b/nvim/.config/nvim/lua/plugins/nvim-surround.lua
index 1e380cc..f4b686f 100644
--- a/nvim/.config/nvim/lua/plugins/nvim-surround.lua
+++ b/nvim/.config/nvim/lua/plugins/nvim-surround.lua
@@ -1,5 +1,6 @@
+-- nvim-surround.lua: Quickly add, delete, or change surrounding delimiters (e.g., brackets).
+
-- nvim-surround configuration with autopairs, treesitter, and comment integration
--- Place this in ~/.config/nvim/lua/plugins/nvim-surround.lua (for lazy.nvim)
return {
-- nvim-surround: manipulate surroundings
diff --git a/nvim/.config/nvim/lua/plugins/nvim-tmux-navigation.lua b/nvim/.config/nvim/lua/plugins/nvim-tmux-navigation.lua
index 867d0e8..16eb341 100644
--- a/nvim/.config/nvim/lua/plugins/nvim-tmux-navigation.lua
+++ b/nvim/.config/nvim/lua/plugins/nvim-tmux-navigation.lua
@@ -1,7 +1,9 @@
+-- nvim-tmux-navigator.lua: Switch between Neovim and tmux panes using consistent keybindings.
+
return {
"alexghergh/nvim-tmux-navigation",
config = function()
- require('nvim-tmux-navigation').setup({})
+ require("nvim-tmux-navigation").setup({})
vim.keymap.set("n", "", "NvimTmuxNavigateLeft", {})
vim.keymap.set("n", "", "NvimTmuxNavigateDown", {})
vim.keymap.set("n", "", "NvimTmuxNavigateUp", {})
diff --git a/nvim/.config/nvim/lua/plugins/nvim-web-devicons.lua b/nvim/.config/nvim/lua/plugins/nvim-web-devicons.lua
index 2b5b575..dbbf481 100644
--- a/nvim/.config/nvim/lua/plugins/nvim-web-devicons.lua
+++ b/nvim/.config/nvim/lua/plugins/nvim-web-devicons.lua
@@ -1,3 +1,5 @@
+-- nvim-web-devicons.lua: Adds icons for file types to improve visual navigation.
+
return {
{
"nvim-tree/nvim-web-devicons",
@@ -11,23 +13,23 @@ return {
icon = "",
color = "#428850",
cterm_color = "65",
- name = "Zsh"
+ name = "Zsh",
},
-- Add custom icons
["Dockerfile"] = {
icon = "",
color = "#384d54",
- name = "Dockerfile"
+ name = "Dockerfile",
},
[".env"] = {
icon = "",
color = "#faf743",
- name = "Env"
+ name = "Env",
},
[".gitignore"] = {
icon = "",
color = "#f1502f",
- name = "GitIgnore"
+ name = "GitIgnore",
},
},
-- Override by file extension
@@ -35,17 +37,17 @@ return {
["log"] = {
icon = "",
color = "#81e043",
- name = "Log"
+ name = "Log",
},
["rs"] = {
icon = "",
color = "#dea584",
- name = "Rust"
+ name = "Rust",
},
["md"] = {
icon = "",
color = "#519aba",
- name = "Markdown"
+ name = "Markdown",
},
},
-- Override by filename
@@ -53,27 +55,27 @@ return {
["makefile"] = {
icon = "",
color = "#6d8086",
- name = "Makefile"
+ name = "Makefile",
},
["dockerfile"] = {
icon = "",
color = "#384d54",
- name = "Dockerfile"
+ name = "Dockerfile",
},
[".dockerignore"] = {
icon = "",
color = "#384d54",
- name = "DockerIgnore"
+ name = "DockerIgnore",
},
["package.json"] = {
icon = "",
color = "#e8274b",
- name = "PackageJson"
+ name = "PackageJson",
},
["package-lock.json"] = {
icon = "",
color = "#7a0d21",
- name = "PackageLockJson"
+ name = "PackageLockJson",
},
},
-- Use colors by default
diff --git a/nvim/.config/nvim/lua/plugins/obsidian.lua b/nvim/.config/nvim/lua/plugins/obsidian.lua
index cd351e4..07589bd 100644
--- a/nvim/.config/nvim/lua/plugins/obsidian.lua
+++ b/nvim/.config/nvim/lua/plugins/obsidian.lua
@@ -1,3 +1,5 @@
+-- obsidian.lua: Integrates Obsidian note-taking workflow into Neovim.
+
return {
{
"epwalsh/obsidian.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/portal.lua b/nvim/.config/nvim/lua/plugins/portal.lua
index 6ed8469..5a71a04 100644
--- a/nvim/.config/nvim/lua/plugins/portal.lua
+++ b/nvim/.config/nvim/lua/plugins/portal.lua
@@ -1,72 +1,69 @@
+-- portal.lua: Saves and recalls cursor positions across files for efficient navigation.
+
return {
- {
- "cbochs/portal.nvim",
- dependencies = {
- "cbochs/grapple.nvim", -- Optional: for grapple integration
- "ThePrimeagen/harpoon", -- Optional: for harpoon integration
- },
- config = function()
- -- Setup portal
- require("portal").setup({
- labels = { "j", "k", "h", "l" },
- escape = {
- [""] = true,
- },
- })
+ {
+ "cbochs/portal.nvim",
+ dependencies = {
+ "cbochs/grapple.nvim", -- Optional: for grapple integration
+ -- "ThePrimeagen/harpoon", -- Optional: for harpoon integration
+ },
+ config = function()
+ -- Setup portal
+ require("portal").setup({
+ labels = { "j", "k", "h", "l" },
+ escape = {
+ [""] = true,
+ },
+ })
- -- Basic navigation keymaps
- vim.keymap.set("n", "u", "Portal jumplist backward", { desc = "Portal: Jump backward" })
+ -- Basic navigation keymaps
+ vim.keymap.set("n", "u", "Portal jumplist backward", { desc = "Portal: Jump backward" })
- vim.keymap.set("n", "i", "Portal jumplist forward", { desc = "Portal: Jump forward" })
+ vim.keymap.set("n", "i", "Portal jumplist forward", { desc = "Portal: Jump forward" })
- -- Changelist navigation
- vim.keymap.set(
- "n",
- "po",
- "Portal changelist backward",
- { desc = "Portal: Jump backward (changelist)" }
- )
+ -- Changelist navigation
+ vim.keymap.set(
+ "n",
+ "po",
+ "Portal changelist backward",
+ { desc = "Portal: Jump backward (changelist)" }
+ )
- vim.keymap.set(
- "n",
- "pi",
- "Portal changelist forward",
- { desc = "Portal: Jump forward (changelist)" }
- )
+ vim.keymap.set(
+ "n",
+ "pi",
+ "Portal changelist forward",
+ { desc = "Portal: Jump forward (changelist)" }
+ )
- -- Quickfix navigation
- vim.keymap.set(
- "n",
- "qo",
- "Portal quickfix backward",
- { desc = "Portal: Jump backward (quickfix)" }
- )
+ -- Quickfix navigation
+ vim.keymap.set(
+ "n",
+ "qo",
+ "Portal quickfix backward",
+ { desc = "Portal: Jump backward (quickfix)" }
+ )
- vim.keymap.set(
- "n",
- "qi",
- "Portal quickfix forward",
- { desc = "Portal: Jump forward (quickfix)" }
- )
+ vim.keymap.set(
+ "n",
+ "qi",
+ "Portal quickfix forward",
+ { desc = "Portal: Jump forward (quickfix)" }
+ )
- -- Optional: Harpoon integration
- vim.keymap.set(
- "n",
- "ho",
- "Portal harpoon backward",
- { desc = "Portal: Jump backward (harpoon)" }
- )
+ -- Optional: Harpoon integration
+ vim.keymap.set(
+ "n",
+ "ho",
+ "Portal harpoon backward",
+ { desc = "Portal: Jump backward (harpoon)" }
+ )
- vim.keymap.set(
- "n",
- "hi",
- "Portal harpoon forward",
- { desc = "Portal: Jump forward (harpoon)" }
- )
- end,
- keys = {
- { "u", desc = "Portal: Jump backward" },
- { "i", desc = "Portal: Jump forward" },
- },
- },
+ vim.keymap.set("n", "hi", "Portal harpoon forward", { desc = "Portal: Jump forward (harpoon)" })
+ end,
+ keys = {
+ { "u", desc = "Portal: Jump backward" },
+ { "i", desc = "Portal: Jump forward" },
+ },
+ },
}
diff --git a/nvim/.config/nvim/lua/plugins/r-nvim.lua b/nvim/.config/nvim/lua/plugins/r-nvim.lua
index 7da97c7..3df1d57 100644
--- a/nvim/.config/nvim/lua/plugins/r-nvim.lua
+++ b/nvim/.config/nvim/lua/plugins/r-nvim.lua
@@ -1,3 +1,5 @@
+-- r-nvim.lua: Provides R language support (syntax, LSP, and tools) within Neovim.
+
return {
"R-nvim/R.nvim",
lazy = false, -- load immediately
diff --git a/nvim/.config/nvim/lua/plugins/rainbow.lua b/nvim/.config/nvim/lua/plugins/rainbow.lua
index e4ee769..84feb1e 100644
--- a/nvim/.config/nvim/lua/plugins/rainbow.lua
+++ b/nvim/.config/nvim/lua/plugins/rainbow.lua
@@ -1,3 +1,5 @@
+-- rainbow.lua: Colors nested brackets/parentheses to visually distinguish levels.
+
return {
{
"HiPhish/rainbow-delimiters.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/render-markdown.lua b/nvim/.config/nvim/lua/plugins/render-markdown.lua
index f87d8f5..d039c02 100644
--- a/nvim/.config/nvim/lua/plugins/render-markdown.lua
+++ b/nvim/.config/nvim/lua/plugins/render-markdown.lua
@@ -1,3 +1,5 @@
+-- render-markdown.lua: Live previews or syntax enhancements for Markdown files.
+
return {
{
"MeanderingProgrammer/render-markdown.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/snacks.lua b/nvim/.config/nvim/lua/plugins/snacks.lua
new file mode 100644
index 0000000..a2a6778
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/snacks.lua
@@ -0,0 +1,99 @@
+-- snacks.lua: Minimal UI notifications for background tasks (e.g., LSP, file ops).
+
+return {
+ "folke/snacks.nvim",
+ priority = 1000,
+ lazy = false,
+ opts = {
+ bigfile = { enabled = true },
+ notifier = { enabled = true, timeout = 3000 },
+ quickfile = { enabled = true },
+ statuscolumn = { enabled = true },
+ words = { enabled = true },
+ scratch = { enabled = true, ft = "lua" },
+ zen = { enabled = true },
+ git = { enabled = true }, -- issue / PR / blame pickers
+ },
+ keys = {
+ -- github
+ {
+ "gi",
+ function()
+ Snacks.picker.gh_issue({ state = "open" })
+ end,
+ desc = "GitHub issues (open)",
+ },
+ {
+ "gI",
+ function()
+ Snacks.picker.gh_issue({ state = "all" })
+ end,
+ desc = "GitHub issues (all)",
+ },
+ {
+ "gp",
+ function()
+ Snacks.picker.gh_pr({ state = "open" })
+ end,
+ desc = "GitHub PRs (open)",
+ },
+ {
+ "gP",
+ function()
+ Snacks.picker.gh_pr({ state = "all" })
+ end,
+ desc = "GitHub PRs (all)",
+ },
+ -- grep / nav
+ {
+ "sb",
+ function()
+ Snacks.picker.lines()
+ end,
+ desc = "Buffer lines",
+ },
+ {
+ "sB",
+ function()
+ Snacks.picker.grep_buffers()
+ end,
+ desc = "Grep open buffers",
+ },
+ {
+ "sg",
+ function()
+ Snacks.picker.grep()
+ end,
+ desc = "Live grep",
+ },
+ {
+ "sw",
+ function()
+ Snacks.picker.grep_word()
+ end,
+ desc = "Grep word",
+ },
+ {
+ 's"',
+ function()
+ Snacks.picker.registers()
+ end,
+ desc = "Registers",
+ },
+ -- zen / scratch
+ {
+ "z",
+ function()
+ Snacks.zen()
+ end,
+ desc = "Zen mode",
+ },
+ {
+ "s",
+ function()
+ Snacks.scratch()
+ end,
+ desc = "Scratch buffer",
+ },
+ },
+}
diff --git a/nvim/.config/nvim/lua/plugins/telescope.lua b/nvim/.config/nvim/lua/plugins/telescope.lua
index 42df8ac..8700f51 100644
--- a/nvim/.config/nvim/lua/plugins/telescope.lua
+++ b/nvim/.config/nvim/lua/plugins/telescope.lua
@@ -1,3 +1,5 @@
+-- telescope.lua: Highly extensible fuzzy finder for files, code, and plugins.
+
return {
{
"nvim-telescope/telescope-ui-select.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/tokyonight.lua b/nvim/.config/nvim/lua/plugins/tokyonight.lua
deleted file mode 100644
index d18dd13..0000000
--- a/nvim/.config/nvim/lua/plugins/tokyonight.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-return {
- {
- "folke/tokyonight.nvim",
- lazy = false,
- priority = 1000,
- opts = {},
- },
-}
diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua
index baf3e3a..b728646 100644
--- a/nvim/.config/nvim/lua/plugins/treesitter.lua
+++ b/nvim/.config/nvim/lua/plugins/treesitter.lua
@@ -1,3 +1,5 @@
+-- treesitter.lua: Enables syntax highlighting, code folding, and structural analysis.
+
return {
{
"nvim-treesitter/nvim-treesitter",
diff --git a/nvim/.config/nvim/lua/plugins/trouble.lua b/nvim/.config/nvim/lua/plugins/trouble.lua
index 5018ef2..0643552 100644
--- a/nvim/.config/nvim/lua/plugins/trouble.lua
+++ b/nvim/.config/nvim/lua/plugins/trouble.lua
@@ -1,3 +1,5 @@
+-- trouble.lua: Aggregates diagnostics, references, and code issues into a single panel.
+
return {
{
"folke/trouble.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/vimtex.lua b/nvim/.config/nvim/lua/plugins/vimtex.lua
index 17039cb..d4f95f1 100644
--- a/nvim/.config/nvim/lua/plugins/vimtex.lua
+++ b/nvim/.config/nvim/lua/plugins/vimtex.lua
@@ -1,3 +1,5 @@
+-- vimtex.lua: Full LaTeX editing support (compiling, viewing, and syntax).
+
return {
"lervag/vimtex",
ft = "tex",
diff --git a/nvim/.config/nvim/lua/plugins/which-key.lua b/nvim/.config/nvim/lua/plugins/which-key.lua
index 84dd848..aea576f 100644
--- a/nvim/.config/nvim/lua/plugins/which-key.lua
+++ b/nvim/.config/nvim/lua/plugins/which-key.lua
@@ -1,3 +1,5 @@
+-- which-key.lua: Displays keybinding hints for uncompleted commands to reduce memorization.
+
return {
{
"folke/which-key.nvim",
diff --git a/nvim/.config/nvim/lua/plugins/yazi-nvim.lua b/nvim/.config/nvim/lua/plugins/yazi-nvim.lua
index 998b9da..e204fe4 100644
--- a/nvim/.config/nvim/lua/plugins/yazi-nvim.lua
+++ b/nvim/.config/nvim/lua/plugins/yazi-nvim.lua
@@ -1,3 +1,5 @@
+-- yazi-nvim.lua: Bridges Neovim with Yazi file manager for fast directory navigation.
+
return {
{
"mikavilpas/yazi.nvim",
diff --git a/scripts/scripts/abook.sh b/scripts/scripts/abook.sh
new file mode 100755
index 0000000..c9f28e7
--- /dev/null
+++ b/scripts/scripts/abook.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+# Automatically learn email addresses from sent/received mail
+
+ABOOK_FILE="$HOME/.abook/addressbook"
+mkdir -p "$HOME/.abook"
+touch "$ABOOK_FILE"
+
+# Extract all email addresses from notmuch database
+notmuch address --output=sender --output=recipients '*' |
+ sort -u |
+ while read -r email; do
+ # Check if email is already in abook
+ if ! grep -q "$email" "$ABOOK_FILE" 2>/dev/null; then
+ # Extract name and email
+ if [[ $email =~ ^(.+)\<(.+)\>$ ]]; then
+ NAME="${BASH_REMATCH[1]}"
+ EMAIL="${BASH_REMATCH[2]}"
+ else
+ NAME=""
+ EMAIL="$email"
+ fi
+
+ # Add to abook (skip if already exists)
+ echo "[format]
+program=abook
+version=0.6.1
+
+[0]
+name=$NAME
+email=$EMAIL
+" >>"$ABOOK_FILE"
+ fi
+ done
+
+echo "Address book updated: $(grep -c '^\[' "$ABOOK_FILE") entries"
diff --git a/scripts/scripts/fzf-address.sh b/scripts/scripts/fzf-address.sh
new file mode 100755
index 0000000..17a0f9c
--- /dev/null
+++ b/scripts/scripts/fzf-address.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# Fuzzy find email addresses with fzf
+
+QUERY="$1"
+
+# Get all addresses from notmuch
+ADDRESSES=$(notmuch address --output=sender --output=recipients \
+ --deduplicate=address '*' | sort -u)
+
+# If query is provided, pre-filter
+if [ -n "$QUERY" ]; then
+ ADDRESSES=$(echo "$ADDRESSES" | grep -i "$QUERY")
+fi
+
+# Use fzf for selection
+SELECTED=$(echo "$ADDRESSES" | fzf \
+ --height=40% \
+ --layout=reverse \
+ --border \
+ --prompt="Select recipient: " \
+ --preview="" \
+ --query="$QUERY")
+
+# Output selected address
+echo "$SELECTED"
diff --git a/scripts/scripts/mail b/scripts/scripts/mail
new file mode 100644
index 0000000..e69de29
diff --git a/wofi/.config/wofi/style.css b/wofi/.config/wofi/style.css
deleted file mode 100644
index 3dc0445..0000000
--- a/wofi/.config/wofi/style.css
+++ /dev/null
@@ -1,57 +0,0 @@
-/* * { */
-/* font-family: "CaskaydiaCove Nerd Font", monospace; */
-/* font-size: 18px; */
-/* } */
-
-window {
- margin: 0px;
- border: 1px solid #bd93f9;
- border-radius: 8px;
- background-color: #282a36;
-}
-
-#input {
- margin: 5px;
- border: none;
- color: #f8f8f2;
- background-color: #44475a;
-}
-
-#inner-box {
- margin: 5px;
- border: none;
- background-color: #282a36;
-}
-
-#outer-box {
- margin: 5px;
- border: none;
- background-color: #282a36;
-}
-
-#scroll {
- margin: 0px;
- border: none;
-}
-
-#text {
- margin: 5px;
- border: none;
- color: #f8f8f2;
-}
-
-#entry.activatable #text {
- color: #282a36;
-}
-
-#entry > * {
- color: #f8f8f2;
-}
-
-#entry:selected {
- background-color: #44475a;
-}
-
-#entry:selected #text {
- font-weight: bold;
-}
diff --git a/wofi/.config/wofi/style.css b/wofi/.config/wofi/style.css
new file mode 120000
index 0000000..a95bbce
--- /dev/null
+++ b/wofi/.config/wofi/style.css
@@ -0,0 +1 @@
+/home/liph/.config/wofi/themes/rose-pine-moon.css
\ No newline at end of file
diff --git a/wofi/.config/wofi/style_1.css b/wofi/.config/wofi/style_1.css
deleted file mode 100644
index 2c0aaa2..0000000
--- a/wofi/.config/wofi/style_1.css
+++ /dev/null
@@ -1,87 +0,0 @@
-@import "theme.css";
-
-* {
- font-family: "CaskaydiaCove Nerd Font", monospace;
- font-size: 18px;
-}
-
-/* Window */
-window {
- margin: 0px;
- padding: 10px;
- border: 2px solid @lavender;
- border-radius: 8px;
- background-color: @base;
-}
-
-/* Inner Box */
-#inner-box {
- margin: 5px;
- padding: 10px;
- border: none;
- background-color: @base;
-}
-
-/* Outer Box */
-#outer-box {
- margin: 5px;
- padding: 10px;
- border: none;
- background-color: @base;
-}
-
-/* Scroll */
-#scroll {
- margin: 0px;
- padding: 10px;
- border: none;
- background-color: @base;
-}
-
-/* Input */
-#input {
- margin: 5px 20px;
- padding: 10px;
- border: none;
- border-radius: 0.1em;
- color: @text;
- background-color: @base;
-}
-
-#input image {
- border: none;
- color: @red;
-}
-
-#input * {
- outline: 4px solid @red!important;
-}
-
-/* Text */
-#text {
- margin: 5px;
- border: none;
- color: @text;
-}
-
-#entry {
- background-color: @base;
-}
-
-#entry arrow {
- border: none;
- color: @lavender;
-}
-
-/* Selected Entry */
-#entry:selected {
- border: 0.11em solid @lavender;
-}
-
-#entry:selected #text {
- color: @mauve;
-}
-
-#entry:drop(active) {
- background-color: @lavender!important;
-}
diff --git a/wofi/.config/wofi/themes/rose-pine-moon.css b/wofi/.config/wofi/themes/rose-pine-moon.css
index 2f484d2..08836a9 100644
--- a/wofi/.config/wofi/themes/rose-pine-moon.css
+++ b/wofi/.config/wofi/themes/rose-pine-moon.css
@@ -1,8 +1,8 @@
window {
margin: 0px;
background-color: #232136;
- border-radius: 0px;
- border: 2px solid #eb6f92;
+ border-radius: 10px;
+ border: 2px solid #c4a7e7;
color: #e0def4;
font-family: "Monofur Nerd Font";
font-size: 20px;
@@ -10,10 +10,10 @@ window {
#input {
margin: 5px;
- border-radius: 0px;
+ border-radius: 10px;
border: none;
- border-radius: 0px;
- color: #eb6f92;
+ border-radius: 10px;
+ color: #c4a7e7;
background-color: #393552;
}
@@ -22,7 +22,7 @@ window {
border: none;
background-color: #393552;
color: #232136;
- border-radius: 0px;
+ border-radius: 5px;
}
#outer-box {
@@ -43,15 +43,15 @@ window {
}
#entry:selected {
- background-color: #eb6f92;
+ background-color: #eba0ac;
color: #232136;
- border-radius: 0px;
+ border-radius: 5px;
outline: none;
}
#entry:selected * {
- background-color: #eb6f92;
+ background-color: #eba0ac;
color: #232136;
- border-radius: 0px;
+ border-radius: 5px;
outline: none;
}
diff --git a/yazi/.config/yazi/init.lua b/yazi/.config/yazi/init.lua
index 2276cd7..64398eb 100644
--- a/yazi/.config/yazi/init.lua
+++ b/yazi/.config/yazi/init.lua
@@ -1,7 +1,13 @@
-- Change this to switch themes
-local THEME = "carbonfox"
+local THEME = "rose_pine"
local theme_colors = {
+ rose_pine = {
+ primary = "#c4a7e7", -- iris/mauve (purple-like color from rose-pine palette)
+ secondary = "#6e6a86", -- muted/subtle (comparable to comment/gray colors)
+ yanked = "#9ccfd8", -- foam (cyan-like accent color)
+ cut = "#eb6f92", -- love (red-like accent color)
+ },
carbonfox = {
primary = "#78a9ff",
secondary = "#525252",
@@ -26,6 +32,36 @@ local theme_colors = {
yanked = "#94e2d5",
cut = "#f38ba8",
},
+ dracula = {
+ primary = "#bd93f9", -- purple
+ secondary = "#6272a4", -- comment
+ yanked = "#8be9fd", -- cyan
+ cut = "#ff5555", -- red
+ },
+ everforest = {
+ primary = "#7fbbb3", -- aqua
+ secondary = "#859289", -- gray
+ yanked = "#a7c080", -- green
+ cut = "#e67e80", -- red
+ },
+ gruvbox = {
+ primary = "#7daea3", -- aqua
+ secondary = "#7c6f64", -- gray
+ yanked = "#a9b665", -- green
+ cut = "#ea6962", -- red
+ },
+ nightfox = {
+ primary = "#719cd6", -- blue
+ secondary = "#738091", -- comment
+ yanked = "#63cdcf", -- cyan
+ cut = "#c94f6d", -- red
+ },
+ onedark = {
+ primary = "#61afef", -- blue
+ secondary = "#5c6370", -- gray
+ yanked = "#56b6c2", -- cyan
+ cut = "#e06c75", -- red
+ },
}
local c = theme_colors[THEME]
@@ -53,10 +89,9 @@ require("yaziline"):setup({
filename_truncate_separator = "...",
})
--- require("recycle-bin")
--- setup({
--- trash_dir = "~/.local/share/Trash/",
--- })
+require("recycle-bin"):setup({
+ trash_dir = "~/.local/share/Trash/",
+})
require("omp"):setup({ config = "/home/liph/.config/yazi/omp/omp.toml" })
diff --git a/yazi/.config/yazi/plugins/mime-ext.yazi/main.lua b/yazi/.config/yazi/plugins/mime-ext.yazi/main.lua
index 234fd06..2734a40 100644
--- a/yazi/.config/yazi/plugins/mime-ext.yazi/main.lua
+++ b/yazi/.config/yazi/plugins/mime-ext.yazi/main.lua
@@ -12,6 +12,7 @@ local FILES = {
["cargo.lock"] = "application/json",
["flake.lock"] = "application/json",
license = "text/plain",
+ config ="text/plain",
}
local EXTS = {
@@ -149,6 +150,7 @@ local EXTS = {
cod = "application/rim.cod",
com = "application/msdownload",
conf = "text/plain",
+ config ="text/plain",
cpio = "application/cpio",
cpp = "text/c",
cpt = "application/mac-compactpro",
@@ -845,6 +847,7 @@ local EXTS = {
tif = "image/tiff",
tiff = "image/tiff",
tmo = "application/tmobile-livetv",
+ tmTheme = "text/plain",
toml = "text/toml",
torrent = "application/bittorrent",
tpl = "application/groove-tool-template",
diff --git a/yazi/.config/yazi/tags/home/liph/Downloads/tags.json b/yazi/.config/yazi/tags/home/liph/Downloads/tags.json
new file mode 100644
index 0000000..1facf9d
--- /dev/null
+++ b/yazi/.config/yazi/tags/home/liph/Downloads/tags.json
@@ -0,0 +1 @@
+{"\\x62\\x61\\x63\\x6B\\x75\\x70\\x2D\\x4C\\x69\\x70\\x68\\x52\\x6F\\x6F\\x74\\x2D\\x32\\x30\\x32\\x35\\x2D\\x30\\x35\\x2D\\x33\\x31\\x2E\\x74\\x61\\x72\\x2E\\x67\\x7A":["\\x31"]}
\ No newline at end of file
diff --git a/yazi/.config/yazi/themes/gruvbox-mat.toml b/yazi/.config/yazi/themes/gruvbox-mat.toml
new file mode 100644
index 0000000..6677c0e
--- /dev/null
+++ b/yazi/.config/yazi/themes/gruvbox-mat.toml
@@ -0,0 +1,72 @@
+# Gruvbox Material Dark theme for Yazi
+# Based on https://github.com/sainnhe/gruvbox-material
+
+[manager]
+cwd = { fg = "#d8a657" } # yellow
+
+# Hovered
+hovered = { fg = "#282828", bg = "#a9b665" } # green background
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#282828", bg = "#d8a657" } # yellow
+find_position = { fg = "#282828", bg = "#7daea3" } # aqua
+
+# Marker
+marker_copied = { fg = "#a9b665", bg = "#a9b665" } # green
+marker_cut = { fg = "#ea6962", bg = "#ea6962" } # red
+marker_marked = { fg = "#7daea3", bg = "#7daea3" } # aqua
+marker_selected = { fg = "#d8a657", bg = "#d8a657" } # yellow
+
+# Tab
+tab_active = { fg = "#282828", bg = "#a9b665" } # green
+tab_inactive = { fg = "#d4be98", bg = "#3c3836" } # fg on bg1
+tab_width = 1
+
+# Count
+count_copied = { fg = "#282828", bg = "#a9b665" } # green
+count_cut = { fg = "#282828", bg = "#ea6962" } # red
+count_selected = { fg = "#282828", bg = "#7daea3" } # aqua
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#504945" } # bg2
+
+# Syntect theme for preview
+syntect_theme = "~/.config/yazi/Gruvbox-Material-Dark.tmTheme"
+
+[status]
+separator_open = ""
+separator_close = ""
+separator_style = { fg = "#504945", bg = "#504945" } # bg2
+
+# Mode
+mode_normal = { fg = "#282828", bg = "#7daea3", bold = true } # aqua
+mode_select = { fg = "#282828", bg = "#d8a657", bold = true } # yellow
+mode_unset = { fg = "#282828", bg = "#ea6962", bold = true } # red
+
+# Progress
+progress_label = { fg = "#d4be98", bold = true } # fg
+progress_normal = { fg = "#7daea3", bg = "#3c3836" } # aqua on bg1
+progress_error = { fg = "#ea6962", bg = "#3c3836" } # red on bg1
+
+# Permissions
+permissions_t = { fg = "#a9b665" } # green
+permissions_r = { fg = "#d8a657" } # yellow
+permissions_w = { fg = "#ea6962" } # red
+permissions_x = { fg = "#7daea3" } # aqua
+permissions_s = { fg = "#504945" } # bg2
+
+[input]
+border = { fg = "#7daea3" } # aqua
+title = { fg = "#d4be98" } # fg
+value = { fg = "#d4be98" } # fg
+selected = { reversed = true }
+
+[select]
+border = { fg = "#7daea3" } # aqua
+active = { fg = "#d8a657" } # yellow
+inactive = { fg = "#7c6f64" } # bg3
+
+[completion]
+border = { fg = "#7daea3" } # aqua
diff --git a/yazi/.config/yazi/themes/rose.toml b/yazi/.config/yazi/themes/rose.toml
index 92abd8f..6677c0e 100644
--- a/yazi/.config/yazi/themes/rose.toml
+++ b/yazi/.config/yazi/themes/rose.toml
@@ -1,650 +1,72 @@
-[icon]
-files = [
- { name = ".babelrc", text = "", fg = "#f6c177" },
- { name = ".bash_profile", text = "", fg = "#f6c177" },
- { name = ".bashrc", text = "", fg = "#f6c177" },
- { name = ".clang-format", text = "", fg = "#6e6a86" },
- { name = ".clang-tidy", text = "", fg = "#6e6a86" },
- { name = ".codespellrc", text = "", fg = "#f6c177" },
- { name = ".condarc", text = "", fg = "#f6c177" },
- { name = ".dockerignore", text = "", fg = "#3e8fb0" },
- { name = ".ds_store", text = "", fg = "#2a283e" },
- { name = ".editorconfig", text = "", fg = "#e0def4" },
- { name = ".env", text = "", fg = "#f6c177" },
- { name = ".eslintignore", text = "", fg = "#3e8fb0" },
- { name = ".eslintrc", text = "", fg = "#3e8fb0" },
- { name = ".git-blame-ignore-revs", text = "", fg = "#eb6f92" },
- { name = ".gitattributes", text = "", fg = "#eb6f92" },
- { name = ".gitconfig", text = "", fg = "#eb6f92" },
- { name = ".gitignore", text = "", fg = "#eb6f92" },
- { name = ".gitlab-ci.yml", text = "", fg = "#eb6f92" },
- { name = ".gitmodules", text = "", fg = "#eb6f92" },
- { name = ".gtkrc-2.0", text = "", fg = "#e0def4" },
- { name = ".gvimrc", text = "", fg = "#f6c177" },
- { name = ".justfile", text = "", fg = "#e0def4" },
- { name = ".luacheckrc", text = "", fg = "#3e8fb0" },
- { name = ".luaurc", text = "", fg = "#3e8fb0" },
- { name = ".mailmap", text = "", fg = "#eb6f92" },
- { name = ".nanorc", text = "", fg = "#3e8fb0" },
- { name = ".npmignore", text = "", fg = "#eb6f92" },
- { name = ".npmrc", text = "", fg = "#eb6f92" },
- { name = ".nuxtrc", text = "", fg = "#f6c177" },
- { name = ".nvmrc", text = "", fg = "#f6c177" },
- { name = ".pre-commit-config.yaml", text = "", fg = "#f6c177" },
- { name = ".prettierignore", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.cjs", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.js", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.json", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.json5", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.mjs", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.toml", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.yaml", text = "", fg = "#3e8fb0" },
- { name = ".prettierrc.yml", text = "", fg = "#3e8fb0" },
- { name = ".pylintrc", text = "", fg = "#e0def4" },
- { name = ".settings.json", text = "", fg = "#3e8fb0" },
- { name = ".SRCINFO", text = "", fg = "#3e8fb0" },
- { name = ".vimrc", text = "", fg = "#f6c177" },
- { name = ".Xauthority", text = "", fg = "#eb6f92" },
- { name = ".xinitrc", text = "", fg = "#eb6f92" },
- { name = ".Xresources", text = "", fg = "#eb6f92" },
- { name = ".xsession", text = "", fg = "#eb6f92" },
- { name = ".zprofile", text = "", fg = "#f6c177" },
- { name = ".zshenv", text = "", fg = "#f6c177" },
- { name = ".zshrc", text = "", fg = "#f6c177" },
- { name = "_gvimrc", text = "", fg = "#f6c177" },
- { name = "_vimrc", text = "", fg = "#f6c177" },
- { name = "AUTHORS", text = "", fg = "#3e8fb0" },
- { name = "AUTHORS.txt", text = "", fg = "#3e8fb0" },
- { name = "brewfile", text = "", fg = "#eb6f92" },
- { name = "bspwmrc", text = "", fg = "#232136" },
- { name = "build", text = "", fg = "#f6c177" },
- { name = "build.gradle", text = "", fg = "#3e8fb0" },
- { name = "build.zig.zon", text = "", fg = "#f6c177" },
- { name = "bun.lockb", text = "", fg = "#e0def4" },
- { name = "cantorrc", text = "", fg = "#3e8fb0" },
- { name = "checkhealth", text = "", fg = "#3e8fb0" },
- { name = "cmakelists.txt", text = "", fg = "#e0def4" },
- { name = "code_of_conduct", text = "", fg = "#eb6f92" },
- { name = "code_of_conduct.md", text = "", fg = "#eb6f92" },
- { name = "commit_editmsg", text = "", fg = "#eb6f92" },
- { name = "commitlint.config.js", text = "", fg = "#3e8fb0" },
- { name = "commitlint.config.ts", text = "", fg = "#3e8fb0" },
- { name = "compose.yaml", text = "", fg = "#3e8fb0" },
- { name = "compose.yml", text = "", fg = "#3e8fb0" },
- { name = "config", text = "", fg = "#e0def4" },
- { name = "containerfile", text = "", fg = "#3e8fb0" },
- { name = "copying", text = "", fg = "#f6c177" },
- { name = "copying.lesser", text = "", fg = "#f6c177" },
- { name = "Directory.Build.props", text = "", fg = "#3e8fb0" },
- { name = "Directory.Build.targets", text = "", fg = "#3e8fb0" },
- { name = "Directory.Packages.props", text = "", fg = "#3e8fb0" },
- { name = "docker-compose.yaml", text = "", fg = "#3e8fb0" },
- { name = "docker-compose.yml", text = "", fg = "#3e8fb0" },
- { name = "dockerfile", text = "", fg = "#3e8fb0" },
- { name = "eslint.config.cjs", text = "", fg = "#3e8fb0" },
- { name = "eslint.config.js", text = "", fg = "#3e8fb0" },
- { name = "eslint.config.mjs", text = "", fg = "#3e8fb0" },
- { name = "eslint.config.ts", text = "", fg = "#3e8fb0" },
- { name = "ext_typoscript_setup.txt", text = "", fg = "#f6c177" },
- { name = "favicon.ico", text = "", fg = "#f6c177" },
- { name = "fp-info-cache", text = "", fg = "#e0def4" },
- { name = "fp-lib-table", text = "", fg = "#e0def4" },
- { name = "FreeCAD.conf", text = "", fg = "#eb6f92" },
- { name = "Gemfile", text = "", fg = "#eb6f92" },
- { name = "gnumakefile", text = "", fg = "#e0def4" },
- { name = "go.mod", text = "", fg = "#3e8fb0" },
- { name = "go.sum", text = "", fg = "#3e8fb0" },
- { name = "go.work", text = "", fg = "#3e8fb0" },
- { name = "gradle-wrapper.properties", text = "", fg = "#3e8fb0" },
- { name = "gradle.properties", text = "", fg = "#3e8fb0" },
- { name = "gradlew", text = "", fg = "#3e8fb0" },
- { name = "groovy", text = "", fg = "#6e6a86" },
- { name = "gruntfile.babel.js", text = "", fg = "#f6c177" },
- { name = "gruntfile.coffee", text = "", fg = "#f6c177" },
- { name = "gruntfile.js", text = "", fg = "#f6c177" },
- { name = "gruntfile.ts", text = "", fg = "#f6c177" },
- { name = "gtkrc", text = "", fg = "#e0def4" },
- { name = "gulpfile.babel.js", text = "", fg = "#eb6f92" },
- { name = "gulpfile.coffee", text = "", fg = "#eb6f92" },
- { name = "gulpfile.js", text = "", fg = "#eb6f92" },
- { name = "gulpfile.ts", text = "", fg = "#eb6f92" },
- { name = "hypridle.conf", text = "", fg = "#3e8fb0" },
- { name = "hyprland.conf", text = "", fg = "#3e8fb0" },
- { name = "hyprlock.conf", text = "", fg = "#3e8fb0" },
- { name = "hyprpaper.conf", text = "", fg = "#3e8fb0" },
- { name = "i18n.config.js", text = "", fg = "#3e8fb0" },
- { name = "i18n.config.ts", text = "", fg = "#3e8fb0" },
- { name = "i3blocks.conf", text = "", fg = "#e0def4" },
- { name = "i3status.conf", text = "", fg = "#e0def4" },
- { name = "index.theme", text = "", fg = "#f6c177" },
- { name = "ionic.config.json", text = "", fg = "#3e8fb0" },
- { name = "justfile", text = "", fg = "#e0def4" },
- { name = "kalgebrarc", text = "", fg = "#3e8fb0" },
- { name = "kdeglobals", text = "", fg = "#3e8fb0" },
- { name = "kdenlive-layoutsrc", text = "", fg = "#3e8fb0" },
- { name = "kdenliverc", text = "", fg = "#3e8fb0" },
- { name = "kritadisplayrc", text = "", fg = "#3e8fb0" },
- { name = "kritarc", text = "", fg = "#3e8fb0" },
- { name = "license", text = "", fg = "#f6c177" },
- { name = "license.md", text = "", fg = "#f6c177" },
- { name = "lxde-rc.xml", text = "", fg = "#e0def4" },
- { name = "lxqt.conf", text = "", fg = "#3e8fb0" },
- { name = "makefile", text = "", fg = "#e0def4" },
- { name = "mix.lock", text = "", fg = "#c4a7e7" },
- { name = "mpv.conf", text = "", fg = "#393552" },
- { name = "node_modules", text = "", fg = "#eb6f92" },
- { name = "nuxt.config.cjs", text = "", fg = "#f6c177" },
- { name = "nuxt.config.js", text = "", fg = "#f6c177" },
- { name = "nuxt.config.mjs", text = "", fg = "#f6c177" },
- { name = "nuxt.config.ts", text = "", fg = "#f6c177" },
- { name = "package-lock.json", text = "", fg = "#eb6f92" },
- { name = "package.json", text = "", fg = "#eb6f92" },
- { name = "PKGBUILD", text = "", fg = "#3e8fb0" },
- { name = "platformio.ini", text = "", fg = "#f6c177" },
- { name = "pom.xml", text = "", fg = "#eb6f92" },
- { name = "prettier.config.cjs", text = "", fg = "#3e8fb0" },
- { name = "prettier.config.js", text = "", fg = "#3e8fb0" },
- { name = "prettier.config.mjs", text = "", fg = "#3e8fb0" },
- { name = "prettier.config.ts", text = "", fg = "#3e8fb0" },
- { name = "procfile", text = "", fg = "#c4a7e7" },
- { name = "PrusaSlicer.ini", text = "", fg = "#f6c177" },
- { name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#f6c177" },
- { name = "py.typed", text = "", fg = "#f6c177" },
- { name = "QtProject.conf", text = "", fg = "#f6c177" },
- { name = "rakefile", text = "", fg = "#eb6f92" },
- { name = "readme", text = "", fg = "#e0def4" },
- { name = "readme.md", text = "", fg = "#e0def4" },
- { name = "rmd", text = "", fg = "#3e8fb0" },
- { name = "robots.txt", text = "", fg = "#6e6a86" },
- { name = "security", text = "", fg = "#e0def4" },
- { name = "security.md", text = "", fg = "#e0def4" },
- { name = "settings.gradle", text = "", fg = "#3e8fb0" },
- { name = "svelte.config.js", text = "", fg = "#eb6f92" },
- { name = "sxhkdrc", text = "", fg = "#232136" },
- { name = "sym-lib-table", text = "", fg = "#e0def4" },
- { name = "tailwind.config.js", text = "", fg = "#3e8fb0" },
- { name = "tailwind.config.mjs", text = "", fg = "#3e8fb0" },
- { name = "tailwind.config.ts", text = "", fg = "#3e8fb0" },
- { name = "tmux.conf", text = "", fg = "#f6c177" },
- { name = "tmux.conf.local", text = "", fg = "#f6c177" },
- { name = "tsconfig.json", text = "", fg = "#3e8fb0" },
- { name = "unlicense", text = "", fg = "#f6c177" },
- { name = "vagrantfile", text = "", fg = "#3e8fb0" },
- { name = "vercel.json", text = "", fg = "#e0def4" },
- { name = "vlcrc", text = "", fg = "#f6c177" },
- { name = "webpack", text = "", fg = "#3e8fb0" },
- { name = "weston.ini", text = "", fg = "#f6c177" },
- { name = "workspace", text = "", fg = "#f6c177" },
- { name = "xmobarrc", text = "", fg = "#eb6f92" },
- { name = "xmobarrc.hs", text = "", fg = "#eb6f92" },
- { name = "xmonad.hs", text = "", fg = "#eb6f92" },
- { name = "xorg.conf", text = "", fg = "#eb6f92" },
- { name = "xsettingsd.conf", text = "", fg = "#eb6f92" },
-]
-exts = [
- { name = "3gp", text = "", fg = "#f6c177" },
- { name = "3mf", text = "", fg = "#e0def4" },
- { name = "7z", text = "", fg = "#f6c177" },
- { name = "a", text = "", fg = "#e0def4" },
- { name = "aac", text = "", fg = "#3e8fb0" },
- { name = "adb", text = "", fg = "#3e8fb0" },
- { name = "ads", text = "", fg = "#e0def4" },
- { name = "ai", text = "", fg = "#f6c177" },
- { name = "aif", text = "", fg = "#3e8fb0" },
- { name = "aiff", text = "", fg = "#3e8fb0" },
- { name = "android", text = "", fg = "#f6c177" },
- { name = "ape", text = "", fg = "#3e8fb0" },
- { name = "apk", text = "", fg = "#f6c177" },
- { name = "apl", text = "", fg = "#f6c177" },
- { name = "app", text = "", fg = "#eb6f92" },
- { name = "applescript", text = "", fg = "#e0def4" },
- { name = "asc", text = "", fg = "#6e6a86" },
- { name = "asm", text = "", fg = "#3e8fb0" },
- { name = "ass", text = "", fg = "#f6c177" },
- { name = "astro", text = "", fg = "#eb6f92" },
- { name = "avif", text = "", fg = "#c4a7e7" },
- { name = "awk", text = "", fg = "#232136" },
- { name = "azcli", text = "", fg = "#3e8fb0" },
- { name = "bak", text = "", fg = "#e0def4" },
- { name = "bash", text = "", fg = "#f6c177" },
- { name = "bat", text = "", fg = "#f6c177" },
- { name = "bazel", text = "", fg = "#f6c177" },
- { name = "bib", text = "", fg = "#f6c177" },
- { name = "bicep", text = "", fg = "#3e8fb0" },
- { name = "bicepparam", text = "", fg = "#c4a7e7" },
- { name = "bin", text = "", fg = "#eb6f92" },
- { name = "blade.php", text = "", fg = "#eb6f92" },
- { name = "blend", text = "", fg = "#f6c177" },
- { name = "blp", text = "", fg = "#3e8fb0" },
- { name = "bmp", text = "", fg = "#c4a7e7" },
- { name = "bqn", text = "", fg = "#f6c177" },
- { name = "brep", text = "", fg = "#9ccfd8" },
- { name = "bz", text = "", fg = "#f6c177" },
- { name = "bz2", text = "", fg = "#f6c177" },
- { name = "bz3", text = "", fg = "#f6c177" },
- { name = "bzl", text = "", fg = "#f6c177" },
- { name = "c", text = "", fg = "#3e8fb0" },
- { name = "c++", text = "", fg = "#eb6f92" },
- { name = "cache", text = "", fg = "#e0def4" },
- { name = "cast", text = "", fg = "#f6c177" },
- { name = "cbl", text = "", fg = "#3e8fb0" },
- { name = "cc", text = "", fg = "#eb6f92" },
- { name = "ccm", text = "", fg = "#eb6f92" },
- { name = "cfg", text = "", fg = "#e0def4" },
- { name = "cjs", text = "", fg = "#f6c177" },
- { name = "clj", text = "", fg = "#f6c177" },
- { name = "cljc", text = "", fg = "#f6c177" },
- { name = "cljd", text = "", fg = "#3e8fb0" },
- { name = "cljs", text = "", fg = "#3e8fb0" },
- { name = "cmake", text = "", fg = "#e0def4" },
- { name = "cob", text = "", fg = "#3e8fb0" },
- { name = "cobol", text = "", fg = "#3e8fb0" },
- { name = "coffee", text = "", fg = "#f6c177" },
- { name = "conda", text = "", fg = "#f6c177" },
- { name = "conf", text = "", fg = "#e0def4" },
- { name = "config.ru", text = "", fg = "#eb6f92" },
- { name = "cow", text = "", fg = "#f6c177" },
- { name = "cp", text = "", fg = "#3e8fb0" },
- { name = "cpp", text = "", fg = "#3e8fb0" },
- { name = "cppm", text = "", fg = "#3e8fb0" },
- { name = "cpy", text = "", fg = "#3e8fb0" },
- { name = "cr", text = "", fg = "#e0def4" },
- { name = "crdownload", text = "", fg = "#3e8fb0" },
- { name = "cs", text = "", fg = "#f6c177" },
- { name = "csh", text = "", fg = "#232136" },
- { name = "cshtml", text = "", fg = "#3e8fb0" },
- { name = "cson", text = "", fg = "#f6c177" },
- { name = "csproj", text = "", fg = "#3e8fb0" },
- { name = "css", text = "", fg = "#3e8fb0" },
- { name = "csv", text = "", fg = "#f6c177" },
- { name = "cts", text = "", fg = "#3e8fb0" },
- { name = "cu", text = "", fg = "#f6c177" },
- { name = "cue", text = "", fg = "#ea9a97" },
- { name = "cuh", text = "", fg = "#c4a7e7" },
- { name = "cxx", text = "", fg = "#3e8fb0" },
- { name = "cxxm", text = "", fg = "#3e8fb0" },
- { name = "d", text = "", fg = "#eb6f92" },
- { name = "d.ts", text = "", fg = "#f6c177" },
- { name = "dart", text = "", fg = "#3e8fb0" },
- { name = "db", text = "", fg = "#e0def4" },
- { name = "dconf", text = "", fg = "#e0def4" },
- { name = "desktop", text = "", fg = "#c4a7e7" },
- { name = "diff", text = "", fg = "#232136" },
- { name = "dll", text = "", fg = "#ea9a97" },
- { name = "doc", text = "", fg = "#3e8fb0" },
- { name = "Dockerfile", text = "", fg = "#3e8fb0" },
- { name = "docx", text = "", fg = "#3e8fb0" },
- { name = "dot", text = "", fg = "#3e8fb0" },
- { name = "download", text = "", fg = "#3e8fb0" },
- { name = "drl", text = "", fg = "#ea9a97" },
- { name = "dropbox", text = "", fg = "#3e8fb0" },
- { name = "dump", text = "", fg = "#e0def4" },
- { name = "dwg", text = "", fg = "#9ccfd8" },
- { name = "dxf", text = "", fg = "#9ccfd8" },
- { name = "ebook", text = "", fg = "#f6c177" },
- { name = "ebuild", text = "", fg = "#393552" },
- { name = "edn", text = "", fg = "#3e8fb0" },
- { name = "eex", text = "", fg = "#c4a7e7" },
- { name = "ejs", text = "", fg = "#f6c177" },
- { name = "el", text = "", fg = "#c4a7e7" },
- { name = "elc", text = "", fg = "#c4a7e7" },
- { name = "elf", text = "", fg = "#eb6f92" },
- { name = "elm", text = "", fg = "#3e8fb0" },
- { name = "eln", text = "", fg = "#c4a7e7" },
- { name = "env", text = "", fg = "#f6c177" },
- { name = "eot", text = "", fg = "#e0def4" },
- { name = "epp", text = "", fg = "#f6c177" },
- { name = "epub", text = "", fg = "#f6c177" },
- { name = "erb", text = "", fg = "#eb6f92" },
- { name = "erl", text = "", fg = "#eb6f92" },
- { name = "ex", text = "", fg = "#c4a7e7" },
- { name = "exe", text = "", fg = "#eb6f92" },
- { name = "exs", text = "", fg = "#c4a7e7" },
- { name = "f#", text = "", fg = "#3e8fb0" },
- { name = "f3d", text = "", fg = "#9ccfd8" },
- { name = "f90", text = "", fg = "#c4a7e7" },
- { name = "fbx", text = "", fg = "#e0def4" },
- { name = "fcbak", text = "", fg = "#eb6f92" },
- { name = "fcmacro", text = "", fg = "#eb6f92" },
- { name = "fcmat", text = "", fg = "#eb6f92" },
- { name = "fcparam", text = "", fg = "#eb6f92" },
- { name = "fcscript", text = "", fg = "#eb6f92" },
- { name = "fcstd", text = "", fg = "#eb6f92" },
- { name = "fcstd1", text = "", fg = "#eb6f92" },
- { name = "fctb", text = "", fg = "#eb6f92" },
- { name = "fctl", text = "", fg = "#eb6f92" },
- { name = "fdmdownload", text = "", fg = "#3e8fb0" },
- { name = "feature", text = "", fg = "#f6c177" },
- { name = "fish", text = "", fg = "#232136" },
- { name = "flac", text = "", fg = "#3e8fb0" },
- { name = "flc", text = "", fg = "#e0def4" },
- { name = "flf", text = "", fg = "#e0def4" },
- { name = "fnl", text = "", fg = "#e0def4" },
- { name = "fodg", text = "", fg = "#f6c177" },
- { name = "fodp", text = "", fg = "#f6c177" },
- { name = "fods", text = "", fg = "#f6c177" },
- { name = "fodt", text = "", fg = "#3e8fb0" },
- { name = "fs", text = "", fg = "#3e8fb0" },
- { name = "fsi", text = "", fg = "#3e8fb0" },
- { name = "fsscript", text = "", fg = "#3e8fb0" },
- { name = "fsx", text = "", fg = "#3e8fb0" },
- { name = "gcode", text = "", fg = "#3e8fb0" },
- { name = "gd", text = "", fg = "#e0def4" },
- { name = "gemspec", text = "", fg = "#eb6f92" },
- { name = "gif", text = "", fg = "#c4a7e7" },
- { name = "git", text = "", fg = "#eb6f92" },
- { name = "glb", text = "", fg = "#f6c177" },
- { name = "gleam", text = "", fg = "#c4a7e7" },
- { name = "gnumakefile", text = "", fg = "#e0def4" },
- { name = "go", text = "", fg = "#3e8fb0" },
- { name = "godot", text = "", fg = "#e0def4" },
- { name = "gpr", text = "", fg = "#3e8fb0" },
- { name = "gql", text = "", fg = "#eb6f92" },
- { name = "gradle", text = "", fg = "#3e8fb0" },
- { name = "graphql", text = "", fg = "#eb6f92" },
- { name = "gresource", text = "", fg = "#e0def4" },
- { name = "gv", text = "", fg = "#3e8fb0" },
- { name = "gz", text = "", fg = "#f6c177" },
- { name = "h", text = "", fg = "#c4a7e7" },
- { name = "haml", text = "", fg = "#e0def4" },
- { name = "hbs", text = "", fg = "#f6c177" },
- { name = "heex", text = "", fg = "#c4a7e7" },
- { name = "hex", text = "", fg = "#3e8fb0" },
- { name = "hh", text = "", fg = "#c4a7e7" },
- { name = "hpp", text = "", fg = "#c4a7e7" },
- { name = "hrl", text = "", fg = "#eb6f92" },
- { name = "hs", text = "", fg = "#c4a7e7" },
- { name = "htm", text = "", fg = "#eb6f92" },
- { name = "html", text = "", fg = "#eb6f92" },
- { name = "http", text = "", fg = "#3e8fb0" },
- { name = "huff", text = "", fg = "#3e8fb0" },
- { name = "hurl", text = "", fg = "#eb6f92" },
- { name = "hx", text = "", fg = "#f6c177" },
- { name = "hxx", text = "", fg = "#c4a7e7" },
- { name = "ical", text = "", fg = "#3e8fb0" },
- { name = "icalendar", text = "", fg = "#3e8fb0" },
- { name = "ico", text = "", fg = "#f6c177" },
- { name = "ics", text = "", fg = "#3e8fb0" },
- { name = "ifb", text = "", fg = "#3e8fb0" },
- { name = "ifc", text = "", fg = "#9ccfd8" },
- { name = "ige", text = "", fg = "#9ccfd8" },
- { name = "iges", text = "", fg = "#9ccfd8" },
- { name = "igs", text = "", fg = "#9ccfd8" },
- { name = "image", text = "", fg = "#e0def4" },
- { name = "img", text = "", fg = "#e0def4" },
- { name = "import", text = "", fg = "#e0def4" },
- { name = "info", text = "", fg = "#9ccfd8" },
- { name = "ini", text = "", fg = "#e0def4" },
- { name = "ino", text = "", fg = "#3e8fb0" },
- { name = "ipynb", text = "", fg = "#f6c177" },
- { name = "iso", text = "", fg = "#e0def4" },
- { name = "ixx", text = "", fg = "#3e8fb0" },
- { name = "java", text = "", fg = "#eb6f92" },
- { name = "jl", text = "", fg = "#c4a7e7" },
- { name = "jpeg", text = "", fg = "#c4a7e7" },
- { name = "jpg", text = "", fg = "#c4a7e7" },
- { name = "js", text = "", fg = "#f6c177" },
- { name = "json", text = "", fg = "#f6c177" },
- { name = "json5", text = "", fg = "#f6c177" },
- { name = "jsonc", text = "", fg = "#f6c177" },
- { name = "jsx", text = "", fg = "#3e8fb0" },
- { name = "jwmrc", text = "", fg = "#3e8fb0" },
- { name = "jxl", text = "", fg = "#c4a7e7" },
- { name = "kbx", text = "", fg = "#e0def4" },
- { name = "kdb", text = "", fg = "#f6c177" },
- { name = "kdbx", text = "", fg = "#f6c177" },
- { name = "kdenlive", text = "", fg = "#3e8fb0" },
- { name = "kdenlivetitle", text = "", fg = "#3e8fb0" },
- { name = "kicad_dru", text = "", fg = "#e0def4" },
- { name = "kicad_mod", text = "", fg = "#e0def4" },
- { name = "kicad_pcb", text = "", fg = "#e0def4" },
- { name = "kicad_prl", text = "", fg = "#e0def4" },
- { name = "kicad_pro", text = "", fg = "#e0def4" },
- { name = "kicad_sch", text = "", fg = "#e0def4" },
- { name = "kicad_sym", text = "", fg = "#e0def4" },
- { name = "kicad_wks", text = "", fg = "#e0def4" },
- { name = "ko", text = "", fg = "#e0def4" },
- { name = "kpp", text = "", fg = "#3e8fb0" },
- { name = "kra", text = "", fg = "#3e8fb0" },
- { name = "krz", text = "", fg = "#3e8fb0" },
- { name = "ksh", text = "", fg = "#e0def4" },
- { name = "kt", text = "", fg = "#3e8fb0" },
- { name = "kts", text = "", fg = "#3e8fb0" },
- { name = "lck", text = "", fg = "#e0def4" },
- { name = "leex", text = "", fg = "#c4a7e7" },
- { name = "less", text = "", fg = "#c4a7e7" },
- { name = "lff", text = "", fg = "#e0def4" },
- { name = "lhs", text = "", fg = "#c4a7e7" },
- { name = "lib", text = "", fg = "#ea9a97" },
- { name = "license", text = "", fg = "#f6c177" },
- { name = "liquid", text = "", fg = "#f6c177" },
- { name = "lock", text = "", fg = "#e0def4" },
- { name = "log", text = "", fg = "#e0def4" },
- { name = "lrc", text = "", fg = "#f6c177" },
- { name = "lua", text = "", fg = "#3e8fb0" },
- { name = "luac", text = "", fg = "#3e8fb0" },
- { name = "luau", text = "", fg = "#3e8fb0" },
- { name = "m", text = "", fg = "#3e8fb0" },
- { name = "m3u", text = "", fg = "#ea9a97" },
- { name = "m3u8", text = "", fg = "#ea9a97" },
- { name = "m4a", text = "", fg = "#3e8fb0" },
- { name = "m4v", text = "", fg = "#f6c177" },
- { name = "magnet", text = "", fg = "#eb6f92" },
- { name = "makefile", text = "", fg = "#e0def4" },
- { name = "markdown", text = "", fg = "#e0def4" },
- { name = "material", text = "", fg = "#eb6f92" },
- { name = "md", text = "", fg = "#e0def4" },
- { name = "md5", text = "", fg = "#908caa" },
- { name = "mdx", text = "", fg = "#3e8fb0" },
- { name = "mint", text = "", fg = "#3e8fb0" },
- { name = "mjs", text = "", fg = "#f6c177" },
- { name = "mk", text = "", fg = "#e0def4" },
- { name = "mkv", text = "", fg = "#f6c177" },
- { name = "ml", text = "", fg = "#f6c177" },
- { name = "mli", text = "", fg = "#f6c177" },
- { name = "mm", text = "", fg = "#3e8fb0" },
- { name = "mo", text = "", fg = "#3e8fb0" },
- { name = "mobi", text = "", fg = "#f6c177" },
- { name = "mojo", text = "", fg = "#eb6f92" },
- { name = "mov", text = "", fg = "#f6c177" },
- { name = "mp3", text = "", fg = "#3e8fb0" },
- { name = "mp4", text = "", fg = "#f6c177" },
- { name = "mpp", text = "", fg = "#3e8fb0" },
- { name = "msf", text = "", fg = "#3e8fb0" },
- { name = "mts", text = "", fg = "#3e8fb0" },
- { name = "mustache", text = "", fg = "#f6c177" },
- { name = "nfo", text = "", fg = "#9ccfd8" },
- { name = "nim", text = "", fg = "#f6c177" },
- { name = "nix", text = "", fg = "#3e8fb0" },
- { name = "norg", text = "", fg = "#3e8fb0" },
- { name = "nswag", text = "", fg = "#f6c177" },
- { name = "nu", text = "", fg = "#f6c177" },
- { name = "o", text = "", fg = "#eb6f92" },
- { name = "obj", text = "", fg = "#e0def4" },
- { name = "odf", text = "", fg = "#eb6f92" },
- { name = "odg", text = "", fg = "#f6c177" },
- { name = "odin", text = "", fg = "#3e8fb0" },
- { name = "odp", text = "", fg = "#f6c177" },
- { name = "ods", text = "", fg = "#f6c177" },
- { name = "odt", text = "", fg = "#3e8fb0" },
- { name = "oga", text = "", fg = "#3e8fb0" },
- { name = "ogg", text = "", fg = "#3e8fb0" },
- { name = "ogv", text = "", fg = "#f6c177" },
- { name = "ogx", text = "", fg = "#f6c177" },
- { name = "opus", text = "", fg = "#3e8fb0" },
- { name = "org", text = "", fg = "#9ccfd8" },
- { name = "otf", text = "", fg = "#e0def4" },
- { name = "out", text = "", fg = "#eb6f92" },
- { name = "part", text = "", fg = "#3e8fb0" },
- { name = "patch", text = "", fg = "#232136" },
- { name = "pck", text = "", fg = "#e0def4" },
- { name = "pcm", text = "", fg = "#3e8fb0" },
- { name = "pdf", text = "", fg = "#eb6f92" },
- { name = "php", text = "", fg = "#c4a7e7" },
- { name = "pl", text = "", fg = "#3e8fb0" },
- { name = "pls", text = "", fg = "#ea9a97" },
- { name = "ply", text = "", fg = "#e0def4" },
- { name = "pm", text = "", fg = "#3e8fb0" },
- { name = "png", text = "", fg = "#c4a7e7" },
- { name = "po", text = "", fg = "#3e8fb0" },
- { name = "pot", text = "", fg = "#3e8fb0" },
- { name = "pp", text = "", fg = "#f6c177" },
- { name = "ppt", text = "", fg = "#eb6f92" },
- { name = "pptx", text = "", fg = "#eb6f92" },
- { name = "prisma", text = "", fg = "#3e8fb0" },
- { name = "pro", text = "", fg = "#f6c177" },
- { name = "ps1", text = "", fg = "#3e8fb0" },
- { name = "psb", text = "", fg = "#3e8fb0" },
- { name = "psd", text = "", fg = "#3e8fb0" },
- { name = "psd1", text = "", fg = "#3e8fb0" },
- { name = "psm1", text = "", fg = "#3e8fb0" },
- { name = "pub", text = "", fg = "#f6c177" },
- { name = "pxd", text = "", fg = "#3e8fb0" },
- { name = "pxi", text = "", fg = "#3e8fb0" },
- { name = "py", text = "", fg = "#f6c177" },
- { name = "pyc", text = "", fg = "#f6c177" },
- { name = "pyd", text = "", fg = "#f6c177" },
- { name = "pyi", text = "", fg = "#f6c177" },
- { name = "pyo", text = "", fg = "#f6c177" },
- { name = "pyw", text = "", fg = "#3e8fb0" },
- { name = "pyx", text = "", fg = "#3e8fb0" },
- { name = "qm", text = "", fg = "#3e8fb0" },
- { name = "qml", text = "", fg = "#f6c177" },
- { name = "qrc", text = "", fg = "#f6c177" },
- { name = "qss", text = "", fg = "#f6c177" },
- { name = "query", text = "", fg = "#f6c177" },
- { name = "r", text = "", fg = "#3e8fb0" },
- { name = "R", text = "", fg = "#3e8fb0" },
- { name = "rake", text = "", fg = "#eb6f92" },
- { name = "rar", text = "", fg = "#f6c177" },
- { name = "razor", text = "", fg = "#3e8fb0" },
- { name = "rb", text = "", fg = "#eb6f92" },
- { name = "res", text = "", fg = "#eb6f92" },
- { name = "resi", text = "", fg = "#eb6f92" },
- { name = "rlib", text = "", fg = "#ea9a97" },
- { name = "rmd", text = "", fg = "#3e8fb0" },
- { name = "rproj", text = "", fg = "#f6c177" },
- { name = "rs", text = "", fg = "#ea9a97" },
- { name = "rss", text = "", fg = "#f6c177" },
- { name = "s", text = "", fg = "#3e8fb0" },
- { name = "sass", text = "", fg = "#eb6f92" },
- { name = "sbt", text = "", fg = "#eb6f92" },
- { name = "sc", text = "", fg = "#eb6f92" },
- { name = "scad", text = "", fg = "#f6c177" },
- { name = "scala", text = "", fg = "#eb6f92" },
- { name = "scm", text = "", fg = "#e0def4" },
- { name = "scss", text = "", fg = "#eb6f92" },
- { name = "sh", text = "", fg = "#e0def4" },
- { name = "sha1", text = "", fg = "#908caa" },
- { name = "sha224", text = "", fg = "#908caa" },
- { name = "sha256", text = "", fg = "#908caa" },
- { name = "sha384", text = "", fg = "#908caa" },
- { name = "sha512", text = "", fg = "#908caa" },
- { name = "sig", text = "", fg = "#f6c177" },
- { name = "signature", text = "", fg = "#f6c177" },
- { name = "skp", text = "", fg = "#9ccfd8" },
- { name = "sldasm", text = "", fg = "#9ccfd8" },
- { name = "sldprt", text = "", fg = "#9ccfd8" },
- { name = "slim", text = "", fg = "#eb6f92" },
- { name = "sln", text = "", fg = "#3e8fb0" },
- { name = "slnx", text = "", fg = "#3e8fb0" },
- { name = "slvs", text = "", fg = "#9ccfd8" },
- { name = "sml", text = "", fg = "#f6c177" },
- { name = "so", text = "", fg = "#e0def4" },
- { name = "sol", text = "", fg = "#3e8fb0" },
- { name = "spec.js", text = "", fg = "#f6c177" },
- { name = "spec.jsx", text = "", fg = "#3e8fb0" },
- { name = "spec.ts", text = "", fg = "#3e8fb0" },
- { name = "spec.tsx", text = "", fg = "#3e8fb0" },
- { name = "spx", text = "", fg = "#3e8fb0" },
- { name = "sql", text = "", fg = "#e0def4" },
- { name = "sqlite", text = "", fg = "#e0def4" },
- { name = "sqlite3", text = "", fg = "#e0def4" },
- { name = "srt", text = "", fg = "#f6c177" },
- { name = "ssa", text = "", fg = "#f6c177" },
- { name = "ste", text = "", fg = "#9ccfd8" },
- { name = "step", text = "", fg = "#9ccfd8" },
- { name = "stl", text = "", fg = "#e0def4" },
- { name = "stp", text = "", fg = "#9ccfd8" },
- { name = "strings", text = "", fg = "#3e8fb0" },
- { name = "styl", text = "", fg = "#f6c177" },
- { name = "sub", text = "", fg = "#f6c177" },
- { name = "sublime", text = "", fg = "#f6c177" },
- { name = "suo", text = "", fg = "#3e8fb0" },
- { name = "sv", text = "", fg = "#f6c177" },
- { name = "svelte", text = "", fg = "#eb6f92" },
- { name = "svg", text = "", fg = "#f6c177" },
- { name = "svh", text = "", fg = "#f6c177" },
- { name = "swift", text = "", fg = "#f6c177" },
- { name = "t", text = "", fg = "#3e8fb0" },
- { name = "tbc", text = "", fg = "#3e8fb0" },
- { name = "tcl", text = "", fg = "#3e8fb0" },
- { name = "templ", text = "", fg = "#f6c177" },
- { name = "terminal", text = "", fg = "#f6c177" },
- { name = "test.js", text = "", fg = "#f6c177" },
- { name = "test.jsx", text = "", fg = "#3e8fb0" },
- { name = "test.ts", text = "", fg = "#3e8fb0" },
- { name = "test.tsx", text = "", fg = "#3e8fb0" },
- { name = "tex", text = "", fg = "#f6c177" },
- { name = "tf", text = "", fg = "#3e8fb0" },
- { name = "tfvars", text = "", fg = "#3e8fb0" },
- { name = "tgz", text = "", fg = "#f6c177" },
- { name = "tmux", text = "", fg = "#f6c177" },
- { name = "toml", text = "", fg = "#eb6f92" },
- { name = "torrent", text = "", fg = "#3e8fb0" },
- { name = "tres", text = "", fg = "#e0def4" },
- { name = "ts", text = "", fg = "#3e8fb0" },
- { name = "tscn", text = "", fg = "#e0def4" },
- { name = "tsconfig", text = "", fg = "#f6c177" },
- { name = "tsx", text = "", fg = "#3e8fb0" },
- { name = "ttf", text = "", fg = "#e0def4" },
- { name = "twig", text = "", fg = "#f6c177" },
- { name = "txt", text = "", fg = "#f6c177" },
- { name = "txz", text = "", fg = "#f6c177" },
- { name = "typ", text = "", fg = "#3e8fb0" },
- { name = "typoscript", text = "", fg = "#f6c177" },
- { name = "ui", text = "", fg = "#3e8fb0" },
- { name = "v", text = "", fg = "#f6c177" },
- { name = "vala", text = "", fg = "#3e8fb0" },
- { name = "vh", text = "", fg = "#f6c177" },
- { name = "vhd", text = "", fg = "#f6c177" },
- { name = "vhdl", text = "", fg = "#f6c177" },
- { name = "vi", text = "", fg = "#f6c177" },
- { name = "vim", text = "", fg = "#f6c177" },
- { name = "vsh", text = "", fg = "#3e8fb0" },
- { name = "vsix", text = "", fg = "#3e8fb0" },
- { name = "vue", text = "", fg = "#f6c177" },
- { name = "wasm", text = "", fg = "#3e8fb0" },
- { name = "wav", text = "", fg = "#3e8fb0" },
- { name = "webm", text = "", fg = "#f6c177" },
- { name = "webmanifest", text = "", fg = "#f6c177" },
- { name = "webp", text = "", fg = "#c4a7e7" },
- { name = "webpack", text = "", fg = "#3e8fb0" },
- { name = "wma", text = "", fg = "#3e8fb0" },
- { name = "woff", text = "", fg = "#e0def4" },
- { name = "woff2", text = "", fg = "#e0def4" },
- { name = "wrl", text = "", fg = "#e0def4" },
- { name = "wrz", text = "", fg = "#e0def4" },
- { name = "wv", text = "", fg = "#3e8fb0" },
- { name = "wvc", text = "", fg = "#3e8fb0" },
- { name = "x", text = "", fg = "#3e8fb0" },
- { name = "xaml", text = "", fg = "#3e8fb0" },
- { name = "xcf", text = "", fg = "#232136" },
- { name = "xcplayground", text = "", fg = "#f6c177" },
- { name = "xcstrings", text = "", fg = "#3e8fb0" },
- { name = "xls", text = "", fg = "#3e8fb0" },
- { name = "xlsx", text = "", fg = "#3e8fb0" },
- { name = "xm", text = "", fg = "#3e8fb0" },
- { name = "xml", text = "", fg = "#f6c177" },
- { name = "xpi", text = "", fg = "#eb6f92" },
- { name = "xul", text = "", fg = "#f6c177" },
- { name = "xz", text = "", fg = "#f6c177" },
- { name = "yaml", text = "", fg = "#e0def4" },
- { name = "yml", text = "", fg = "#e0def4" },
- { name = "zig", text = "", fg = "#f6c177" },
- { name = "zip", text = "", fg = "#f6c177" },
- { name = "zsh", text = "", fg = "#f6c177" },
- { name = "zst", text = "", fg = "#f6c177" },
- { name = "🔥", text = "", fg = "#eb6f92" },
-]
+# Gruvbox Material Dark theme for Yazi
+# Based on https://github.com/sainnhe/gruvbox-material
+
+[manager]
+cwd = { fg = "#d8a657" } # yellow
+
+# Hovered
+hovered = { fg = "#282828", bg = "#a9b665" } # green background
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "#282828", bg = "#d8a657" } # yellow
+find_position = { fg = "#282828", bg = "#7daea3" } # aqua
+
+# Marker
+marker_copied = { fg = "#a9b665", bg = "#a9b665" } # green
+marker_cut = { fg = "#ea6962", bg = "#ea6962" } # red
+marker_marked = { fg = "#7daea3", bg = "#7daea3" } # aqua
+marker_selected = { fg = "#d8a657", bg = "#d8a657" } # yellow
+
+# Tab
+tab_active = { fg = "#282828", bg = "#a9b665" } # green
+tab_inactive = { fg = "#d4be98", bg = "#3c3836" } # fg on bg1
+tab_width = 1
+
+# Count
+count_copied = { fg = "#282828", bg = "#a9b665" } # green
+count_cut = { fg = "#282828", bg = "#ea6962" } # red
+count_selected = { fg = "#282828", bg = "#7daea3" } # aqua
+
+# Border
+border_symbol = "│"
+border_style = { fg = "#504945" } # bg2
+
+# Syntect theme for preview
+syntect_theme = "~/.config/yazi/Gruvbox-Material-Dark.tmTheme"
+
+[status]
+separator_open = ""
+separator_close = ""
+separator_style = { fg = "#504945", bg = "#504945" } # bg2
+
+# Mode
+mode_normal = { fg = "#282828", bg = "#7daea3", bold = true } # aqua
+mode_select = { fg = "#282828", bg = "#d8a657", bold = true } # yellow
+mode_unset = { fg = "#282828", bg = "#ea6962", bold = true } # red
+
+# Progress
+progress_label = { fg = "#d4be98", bold = true } # fg
+progress_normal = { fg = "#7daea3", bg = "#3c3836" } # aqua on bg1
+progress_error = { fg = "#ea6962", bg = "#3c3836" } # red on bg1
+
+# Permissions
+permissions_t = { fg = "#a9b665" } # green
+permissions_r = { fg = "#d8a657" } # yellow
+permissions_w = { fg = "#ea6962" } # red
+permissions_x = { fg = "#7daea3" } # aqua
+permissions_s = { fg = "#504945" } # bg2
+
+[input]
+border = { fg = "#7daea3" } # aqua
+title = { fg = "#d4be98" } # fg
+value = { fg = "#d4be98" } # fg
+selected = { reversed = true }
+
+[select]
+border = { fg = "#7daea3" } # aqua
+active = { fg = "#d8a657" } # yellow
+inactive = { fg = "#7c6f64" } # bg3
+
+[completion]
+border = { fg = "#7daea3" } # aqua
diff --git a/zshrc/.aliases.zsh b/zshrc/.aliases.zsh
index a6fdc9c..761c265 100644
--- a/zshrc/.aliases.zsh
+++ b/zshrc/.aliases.zsh
@@ -3,12 +3,14 @@ alias cld='clear && cd'
alias neo='neofetch'
alias f='fuck'
alias a='aerc'
+alias oc='opencode'
# colorscheme
-alias col='bash -c "$(wget -qO- https://git.io/vQgMr)"'
+alias col='kitten themes'
alias sc='~/scripts/theme-switch'
# Scripts
+alias br='/home/liph/scripts/niri_br.sh'
alias la='/home/liph/scripts/latex.sh'
alias ar='/mnt/tank/scripts/aria.sh'
alias sp='/mnt/tank/scripts/split.sh'
diff --git a/zshrc/.export.zsh b/zshrc/.export.zsh
index 1abca63..d5cbab3 100644
--- a/zshrc/.export.zsh
+++ b/zshrc/.export.zsh
@@ -36,6 +36,8 @@ export SDL_VIDEODRIVER=wayland
export CLUTTER_BACKEND=wayland
export MOZ_ENABLE_WAYLAND=1
+export PATH="$HOME/.local/share/nvim/mason/bin:$PATH"
+
# Bitwarde
# export BW_SESSION=$(bw unlock --raw)
diff --git a/zshrc/.zshrc b/zshrc/.zshrc
index 13bd570..5e1992d 100644
--- a/zshrc/.zshrc
+++ b/zshrc/.zshrc
@@ -127,3 +127,6 @@ function zvm_after_init() {
bindkey '^@' autosuggest-accept
}
export PATH="$HOME/.local/bin:$PATH"
+
+# opencode
+export PATH=/home/liph/.opencode/bin:$PATH