diff --git a/.config/.lessfilter b/.config/.lessfilter
index a77ccba..ab0d34e 100755
--- a/.config/.lessfilter
+++ b/.config/.lessfilter
@@ -15,9 +15,9 @@ elif [ "$kind" = vnd.openxmlformats-officedocument.spreadsheetml.sheet ] || \
[ "$kind" = vnd.ms-excel ]; then
in2csv "$1" | xsv table | batcat -ltsv --color=always
elif [ "$category" = text ]; then
- batcat --color=always "$1"
+ bat --color=always "$1"
else
- batcat --color=always "$1"
+ bat --color=always "$1"
fi
# lesspipe.sh don't use eza, batcat and chafa, it use ls and exiftool. so we create a lessfilter.
# lesspipe "$1" | batcat --color=always
diff --git a/.config/chromium-flags.conf b/.config/chromium-flags.conf
new file mode 100644
index 0000000..26163d3
--- /dev/null
+++ b/.config/chromium-flags.conf
@@ -0,0 +1,10 @@
+--disable-features=ExtensionManifestV2Unsupported,ExtensionManifestV2Disabled,WaylandWpColorManagerV1
+--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,UseMultiPlaneFormatForHardwareVideo,AcceleratedVideoEncoder,UseOzonePlatform,WebRTCPipeWireCapturer
+--ignore-gpu-blocklist
+--enable-gpu-rasterization
+--enable-zero-copy
+--use-gl=angle
+--use-angle=vulkan
+--enable-accelerated-video-decode
+--enable-gpu-compositing
+--ozone-platform=wayland
diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf
new file mode 100644
index 0000000..2e987d7
--- /dev/null
+++ b/.config/fontconfig/fonts.conf
@@ -0,0 +1,27 @@
+
+
+
+
+
+ true
+
+
+ true
+
+
+ hintslight
+
+
+ none
+
+
+ true
+
+
+ lcdnone
+
+
+ 102
+
+
+
diff --git a/.config/fontconfig/fonts.conf.back b/.config/fontconfig/fonts.conf.back
new file mode 100644
index 0000000..61fd59c
--- /dev/null
+++ b/.config/fontconfig/fonts.conf.back
@@ -0,0 +1,27 @@
+
+
+
+
+
+ false
+
+
+ false
+
+
+ hintnone
+
+
+ none
+
+
+ false
+
+
+ lcdnone
+
+
+ 102
+
+
+
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..758a3af
--- /dev/null
+++ b/.config/gtk-3.0/settings.ini
@@ -0,0 +1,17 @@
+[Settings]
+gtk-theme-name=catppuccin-mocha-mauve-standard+default
+gtk-icon-theme-name=Adwaita
+gtk-font-name=NotoSans Nerd Font Propo Medium 11
+gtk-cursor-theme-name=Bibata-Modern-Classic
+gtk-cursor-theme-size=24
+gtk-toolbar-style=GTK_TOOLBAR_ICONS
+gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
+gtk-button-images=1
+gtk-menu-images=1
+gtk-enable-event-sounds=0
+gtk-enable-input-feedback-sounds=0
+gtk-xft-antialias=1
+gtk-xft-hinting=0
+gtk-xft-hintstyle=hintnone
+gtk-xft-rgba=rgb
+gtk-application-prefer-dark-theme=1
diff --git a/.config/gtk-4.0/assets b/.config/gtk-4.0/assets
new file mode 120000
index 0000000..234c8c6
--- /dev/null
+++ b/.config/gtk-4.0/assets
@@ -0,0 +1 @@
+/usr/share/themes/catppuccin-mocha-mauve-standard+default/gtk-4.0/assets
\ No newline at end of file
diff --git a/.config/gtk-4.0/gtk-dark.css b/.config/gtk-4.0/gtk-dark.css
new file mode 120000
index 0000000..1cf1391
--- /dev/null
+++ b/.config/gtk-4.0/gtk-dark.css
@@ -0,0 +1 @@
+/usr/share/themes/catppuccin-mocha-mauve-standard+default/gtk-4.0/gtk-dark.css
\ No newline at end of file
diff --git a/.config/gtk-4.0/gtk.css b/.config/gtk-4.0/gtk.css
new file mode 120000
index 0000000..ba34b8c
--- /dev/null
+++ b/.config/gtk-4.0/gtk.css
@@ -0,0 +1 @@
+/usr/share/themes/catppuccin-mocha-mauve-standard+default/gtk-4.0/gtk.css
\ No newline at end of file
diff --git a/.config/gtk-4.0/settings.ini b/.config/gtk-4.0/settings.ini
new file mode 100644
index 0000000..918eec7
--- /dev/null
+++ b/.config/gtk-4.0/settings.ini
@@ -0,0 +1,7 @@
+[Settings]
+gtk-theme-name=catppuccin-mocha-mauve-standard+default
+gtk-icon-theme-name=Adwaita
+gtk-font-name=NotoSans Nerd Font Propo Medium 11
+gtk-cursor-theme-name=Bibata-Modern-Classic
+gtk-cursor-theme-size=24
+gtk-application-prefer-dark-theme=1
diff --git a/.config/hypr/conf/animations.conf b/.config/hypr/conf/animations.conf
new file mode 100644
index 0000000..31f1c52
--- /dev/null
+++ b/.config/hypr/conf/animations.conf
@@ -0,0 +1,35 @@
+animations {
+ enabled = true
+ # Animation curves
+
+ bezier = linear, 0, 0, 1, 1
+ bezier = md3_standard, 0.2, 0, 0, 1
+ bezier = md3_decel, 0.05, 0.7, 0.1, 1
+ bezier = md3_accel, 0.3, 0, 0.8, 0.15
+ bezier = overshot, 0.05, 0.9, 0.1, 1.1
+ bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
+ bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
+ bezier = menu_decel, 0.1, 1, 0, 1
+ bezier = menu_accel, 0.38, 0.04, 1, 0.07
+ bezier = easeInOutCirc, 0.85, 0, 0.15, 1
+ bezier = easeOutCirc, 0, 0.55, 0.45, 1
+ bezier = easeOutExpo, 0.16, 1, 0.3, 1
+ bezier = softAcDecel, 0.26, 0.26, 0.15, 1
+ bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
+ # Animation configs
+ animation = windows, 1, 3, md3_decel, popin 60%
+ animation = windowsIn, 1, 3, md3_decel, popin 60%
+ animation = windowsOut, 1, 3, md3_accel, popin 60%
+ animation = border, 1, 10, default
+ animation = fade, 1, 3, md3_decel
+ # animation = layers, 1, 2, md3_decel, slide
+ animation = layersIn, 1, 3, menu_decel, slide
+ animation = layersOut, 1, 1.6, menu_accel
+ animation = fadeLayersIn, 1, 2, menu_decel
+ animation = fadeLayersOut, 1, 4.5, menu_accel
+ animation = workspaces, 1, 7, menu_decel, slide
+ # animation = workspaces, 1, 2.5, softAcDecel, slide
+ # animation = workspaces, 1, 7, menu_decel, slidefade 15%
+ # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
+ animation = specialWorkspace, 1, 3, md3_decel, slidevert
+}
\ No newline at end of file
diff --git a/.config/hypr/conf/autostart.conf b/.config/hypr/conf/autostart.conf
new file mode 100644
index 0000000..079871b
--- /dev/null
+++ b/.config/hypr/conf/autostart.conf
@@ -0,0 +1,12 @@
+# Execute your favorite apps at launch
+exec-once = waybar
+exec-once = wpaperd -d
+exec-once = wl-paste --type text --watch cliphist store # Stores only text data
+exec-once = wl-paste --type image --watch cliphist store # Stores only image data
+exec-once = swaync
+exec-once = /home/val/.config/hypr/conf/scripts/checklid.sh
+exec-once = hyprctl setcursor Bibata-Modern-Classic 24
+exec-once = elecwhat
+exec-once = telegram-desktop
+exec-once = /opt/outlook-for-linux/outlook-for-linux
+exec-once = hyprpm reload
diff --git a/.config/hypr/conf/binds.conf b/.config/hypr/conf/binds.conf
new file mode 100644
index 0000000..0a9b647
--- /dev/null
+++ b/.config/hypr/conf/binds.conf
@@ -0,0 +1,86 @@
+#Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+
+# SUPER key
+$mainMod = SUPER
+
+# Actions
+bind = $mainMod, T, exec, wezterm start --always-new-process # Open Alactritty
+bind = $mainMod, Q, killactive # Close current window
+bind = $mainMod, M, layoutmsg, movetoroot active unstable# Exit Hyprland
+bind = $mainMod, N, exec, wpaperctl next
+bind = $mainMod, E, exec, ~/.config/ml4w/settings/filemanager.sh # Opens the filemanager
+bind = $mainMod, W, togglefloating # Toggle between tiling and floating window
+bind = $mainMod, V, exec, cliphist list | rofi -dmenu -display-columns 2 -theme ~/.config/rofi/dmenu/catppuccin-default.rasi | cliphist decode | wl-copy
+bind = $mainMod, F, fullscreen # Open the window in fullscreen
+bind = $mainMod, ESCAPE, exec, hyprlock
+# bind = $mainMod, TAB, overview:toggle
+bind = $mainMod CTRL, RETURN, exec, ~/.config/rofi/launchers/type-3/launcher.sh # Open rofi
+bind = $mainMod, P, exec, hyprshot -z -m region # dwindle
+bind = $mainMod SHIFT, P, exec, hyprshot -z -m window # dwindle
+bind = $mainMod CTRL, P, exec, hyprshot -m output -m DP-10 # dwindle
+bind = $mainMod, J, togglesplit, # dwindle
+bind = $mainMod, B, exec, ~/.config/ml4w/settings/browser.sh # Opens the browser
+bind = $mainMod SHIFT, B, exec, ~/.config/ml4w/scripts/reload-waybar.sh # Reload Waybar
+bind = $mainMod SHIFT, W, exec, ~/.config/ml4w/scripts/reload-hyprpaper.sh # Reload hyprpaper after a changing the wallpaper
+bind = $mainMod, S, togglespecialworkspace
+bind = $mainMod SHIFT, S, togglespecialworkspace, junk
+bind = $mainMod, H, movetoworkspacesilent, special
+bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+
+bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-
+bind = , XF86MonBrightnessUp, exec, brightnessctl set 10%+
+bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%-
+bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bind = , XF86WLAN, exec, nmcli radio wifi toggle
+bind = , XF86Refresh, exec, xdotool key F5
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, left, movefocus, l # Move focus left
+bind = $mainMod, right, movefocus, r # Move focus right
+bind = $mainMod, up, movefocus, u # Move focus up
+bind = $mainMod, down, movefocus, d # Move focus down
+
+bind = $mainMod CTRL, left, movewindow, l # Move window left
+bind = $mainMod CTRL, right, movewindow, r # Move window right
+bind = $mainMod CTRL, up, movewindow, u # Move window up
+bind = $mainMod CTRL, down, movewindow, d # Move window down
+
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mainMod, 1, workspace, 1 # Switch to workspace 1
+bind = $mainMod, 2, workspace, 2 # Switch to workspace 2
+bind = $mainMod, 3, workspace, 3 # Switch to workspace 3
+bind = $mainMod, 4, workspace, 4 # Switch to workspace 4
+bind = $mainMod, 5, workspace, 5 # Switch to workspace 5
+bind = $mainMod, 6, workspace, 6 # Switch to workspace 6
+bind = $mainMod, 7, workspace, 7 # Switch to workspace 7
+bind = $mainMod, 8, workspace, 8 # Switch to workspace 8
+bind = $mainMod, 9, workspace, 9 # Switch to workspace 9
+bind = $mainMod, 0, workspace, 10 # Switch to workspace 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, movetoworkspace, 1 # Move window to workspace 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2 # Move window to workspace 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3 # Move window to workspace 3
+bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 # Move window to workspace 4
+bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 # Move window to workspace 5
+bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 # Move window to workspace 6
+bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 # Move window to workspace 7
+bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 # Move window to workspace 8
+bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 # Move window to workspace 9
+bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 # Move window to workspace 10
+
+# Scroll through existing workspaces with mainMod + scroll
+#bind = $mainMod, mouse_down, workspace, e+1 # Scroll workspaces
+#bind = $mainMod, mouse_up, workspace, e-1 # Scroll workspaces
+bind = $mainMod, mouse_up, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {current = $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') - 0.5; print (current < 1.0) ? 1.0 : current}")
+#bind = $mainMod, mouse_up, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') - 0.5}")
+bind = $mainMod, mouse_down, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') + 0.5}")
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow # Move window
+bindm = $mainMod, mouse:273, resizewindow # Resize window
+
+bindl=,switch:on:Lid Switch, exec, hyprctl dispatch exec /home/val/.config/hypr/conf/scripts/checklid.sh
+bindl=,switch:off:Lid Switch, exec, hyprctl dispatch exec /home/val/.config/hypr/conf/scripts/checklid.sh
+
diff --git a/.config/hypr/conf/cursor.conf b/.config/hypr/conf/cursor.conf
new file mode 100644
index 0000000..8ea4b86
--- /dev/null
+++ b/.config/hypr/conf/cursor.conf
@@ -0,0 +1,5 @@
+env = XCURSOR_THEME,Bibata-Modern-Classic
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_THEME,Bibata-Modern-Classic
+env = HYPRCURSOR_SIZE,24
+
diff --git a/.config/hypr/conf/decoration.conf b/.config/hypr/conf/decoration.conf
new file mode 100644
index 0000000..1aabd05
--- /dev/null
+++ b/.config/hypr/conf/decoration.conf
@@ -0,0 +1,15 @@
+# See https://wiki.hyprland.org/Configuring/Variables/ for more
+decoration {
+ rounding = 10
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+ }
+ shadow {
+ enabled = true
+ range = 4
+ render_power = 3
+ color = rgba(1a1a1aee)
+ }
+}
diff --git a/.config/hypr/conf/environments.conf b/.config/hypr/conf/environments.conf
new file mode 100644
index 0000000..3a11f43
--- /dev/null
+++ b/.config/hypr/conf/environments.conf
@@ -0,0 +1,42 @@
+# XDG Desktop Portal
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+env = LANG,en_US.UTF-8
+env = LC_ALL,en_US.UTF-8
+
+# QT
+env = QT_QPA_PLATFORM,wayland;xcb
+env = QT_QPA_PLATFORMTHEME,qt6ct
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+
+env = VDPAU_DRIVER,radeonsi
+
+env = PATH,/home/val/.local/bin:$PATH
+
+# GTK
+env = GDK_SCALE,1
+
+# Mozilla
+env = MOZ_ENABLE_WAYLAND,1
+
+# Set the cursor size for xcursor
+env = XCURSOR_SIZE,24
+
+# Disable appimage launcher by default
+env = APPIMAGELAUNCHER_DISABLE,1
+
+# OZONE
+env = OZONE_PLATFORM,wayland
+
+# For KVM virtual machines
+# env = WLR_NO_HARDWARE_CURSORS, 1
+# env = WLR_RENDERER_ALLOW_SOFTWARE, 1
+
+# NVIDIA https://wiki.hyprland.org/Nvidia/
+# env = LIBVA_DRIVER_NAME,nvidia
+# env = GBM_BACKEND,nvidia-drm
+# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+# env = __GL_VRR_ALLOWED,1
+# env = WLR_DRM_NO_ATOMIC,1
diff --git a/.config/hypr/conf/general.conf b/.config/hypr/conf/general.conf
new file mode 100644
index 0000000..2d17301
--- /dev/null
+++ b/.config/hypr/conf/general.conf
@@ -0,0 +1,11 @@
+# See https://wiki.hyprland.org/Configuring/Variables/ for more
+general {
+ gaps_in = 3
+ gaps_out = 10
+ border_size = 2
+ col.active_border = rgb(74c7ec) rgb(cba6f7) 45deg
+# col.active_border = 0xF5C2E7 0xCBA6F7 45deg
+ col.inactive_border = rgba(595959aa)
+ layout = dwindle
+ resize_on_border = true
+}
diff --git a/.config/hypr/conf/gestures.conf b/.config/hypr/conf/gestures.conf
new file mode 100644
index 0000000..90134f5
--- /dev/null
+++ b/.config/hypr/conf/gestures.conf
@@ -0,0 +1,4 @@
+# See https://wiki.hyprland.org/Configuring/Variables/ for more
+gestures {
+ workspace_swipe = true
+}
diff --git a/.config/hypr/conf/input.conf b/.config/hypr/conf/input.conf
new file mode 100644
index 0000000..48e1ecb
--- /dev/null
+++ b/.config/hypr/conf/input.conf
@@ -0,0 +1,18 @@
+# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+input {
+ kb_layout = us,il
+ kb_variant =
+ kb_model =
+ kb_options = grp:alt_shift_toggle
+ kb_rules =
+
+ follow_mouse = 1
+
+ touchpad {
+ natural_scroll = false
+ }
+ repeat_rate = 50
+ repeat_delay = 300
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+}
diff --git a/.config/hypr/conf/layouts.conf b/.config/hypr/conf/layouts.conf
new file mode 100644
index 0000000..4832966
--- /dev/null
+++ b/.config/hypr/conf/layouts.conf
@@ -0,0 +1,10 @@
+dwindle {
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = true # you probably want this
+}
+
+master {
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ # new_status = master
+}
diff --git a/.config/hypr/conf/misc.conf b/.config/hypr/conf/misc.conf
new file mode 100644
index 0000000..cac7c12
--- /dev/null
+++ b/.config/hypr/conf/misc.conf
@@ -0,0 +1,15 @@
+# See https://wiki.hyprland.org/Configuring/Variables/ for more
+misc {
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+}
+
+# plugin {
+# overview {
+# drawActiveWorkspace = false
+# }
+# }
+
+render {
+ expand_undersized_textures = false
+}
diff --git a/.config/hypr/conf/monitor.conf b/.config/hypr/conf/monitor.conf
new file mode 100644
index 0000000..5f08c97
--- /dev/null
+++ b/.config/hypr/conf/monitor.conf
@@ -0,0 +1,5 @@
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor=eDP-1, 1920x1200@60, 1440x0, 1
+monitor=DP-10, 2560x1440@60, -2560x-240, 1
+monitor=DP-9, 2560x1440@60, 0x-1360, 1, transform, 1
+
diff --git a/.config/hypr/conf/scripts/checklid.sh b/.config/hypr/conf/scripts/checklid.sh
new file mode 100755
index 0000000..498d095
--- /dev/null
+++ b/.config/hypr/conf/scripts/checklid.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Define the path to the lid state file
+LID_STATE_FILE="/proc/acpi/button/lid/LID/state"
+
+lid_state=$(cat "$LID_STATE_FILE" | awk '{print $2}')
+
+# Check the state and print the result
+if [ "$lid_state" == "open" ]; then
+ hyprctl keyword monitor "eDP-1,1920x1200@60,1440x0,1"
+elif [ "$lid_state" == "closed" ]; then
+ hyprctl keyword monitor "eDP-1,disable"
+else
+ echo "unknown"
+fi
diff --git a/.config/hypr/conf/windowrules.conf b/.config/hypr/conf/windowrules.conf
new file mode 100644
index 0000000..3c50219
--- /dev/null
+++ b/.config/hypr/conf/windowrules.conf
@@ -0,0 +1,70 @@
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+
+# Zoom Workplace Screen Sharing
+# Sharing Toolbar
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(as_toolbar)$
+windowrulev2 = noborder,class:^(Zoom Workplace)$,title:^(as_toolbar)$
+windowrulev2 = noshadow,class:^(Zoom Workplace)$,title:^(as_toolbar)$
+windowrulev2 = move 930 85,class:^(Zoom Workplace)$,title:^(as_toolbar)$
+
+# Zoom Workplace Screen Sharing
+# Green Border Selection
+windowrulev2 = float,title:^(cpt_frame_xcb_window)$
+windowrulev2 = noborder,title:^(cpt_frame_xcb_window)$
+
+# Zoom Workplace
+# Main Zoom Landing Window
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(Zoom Workplace - Licensed account)$
+windowrulev2 = size 660 530,class:^(Zoom Workplace)$,title:^(Zoom Workplace - Licensed account)$
+windowrulev2 = center,class:^(Zoom Workplace)$,title:^(Zoom Workplace - Licensed account)$
+
+# Zoom Workplace Settings
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(Settings)$
+
+# Zoom Workplace Menu Windows
+# Audio Settings, Video Settings, Gallery View etc..
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(menu window)$
+windowrulev2 = size 300 600,class:^(Zoom Workplace)$,title:^(menu window)$
+windowrulev2 = stayfocused,class:^(Zoom Workplace)$,title:^(menu window)$
+windowrulev2 = center,class:^(Zoom Workplace)$,title:^(menu window)$
+
+# Zoom Workplace Top Bar Popups
+# Zoom Meeting Info Window
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(meeting topbar popup)$
+windowrulev2 = noborder,class:^(Zoom Workplace)$,title:^(meeting topbar popup)$
+windowrulev2 = noshadow,class:^(Zoom Workplace)$,title:^(meeting topbar popup)$
+windowrulev2 = center,class:^(Zoom Workplace)$,title:^(meeting topbar popup)$
+windowrulev2 = stayfocused,class:^(Zoom Workplace)$,title:^(meeting topbar popup)$
+windowrulev2 = size 485 442,class:^(Zoom Workplace)$,title:^(meeting topbar popup)$
+
+# Zoom Workplace Bottom Bar Popups
+# Zoom Reactions
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(meeting bottombar popup)$
+windowrulev2 = noborder,class:^(Zoom Workplace)$,title:^(meeting bottombar popup)$
+windowrulev2 = noshadow,class:^(Zoom Workplace)$,title:^(meeting bottombar popup)$
+windowrulev2 = center,class:^(Zoom Workplace)$,title:^(meeting bottombar popup)$
+windowrulev2 = stayfocused,class:^(Zoom Workplace)$,title:^(meeting bottombar popup)$
+windowrulev2 = size 285 90,class:^(Zoom Workplace)$,title:^(meeting bottombar popup)$
+
+# Zoom Workplace Misc
+# Captions Window, Breakout Room Creation, etc
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(zoom)$
+windowrulev2 = noborder,class:^(Zoom Workplace)$,title:^(zoom)$
+windowrulev2 = noshadow,class:^(Zoom Workplace)$,title:^(zoom)$
+windowrulev2 = center,class:^(Zoom Workplace)$,title:^(zoom)$
+
+# Zoom Workplace
+# Participants Window (Detached)
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(Participants)(.*)$
+windowrulev2 = size 490 550,class:^(Zoom Workplace)$,title:^(Participants)(.*)$
+windowrulev2 = center,class:^(Zoom Workplace)$,title:^(Participants)(.*)$
+
+# Zoom Workplace
+# Chat Window (Detached)
+windowrulev2 = float,class:^(Zoom Workplace)$,title:^(Meeting chat)$
+windowrulev2 = size 490 550,class:^(Zoom Workplace)$,title:^(Meeting chat)$
+windowrulev2 = center,class:^(Zoom Workplace)$,title:^(Meeting chat)$
+windowrulev2 = syncfullscreen 0,class:^(chromium)$
+windowrulev2 = stayfocused,class:(zoom),initialTitle:(menu window)
+
+windowrulev2 = workspace special:junk silent,title:^(.*)(is sharing your screen)(.*)$
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..ac33a6f
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,24 @@
+
+# _ _ _ _
+# | | | |_ _ _ __ _ __| | __ _ _ __ __| |
+# | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` |
+# | _ | |_| | |_) | | | | (_| | | | | (_| |
+# |_| |_|\__, | .__/|_| |_|\__,_|_| |_|\__,_|
+# |___/|_|
+#
+# -----------------------------------------------------
+# Full documentation https://wiki.hyprland.org
+
+source = ~/.config/hypr/conf/monitor.conf
+source = ~/.config/hypr/conf/autostart.conf
+source = ~/.config/hypr/conf/cursor.conf
+source = ~/.config/hypr/conf/environments.conf
+source = ~/.config/hypr/conf/input.conf
+source = ~/.config/hypr/conf/general.conf
+source = ~/.config/hypr/conf/decoration.conf
+source = ~/.config/hypr/conf/animations.conf
+source = ~/.config/hypr/conf/layouts.conf
+#source = ~/.config/hypr/conf/gestures.conf
+source = ~/.config/hypr/conf/misc.conf
+source = ~/.config/hypr/conf/windowrules.conf
+source = ~/.config/hypr/conf/binds.conf
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..5077bb7
--- /dev/null
+++ b/.config/hypr/hyprlock.conf
@@ -0,0 +1,70 @@
+# _ _ _
+# | |__ _ _ _ __ _ __| | ___ ___| | __
+# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ /
+# | | | | |_| | |_) | | | | (_) | (__| <
+# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\
+# |___/|_|
+#
+
+background {
+ monitor =
+ path = /usr/share/sddm/themes/sddm-astronaut-theme/Backgrounds/astronaut.png
+
+}
+
+input-field {
+ monitor =
+ size = 200, 50
+ outline_thickness = 3
+ dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
+ outer_color = rgb(151515)
+ inner_color = rgb(FFFFFF)
+ font_color = rgb(10, 10, 10)
+ fade_on_empty = true
+ fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
+ placeholder_text = Input Password... # Text rendered in the input box when it's empty.
+ hide_input = false
+ rounding = -1 # -1 means complete rounding (circle/oval)
+ check_color = rgb(204, 136, 34)
+ fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
+ fail_text = $FAIL ($ATTEMPTS) # can be set to empty
+ fail_transition = 300 # transition time in ms between normal outer_color and fail_color
+ capslock_color = -1
+ numlock_color = -1
+ bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
+ invert_numlock = false # change color if numlock is off
+ swap_font_color = false # see below
+ position = 0, -20
+ halign = center
+ valign = center
+}
+
+label {
+ monitor =
+ #clock
+ text = cmd[update:1000] echo "$TIME"
+ color = rgba(200, 200, 200, 1.0)
+ font_size = 55
+ font_family = Fira Semibold
+ position = -100, 40
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
+
+label {
+ monitor =
+ text = $USER
+ color = rgba(200, 200, 200, 1.0)
+ font_size = 20
+ font_family = Fira Semibold
+ position = -100, 160
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..0eb466e
--- /dev/null
+++ b/.config/hypr/hyprpaper.conf
@@ -0,0 +1,5 @@
+# You can find more wallpapers in ~/.config/ml4w/wallpapers/
+# Run ~/.config/hypr/reload-hyprpaper.sh after changing your wallpaper
+preload = ~/.config/ml4w/wallpapers/wallpaper.jpg
+wallpaper = ,~/.config/ml4w/wallpapers/wallpaper.jpg
+splash = false
diff --git a/.config/nvim/lsp/gopls.lua b/.config/nvim/lsp/gopls.lua
new file mode 100644
index 0000000..7fde63a
--- /dev/null
+++ b/.config/nvim/lsp/gopls.lua
@@ -0,0 +1,4 @@
+return {
+ cmd = { 'gopls' },
+ filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' }
+}
diff --git a/.config/nvim/lua/val/core/options.lua b/.config/nvim/lua/val/core/options.lua
index bf23c0a..84a6731 100644
--- a/.config/nvim/lua/val/core/options.lua
+++ b/.config/nvim/lua/val/core/options.lua
@@ -8,20 +8,21 @@ opt.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,te
-- line numbers
opt.relativenumber = true -- show relative line numbers
-opt.number = true -- shows absolute line number on cursor line (when relative number is on)
+opt.number = true -- shows absolute line number on cursor line (when relative number is on)
-- tabs & indentation
-opt.tabstop = 2 -- 2 spaces for tabs (prettier default)
-opt.shiftwidth = 2 -- 2 spaces for indent width
-opt.expandtab = true -- expand tab to spaces
+opt.tabstop = 2 -- 2 spaces for tabs (prettier default)
+opt.shiftwidth = 2 -- 2 spaces for indent width
+opt.expandtab = true -- expand tab to spaces
opt.autoindent = true -- copy indent from current line when starting new one
+opt.listchars = "tab:> ,trail:-,nbsp:+,space:·"
-- line wrapping
opt.wrap = false -- disable line wrapping
-- search settings
opt.ignorecase = true -- ignore case when searching
-opt.smartcase = true -- if you include mixed case in your search, assumes you want case-sensitive
+opt.smartcase = true -- if you include mixed case in your search, assumes you want case-sensitive
-- cursor line
opt.cursorline = true -- highlight the current cursor line
@@ -32,7 +33,7 @@ opt.showmode = false
-- (have to use iterm2 or any other true color terminal)
opt.termguicolors = true
opt.background = "dark" -- colorschemes that can be light or dark will be made dark
-opt.signcolumn = "yes" -- show sign column so that text doesn't shift
+opt.signcolumn = "yes" -- show sign column so that text doesn't shift
opt.laststatus = 3
diff --git a/.config/nvim/lua/val/plugins/auto-session.lua b/.config/nvim/lua/val/plugins/auto-session.lua
index 2257f56..c34db39 100644
--- a/.config/nvim/lua/val/plugins/auto-session.lua
+++ b/.config/nvim/lua/val/plugins/auto-session.lua
@@ -1,22 +1,22 @@
return {
- "rmagatti/auto-session",
- config = function()
- local auto_session = require("auto-session")
+ "rmagatti/auto-session",
+ config = function()
+ local auto_session = require("auto-session")
- auto_session.setup({
- auto_restore_enabled = false,
- auto_session_suppress_dirs = { "~/", "~/Dev/", "~/Downloads", "~/Documents", "~/Desktop/" },
- })
+ auto_session.setup({
+ auto_restore_enabled = false,
+ auto_session_suppress_dirs = { "~/", "~/Dev/", "~/Downloads", "~/Documents", "~/Desktop/" },
+ })
- local keymap = vim.keymap
+ local keymap = vim.keymap
- keymap.set("n", "wr", "SessionRestore", { desc = "Restore session for cwd" }) -- restore last workspace session for current directory
- keymap.set("n", "ws", "SessionSave", { desc = "Save session for auto session root dir" }) -- save workspace session for current working directory
- keymap.set(
- "n",
- "wl",
- require("auto-session.session-lens").search_session,
- { desc = "List all sessions", noremap = true }
- )
- end,
+ keymap.set("n", "wr", "AutoSession restore", { desc = "Restore session for cwd" }) -- restore last workspace session for current directory
+ keymap.set("n", "ws", "AutoSession save", { desc = "Save session for auto session root dir" }) -- save workspace session for current working directory
+ keymap.set(
+ "n",
+ "wl",
+ "AutoSession search",
+ { desc = "List all sessions", noremap = true }
+ )
+ end,
}
diff --git a/.config/nvim/lua/val/plugins/colorscheme.lua b/.config/nvim/lua/val/plugins/colorscheme.lua
index d1f2eec..142d59c 100644
--- a/.config/nvim/lua/val/plugins/colorscheme.lua
+++ b/.config/nvim/lua/val/plugins/colorscheme.lua
@@ -1,107 +1,113 @@
return {
- {
- "catppuccin/nvim",
- name = "catppuccin",
- priority = 1000, -- make sure to load this before all the other start plugins
- config = function()
- require("catppuccin").setup({
- flavour = "mocha", -- latte, frappe, macchiato, mocha
- background = { -- :h background
- light = "latte",
- dark = "mocha",
- },
- transparent_background = true, -- disables setting the background color.
- show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
- term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
- dim_inactive = {
- enabled = false, -- dims the background color of inactive window
- shade = "dark",
- percentage = 0.15, -- percentage of the shade to apply to the inactive window
- },
- no_italic = false, -- Force no italic
- no_bold = false, -- Force no bold
- no_underline = false, -- Force no underline
- styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
- comments = { "italic" }, -- Change the style of comments
- conditionals = { "italic" },
- loops = {},
- functions = {},
- keywords = {},
- strings = {},
- variables = {},
- numbers = {},
- booleans = {},
- properties = {},
- types = {},
- operators = {},
- -- miscs = {}, -- Uncomment to turn off hard-coded styles
- },
- color_overrides = {},
- custom_highlights = function(colors)
- local latte = require("catppuccin.palettes").get_palette("latte")
- local frappe = require("catppuccin.palettes").get_palette("frappe")
- local macchiato = require("catppuccin.palettes").get_palette("macchiato")
- local mocha = require("catppuccin.palettes").get_palette("mocha")
- return {
- LineNr = { fg = "#6C7086" },
- -- LineNr = { fg = macchiato.overlay1 },
- CursorLineNr = { fg = colors.mauve },
- -- CursorLine = { bg = mocha.surface0 },
- }
- end,
- -- custom_highlights = {},
- default_integrations = true,
- integrations = {
- cmp = true,
- gitsigns = true,
- nvimtree = true,
- treesitter = true,
- treesitter_context = true,
- which_key = true,
- notify = true,
- noice = true,
- mason = true,
- alpha = true,
- snacks = true,
- nvim_surround = true,
- lsp_trouble = true,
- telescope = {
- enabled = true,
- },
- mini = {
- enabled = true,
- indentscope_color = "",
- },
- native_lsp = {
- enabled = true,
- virtual_text = {
- errors = { "italic" },
- hints = { "italic" },
- warnings = { "italic" },
- information = { "italic" },
- ok = { "italic" },
- },
- underlines = {
- errors = { "underline" },
- hints = { "underline" },
- warnings = { "underline" },
- information = { "underline" },
- ok = { "underline" },
- },
- inlay_hints = {
- background = true,
- },
- },
- navic = {
- enabled = true,
- custom_bg = "NONE", -- "lualine" will set background to mantle
- },
- -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
- },
- })
+ {
+ "catppuccin/nvim",
+ name = "catppuccin",
+ priority = 1000, -- make sure to load this before all the other start plugins
+ config = function()
+ require("catppuccin").setup({
+ flavour = "mocha", -- latte, frappe, macchiato, mocha
+ background = { -- :h background
+ light = "latte",
+ dark = "mocha",
+ },
+ transparent_background = true, -- disables setting the background color.
+ float = {
+ transparent = true, -- enable transparent floating windows
+ solid = false, -- use solid styling for floating windows, see |winborder|
+ },
+ show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
+ -- term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
+ term_colors = true, -- sets terminal colors (e.g. `g:terminal_color_0`)
+ dim_inactive = {
+ enabled = false, -- dims the background color of inactive window
+ shade = "dark",
+ percentage = 0.15, -- percentage of the shade to apply to the inactive window
+ },
+ no_italic = false, -- Force no italic
+ no_bold = false, -- Force no bold
+ no_underline = false, -- Force no underline
+ -- float = true,
+ styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
+ comments = { "italic" }, -- Change the style of comments
+ conditionals = { "italic" },
+ loops = {},
+ functions = {},
+ keywords = {},
+ strings = {},
+ variables = {},
+ numbers = {},
+ booleans = {},
+ properties = {},
+ types = {},
+ operators = {},
+ -- miscs = {}, -- Uncomment to turn off hard-coded styles
+ },
+ color_overrides = {},
+ custom_highlights = function(colors)
+ local latte = require("catppuccin.palettes").get_palette("latte")
+ local frappe = require("catppuccin.palettes").get_palette("frappe")
+ local macchiato = require("catppuccin.palettes").get_palette("macchiato")
+ local mocha = require("catppuccin.palettes").get_palette("mocha")
+ return {
+ LineNr = { fg = "#6C7086" },
+ -- LineNr = { fg = macchiato.overlay1 },
+ CursorLineNr = { fg = colors.mauve },
+ -- CursorLine = { bg = mocha.surface0 },
+ }
+ end,
+ -- custom_highlights = {},
+ default_integrations = true,
+ integrations = {
+ cmp = true,
+ gitsigns = true,
+ nvimtree = true,
+ treesitter = true,
+ treesitter_context = true,
+ which_key = true,
+ notify = true,
+ noice = true,
+ mason = true,
+ alpha = true,
+ snacks = true,
+ nvim_surround = true,
+ lsp_trouble = true,
+ telescope = {
+ enabled = true,
+ },
+ mini = {
+ enabled = true,
+ indentscope_color = "",
+ },
+ native_lsp = {
+ enabled = true,
+ virtual_text = {
+ errors = { "italic" },
+ hints = { "italic" },
+ warnings = { "italic" },
+ information = { "italic" },
+ ok = { "italic" },
+ },
+ underlines = {
+ errors = { "underline" },
+ hints = { "underline" },
+ warnings = { "underline" },
+ information = { "underline" },
+ ok = { "underline" },
+ },
+ inlay_hints = {
+ background = true,
+ },
+ },
+ navic = {
+ enabled = true,
+ custom_bg = "NONE", -- "lualine" will set background to mantle
+ },
+ -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
+ },
+ })
- -- setup must be called before loading
- vim.cmd.colorscheme("catppuccin")
- end,
- },
+ -- setup must be called before loading
+ vim.cmd.colorscheme("catppuccin")
+ end,
+ },
}
diff --git a/.config/nvim/lua/val/plugins/diagram.lua b/.config/nvim/lua/val/plugins/diagram.lua
new file mode 100644
index 0000000..a1faf73
--- /dev/null
+++ b/.config/nvim/lua/val/plugins/diagram.lua
@@ -0,0 +1,93 @@
+return {
+ enabled = true,
+ "3rd/diagram.nvim",
+ dependencies = {
+ { "3rd/image.nvim", opts = {} }, -- you'd probably want to configure image.nvim manually instead of doing this
+ },
+ opts = { -- you can just pass {}, defaults below
+ events = {
+ render_buffer = {},
+ clear_buffer = { "BufLeave" },
+ },
+ renderer_options = {
+ mermaid = {
+ background = nil, -- nil | "transparent" | "white" | "#hex"
+ theme = nil, -- nil | "default" | "dark" | "forest" | "neutral"
+ scale = 1, -- nil | 1 (default) | 2 | 3 | ...
+ width = nil, -- nil | 800 | 400 | ...
+ height = nil, -- nil | 600 | 300 | ...
+ cli_args = nil, -- nil | { "--no-sandbox" } | { "-p", "/path/to/puppeteer" } | ...
+ },
+ plantuml = {
+ charset = nil,
+ cli_args = nil, -- nil | { "-Djava.awt.headless=true" } | ...
+ },
+ d2 = {
+ theme_id = nil,
+ dark_theme_id = nil,
+ scale = nil,
+ layout = nil,
+ sketch = nil,
+ cli_args = nil, -- nil | { "--pad", "0" } | ...
+ },
+ gnuplot = {
+ size = nil, -- nil | "800,600" | ...
+ font = nil, -- nil | "Arial,12" | ...
+ theme = nil, -- nil | "light" | "dark" | custom theme string
+ cli_args = nil, -- nil | { "-p" } | { "-c", "config.plt" } | ...
+ },
+ }
+ },
+ keys = {
+ {
+ "K", -- or any key you prefer
+ function()
+ require("diagram").show_diagram_hover()
+ end,
+ mode = "n",
+ ft = { "norg", "markdown", "mermaid" }, -- Only in these filetypes
+ desc = "Show diagram in new tab",
+ },
+ },
+ config = function()
+ require("diagram").setup({
+ events = {
+ render_buffer = {},
+ clear_buffer = { "BufLeave" },
+ },
+ integrations = {
+ require("diagram.integrations.markdown"),
+ require("diagram.integrations.neorg"),
+ },
+ renderer_options = {
+ mermaid = {
+ background = nil, -- nil | "transparent" | "white" | "#hex"
+ theme = nil, -- nil | "default" | "dark" | "forest" | "neutral"
+ scale = 1, -- nil | 1 (default) | 2 | 3 | ...
+ width = nil, -- nil | 800 | 400 | ...
+ height = nil, -- nil | 600 | 300 | ...
+ cli_args = nil, -- nil | { "--no-sandbox" } | { "-p", "/path/to/puppeteer" } | ...
+ },
+ plantuml = {
+ charset = nil,
+ cli_args = nil, -- nil | { "-Djava.awt.headless=true" } | ...
+ },
+ d2 = {
+ theme_id = nil,
+ dark_theme_id = nil,
+ scale = nil,
+ layout = nil,
+ sketch = nil,
+ cli_args = nil, -- nil | { "--pad", "0" } | ...
+ },
+ gnuplot = {
+ size = nil, -- nil | "800,600" | ...
+ font = nil, -- nil | "Arial,12" | ...
+ theme = nil, -- nil | "light" | "dark" | custom theme string
+ cli_args = nil, -- nil | { "-p" } | { "-c", "config.plt" } | ...
+ },
+ },
+
+ })
+ end,
+}
diff --git a/.config/nvim/lua/val/plugins/lazydev.lua b/.config/nvim/lua/val/plugins/lazydev.lua
index b7d9518..98917cb 100644
--- a/.config/nvim/lua/val/plugins/lazydev.lua
+++ b/.config/nvim/lua/val/plugins/lazydev.lua
@@ -1,54 +1,71 @@
return {
- {
- "folke/lazydev.nvim",
- ft = "lua", -- only load on lua files
- opts = {
- library = {
- -- See the configuration section for more details
- -- Load luvit types when the `vim.uv` word is found
- { path = "${3rd}/luv/library", words = { "vim%.uv" } },
- },
- },
- },
- { -- optional cmp completion source for require statements and module annotations
- "hrsh7th/nvim-cmp",
- opts = function(_, opts)
- opts.sources = opts.sources or {}
- table.insert(opts.sources, {
- name = "lazydev",
- group_index = 0, -- set group index to 0 to skip loading LuaLS completions
- })
- end,
- },
- { -- optional blink completion source for require statements and module annotations
- "saghen/blink.cmp",
- version = "1.*",
-
- opts = {
- completion = {
- menu = {
- border = "rounded",
- winhighlight = "Normal:BlinkCmpDoc,FloatBorder:BlinkCmpDocBorder,CursorLine:BlinkCmpDocCursorLine,Search:None",
- },
- documentation = {
- window = {
- border = "rounded",
- },
- },
- },
- sources = {
- -- add lazydev to your completion providers
- default = { "lazydev", "lsp", "path", "snippets", "buffer" },
- providers = {
- lazydev = {
- name = "LazyDev",
- module = "lazydev.integrations.blink",
- -- make lazydev completions top priority (see `:h blink.cmp`)
- score_offset = 100,
- },
- },
- },
- },
- },
- -- { "folke/neodev.nvim", enabled = false }, -- make sure to uninstall or disable neodev.nvim
+ {
+ "folke/lazydev.nvim",
+ ft = "lua", -- only load on lua files
+ opts = {
+ library = {
+ -- See the configuration section for more details
+ -- Load luvit types when the `vim.uv` word is found
+ { path = "${3rd}/luv/library", words = { "vim%.uv" } },
+ },
+ },
+ },
+ { -- optional cmp completion source for require statements and module annotations
+ "hrsh7th/nvim-cmp",
+ opts = function(_, opts)
+ opts.sources = opts.sources or {}
+ table.insert(opts.sources, {
+ name = "lazydev",
+ group_index = 0, -- set group index to 0 to skip loading LuaLS completions
+ })
+ end,
+ },
+ { -- optional blink completion source for require statements and module annotations
+ "saghen/blink.cmp",
+ version = "1.*",
+ opts = {
+ completion = {
+ menu = {
+ border = "rounded",
+ winhighlight = "Normal:BlinkCmpDoc,FloatBorder:BlinkCmpDocBorder,CursorLine:BlinkCmpDocCursorLine,Search:None",
+ },
+ list = { selection = { preselect = true, auto_insert = false } },
+ documentation = {
+ window = {
+ border = "rounded",
+ },
+ },
+ },
+ keymap = {
+ [''] = { 'select_prev', 'fallback' },
+ [''] = { 'select_next', 'fallback' },
+ [''] = { 'select_and_accept', 'fallback' },
+ [''] = { 'fallback' }
+ },
+ cmdline = {
+ keymap = {
+ -- recommended, as the default keymap will only show and select the next item
+ [''] = { 'select_and_accept' },
+ [''] = { 'select_prev', 'fallback' },
+ [''] = { 'select_next', 'fallback' },
+ [''] = { 'fallback' }
+ },
+ completion = { menu = { auto_show = true }, list = { selection = { preselect = true, auto_insert = false } },
+ },
+ },
+ sources = {
+ -- add lazydev to your completion providers
+ default = { "lazydev", "lsp", "path", "snippets", "buffer" },
+ providers = {
+ lazydev = {
+ name = "LazyDev",
+ module = "lazydev.integrations.blink",
+ -- make lazydev completions top priority (see `:h blink.cmp`)
+ score_offset = 100,
+ },
+ },
+ },
+ },
+ },
+ -- { "folke/neodev.nvim", enabled = false }, -- make sure to uninstall or disable neodev.nvim
}
diff --git a/.config/nvim/lua/val/plugins/markdown.lua b/.config/nvim/lua/val/plugins/markdown.lua
index 5ee164a..d27c529 100644
--- a/.config/nvim/lua/val/plugins/markdown.lua
+++ b/.config/nvim/lua/val/plugins/markdown.lua
@@ -1,9 +1,10 @@
return {
- "MeanderingProgrammer/render-markdown.nvim",
- -- dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite
- dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" }, -- if you use standalone mini plugins
- -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
- ---@module 'render-markdown'
- ---@type render.md.UserConfig
- opts = {},
+ enabled = true,
+ "MeanderingProgrammer/render-markdown.nvim",
+ -- dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite
+ dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" }, -- if you use standalone mini plugins
+ -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
+ ---@module 'render-markdown'
+ ---@type render.md.UserConfig
+ opts = {},
}
diff --git a/.config/nvim/lua/val/plugins/nvim-tree.lua b/.config/nvim/lua/val/plugins/nvim-tree.lua
index dcd2dd0..8e33b86 100644
--- a/.config/nvim/lua/val/plugins/nvim-tree.lua
+++ b/.config/nvim/lua/val/plugins/nvim-tree.lua
@@ -1,77 +1,78 @@
return {
- "nvim-tree/nvim-tree.lua",
- dependencies = {
- "nvim-tree/nvim-web-devicons",
- },
- config = function()
- local nvimtree = require("nvim-tree")
+ "nvim-tree/nvim-tree.lua",
+ enabled = false,
+ dependencies = {
+ "nvim-tree/nvim-web-devicons",
+ },
+ config = function()
+ local nvimtree = require("nvim-tree")
- -- recommended settings from nvim-tree documentation
- vim.g.loaded_netrw = 1
- vim.g.loaded_netrwPlugin = 1
- local gwidth = vim.api.nvim_list_uis()[1].width
- local gheight = vim.api.nvim_list_uis()[1].height
- local width = 80
- local height = 30
+ -- recommended settings from nvim-tree documentation
+ vim.g.loaded_netrw = 1
+ vim.g.loaded_netrwPlugin = 1
+ local gwidth = vim.api.nvim_list_uis()[1].width
+ local gheight = vim.api.nvim_list_uis()[1].height
+ local width = 80
+ local height = 30
- nvimtree.setup({
- view = {
- width = 35,
- relativenumber = true,
- float = {
- enable = true,
- open_win_config = {
- relative = "editor",
- width = width,
- height = height,
- row = (gheight - height) * 0.4,
- col = (gwidth - width) * 0.5,
- },
- },
- },
- -- change folder arrow icons
- renderer = {
- indent_markers = {
- enable = true,
- },
- icons = {
- glyphs = {
- folder = {
- arrow_closed = "", -- arrow when folder is closed
- arrow_open = "", -- arrow when folder is open
- },
- },
- },
- },
- -- disable window_picker for
- -- explorer to work well with
- -- window splits
- actions = {
- open_file = {
- window_picker = {
- enable = false,
- },
- },
- },
- filters = {
- custom = { ".DS_Store" },
- },
- git = {
- ignore = false,
- },
- })
+ nvimtree.setup({
+ view = {
+ width = 35,
+ relativenumber = true,
+ float = {
+ enable = true,
+ open_win_config = {
+ relative = "editor",
+ width = width,
+ height = height,
+ row = (gheight - height) * 0.4,
+ col = (gwidth - width) * 0.5,
+ },
+ },
+ },
+ -- change folder arrow icons
+ renderer = {
+ indent_markers = {
+ enable = true,
+ },
+ icons = {
+ glyphs = {
+ folder = {
+ arrow_closed = "", -- arrow when folder is closed
+ arrow_open = "", -- arrow when folder is open
+ },
+ },
+ },
+ },
+ -- disable window_picker for
+ -- explorer to work well with
+ -- window splits
+ actions = {
+ open_file = {
+ window_picker = {
+ enable = false,
+ },
+ },
+ },
+ filters = {
+ custom = { ".DS_Store" },
+ },
+ git = {
+ ignore = false,
+ },
+ })
- -- set keymaps
- local keymap = vim.keymap -- for conciseness
+ -- set keymaps
+ local keymap = vim.keymap -- for conciseness
- keymap.set("n", "ee", "NvimTreeToggle", { desc = "Toggle file explorer" }) -- toggle file explorer
- keymap.set(
- "n",
- "ef",
- "NvimTreeFindFileToggle",
- { desc = "Toggle file explorer on current file" }
- ) -- toggle file explorer on current file
- keymap.set("n", "ec", "NvimTreeCollapse", { desc = "Collapse file explorer" }) -- collapse file explorer
- keymap.set("n", "er", "NvimTreeRefresh", { desc = "Refresh file explorer" }) -- refresh file explorer
- end,
+ keymap.set("n", "ee", "NvimTreeToggle", { desc = "Toggle file explorer" }) -- toggle file explorer
+ keymap.set(
+ "n",
+ "ef",
+ "NvimTreeFindFileToggle",
+ { desc = "Toggle file explorer on current file" }
+ ) -- toggle file explorer on current file
+ keymap.set("n", "ec", "NvimTreeCollapse", { desc = "Collapse file explorer" }) -- collapse file explorer
+ keymap.set("n", "er", "NvimTreeRefresh", { desc = "Refresh file explorer" }) -- refresh file explorer
+ end,
}
diff --git a/.config/nvim/lua/val/plugins/sidekick.lua b/.config/nvim/lua/val/plugins/sidekick.lua
new file mode 100644
index 0000000..d7bfd28
--- /dev/null
+++ b/.config/nvim/lua/val/plugins/sidekick.lua
@@ -0,0 +1,66 @@
+return {
+ "folke/sidekick.nvim",
+ opts = {
+ -- add any options here
+ cli = {
+ mux = {
+ backend = "zellij",
+ enabled = true,
+ },
+ },
+ },
+ keys = {
+ {
+ "",
+ function() require("sidekick.cli").toggle() end,
+ desc = "Sidekick Toggle",
+ mode = { "n", "t", "i", "x" },
+ },
+ {
+ "aa",
+ function() require("sidekick.cli").toggle() end,
+ desc = "Sidekick Toggle CLI",
+ },
+ {
+ "as",
+ function() require("sidekick.cli").select() end,
+ -- Or to select only installed tools:
+ -- require("sidekick.cli").select({ filter = { installed = true } })
+ desc = "Select CLI",
+ },
+ {
+ "ad",
+ function() require("sidekick.cli").close() end,
+ desc = "Detach a CLI Session",
+ },
+ {
+ "at",
+ function() require("sidekick.cli").send({ msg = "{this}" }) end,
+ mode = { "x", "n" },
+ desc = "Send This",
+ },
+ {
+ "af",
+ function() require("sidekick.cli").send({ msg = "{file}" }) end,
+ desc = "Send File",
+ },
+ {
+ "av",
+ function() require("sidekick.cli").send({ msg = "{selection}" }) end,
+ mode = { "x" },
+ desc = "Send Visual Selection",
+ },
+ {
+ "ap",
+ function() require("sidekick.cli").prompt() end,
+ mode = { "n", "x" },
+ desc = "Sidekick Select Prompt",
+ },
+ -- Example of a keybinding to open Claude directly
+ {
+ "ac",
+ function() require("sidekick.cli").toggle({ name = "qwen", focus = true }) end,
+ desc = "Sidekick Toggle Qwen",
+ },
+ },
+}
diff --git a/.config/nvim/lua/val/plugins/snacks.lua b/.config/nvim/lua/val/plugins/snacks.lua
index 547b552..cfa3a8a 100644
--- a/.config/nvim/lua/val/plugins/snacks.lua
+++ b/.config/nvim/lua/val/plugins/snacks.lua
@@ -1,626 +1,658 @@
return {
- "acidclouds/snacks.nvim",
- priority = 1000,
- lazy = false,
- opts = {
- -- your configuration comes here
- -- or leave it empty to use the default settings
- -- refer to the configuration section below
- scratch = {
- ft = "text",
- },
- picker = {
- win = {
- input = {
- keys = {
- [""] = { "preview_scroll_up", mode = { "i", "n" } },
- [""] = { "preview_scroll_down", mode = { "i", "n" } },
- [""] = { "preview_scroll_left", mode = { "i", "n" } },
- [""] = { "preview_scroll_right", mode = { "i", "n" } },
- ["h"] = { "list_scroll_left", mode = { "n" } },
- ["l"] = { "list_scroll_right", mode = { "n" } },
- },
- },
- list = {
- keys = {
- [""] = "preview_scroll_up",
- [""] = "preview_scroll_down",
- [""] = "preview_scroll_left",
- [""] = "preview_scroll_right",
- },
- },
- preview = {
- keys = {
- [""] = "preview_scroll_up",
- [""] = "preview_scroll_down",
- [""] = "preview_scroll_left",
- [""] = "preview_scroll_right",
- },
- },
- },
- },
- terminal = {
- -- your terminal configuration comes here
- -- or leave it empty to use the default settings
- -- refer to the configuration section below
- win = { style = "terminal" },
- -- win = {
- -- -- position = "float",
- -- style = "terminal",
- -- border = "rounded",
- -- },
- enabled = true,
- },
- bigfile = { enabled = true },
- dashboard = {
- enabled = true,
- sections = {
- { section = "header" },
- {
- section = "terminal",
- cmd = "ascii-image-converter ~/.config/max.png -c -C -H 25; sleep .1",
- height = 28,
- width = 61,
- -- align = "right",
- },
- { pane = 1, section = "keys", gap = 1, padding = 1 },
- { pane = 1, icon = " ", title = "Recent Files", section = "recent_files", indent = 2, padding = 1 },
- { pane = 1, icon = " ", title = "Projects", section = "projects", indent = 2, padding = 1 },
- {
- pane = 1,
- icon = " ",
- title = "Git Status",
- section = "terminal",
- enabled = function()
- return Snacks.git.get_root() ~= nil
- end,
- cmd = "hub status --short --branch --renames",
- height = 5,
- padding = 1,
- ttl = 5 * 60,
- indent = 3,
- },
- { section = "startup" },
- },
- },
- image = { enabled = true },
- indent = {
- enabled = true,
- indent = {
- char = "┊",
- hl = {
- "NeoTreeIndentMarker",
- -- "SnacksIndent1",
- -- "SnacksIndent2",
- -- "SnacksIndent3",
- -- "SnacksIndent4",
- -- "SnacksIndent5",
- -- "SnacksIndent6",
- -- "SnacksIndent7",
- -- "SnacksIndent8",
- },
- },
- scope = { char = "┊" },
- },
- input = { enabled = true },
- notifier = { enabled = true },
- quickfile = { enabled = true },
- -- statuscolumn = { enabled = true },
- explorer = { enabled = false },
- toggle = {
- enabled = true,
- map = vim.keymap.set, -- keymap.set function to use
- which_key = true, -- integrate with which-key to show enabled/disabled icons and colors
- notify = true, -- show a notification when toggling
- -- icons for enabled/disabled states
- icon = {
- enabled = " ",
- disabled = " ",
- },
- -- colors for enabled/disabled states
- color = {
- enabled = "green",
- disabled = "yellow",
- },
- },
- scroll = { enabled = true },
- win = { enabled = true },
- words = { enabled = true },
- styles = {
- lazygit = {
- height = 0.8,
- width = 0.95,
- border = "rounded",
- },
- notification = {
- wo = {
- wrap = true,
- },
- },
- input = {
- keys = {
- i_esc = { "", { "cmp_close", "cancel" }, mode = "i" },
- q = "cancel",
- },
- row = 37,
- },
- terminal = {
- bo = {
- filetype = "snacks_terminal",
- },
- height = 0.25,
- wo = {},
- keys = {
- q = "hide",
- gf = function(self)
- local f = vim.fn.findfile(vim.fn.expand(""), "**")
- if f == "" then
- Snacks.notify.warn("No file under cursor")
- else
- -- self:hide()
- vim.schedule(function()
- vim.cmd("e " .. f)
- end)
- end
- end,
- term_normal = {
- "j",
- function(self)
- self.esc_timer = self.esc_timer or (vim.uv or vim.loop).new_timer()
- if self.esc_timer:is_active() then
- self.esc_timer:stop()
- vim.cmd("stopinsert")
- return ""
- else
- self.esc_timer:start(200, 0, function() end)
- return "j"
- end
- -- vim.cmd("stopinsert")
- end,
- mode = "t",
- expr = true,
- desc = "Double j to normal mode",
- },
- },
- },
- win = {
- split = {
- position = "bottom",
- height = 0.2,
- border = "rounded",
- },
- },
- },
- },
- keys = {
- {
- "f.",
- function()
- Snacks.picker.scratch({
- on_show = function()
- vim.cmd.stopinsert()
- end,
- win = {
- input = {
- keys = {
- [""] = {
- function(picker)
- picker:close()
- Snacks.input.input({
- prompt = "Name your new scratchpad (cancelling will open default)",
- default = "",
- }, function(response)
- if response then
- Snacks.scratch.open({ name = response })
- else
- Snacks.scratch.open()
- end
- end)
- end,
- mode = { "n", "i" },
- },
- },
- },
- },
- })
- end,
- desc = "Select Scratch Buffers",
- },
- {
- ".",
- function()
- Snacks.scratch()
- end,
- desc = "Open scratchpad",
- },
- {
- "fk",
- function()
- Snacks.picker.keymaps()
- end,
- desc = "Keymaps",
- },
- {
- "fv",
- ":Telescope vim_options",
- desc = "VIM options",
- },
- {
- "bd",
- function()
- Snacks.bufdelete()
- end,
- desc = "Delete Buffer",
- },
- {
- "gg",
- function()
- Snacks.lazygit()
- end,
- desc = "LazyGit",
- },
- {
- "gl",
- function()
- Snacks.lazygit.log()
- end,
- desc = "Lazygit Log (cwd)",
- },
- {
- "gL",
- function()
- Snacks.picker.git_log_line()
- end,
- desc = "Git log current line",
- },
- {
- "hd",
- function()
- Snacks.notifier.hide()
- end,
- desc = "Dismiss All Notifications",
- },
- {
- "T",
- function()
- Snacks.terminal()
- end,
- desc = "Toggle Terminal",
- },
- {
- "x",
- function()
- local window = Snacks.terminal.get(nil, { start_insert = false, win = { enter = false } })
- vim.fn.chansend(vim.bo[window.buf].channel, vim.api.nvim_get_current_line() .. "\n")
- end,
- desc = "Execute current line in terminal",
- mode = { "n" },
- },
- {
- "x",
- function()
- local visual_selection = GetVisualSelection()
- local window = Snacks.terminal.get(nil, { start_insert = false, win = { enter = false } })
- for _, ln in ipairs(visual_selection) do
- vim.fn.chansend(vim.bo[window.buf].channel, ln .. "\n")
- end
- end,
- desc = "Execute selection in terminal",
- mode = { "v" },
- },
- {
- "]]",
- function()
- Snacks.words.jump(vim.v.count1)
- end,
- desc = "Next Reference",
- mode = { "n", "t" },
- },
- {
- "[[",
- function()
- Snacks.words.jump(-vim.v.count1)
- end,
- desc = "Prev Reference",
- mode = { "n", "t" },
- },
- {
- "ys",
- function()
- local defname = vim.fn.system({ "git", "branch", "--show-current" })
- if vim.v.shell_error == 0 then
- defname = string.gsub(defname, "%s", "") .. ".txt"
- else
- defname = "todo.txt"
- end
- Snacks.input.input(
- { prompt = "Save file to: " .. vim.fn.getcwd(), default = defname },
- function(response)
- if response then
- SaveClist(response)
- else
- Snacks.notify.warn("Did not save list to file")
- end
- end
- )
- end,
- desc = "Save ToDo List to File",
- },
- {
- "yl",
- function()
- local defname = vim.fn.system({ "git", "branch", "--show-current" })
- if vim.v.shell_error == 0 then
- defname = string.gsub(defname, "%s", "") .. ".txt"
- else
- defname = "todo.txt"
- end
- Snacks.input.input({ prompt = "Load from: " .. vim.fn.getcwd(), default = defname }, function(response)
- if response then
- LoadClist(response)
- else
- Snacks.notify.warn("Did not load list from file")
- end
- end)
- end,
- desc = "Load ToDo List from File",
- },
- {
- "hc",
- function()
- Snacks.picker.command_history()
- end,
- desc = "Commands History",
- },
- {
- "hn",
- function()
- Snacks.picker.notifications()
- end,
- desc = "Notification History",
- },
- {
- "ff",
- function()
- Snacks.picker.smart({
- hidden = true,
- ignored = true,
- title = vim.fn.getcwd(),
- })
- end,
- desc = "Find Files in CWD",
- },
- {
- "gc",
- function()
- Snacks.terminal.open("git show " .. vim.fn.expand(""), { win = { height = 0.8 } })
- end,
- desc = "Show git commit",
- },
- {
- "fh",
- function()
- Snacks.picker.help()
- end,
- desc = "Help Pages",
- },
- {
- "fm",
- function()
- Snacks.picker.man()
- end,
- desc = "Man Pages",
- },
- {
- "fr",
- function()
- Snacks.picker.resume()
- end,
- desc = "Resume Last Search",
- },
- {
- "fl",
- function()
- Snacks.picker.lines()
- end,
- desc = "Find String in Current Buffer",
- },
- {
- "fc",
- function()
- Snacks.picker.grep_word({
- hidden = true,
- ignored = true,
- title = vim.fn.getcwd(),
- on_show = function()
- vim.cmd.stopinsert()
- end,
- })
- end,
- desc = "Find String under Cursor in CWD",
- },
- {
- "fo",
- function()
- Snacks.picker.recent({
- on_show = function()
- vim.cmd.stopinsert()
- end,
- })
- end,
- desc = "Recent files",
- },
- {
- "fs",
- function()
- Snacks.picker.grep({
- hidden = true,
- ignored = true,
- title = vim.fn.getcwd(),
- })
- end,
- desc = "Find String in CWD",
- },
- {
- "U",
- function()
- Snacks.picker.undo({
- on_show = function()
- vim.cmd.stopinsert()
- end,
- })
- end,
- desc = "Undo History",
- },
- {
- "yq",
- function()
- ToggleQf()
- end,
- desc = "Toggle Quickfix List Window",
- },
- {
- "ld",
- function()
- Snacks.picker.lsp_definitions()
- end,
- desc = "Goto Definition",
- },
- {
- "lD",
- function()
- Snacks.picker.lsp_declarations()
- end,
- desc = "Goto Declaration",
- },
- {
- "lr",
- function()
- Snacks.picker.lsp_references()
- end,
- nowait = true,
- desc = "References",
- },
- {
- "li",
- function()
- Snacks.picker.lsp_implementations()
- end,
- desc = "Goto Implementation",
- },
- {
- "la",
- function()
- vim.lsp.buf.code_action()
- end,
- desc = "See available code actions",
- },
- {
- "D",
- function()
- vim.diagnostic.open_float({ border = "rounded" })
- end,
- desc = "Show line diagnostics",
- },
- {
- "cr",
- function()
- vim.lsp.buf.rename()
- end,
- desc = "Smart Rename",
- },
- {
- "D",
- function()
- vim.lsp.buf.hover()
- end,
- desc = "Show documentation for what is under cursor",
- },
- {
- "lt",
- function()
- Snacks.picker.lsp_type_definitions()
- end,
- desc = "Goto Type Definition",
- },
- {
- "ls",
- function()
- Snacks.picker.lsp_symbols()
- end,
- desc = "LSP Symbols",
- },
- {
- "W",
- function()
- Snacks.dashboard()
- end,
- desc = "Welcome Screen",
- },
- {
- "lS",
- function()
- Snacks.picker.lsp_workspace_symbols()
- end,
- desc = "LSP Workspace Symbols",
- },
- {
- "fd",
- function()
- Snacks.picker.diagnostics_buffer()
- end,
- desc = "Diagnostics",
- },
- {
- "um",
- function()
- require("render-markdown").toggle()
- end,
- desc = "Toggle Render Markdown",
- },
- },
- init = function()
- vim.api.nvim_create_autocmd("User", {
- pattern = "VeryLazy",
- callback = function()
- -- Setup some globals for debugging (lazy-loaded)
- _G.dd = function(...)
- Snacks.debug.inspect(...)
- end
- _G.bt = function()
- Snacks.debug.backtrace()
- end
- vim.print = _G.dd -- Override print to use snacks for `:=` command
+ "folke/snacks.nvim",
+ priority = 1000,
+ lazy = false,
+ opts = {
+ -- your configuration comes here
+ -- or leave it empty to use the default settings
+ -- refer to the configuration section below
+ scratch = {
+ ft = "text",
+ },
+ picker = {
+ layout = {
+ cycle = true,
+ --- Use the default layout or vertical if the window is too narrow
+ preset = function()
+ return vim.o.columns >= 129 and "default" or "vertical"
+ end,
+ },
+ actions = {
+ list_scroll_right = function(picker)
+ if picker.list.win:valid() then
+ picker.list.win:hscroll()
+ end
+ end,
+ list_scroll_left = function(picker)
+ if picker.list.win:valid() then
+ picker.list.win:hscroll(true)
+ end
+ end,
+ },
+ win = {
+ input = {
+ keys = {
+ [""] = { "preview_scroll_up", mode = { "i", "n" } },
+ [""] = { "preview_scroll_down", mode = { "i", "n" } },
+ [""] = { "preview_scroll_left", mode = { "i", "n" } },
+ [""] = { "preview_scroll_right", mode = { "i", "n" } },
+ ["h"] = { "list_scroll_left", mode = { "n" } },
+ ["l"] = { "list_scroll_right", mode = { "n" } },
+ },
+ },
+ list = {
+ keys = {
+ [""] = "preview_scroll_up",
+ [""] = "preview_scroll_down",
+ [""] = "preview_scroll_left",
+ [""] = "preview_scroll_right",
+ ["h"] = { "list_scroll_left", mode = { "n" } },
+ ["l"] = { "list_scroll_right", mode = { "n" } },
+ },
+ },
+ preview = {
+ keys = {
+ [""] = "preview_scroll_up",
+ [""] = "preview_scroll_down",
+ [""] = "preview_scroll_left",
+ [""] = "preview_scroll_right",
+ },
+ },
+ },
+ },
+ terminal = {
+ -- your terminal configuration comes here
+ -- or leave it empty to use the default settings
+ -- refer to the configuration section below
+ win = { style = "terminal" },
+ -- win = {
+ -- -- position = "float",
+ -- style = "terminal",
+ -- border = "rounded",
+ -- },
+ enabled = true,
+ },
- -- Create some toggle mappings
- Snacks.toggle.animate():map("ua")
- Snacks.toggle.option("wrap", { name = "Wrap" }):map("uw")
- Snacks.toggle.option("list", { name = " List (Visible Whitespace)" }):map("ul")
- Snacks.toggle
- .new({
- id = "format_on_save",
- name = " Format on Save (global)",
- get = function()
- return not vim.g.disable_autoformat
- end,
- set = function(state)
- vim.g.disable_autoformat = not state
- end,
- })
- :map("uf")
- Snacks.toggle
- .new({
- id = "format_on_save_buffer",
- name = " Format on Save (buffer)",
- get = function()
- return not vim.b.disable_autoformat
- end,
- set = function(state)
- vim.b.disable_autoformat = not state
- end,
- })
- :map("uF")
- end,
- })
- end,
+ bigfile = { enabled = true },
+ dashboard = {
+ enabled = true,
+ sections = {
+ { section = "header" },
+ {
+ section = "terminal",
+ cmd = "ascii-image-converter ~/.config/max.png -c -C -H 25; sleep .1",
+ height = 28,
+ width = 61,
+ },
+ { pane = 1, section = "keys", gap = 1, padding = 1 },
+ { pane = 1, icon = " ", title = "Recent Files", section = "recent_files", indent = 2, padding = 1 },
+ { pane = 1, icon = " ", title = "Projects", section = "projects", indent = 2, padding = 1 },
+ {
+ pane = 1,
+ icon = " ",
+ title = "Git Status",
+ section = "terminal",
+ enabled = function()
+ return Snacks.git.get_root() ~= nil
+ end,
+ cmd = "hub status --short --branch --renames",
+ height = 5,
+ padding = 1,
+ ttl = 5 * 60,
+ indent = 3,
+ },
+ { section = "startup" },
+ },
+ },
+ image = { enabled = true, doc = { enabled = false } },
+ indent = {
+ enabled = true,
+ indent = {
+ char = "┊",
+ hl = {
+ "NeoTreeIndentMarker",
+ -- "SnacksIndent1",
+ -- "SnacksIndent2",
+ -- "SnacksIndent3",
+ -- "SnacksIndent4",
+ -- "SnacksIndent5",
+ -- "SnacksIndent6",
+ -- "SnacksIndent7",
+ -- "SnacksIndent8",
+ },
+ },
+ scope = { char = "┊" },
+ },
+ input = { enabled = true },
+ notifier = { enabled = true },
+ quickfile = { enabled = true },
+ -- statuscolumn = { enabled = true },
+ explorer = { enabled = false },
+ toggle = {
+ enabled = true,
+ map = vim.keymap.set, -- keymap.set function to use
+ which_key = true, -- integrate with which-key to show enabled/disabled icons and colors
+ notify = true, -- show a notification when toggling
+ -- icons for enabled/disabled states
+ icon = {
+ enabled = " ",
+ disabled = " ",
+ },
+ -- colors for enabled/disabled states
+ color = {
+ enabled = "green",
+ disabled = "yellow",
+ },
+ },
+ scroll = {
+ enabled = true
+ },
+ win = { enabled = true },
+ words = { enabled = true },
+ styles = {
+ lazygit = {
+ height = 0.8,
+ width = 0.95,
+ border = "rounded",
+ },
+ notification = {
+ wo = {
+ wrap = true,
+ },
+ },
+ input = {
+ keys = {
+ i_esc = { "", { "cmp_close", "cancel" }, mode = "i" },
+ q = "cancel",
+ },
+ row = 37,
+ },
+ terminal = {
+ bo = {
+ filetype = "snacks_terminal",
+ },
+ height = 0.25,
+ wo = {},
+ keys = {
+ q = "hide",
+ gf = function(self)
+ local f = vim.fn.findfile(vim.fn.expand(""), "**")
+ if f == "" then
+ Snacks.notify.warn("No file under cursor")
+ else
+ -- self:hide()
+ vim.schedule(function()
+ vim.cmd("e " .. f)
+ end)
+ end
+ end,
+ term_normal = {
+ "j",
+ function(self)
+ self.esc_timer = self.esc_timer or (vim.uv or vim.loop).new_timer()
+ if self.esc_timer:is_active() then
+ self.esc_timer:stop()
+ vim.cmd("stopinsert")
+ return ""
+ else
+ self.esc_timer:start(200, 0, function() end)
+ return "j"
+ end
+ -- vim.cmd("stopinsert")
+ end,
+ mode = "t",
+ expr = true,
+ desc = "Double j to normal mode",
+ },
+ },
+ },
+ win = {
+ split = {
+ position = "bottom",
+ height = 0.2,
+ border = "rounded",
+ },
+ },
+ },
+ },
+ keys = {
+ {
+ "f.",
+ function()
+ Snacks.picker.scratch({
+ on_show = function()
+ vim.cmd.stopinsert()
+ end,
+ win = {
+ input = {
+ keys = {
+ [""] = {
+ function(picker)
+ picker:close()
+ Snacks.input.input({
+ prompt = "Name your new scratchpad (cancelling will open default)",
+ default = "",
+ }, function(response)
+ if response then
+ Snacks.scratch.open({ name = response })
+ else
+ Snacks.scratch.open()
+ end
+ end)
+ end,
+ mode = { "n", "i" },
+ },
+ [""] = "edit"
+ },
+ },
+ },
+ })
+ end,
+ desc = "Select Scratch Buffers",
+ },
+ {
+ ".",
+ function()
+ Snacks.scratch()
+ end,
+ desc = "Open scratchpad",
+ },
+ {
+ "fk",
+ function()
+ Snacks.picker.keymaps()
+ end,
+ desc = "Keymaps",
+ },
+ {
+ "fv",
+ ":Telescope vim_options",
+ desc = "VIM options",
+ },
+ {
+ "bd",
+ function()
+ Snacks.bufdelete()
+ end,
+ desc = "Delete Buffer",
+ },
+ {
+ "gg",
+ function()
+ Snacks.lazygit()
+ end,
+ desc = "LazyGit",
+ },
+ {
+ "gl",
+ function()
+ Snacks.lazygit.log()
+ end,
+ desc = "Lazygit Log (cwd)",
+ },
+ {
+ "gL",
+ function()
+ Snacks.picker.git_log_line()
+ end,
+ desc = "Git log current line",
+ },
+ {
+ "hd",
+ function()
+ Snacks.notifier.hide()
+ end,
+ desc = "Dismiss All Notifications",
+ },
+ {
+ "T",
+ function()
+ Snacks.terminal()
+ end,
+ desc = "Toggle Terminal",
+ },
+ {
+ "x",
+ function()
+ local window = Snacks.terminal.get(nil, { start_insert = false, win = { enter = false } })
+ vim.fn.chansend(vim.bo[window.buf].channel, vim.api.nvim_get_current_line() .. "\n")
+ end,
+ desc = "Execute current line in terminal",
+ mode = { "n" },
+ },
+ {
+ "x",
+ function()
+ local visual_selection = GetVisualSelection()
+ local window = Snacks.terminal.get(nil, { start_insert = false, win = { enter = false } })
+ for _, ln in ipairs(visual_selection) do
+ vim.fn.chansend(vim.bo[window.buf].channel, ln .. "\n")
+ end
+ end,
+ desc = "Execute selection in terminal",
+ mode = { "v" },
+ },
+ {
+ "]]",
+ function()
+ Snacks.words.jump(vim.v.count1)
+ end,
+ desc = "Next Reference",
+ mode = { "n", "t" },
+ },
+ {
+ "[[",
+ function()
+ Snacks.words.jump(-vim.v.count1)
+ end,
+ desc = "Prev Reference",
+ mode = { "n", "t" },
+ },
+ {
+ "ys",
+ function()
+ local defname = vim.fn.system({ "git", "branch", "--show-current" })
+ if vim.v.shell_error == 0 then
+ defname = string.gsub(defname, "%s", "") .. ".txt"
+ else
+ defname = "todo.txt"
+ end
+ Snacks.input.input(
+ { prompt = "Save file to: " .. vim.fn.getcwd(), default = defname },
+ function(response)
+ if response then
+ SaveClist(response)
+ else
+ Snacks.notify.warn("Did not save list to file")
+ end
+ end
+ )
+ end,
+ desc = "Save ToDo List to File",
+ },
+ {
+ "yl",
+ function()
+ local defname = vim.fn.system({ "git", "branch", "--show-current" })
+ if vim.v.shell_error == 0 then
+ defname = string.gsub(defname, "%s", "") .. ".txt"
+ else
+ defname = "todo.txt"
+ end
+ Snacks.input.input({ prompt = "Load from: " .. vim.fn.getcwd(), default = defname }, function(response)
+ if response then
+ LoadClist(response)
+ else
+ Snacks.notify.warn("Did not load list from file")
+ end
+ end)
+ end,
+ desc = "Load ToDo List from File",
+ },
+ {
+ "hc",
+ function()
+ Snacks.picker.command_history()
+ end,
+ desc = "Commands History",
+ },
+ {
+ "hn",
+ function()
+ Snacks.picker.notifications()
+ end,
+ desc = "Notification History",
+ },
+ {
+ "ff",
+ function()
+ Snacks.picker.smart({
+ hidden = true,
+ ignored = true,
+ title = vim.fn.getcwd(),
+ })
+ end,
+ desc = "Find Files in CWD",
+ },
+ {
+ "gc",
+ function()
+ Snacks.terminal.open("git show " .. vim.fn.expand(""), { win = { height = 0.8 } })
+ end,
+ desc = "Show git commit",
+ },
+ {
+ "fh",
+ function()
+ Snacks.picker.help()
+ end,
+ desc = "Help Pages",
+ },
+ {
+ "fm",
+ function()
+ Snacks.picker.man()
+ end,
+ desc = "Man Pages",
+ },
+ {
+ "fr",
+ function()
+ Snacks.picker.resume()
+ end,
+ desc = "Resume Last Search",
+ },
+ {
+ "fl",
+ function()
+ Snacks.picker.lines()
+ end,
+ desc = "Find String in Current Buffer",
+ },
+ {
+ "fc",
+ function()
+ Snacks.picker.grep_word({
+ hidden = true,
+ ignored = true,
+ title = vim.fn.getcwd(),
+ on_show = function()
+ vim.cmd.stopinsert()
+ end,
+ })
+ end,
+ desc = "Find String under Cursor in CWD",
+ },
+ {
+ "fo",
+ function()
+ Snacks.picker.recent({
+ on_show = function()
+ vim.cmd.stopinsert()
+ end,
+ })
+ end,
+ desc = "Recent files",
+ },
+ {
+ "fs",
+ function()
+ Snacks.picker.grep({
+ hidden = true,
+ ignored = true,
+ title = vim.fn.getcwd(),
+ })
+ end,
+ desc = "Find String in CWD",
+ },
+ {
+ "U",
+ function()
+ Snacks.picker.undo({
+ on_show = function()
+ vim.cmd.stopinsert()
+ end,
+ })
+ end,
+ desc = "Undo History",
+ },
+ {
+ "yq",
+ function()
+ ToggleQf()
+ end,
+ desc = "Toggle Quickfix List Window",
+ },
+ {
+ "ld",
+ function()
+ Snacks.picker.lsp_definitions()
+ end,
+ desc = "Goto Definition",
+ },
+ {
+ "lD",
+ function()
+ Snacks.picker.lsp_declarations()
+ end,
+ desc = "Goto Declaration",
+ },
+ {
+ "lr",
+ function()
+ Snacks.picker.lsp_references()
+ end,
+ nowait = true,
+ desc = "References",
+ },
+ {
+ "li",
+ function()
+ Snacks.picker.lsp_implementations()
+ end,
+ desc = "Goto Implementation",
+ },
+ {
+ "la",
+ function()
+ vim.lsp.buf.code_action()
+ end,
+ desc = "See available code actions",
+ },
+ {
+ "D",
+ function()
+ vim.diagnostic.open_float({ border = "rounded" })
+ end,
+ desc = "Show line diagnostics",
+ },
+ {
+ "cr",
+ function()
+ vim.lsp.buf.rename()
+ end,
+ desc = "Smart Rename",
+ },
+ {
+ "D",
+ function()
+ vim.lsp.buf.hover()
+ end,
+ desc = "Show documentation for what is under cursor",
+ },
+ {
+ "lt",
+ function()
+ Snacks.picker.lsp_type_definitions()
+ end,
+ desc = "Goto Type Definition",
+ },
+ {
+ "ls",
+ function()
+ Snacks.picker.lsp_symbols()
+ end,
+ desc = "LSP Symbols",
+ },
+ {
+ "W",
+ function()
+ Snacks.dashboard()
+ end,
+ desc = "Welcome Screen",
+ },
+ {
+ "lS",
+ function()
+ Snacks.picker.lsp_workspace_symbols()
+ end,
+ desc = "LSP Workspace Symbols",
+ },
+ {
+ "fd",
+ function()
+ Snacks.picker.diagnostics_buffer()
+ end,
+ desc = "Diagnostics",
+ },
+ {
+ "um",
+ function()
+ require("render-markdown").toggle()
+ end,
+ desc = "Toggle Render Markdown",
+ },
+ {
+ "P",
+ function()
+ Snacks.image.doc.hover()
+ end,
+ desc = "Preview doc image",
+ }
+ },
+ init = function()
+ vim.api.nvim_create_autocmd("User", {
+ pattern = "VeryLazy",
+ callback = function()
+ -- Setup some globals for debugging (lazy-loaded)
+ _G.dd = function(...)
+ Snacks.debug.inspect(...)
+ end
+ _G.bt = function()
+ Snacks.debug.backtrace()
+ end
+ vim.print = _G.dd -- Override print to use snacks for `:=` command
+
+ -- Create some toggle mappings
+ Snacks.toggle.animate():map("ua")
+ Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("ur")
+ Snacks.toggle.option("wrap", { name = "Wrap" }):map("uw")
+ Snacks.toggle.option("list", { name = " List (Visible Whitespace)" }):map("ul")
+ Snacks.toggle
+ .new({
+ id = "format_on_save",
+ name = " Format on Save (global)",
+ get = function()
+ return not vim.g.disable_autoformat
+ end,
+ set = function(state)
+ vim.g.disable_autoformat = not state
+ end,
+ })
+ :map("uf")
+ Snacks.toggle
+ .new({
+ id = "format_on_save_buffer",
+ name = " Format on Save (buffer)",
+ get = function()
+ return not vim.b.disable_autoformat
+ end,
+ set = function(state)
+ vim.b.disable_autoformat = not state
+ end,
+ })
+ :map("uF")
+ end,
+ })
+ end,
}
diff --git a/.config/nvim/lua/val/plugins/telescope-file-browser.lua b/.config/nvim/lua/val/plugins/telescope-file-browser.lua
index 4e996b7..cab9ff7 100644
--- a/.config/nvim/lua/val/plugins/telescope-file-browser.lua
+++ b/.config/nvim/lua/val/plugins/telescope-file-browser.lua
@@ -1,4 +1,5 @@
return {
- "nvim-telescope/telescope-file-browser.nvim",
- dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" },
+ "nvim-telescope/telescope-file-browser.nvim",
+ enabled = false,
+ dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" },
}
diff --git a/.config/nvim/lua/val/plugins/telescope-frecency.lua b/.config/nvim/lua/val/plugins/telescope-frecency.lua
index c489b8a..eccd844 100644
--- a/.config/nvim/lua/val/plugins/telescope-frecency.lua
+++ b/.config/nvim/lua/val/plugins/telescope-frecency.lua
@@ -1,19 +1,19 @@
return {
- "prochri/telescope-all-recent.nvim",
- enabled = true,
- dependencies = {
- "nvim-telescope/telescope.nvim",
- "kkharji/sqlite.lua",
- -- optional, if using telescope for vim.ui.select
- -- "stevearc/dressing.nvim"
- },
- opts = {
- -- pickers = {
- -- find_files = {
- -- disable = false,
- -- sorting = "recent",
- -- },
- -- },
- -- your config goes here
- },
+ "prochri/telescope-all-recent.nvim",
+ enabled = false,
+ dependencies = {
+ "nvim-telescope/telescope.nvim",
+ "kkharji/sqlite.lua",
+ -- optional, if using telescope for vim.ui.select
+ -- "stevearc/dressing.nvim"
+ },
+ opts = {
+ -- pickers = {
+ -- find_files = {
+ -- disable = false,
+ -- sorting = "recent",
+ -- },
+ -- },
+ -- your config goes here
+ },
}
diff --git a/.config/nvim/lua/val/plugins/telescope.lua b/.config/nvim/lua/val/plugins/telescope.lua
index 87e5b2c..2d9452a 100644
--- a/.config/nvim/lua/val/plugins/telescope.lua
+++ b/.config/nvim/lua/val/plugins/telescope.lua
@@ -1,145 +1,146 @@
return {
- "nvim-telescope/telescope.nvim",
- branch = "master",
- dependencies = {
- "nvim-lua/plenary.nvim",
- { "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
- -- "nvim-tree/nvim-web-devicons",
- "echasnovski/mini.icons",
- "nvim-telescope/telescope-ui-select.nvim",
- "debugloop/telescope-undo.nvim",
- },
- config = function()
- local telescope = require("telescope")
- local actions = require("telescope.actions")
- local function copy_file_path()
- local entry = require("telescope.actions.state").get_selected_entry()
- local cb_opts = vim.opt.clipboard:get()
- if vim.tbl_contains(cb_opts, "unnamed") then
- vim.fn.setreg("*", entry.path)
- end
- if vim.tbl_contains(cb_opts, "unnamedplus") then
- vim.fn.setreg("+", entry.path)
- end
- vim.fn.setreg("", entry.path)
- end
- local function sudo_open()
- local entry = require("telescope.actions.state").get_selected_entry()
- print(entry.path)
- vim.api.nvim_command("e! " .. vim.fn.fnameescape("suda://" .. entry.path))
- end
- local screen_layout = "vertical"
- if vim.o.columns >= 120 then
- screen_layout = "horizontal"
- end
+ "nvim-telescope/telescope.nvim",
+ enabled = false,
+ branch = "master",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ { "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
+ -- "nvim-tree/nvim-web-devicons",
+ "echasnovski/mini.icons",
+ "nvim-telescope/telescope-ui-select.nvim",
+ "debugloop/telescope-undo.nvim",
+ },
+ config = function()
+ local telescope = require("telescope")
+ local actions = require("telescope.actions")
+ local function copy_file_path()
+ local entry = require("telescope.actions.state").get_selected_entry()
+ local cb_opts = vim.opt.clipboard:get()
+ if vim.tbl_contains(cb_opts, "unnamed") then
+ vim.fn.setreg("*", entry.path)
+ end
+ if vim.tbl_contains(cb_opts, "unnamedplus") then
+ vim.fn.setreg("+", entry.path)
+ end
+ vim.fn.setreg("", entry.path)
+ end
+ local function sudo_open()
+ local entry = require("telescope.actions.state").get_selected_entry()
+ print(entry.path)
+ vim.api.nvim_command("e! " .. vim.fn.fnameescape("suda://" .. entry.path))
+ end
+ local screen_layout = "vertical"
+ if vim.o.columns >= 120 then
+ screen_layout = "horizontal"
+ end
- telescope.setup({
- defaults = {
- layout_strategy = screen_layout,
- sorting_strategy = "ascending",
- layout_config = { height = 0.9 },
- path_display = { "smart" },
- dynamic_preview_title = true,
- mappings = {
- i = {
- [""] = actions.move_selection_previous, -- move to prev result
- [""] = actions.move_selection_next, -- move to next result
- [""] = actions.smart_send_to_qflist + actions.open_qflist,
- },
- n = {
- [""] = actions.preview_scrolling_up,
- [""] = actions.preview_scrolling_down,
- [""] = actions.smart_send_to_qflist + actions.open_qflist,
- [""] = actions.preview_scrolling_right,
- [""] = actions.preview_scrolling_left,
- ["l"] = actions.results_scrolling_right,
- ["h"] = actions.results_scrolling_left,
- ["q"] = actions.close,
- },
- },
- },
- pickers = {
- find_files = {
- -- theme = "dropdown",
- find_command = { "fd", "--hidden", "--type", "f" }, -- "--strip-cwd-prefix" },
- },
- },
- extensions = {
- file_browser = {
- grouped = true,
- hidden = { file_browser = true, folder_browser = true },
- use_ui_input = true,
- mappings = {
- n = {
- [""] = copy_file_path,
- [""] = sudo_open,
- [""] = require("telescope").extensions.file_browser.actions.goto_parent_dir,
- },
- },
- },
- ["ui-select"] = {
- require("telescope.themes").get_dropdown({
- -- even more opts
- }),
- },
- },
- })
+ telescope.setup({
+ defaults = {
+ layout_strategy = screen_layout,
+ sorting_strategy = "ascending",
+ layout_config = { height = 0.9 },
+ path_display = { "smart" },
+ dynamic_preview_title = true,
+ mappings = {
+ i = {
+ [""] = actions.move_selection_previous, -- move to prev result
+ [""] = actions.move_selection_next, -- move to next result
+ [""] = actions.smart_send_to_qflist + actions.open_qflist,
+ },
+ n = {
+ [""] = actions.preview_scrolling_up,
+ [""] = actions.preview_scrolling_down,
+ [""] = actions.smart_send_to_qflist + actions.open_qflist,
+ [""] = actions.preview_scrolling_right,
+ [""] = actions.preview_scrolling_left,
+ ["l"] = actions.results_scrolling_right,
+ ["h"] = actions.results_scrolling_left,
+ ["q"] = actions.close,
+ },
+ },
+ },
+ pickers = {
+ find_files = {
+ -- theme = "dropdown",
+ find_command = { "fd", "--hidden", "--type", "f" }, -- "--strip-cwd-prefix" },
+ },
+ },
+ extensions = {
+ file_browser = {
+ grouped = true,
+ hidden = { file_browser = true, folder_browser = true },
+ use_ui_input = true,
+ mappings = {
+ n = {
+ [""] = copy_file_path,
+ [""] = sudo_open,
+ [""] = require("telescope").extensions.file_browser.actions.goto_parent_dir,
+ },
+ },
+ },
+ ["ui-select"] = {
+ require("telescope.themes").get_dropdown({
+ -- even more opts
+ }),
+ },
+ },
+ })
- telescope.load_extension("fzf")
- telescope.load_extension("file_browser")
- telescope.load_extension("ui-select")
+ telescope.load_extension("fzf")
+ telescope.load_extension("file_browser")
+ telescope.load_extension("ui-select")
- -- set keymaps
- local keymap = vim.keymap -- for conciseness
+ -- set keymaps
+ local keymap = vim.keymap -- for conciseness
- -- keymap.set("n", "ff", function()
- -- require("telescope.builtin").find_files({ results_title = vim.fn.getcwd() })
- -- end, { desc = "Fuzzy find files in cwd" })
+ -- keymap.set("n", "ff", function()
+ -- require("telescope.builtin").find_files({ results_title = vim.fn.getcwd() })
+ -- end, { desc = "Fuzzy find files in cwd" })
- -- keymap.set("n", "fF", "Telescope find_files cwd=~", { desc = "Fuzzy find files in ~" })
- keymap.set(
- "n",
- "fe",
- ":Telescope file_browser path=%:p:h select_buffer=true initial_mode=normal",
- { desc = "File Explorer" }
- )
- -- keymap.set("n", "fs", "Telescope live_grep", { desc = "Find string in cwd" })
- -- keymap.set(
- -- "n",
- -- "fl",
- -- "Telescope lsp_workspace_symbols initial_mode=normal",
- -- { desc = "Find current document LSP symbols in workspace" }
- -- )
- -- keymap.set(
- -- "n",
- -- "fL",
- -- "Telescope lsp_dynamic_workspace_symbols initial_mode=normal",
- -- { desc = "Find in all LSP sworkspace symbols" }
- -- )
- keymap.set(
- "n",
- "ft",
- "Telescope treesitter initial_mode=normal",
- { desc = "Find symbol in current buffer" }
- )
- -- keymap.set(
- -- "n",
- -- "fb",
- -- "Telescope current_buffer_fuzzy_find",
- -- { desc = "Find string in current buffer" }
- -- )
- -- keymap.set(
- -- "n",
- -- "fc",
- -- "Telescope grep_string initial_mode=normal",
- -- { desc = "Find string under cursor in cwd" }
- -- )
- -- keymap.set(
- -- "n",
- -- "fr",
- -- "Telescope resume initial_mode=normal",
- -- { desc = "Resume last Telescope search" }
- -- )
- -- keymap.set("n", "fo", ":Telescope oldfiles initial_mode=normal", { desc = "Recent Files" })
- end,
+ -- keymap.set("n", "fF", "Telescope find_files cwd=~", { desc = "Fuzzy find files in ~" })
+ keymap.set(
+ "n",
+ "fe",
+ ":Telescope file_browser path=%:p:h select_buffer=true initial_mode=normal",
+ { desc = "File Explorer" }
+ )
+ -- keymap.set("n", "fs", "Telescope live_grep", { desc = "Find string in cwd" })
+ -- keymap.set(
+ -- "n",
+ -- "fl",
+ -- "Telescope lsp_workspace_symbols initial_mode=normal",
+ -- { desc = "Find current document LSP symbols in workspace" }
+ -- )
+ -- keymap.set(
+ -- "n",
+ -- "fL",
+ -- "Telescope lsp_dynamic_workspace_symbols initial_mode=normal",
+ -- { desc = "Find in all LSP sworkspace symbols" }
+ -- )
+ keymap.set(
+ "n",
+ "ft",
+ "