added themes, niri waybar updat, nvim plugins updates and additions

This commit is contained in:
liph22
2026-02-03 09:43:40 +01:00
parent 1b652298ef
commit f3d1e7fdb1
78 changed files with 1443 additions and 1594 deletions

View File

@@ -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=

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +1,5 @@
# BEGIN_KITTY_THEME
# Dracula
# Catppuccin-Mocha
include current-theme.conf
# END_KITTY_THEME
#

View File

@@ -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

View File

@@ -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
}

View File

@@ -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;

View File

@@ -1,4 +1,3 @@
// -*- mode: jsonc -*-
{
"layer": "top",
"position": "top",
@@ -57,11 +56,13 @@
"format": "<span font='14' > </span>{usage}%",
"tooltip": false,
"interval": 1,
"on-click": "kitty --class floating_btop -e btop",
},
"memory": {
"format": "<span font='14'>  </span>{}%",
// "format": "<span font='14' class='red'>  </span> {}%",
"interval": 1,
"on-click": "kitty --class floating_btop -e htop",
},
"battery": {
"interval": 1,
@@ -92,6 +93,7 @@
"format-disconnected": "<span font='14' >󱚵</span>",
"format-alt": "{bandwidthDownBytes}",
"interval": 1,
// "on-click": "kitty --class floating_wavemon -e sudo wavemon",
},
"pulseaudio": {
"format": "<span font='14' >{icon}</span> {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": "<span font='14'>󰂯</span>",
"format-disabled": "<span font='14'>󰂲</span>",
"format-connected": "<span font='14'>󰂱</span>",
"on-click": "blueman-manager",
"format": "<span font='14'></span>",
"format-disabled": "<span font='14'></span>",
"format-connected": "<span font='14'></span>",
"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": "<span font='14'>󰂯</span>",
// "format-disabled": "<span font='14'>󰂲</span>",
// "format-connected": "<span font='14'>󰂱</span>",
// "on-click": "kitty --class floating_bluetui -e bluetui",
// },
}

View File

@@ -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": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
},
"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": ""
}
}

View File

@@ -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;
}

View File

@@ -1 +0,0 @@
/home/liph/.config/niri/waybar-niri/themes/catppuccin-mocha.css

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -0,0 +1,128 @@
-- Helper function to extract clean email address
local function extract_email(address_string)
-- Match email in angle brackets: "Name <email@example.com>"
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', '<Tab>', function()
local line = vim.api.nvim_get_current_line()
if line:match("^%s*[ToCcBcFrom]+:%s*") then
return '<C-x><C-o>'
else
return '<Tab>'
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', '<C-f>', 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', '<C-a>', '<C-x><C-o>', { buffer = true, desc = "Trigger address completion" })
```
im.keymap.set("i", "<C-a>", "<C-x><C-o>", { buffer = true, desc = "Trigger address completion" })

View File

@@ -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" })

View File

@@ -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" }
}

View File

@@ -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",
},
}

View File

@@ -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",
},
}

View File

@@ -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,
}

View File

@@ -1,3 +1,5 @@
-- autopairs.lua: Auto-inserts matching pairs for brackets, quotes, and delimiters during coding.
return {
{
"windwp/nvim-autopairs",

View File

@@ -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 {
{

View File

@@ -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,
}

View File

@@ -1,3 +1,5 @@
-- colorschemes.lua: Manages and switches between visual themes for the editor interface.
return {
{
"catppuccin/nvim",

View File

@@ -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

View File

@@ -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,

View File

@@ -1,3 +1,5 @@
-- conform.lua: Automates code formatting on save or manual trigger.
return {
{
"stevearc/conform.nvim",

View File

@@ -1,3 +1,5 @@
-- dashboard.lua: Creates a customizable start screen with project shortcuts and statistics.
return {
{
"nvimdev/dashboard-nvim",

View File

@@ -1,3 +1,5 @@
-- dressing.lua: Enhances UI elements like input boxes and select menus for consistency.
return {
{
"stevearc/dressing.nvim",

View File

@@ -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 = {
{
"<leader>w",
mode = { "n", "x", "o" },
function()
require("flash").jump()
end,
desc = "Flash",
},
{
"<leader>W",
mode = { "n", "x", "o" },
function()
require("flash").treesitter()
end,
desc = "Flash Treesitter",
},
{
"<leader>r",
mode = "o",
function()
require("flash").remote()
end,
desc = "Remote Flash",
},
{
"<leader>R",
mode = { "o", "x" },
function()
require("flash").treesitter_search()
end,
desc = "Treesitter Search",
},
{
"<c-f>",
mode = { "c" },
function()
require("flash").toggle()
end,
desc = "Toggle Flash Search",
},
},
},
{
"folke/flash.nvim",
event = "VeryLazy",
---@type Flash.Config
opts = {},
keys = {
{
"<leader>w",
mode = { "n", "x", "o" },
function()
require("flash").jump()
end,
desc = "Flash",
},
{
"<leader>W",
mode = { "n", "x", "o" },
function()
require("flash").treesitter()
end,
desc = "Flash Treesitter",
},
{
"<leader>r",
mode = "o",
function()
require("flash").remote()
end,
desc = "Remote Flash",
},
{
"<leader>R",
mode = { "o", "x" },
function()
require("flash").treesitter_search()
end,
desc = "Treesitter Search",
},
{
"<c-f>",
mode = { "c" },
function()
require("flash").toggle()
end,
desc = "Toggle Flash Search",
},
},
},
}

View File

@@ -1,3 +1,5 @@
-- fzf.lua: Integrates fuzzy Finder for quick file, buffer, and command searching.
return {
{
"ibhagwan/fzf-lua",

View File

@@ -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 "<Ignore>"
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 "<Ignore>"
end, { expr = true, desc = "Previous hunk" })
-- Actions
map("n", "<leader>hs", gs.stage_hunk, { desc = "Stage hunk" })
map("n", "<leader>hr", gs.reset_hunk, { desc = "Reset hunk" })
map("v", "<leader>hs", function() gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, { desc = "Stage hunk" })
map("v", "<leader>hr", function() gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, { desc = "Reset hunk" })
map("v", "<leader>hs", function()
gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
end, { desc = "Stage hunk" })
map("v", "<leader>hr", function()
gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
end, { desc = "Reset hunk" })
map("n", "<leader>hS", gs.stage_buffer, { desc = "Stage buffer" })
map("n", "<leader>hu", gs.undo_stage_hunk, { desc = "Undo stage hunk" })
map("n", "<leader>hR", gs.reset_buffer, { desc = "Reset buffer" })
map("n", "<leader>hp", gs.preview_hunk, { desc = "Preview hunk" })
map("n", "<leader>hb", function() gs.blame_line({ full = true }) end, { desc = "Blame line" })
map("n", "<leader>hb", function()
gs.blame_line({ full = true })
end, { desc = "Blame line" })
map("n", "<leader>tb", gs.toggle_current_line_blame, { desc = "Toggle line blame" })
map("n", "<leader>hd", gs.diffthis, { desc = "Diff this" })
map("n", "<leader>hD", function() gs.diffthis("~") end, { desc = "Diff this ~" })
map("n", "<leader>hD", function()
gs.diffthis("~")
end, { desc = "Diff this ~" })
map("n", "<leader>td", gs.toggle_deleted, { desc = "Toggle deleted" })
-- Text object
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", { desc = "Select hunk" })
end
end,
})
end,
},

View File

@@ -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 = {
{ "<leader>m", "<cmd>Grapple toggle<cr>", desc = "Grapple: toggle file" },
{ "<leader>M", "<cmd>Grapple toggle_tags<cr>", desc = "Grapple: open tag menu" },
{ "<leader>1", "<cmd>Grapple select index=1<cr>", desc = "Grapple: goto tag 1" },
{ "<leader>2", "<cmd>Grapple select index=2<cr>", desc = "Grapple: goto tag 2" },
{ "<leader>3", "<cmd>Grapple select index=3<cr>", desc = "Grapple: goto tag 3" },
{ "<leader>4", "<cmd>Grapple select index=4<cr>", desc = "Grapple: goto tag 4" },
},
opts = {
scope = "git", -- per-branch scope
quick_select = "123456789",
},
}

View File

@@ -1,3 +1,5 @@
-- indent-blankline.lua: Visualizes indentation levels with vertical guide lines.
return {
{
"lukas-reineke/indent-blankline.nvim",

View File

@@ -1,3 +1,5 @@
-- lazydev.lua: Streamlines Neovim plugin management and dependency loading.
return {
{
"folke/lazydev.nvim",

View File

@@ -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", "<leader>gd", vim.lsp.buf.definition, {})
vim.keymap.set("n", "<leader>gr", vim.lsp.buf.references, {})
vim.keymap.set("n", "<leader>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", "<leader>e", vim.diagnostic.open_float, {})
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, {})
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, {})
end,
},
}

View File

@@ -1,3 +1,5 @@
-- lualine.lua: Customizable status line showing file info, language, and mode.
return {
"nvim-lualine/lualine.nvim",
config = function()

View File

@@ -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",

View File

@@ -1,3 +1,5 @@
-- neogit.lua: Embedded Git client with status, commits, and branch management.
return {
{
"NeogitOrg/neogit",

View File

@@ -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",
},
},
}

View File

@@ -1,3 +1,5 @@
-- nvim-colorizer.lua: Highlights color codes (e.g., #FFFFFF) directly in code.
return {
{
"norcalli/nvim-colorizer.lua",

View File

@@ -1,3 +1,5 @@
-- nvim-lint.lua: Runs linters automatically on save or on-demand for code quality.
return {
{
"mfussenegger/nvim-lint",

View File

@@ -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 = "<cmd>lua require('spectre').toggle_line()<CR>",
desc = "toggle item",
},
["enter_file"] = {
map = "<cr>",
cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>",
desc = "open file",
},
["send_to_qf"] = {
map = "<leader>q",
cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
desc = "send all items to quickfix",
},
["replace_cmd"] = {
map = "<leader>c",
cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
desc = "input replace command",
},
["show_option_menu"] = {
map = "<leader>o",
cmd = "<cmd>lua require('spectre').show_options()<CR>",
desc = "show options",
},
["run_current_replace"] = {
map = "<leader>rc",
cmd = "<cmd>lua require('spectre.actions').run_current_replace()<CR>",
desc = "replace current line",
},
["run_replace"] = {
map = "<leader>R",
cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
desc = "replace all",
},
["change_view_mode"] = {
map = "<leader>v",
cmd = "<cmd>lua require('spectre').change_view()<CR>",
desc = "change result view mode",
},
["change_replace_sed"] = {
map = "trs",
cmd = "<cmd>lua require('spectre').change_engine_replace('sed')<CR>",
desc = "use sed to replace",
},
["change_replace_oxi"] = {
map = "tro",
cmd = "<cmd>lua require('spectre').change_engine_replace('oxi')<CR>",
desc = "use oxi to replace",
},
["toggle_live_update"] = {
map = "tu",
cmd = "<cmd>lua require('spectre').toggle_live_update()<CR>",
desc = "update when vim writes to file",
},
["toggle_ignore_case"] = {
map = "ti",
cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>",
desc = "toggle ignore case",
},
["toggle_ignore_hidden"] = {
map = "th",
cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>",
desc = "toggle search hidden",
},
["resume_last_search"] = {
map = "<leader>l",
cmd = "<cmd>lua require('spectre').resume_last_search()<CR>",
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 = "<cmd>lua require('spectre').toggle_line()<CR>",
desc = "toggle item",
},
["enter_file"] = {
map = "<cr>",
cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>",
desc = "open file",
},
["send_to_qf"] = {
map = "<leader>q",
cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
desc = "send all items to quickfix",
},
["replace_cmd"] = {
map = "<leader>c",
cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
desc = "input replace command",
},
["show_option_menu"] = {
map = "<leader>o",
cmd = "<cmd>lua require('spectre').show_options()<CR>",
desc = "show options",
},
["run_current_replace"] = {
map = "<leader>rc",
cmd = "<cmd>lua require('spectre.actions').run_current_replace()<CR>",
desc = "replace current line",
},
["run_replace"] = {
map = "<leader>R",
cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
desc = "replace all",
},
["change_view_mode"] = {
map = "<leader>v",
cmd = "<cmd>lua require('spectre').change_view()<CR>",
desc = "change result view mode",
},
["change_replace_sed"] = {
map = "trs",
cmd = "<cmd>lua require('spectre').change_engine_replace('sed')<CR>",
desc = "use sed to replace",
},
["change_replace_oxi"] = {
map = "tro",
cmd = "<cmd>lua require('spectre').change_engine_replace('oxi')<CR>",
desc = "use oxi to replace",
},
["toggle_live_update"] = {
map = "tu",
cmd = "<cmd>lua require('spectre').toggle_live_update()<CR>",
desc = "update when vim writes to file",
},
["toggle_ignore_case"] = {
map = "ti",
cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>",
desc = "toggle ignore case",
},
["toggle_ignore_hidden"] = {
map = "th",
cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>",
desc = "toggle search hidden",
},
["resume_last_search"] = {
map = "<leader>l",
cmd = "<cmd>lua require('spectre').resume_last_search()<CR>",
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", "<leader>S", '<cmd>lua require("spectre").toggle()<CR>', {
desc = "Toggle Spectre",
})
-- Global keymaps
vim.keymap.set("n", "<leader>S", '<cmd>lua require("spectre").toggle()<CR>', {
desc = "Toggle Spectre",
})
vim.keymap.set("n", "<leader>sw", '<cmd>lua require("spectre").open_visual({select_word=true})<CR>', {
desc = "Search current word",
})
vim.keymap.set("n", "<leader>sw", '<cmd>lua require("spectre").open_visual({select_word=true})<CR>', {
desc = "Search current word",
})
vim.keymap.set("v", "<leader>sw", '<esc><cmd>lua require("spectre").open_visual()<CR>', {
desc = "Search current word",
})
vim.keymap.set("v", "<leader>sw", '<esc><cmd>lua require("spectre").open_visual()<CR>', {
desc = "Search current word",
})
vim.keymap.set("n", "<leader>sp", '<cmd>lua require("spectre").open_file_search({select_word=true})<CR>', {
desc = "Search in current file",
})
end,
},
vim.keymap.set("n", "<leader>sp", '<cmd>lua require("spectre").open_file_search({select_word=true})<CR>', {
desc = "Search in current file",
})
end,
},
}

View File

@@ -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

View File

@@ -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", "<C-h>", "<Cmd>NvimTmuxNavigateLeft<CR>", {})
vim.keymap.set("n", "<C-j>", "<Cmd>NvimTmuxNavigateDown<CR>", {})
vim.keymap.set("n", "<C-k>", "<Cmd>NvimTmuxNavigateUp<CR>", {})

View File

@@ -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

View File

@@ -1,3 +1,5 @@
-- obsidian.lua: Integrates Obsidian note-taking workflow into Neovim.
return {
{
"epwalsh/obsidian.nvim",

View File

@@ -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 = {
["<esc>"] = 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 = {
["<esc>"] = true,
},
})
-- Basic navigation keymaps
vim.keymap.set("n", "<leader>u", "<cmd>Portal jumplist backward<cr>", { desc = "Portal: Jump backward" })
-- Basic navigation keymaps
vim.keymap.set("n", "<leader>u", "<cmd>Portal jumplist backward<cr>", { desc = "Portal: Jump backward" })
vim.keymap.set("n", "<leader>i", "<cmd>Portal jumplist forward<cr>", { desc = "Portal: Jump forward" })
vim.keymap.set("n", "<leader>i", "<cmd>Portal jumplist forward<cr>", { desc = "Portal: Jump forward" })
-- Changelist navigation
vim.keymap.set(
"n",
"<leader>po",
"<cmd>Portal changelist backward<cr>",
{ desc = "Portal: Jump backward (changelist)" }
)
-- Changelist navigation
vim.keymap.set(
"n",
"<leader>po",
"<cmd>Portal changelist backward<cr>",
{ desc = "Portal: Jump backward (changelist)" }
)
vim.keymap.set(
"n",
"<leader>pi",
"<cmd>Portal changelist forward<cr>",
{ desc = "Portal: Jump forward (changelist)" }
)
vim.keymap.set(
"n",
"<leader>pi",
"<cmd>Portal changelist forward<cr>",
{ desc = "Portal: Jump forward (changelist)" }
)
-- Quickfix navigation
vim.keymap.set(
"n",
"<leader>qo",
"<cmd>Portal quickfix backward<cr>",
{ desc = "Portal: Jump backward (quickfix)" }
)
-- Quickfix navigation
vim.keymap.set(
"n",
"<leader>qo",
"<cmd>Portal quickfix backward<cr>",
{ desc = "Portal: Jump backward (quickfix)" }
)
vim.keymap.set(
"n",
"<leader>qi",
"<cmd>Portal quickfix forward<cr>",
{ desc = "Portal: Jump forward (quickfix)" }
)
vim.keymap.set(
"n",
"<leader>qi",
"<cmd>Portal quickfix forward<cr>",
{ desc = "Portal: Jump forward (quickfix)" }
)
-- Optional: Harpoon integration
vim.keymap.set(
"n",
"<leader>ho",
"<cmd>Portal harpoon backward<cr>",
{ desc = "Portal: Jump backward (harpoon)" }
)
-- Optional: Harpoon integration
vim.keymap.set(
"n",
"<leader>ho",
"<cmd>Portal harpoon backward<cr>",
{ desc = "Portal: Jump backward (harpoon)" }
)
vim.keymap.set(
"n",
"<leader>hi",
"<cmd>Portal harpoon forward<cr>",
{ desc = "Portal: Jump forward (harpoon)" }
)
end,
keys = {
{ "<leader>u", desc = "Portal: Jump backward" },
{ "<leader>i", desc = "Portal: Jump forward" },
},
},
vim.keymap.set("n", "<leader>hi", "<cmd>Portal harpoon forward<cr>", { desc = "Portal: Jump forward (harpoon)" })
end,
keys = {
{ "<leader>u", desc = "Portal: Jump backward" },
{ "<leader>i", desc = "Portal: Jump forward" },
},
},
}

View File

@@ -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

View File

@@ -1,3 +1,5 @@
-- rainbow.lua: Colors nested brackets/parentheses to visually distinguish levels.
return {
{
"HiPhish/rainbow-delimiters.nvim",

View File

@@ -1,3 +1,5 @@
-- render-markdown.lua: Live previews or syntax enhancements for Markdown files.
return {
{
"MeanderingProgrammer/render-markdown.nvim",

View File

@@ -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
{
"<leader>gi",
function()
Snacks.picker.gh_issue({ state = "open" })
end,
desc = "GitHub issues (open)",
},
{
"<leader>gI",
function()
Snacks.picker.gh_issue({ state = "all" })
end,
desc = "GitHub issues (all)",
},
{
"<leader>gp",
function()
Snacks.picker.gh_pr({ state = "open" })
end,
desc = "GitHub PRs (open)",
},
{
"<leader>gP",
function()
Snacks.picker.gh_pr({ state = "all" })
end,
desc = "GitHub PRs (all)",
},
-- grep / nav
{
"<leader>sb",
function()
Snacks.picker.lines()
end,
desc = "Buffer lines",
},
{
"<leader>sB",
function()
Snacks.picker.grep_buffers()
end,
desc = "Grep open buffers",
},
{
"<leader>sg",
function()
Snacks.picker.grep()
end,
desc = "Live grep",
},
{
"<leader>sw",
function()
Snacks.picker.grep_word()
end,
desc = "Grep word",
},
{
'<leader>s"',
function()
Snacks.picker.registers()
end,
desc = "Registers",
},
-- zen / scratch
{
"<leader>z",
function()
Snacks.zen()
end,
desc = "Zen mode",
},
{
"<leader><leader>s",
function()
Snacks.scratch()
end,
desc = "Scratch buffer",
},
},
}

View File

@@ -1,3 +1,5 @@
-- telescope.lua: Highly extensible fuzzy finder for files, code, and plugins.
return {
{
"nvim-telescope/telescope-ui-select.nvim",

View File

@@ -1,8 +0,0 @@
return {
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {},
},
}

View File

@@ -1,3 +1,5 @@
-- treesitter.lua: Enables syntax highlighting, code folding, and structural analysis.
return {
{
"nvim-treesitter/nvim-treesitter",

View File

@@ -1,3 +1,5 @@
-- trouble.lua: Aggregates diagnostics, references, and code issues into a single panel.
return {
{
"folke/trouble.nvim",

View File

@@ -1,3 +1,5 @@
-- vimtex.lua: Full LaTeX editing support (compiling, viewing, and syntax).
return {
"lervag/vimtex",
ft = "tex",

View File

@@ -1,3 +1,5 @@
-- which-key.lua: Displays keybinding hints for uncompleted commands to reduce memorization.
return {
{
"folke/which-key.nvim",

View File

@@ -1,3 +1,5 @@
-- yazi-nvim.lua: Bridges Neovim with Yazi file manager for fast directory navigation.
return {
{
"mikavilpas/yazi.nvim",

35
scripts/scripts/abook.sh Executable file
View File

@@ -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"

25
scripts/scripts/fzf-address.sh Executable file
View File

@@ -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"

0
scripts/scripts/mail Normal file
View File

View File

@@ -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;
}

1
wofi/.config/wofi/style.css Symbolic link
View File

@@ -0,0 +1 @@
/home/liph/.config/wofi/themes/rose-pine-moon.css

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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" })

View File

@@ -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",

View File

@@ -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"]}

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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)

View File

@@ -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