diff --git a/backgrounds/.config/backgrounds/unviverse/blue_universe.jpg b/backgrounds/.config/backgrounds/universe/blue_universe.jpg similarity index 100% rename from backgrounds/.config/backgrounds/unviverse/blue_universe.jpg rename to backgrounds/.config/backgrounds/universe/blue_universe.jpg diff --git a/backgrounds/.config/backgrounds/unviverse/magenta.jpg b/backgrounds/.config/backgrounds/universe/magenta.jpg similarity index 100% rename from backgrounds/.config/backgrounds/unviverse/magenta.jpg rename to backgrounds/.config/backgrounds/universe/magenta.jpg diff --git a/backgrounds/.config/backgrounds/unviverse/universe.jpg b/backgrounds/.config/backgrounds/universe/universe.jpg similarity index 100% rename from backgrounds/.config/backgrounds/unviverse/universe.jpg rename to backgrounds/.config/backgrounds/universe/universe.jpg diff --git a/hyprlock/.config/hypr/hyprlock.conf b/hyprlock/.config/hypr/hyprlock.conf index 3215643..e7fc2d9 100644 --- a/hyprlock/.config/hypr/hyprlock.conf +++ b/hyprlock/.config/hypr/hyprlock.conf @@ -13,7 +13,7 @@ general { # BACKGROUND background { monitor = - path = $WALLPAPER + path = /home/liph/.config/backgrounds/universe/magenta.jpg blur_passes = 2 color = $base } diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf index 217979e..e406f7f 100644 --- a/kitty/.config/kitty/kitty.conf +++ b/kitty/.config/kitty/kitty.conf @@ -11,4 +11,4 @@ bold_italic_font auto font_size 14 -background_opacity 0.9 +background_opacity 0.90 diff --git a/niri/.config/niri/config.kdl b/niri/.config/niri/config.kdl new file mode 100644 index 0000000..88dcb4d --- /dev/null +++ b/niri/.config/niri/config.kdl @@ -0,0 +1,322 @@ +// This config is in the KDL format: https://kdl.dev +// "/-" comments out the following node. +// Check the wiki for a full description of the configuration: +// https://yalter.github.io/niri/Configuration:-Introduction +input { + keyboard { + xkb { + layout "ch" + variant "de_mac" + model "apple" + } + + } + touchpad { + tap + natural-scroll + } + + mouse { + } + + trackpoint { + } +} +// x11 support for wayland +xwayland-satellite { + path "xwayland-satellite" +} +environment { + ELECTRON_OZONE_PLATFORM_HINT "auto" + ELECTRON_ENABLE_LOGGING "1" +} + +output "eDP-1" { + mode "1920x1080@120.030" + position x=1280 y=0 +} +layout { + gaps 2 + center-focused-column "never" + preset-column-widths { + proportion 0.3333 + proportion 0.5 + proportion 0.66667 + } + default-column-width { proportion 0.5; } + focus-ring { + width 2 + active-color "#b4befe" + inactive-color "#a6adc8" + } + border { + off + + width 4 + active-color "#eba0ac" + inactive-color "#505050" + urgent-color "#9b0000" + } + + shadow { + softness 30 + spread 5 + offset x=0 y=5 + color "#0007" + } + struts { + } +} + +spawn-at-startup "waybar" "-c" "/home/liph/.config/waybar-niri/config.jsonc" "-s" "/home/liph/.config/waybar-niri/style.css" +spawn-at-startup "swaync" +spawn-at-startup "swww-daemon" +spawn-at-startup "kitty" +spawn-at-startup "librewolf" +spawn-at-startup "sh" "-c" "sleep 5 && exec swayidle -w timeout 300 hyprlock timeout 600 'niri msg action power-off-monitors' resume 'niri msg action power-on-monitors' timeout 3600 'systemctl suspend'" + + +prefer-no-csd + +gestures { + hot-corners { + off + } +} + +// Open the Firefox picture-in-picture player as floating by default. +// window-rule { +// match app-id=r#"librewolf$"# title="^Picture-in-Picture$" +// open-floating false +// } + +workspace "1" +workspace "2" +workspace "3" +// workspace "4" +// workspace "5" + +// Example: block out two password managers from screen capture. +// (This example rule is commented out with a "/-" in front.) +/-window-rule { + match app-id=r#"^org\.keepassxc\.KeePassXC$"# + match app-id=r#"^org\.gnome\.World\.Secrets$"# + + block-out-from "screen-capture" + +} + +// terminal window-rule +window-rule { + match at-startup=true app-id="kitty" + open-on-workspace "1" + clip-to-geometry true +} +window-rule { + match at-startup=false app-id="kitty" + clip-to-geometry true +} + +// browser window-rules +window-rule { + match at-startup=true app-id="librewolf" + open-on-workspace "2" + open-maximized true + // geometry-corner-radius 5 + clip-to-geometry true +} +window-rule { + match at-startup=false app-id="librewolf" + clip-to-geometry true +} + +window-rule { + match app-id="Claude" + open-on-workspace "3" + default-column-width { proportion 0.6667; } + clip-to-geometry true +} + +window-rule { + geometry-corner-radius 5 + clip-to-geometry true +} + + +binds { + // Mod+Shift+Slash { show-hotkey-overlay; } + Mod+Shift+L { spawn "hyprlock"; } + + Mod+Alt+P hotkey-overlay-title="Open Bitwarden" { spawn "bitwarden-desktop"; } + 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" { spawn "tidal-hifi" "--ozone-platform=wayland" "--enable-features=WaylandWindowDecorations"; } + Mod+Alt+O hotkey-overlay-title="Open Obsidian" { spawn "obsidian"; } + Mod+Alt+C hotkey-overlay-title="Open Claude" { spawn "claude-desktop"; } + Mod+Alt+Z hotkey-overlay-title="Open Librewolf" { spawn "librewolf"; } + Mod+Alt+Return hotkey-overlay-title="Open Kitty" { spawn "kitty"; } + Mod+Alt+Space hotkey-overlay-title="Open Wofi" { spawn "wofi" "--show" "drun"; } + // Brightness Controll + Mod+Ctrl+0 { spawn "sh" "-c" "~/scripts/layer_notify.sh 0"; } + Mod+Ctrl+1 { spawn "sh" "-c" "~/scripts/layer_notify.sh 1"; } + Mod+Ctrl+2 { spawn "sh" "-c" "~/scripts/layer_notify.sh 2"; } + Mod+Ctrl+3 { spawn "sh" "-c" "~/scripts/layer_notify.sh 3"; } + + // Brightness controls + Mod+Ctrl+4 { spawn "sh" "-c" "~/scripts/niri_br_up.sh"; } + Mod+Ctrl+5 { spawn "sh" "-c" "~/scripts/niri_br_down.sh"; } + Mod+Ctrl+6 { spawn "sh" "-c" "~/scripts/niri_br_blue.sh"; } + Mod+Ctrl+7 { spawn "sh" "-c" "~/scripts/niri_br_reset.sh"; } + + // Swaync Notifications + Mod+Ctrl+8 { spawn "swaync-client" "-t"; } + + Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; } + XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; } + XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; } + XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; } + + XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } + + Mod+O repeat=false { toggle-overview; } + + Mod+Shift+C repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Ctrl+H { move-column-left; } + Mod+Ctrl+J { move-window-down; } + Mod+Ctrl+K { move-window-up; } + Mod+Ctrl+L { move-column-right; } + + // 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+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+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+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+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+U { focus-workspace-down; } + Mod+I { focus-workspace-up; } + Mod+Alt+J { move-column-to-workspace-down; } + Mod+Alt+K { move-column-to-workspace-up; } + Mod+Alt+U { move-column-to-workspace-down; } + Mod+Alt+I { move-column-to-workspace-up; } + + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+U { move-workspace-down; } + Mod+Shift+I { move-workspace-up; } + + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } + + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + // Mod+Ctrl+1 { move-column-to-workspace 1; } + // Mod+Ctrl+2 { move-column-to-workspace 2; } + // Mod+Ctrl+3 { move-column-to-workspace 3; } + // Mod+Ctrl+4 { move-column-to-workspace 4; } + // Mod+Ctrl+5 { move-column-to-workspace 5; } + // Mod+Ctrl+6 { move-column-to-workspace 6; } + // Mod+Ctrl+7 { move-column-to-workspace 7; } + // Mod+Ctrl+8 { move-column-to-workspace 8; } + // Mod+Ctrl+9 { move-column-to-workspace 9; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+R { switch-preset-column-width; } + // Cycling through the presets in reverse order is also possible. + // Mod+R { switch-preset-column-width-back; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + + Mod+Ctrl+F { expand-column-to-available-width; } + + // Mod+C { center-column; } + + Mod+Ctrl+C { center-visible-columns; } + + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + // Finer height adjustments when in column with other windows. + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + // Move the focused window between the floating and the tiling layout. + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + Mod+W { toggle-column-tabbed-display; } + + // screenshot + Mod+Alt+4 { spawn "sh" "-c" "grim -g \"$(slurp)\" ~/Pictures/screenshot-$(date +%Y%m%d-%H%M%S).png && notify-send 'Screenshot' 'Area screenshot saved'"; } + // Fullscreen and save + Mod+Alt+5 { spawn "sh" "-c" "grim ~/Pictures/screenshot-$(date +%Y%m%d-%H%M%S).png && notify-send -t 2000 'Screenshot' 'Fullscreen screenshot saved'"; } + // Select area to clipboard + Mod+Shift+4 { spawn "sh" "-c" "grim -g \"$(slurp)\" - | wl-copy && notify-send -t 2000 'Screenshot' 'Fullscreen copied to clipboard'"; } + + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { quit; } + Ctrl+Alt+Delete { quit; } + + Mod+Shift+P { power-off-monitors; } +} diff --git a/niri/.config/niri/waybar-niri/config.jsonc b/niri/.config/niri/waybar-niri/config.jsonc new file mode 100644 index 0000000..7cf16f6 --- /dev/null +++ b/niri/.config/niri/waybar-niri/config.jsonc @@ -0,0 +1,126 @@ +// -*- mode: jsonc -*- +{ + "layer": "top", + "position": "top", + "height": 30, + "spacing": 0, + "modules-left": ["custom/logo", "cpu", "memory", "bluetooth", "mpris"], + "modules-center": ["niri/workspaces"], + "modules-right": [ + "tray", + "power-profiles-daemon", + // "niri/language", + "pulseaudio", + "network", + "battery", + "clock", + "custom/power", + ], + "niri/workspaces": { + "format": "{icon}", + "format-icons": { + // Named workspaces + // (you need to configure them in niri) + // "1", + // "2": "2", + // "3": "3", + // "4": "4", + // "5": "5", + // "6": "6", + // Icons by state + "active": "", + "default": "", + }, + }, + "mpris": { + "format": "DEFAULT: {player_icon} {dynamic}", + "format-paused": "DEFAULT: {status_icon} {dynamic}", + "player-icons": { + "default": "▶", + "mpv": "🎵", + }, + "status-icons": { + "paused": "⏸", + }, + }, + "tray": { + "icon-size": 14, + "spacing": 10, + }, + "clock": { + "format": "{:%I:%M:%S %p}", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}", + "interval": 1, + }, + "cpu": { + "format": " {usage}%", + "tooltip": false, + "interval": 1, + }, + "memory": { + "format": " {}%", + "interval": 1, + }, + "battery": { + "interval": 1, + "states": { + "warning": 30, + "critical": 15, + }, + "format": "{icon} {capacity}%", + "format-full": "{icon} {capacity}%", + "format-charging": "󰂄 {capacity}%", + "format-plugged": "󰂄 {capacity}%", + "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󰂂"], + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "󰌪", + }, + }, + "network": { + "format-wifi": "󰖩 ", + "format-ethernet": "󰈀", + "format-disconnected": "󱚵", + "format-alt": "{bandwidthDownBytes}", + "interval": 1, + }, + "pulseaudio": { + "format": "{icon} {volume}%", + "format-muted": "󰝟", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["󰕿", "󰖀", "󰕾"], + }, + "on-click": "pavucontrol", + }, + "custom/power": { + "format": "⏻", + "tooltip": false, + "on-click": "wlogout -l ~/.config/niri/wlogout/layout", + }, + "custom/logo": { + "format": "󰣇", + "on-click": "wofi --show drun", + }, + "bluetooth": { + "format": "󰂯", + "format-disabled": "󰂲", + "format-connected": "󰂱", + "on-click": "blueman-manager", + }, +} diff --git a/niri/.config/niri/waybar-niri/mocha.css b/niri/.config/niri/waybar-niri/mocha.css new file mode 100644 index 0000000..0eb6a82 --- /dev/null +++ b/niri/.config/niri/waybar-niri/mocha.css @@ -0,0 +1,26 @@ +@define-color rosewater #f5e0dc; +@define-color flamingo #f2cdcd; +@define-color pink #f5c2e7; +@define-color mauve #cba6f7; +@define-color red #f38ba8; +@define-color maroon #eba0ac; +@define-color peach #fab387; +@define-color yellow #f9e2af; +@define-color green #a6e3a1; +@define-color teal #94e2d5; +@define-color sky #89dceb; +@define-color sapphire #74c7ec; +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color text #cdd6f4; +@define-color subtext1 #bac2de; +@define-color subtext0 #a6adc8; +@define-color overlay2 #9399b2; +@define-color overlay1 #7f849c; +@define-color overlay0 #6c7086; +@define-color surface2 #585b70; +@define-color surface1 #45475a; +@define-color surface0 #313244; +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; diff --git a/niri/.config/niri/waybar-niri/style.css b/niri/.config/niri/waybar-niri/style.css new file mode 100644 index 0000000..aba39bf --- /dev/null +++ b/niri/.config/niri/waybar-niri/style.css @@ -0,0 +1,125 @@ +* { + font-family: "FiraCode Nerd Font"; + font-size: 13px; +} +window#waybar { + background-color: rgba(43, 48, 59, 0.5); + 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; +} +button { + border: none; + border-radius: 0; +} +button:hover { + background: inherit; +} +#workspaces { + padding: 5px; +} +#workspaces button { + padding: 0 10px; + background-color: transparent; + color: @theme_fg_color; + border-radius: 10px; +} +#workspaces button:hover { + color: #e5c890; +} +#workspaces button.active, +#workspaces button.default, +#workspaces button.focused { + background: #babbf1; +} +#workspaces button.urgent { + background-color: #eb4d4b; +} +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#power-profiles-daemon, +#mpd { + padding: 0 10px; + color: @theme_fg_color; +} +#window, +#workspaces { + margin: 0 4px; +} +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} +#clock, +#battery, +#cpu, +#memory, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#custom-power, +#bluetooth, +#power-profiles-daemon { + padding: 5px 15px; + color: @theme_text_color; + background-color: alpha(@theme_unfocused_bg_color, 0.4); + border-radius: 20px; + margin: 0 4px; +} +#custom-power { + background-color: #e78284; + border-radius: 20px 0 0 20px; + transition: all 250ms ease-in-out; +} +#battery.charging { + color: #00ff1c; +} +#clock { + border-radius: 20px; + margin: 0 5px; +} +#pulseaudio.muted { + color: orange; +} +#network.disconnected { + color: red; +} +#tray { + border-radius: 20px; + margin: 0 5px; +} +#custom-logo { + background-color: #8caaee; + padding: 0 17px; + border-radius: 0 20px 20px 0; +} +#custom-power { + margin: 0; +} +#bluetooth { + border-radius: 20px; + margin: 0 5px; +} diff --git a/niri/.config/niri/wlogout/layout b/niri/.config/niri/wlogout/layout new file mode 100644 index 0000000..4c341d6 --- /dev/null +++ b/niri/.config/niri/wlogout/layout @@ -0,0 +1,36 @@ +{ + "label": "lock", + "action": "hyprlock", + "text": "Lock", + "keybind": "l" +} +{ + "label": "logout", + "action": "niri msg action quit", + "text": "Logout", + "keybind": "e" +} +{ + "label": "suspend", + "action": "systemctl suspend", + "text": "Suspend", + "keybind": "u" +} +{ + "label": "hibernate", + "action": "systemctl hibernate", + "text": "Hibernate", + "keybind": "h" +} +{ + "label": "shutdown", + "action": "systemctl poweroff", + "text": "Shutdown", + "keybind": "s" +} +{ + "label": "reboot", + "action": "systemctl reboot", + "text": "Reboot", + "keybind": "r" +} diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index a5a9d21..a663723 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -1,6 +1,7 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "LuaSnip": { "branch": "master", "commit": "fb525166ccc30296fb3457441eb979113de46b00" }, + "R.nvim": { "branch": "main", "commit": "b7de6e6f43d79e31b077096ca0089fde85190f46" }, "barbecue": { "branch": "main", "commit": "cd7e7da622d68136e13721865b4d919efd6325ed" }, "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, @@ -8,6 +9,7 @@ "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" }, "cmp-tabnine": { "branch": "main", "commit": "c0167cdc86c15e782c5461ee62aebee89231c2ed" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "conform.nvim": { "branch": "master", "commit": "8314f4c9e205e7f30b62147069729f9a1227d8bf" }, @@ -16,8 +18,8 @@ "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "fzf-lua": { "branch": "main", "commit": "a03d68e40eea835a1cdbd9f93049708dab3621e6" }, - "gitsigns.nvim": { "branch": "main", "commit": "72acb69020c92d99cf388bfeb390481ccec50c04" }, + "fzf-lua": { "branch": "main", "commit": "b8d1356b7120f5cf111709cb2fa504096248fb26" }, + "gitsigns.nvim": { "branch": "main", "commit": "42d6aed4e94e0f0bbced16bbdcc42f57673bd75e" }, "grapple.nvim": { "branch": "main", "commit": "b41ddfc1c39f87f3d1799b99c2f0f1daa524c5f7" }, "harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, @@ -25,7 +27,7 @@ "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, "luvit-meta": { "branch": "main", "commit": "0ea4ff636c5bb559ffa78108561d0976f4de9682" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "e5f73a9e3d271d449685f1059eb1868f4ba276f6" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "fe661093f4b05136437b531e7f959af2a2ae66c8" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, @@ -35,7 +37,7 @@ "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" }, "nvim-cmp": { "branch": "main", "commit": "85bbfad83f804f11688d1ab9486b459e699292d6" }, "nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" }, - "nvim-lspconfig": { "branch": "master", "commit": "5a82e10b2df0ed31bec642c1c0344baee7c458b6" }, + "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" }, "nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" }, "nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, "nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" }, @@ -54,8 +56,8 @@ "telescope.nvim": { "branch": "master", "commit": "3333a52ff548ba0a68af6d8da1e54f9cd96e9179" }, "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, "vim-test": { "branch": "master", "commit": "aa619692ff48a3cf3e6bdb893765039488d4e5f3" }, - "vimtex": { "branch": "master", "commit": "1b56d5ae6e19cd018f1adaf4868561b087698b9b" }, + "vimtex": { "branch": "master", "commit": "3abfa1ff75b81c01e4305e8062549ac0ea5cc9b8" }, "vimux": { "branch": "master", "commit": "614f0bb1fb598f97accdcea71d5f7b18d7d62436" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }, - "yazi.nvim": { "branch": "main", "commit": "30d8c852a0ca52437dad84cf5c92962d565a54a9" } + "yazi.nvim": { "branch": "main", "commit": "4a8bd3284708e11e48bcd865892902a46abdcce0" } } diff --git a/nvim/.config/nvim/lua/plugins/cmp.lua b/nvim/.config/nvim/lua/plugins.inactive/cmp_1.lua similarity index 100% rename from nvim/.config/nvim/lua/plugins/cmp.lua rename to nvim/.config/nvim/lua/plugins.inactive/cmp_1.lua diff --git a/nvim/.config/nvim/lua/plugins.inactive/mason.lua b/nvim/.config/nvim/lua/plugins.inactive/mason.lua new file mode 100644 index 0000000..dbaa144 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins.inactive/mason.lua @@ -0,0 +1,30 @@ +-- plugins/mason.lua +return { + { + "williamboman/mason.nvim", + lazy = false, + config = function() + require("mason").setup() + end, + }, + { + "williamboman/mason-lspconfig.nvim", + lazy = false, + opts = { + auto_install = true, + ensure_installed = { + "lua_ls", + "pyright", + "bashls", + "ts_ls", + "solargraph", + "html", + "texlab", + "ltex", + "dockerls", + "yamlls", + "taplo", + }, + }, + }, +} diff --git a/nvim/.config/nvim/lua/plugins/conform.lua b/nvim/.config/nvim/lua/plugins/conform.lua index 9ebe728..c8761fd 100644 --- a/nvim/.config/nvim/lua/plugins/conform.lua +++ b/nvim/.config/nvim/lua/plugins/conform.lua @@ -7,7 +7,6 @@ return { formatters_by_ft = { -- Lua lua = { "stylua" }, - -- JavaScript/TypeScript/Web javascript = { "prettier" }, typescript = { "prettier" }, @@ -24,32 +23,24 @@ return { markdown = { "prettier" }, graphql = { "prettier" }, handlebars = { "prettier" }, - -- Toml - toml = { "tombi" }, - - -- text + toml = { "taplo" }, -- Changed from tombi to taplo -- Ruby ruby = { "rubocop" }, - - -- latex + -- LaTeX tex = { "tex-fmt" }, - - -- Python (black first, then isort for imports) - python = { "black", "isort" }, - + -- Python (ruff replaces black + isort) + python = { "ruff_format" }, -- Changed: consolidated to ruff -- Bash/Shell - sh = { "beautysh" }, - bash = { "beautysh" }, - zsh = { "beautysh" }, + sh = { "shfmt" }, -- Changed: using shfmt instead of beautysh + bash = { "shfmt" }, -- Changed: using shfmt instead of beautysh + zsh = { "beautysh" }, -- Keep beautysh for zsh }, - -- Format on save format_on_save = { timeout_ms = 500, lsp_fallback = true, }, - -- Formatter settings formatters = { stylua = { @@ -58,12 +49,14 @@ return { prettier = { prepend_args = { "--tab-width", "2" }, }, + shfmt = { + prepend_args = { "-i", "2" }, -- 2 spaces for bash/sh + }, beautysh = { - prepend_args = { "--indent-size", "2" }, -- 2 spaces for bash + prepend_args = { "--indent-size", "2" }, -- 2 spaces for zsh }, }, }) - -- Manual format keymap (same as your old gf) vim.keymap.set("n", "gf", function() require("conform").format({ @@ -72,7 +65,6 @@ return { timeout_ms = 1000, }) end, { desc = "Format buffer" }) - -- Optional: format on visual selection vim.keymap.set("v", "gf", function() require("conform").format({ diff --git a/nvim/.config/nvim/lua/plugins/lsp-config.lua b/nvim/.config/nvim/lua/plugins/lsp-config.lua index 2f280b4..791a894 100644 --- a/nvim/.config/nvim/lua/plugins/lsp-config.lua +++ b/nvim/.config/nvim/lua/plugins/lsp-config.lua @@ -11,6 +11,19 @@ return { lazy = false, opts = { auto_install = true, + ensure_installed = { + "lua_ls", + "pyright", + "bashls", + "ts_ls", + "solargraph", + "html", + "texlab", + "ltex", + "dockerls", -- Fixed: correct name + "yamlls", -- Fixed: correct name (not yaml-language-server) + "taplo", -- TOML LSP + }, }, }, { @@ -22,17 +35,37 @@ 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) + if client.server_capabilities.documentSymbolProvider then + navic.attach(client, bufnr) + end + end -- Define server configurations local servers = { - ts_ls = {}, - tombi = {}, - solargraph = {}, + ts_ls = { + capabilities = capabilities, + on_attach = on_attach, + }, + taplo = { + capabilities = capabilities, + on_attach = on_attach, + }, + solargraph = { + capabilities = capabilities, + on_attach = on_attach, + }, textlsp = { filetypes = { "ltx", "txt" }, + capabilities = capabilities, + on_attach = on_attach, }, - -- Add texlab for LaTeX texlab = { + capabilities = capabilities, + on_attach = on_attach, settings = { texlab = { build = { @@ -41,7 +74,7 @@ return { onSave = true, }, forwardSearch = { - executable = "zathura", -- Change to your PDF viewer if different + executable = "zathura", args = { "--synctex-forward", "%l:1:%f", "%p" }, }, chktex = { @@ -51,17 +84,29 @@ return { }, }, }, - -- Optional: Add ltex for grammar/spell checking (can be resource-heavy) ltex = { + capabilities = capabilities, + on_attach = on_attach, + filetypes = { "latex", "tex", "bib", "markdown" }, settings = { ltex = { - language = "en-US", -- or "de-DE", "de-CH", etc. + language = "en-US", enabled = { "latex", "tex", "bib" }, + java = { + path = "", + initialHeapSize = 64, + maximumHeapSize = 512, + }, }, }, }, - html = {}, + html = { + capabilities = capabilities, + on_attach = on_attach, + }, lua_ls = { + capabilities = capabilities, + on_attach = on_attach, settings = { Lua = { diagnostics = { @@ -76,9 +121,14 @@ return { }, }, }, - pyright = {}, + pyright = { + capabilities = capabilities, + on_attach = on_attach, + }, bashls = { filetypes = { "sh", "bash", "zsh" }, + capabilities = capabilities, + on_attach = on_attach, settings = { bashIde = { globPattern = "*@(.sh|.inc|.bash|.command|.zsh)", @@ -86,17 +136,26 @@ return { }, }, }, + dockerls = { + capabilities = capabilities, + on_attach = on_attach, + }, + yamlls = { + capabilities = capabilities, + on_attach = on_attach, + settings = { + yaml = { + schemas = { + ["https://json.schemastore.org/docker-compose.json"] = "docker-compose*.{yml,yaml}", + ["https://json.schemastore.org/github-workflow.json"] = ".github/workflows/*", + }, + }, + }, + }, } - -- Setup each server with the new API + -- Setup each server for server, config in pairs(servers) do - config.capabilities = capabilities - -- Add navic on_attach for breadcrumbs - config.on_attach = function(client, bufnr) - if client.server_capabilities.documentSymbolProvider then - navic.attach(client, bufnr) - end - end vim.lsp.config[server] = config vim.lsp.enable(server) end diff --git a/nvim/.config/nvim/lua/plugins/mason.lua b/nvim/.config/nvim/lua/plugins/mason.lua deleted file mode 100644 index e18bb58..0000000 --- a/nvim/.config/nvim/lua/plugins/mason.lua +++ /dev/null @@ -1,39 +0,0 @@ -return { - { - "WhoIsSethDaniel/mason-tool-installer.nvim", - dependencies = { "williamboman/mason.nvim" }, - opts = { - ensure_installed = { - -- Formatters (you already have these) - "luaformatter", - "prettier", - "rubocop", - "black", - "isort", - "beautysh", - "tombi", - "tex-fmt", - "texlab", - - -- Linters (add these) - "ruff", -- Python (fast!) - "shellcheck", -- Bash - "jsonlint", -- JSON - "stylelint", -- CSS/SCSS - "htmlhint", -- HTML - "hadolint", -- Dockerfile - "eslint_d", -- JavaScript/TypeScript - "markdownlint", -- Markdown - - -- LSP servers (optional) - "bash-language-server", - "dockerfile-language-server", - "ts_ls", - "solargraph", - "html", - "lua_ls", - "pyright", - }, - }, - }, -} diff --git a/nvim/.config/nvim/lua/plugins/neo-tree.lua b/nvim/.config/nvim/lua/plugins/neo-tree.lua index 3acf6dd..37a9fc4 100644 --- a/nvim/.config/nvim/lua/plugins/neo-tree.lua +++ b/nvim/.config/nvim/lua/plugins/neo-tree.lua @@ -1,13 +1,13 @@ return { - "nvim-neo-tree/neo-tree.nvim", - branch = "v3.x", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", - "MunifTanjim/nui.nvim", - }, - config = function() - vim.keymap.set("n", "ee", ":Neotree filesystem reveal left", {}) - vim.keymap.set("n", "bf", ":Neotree buffers reveal float", {}) - end, + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + }, + config = function() + vim.keymap.set("n", "ee", ":Neotree filesystem reveal left", {}) + vim.keymap.set("n", "bf", ":Neotree buffers reveal float", {}) + end, } diff --git a/nvim/.config/nvim/lua/plugins/nvim-lint.lua b/nvim/.config/nvim/lua/plugins/nvim-lint.lua index 3d6f662..063e7f7 100644 --- a/nvim/.config/nvim/lua/plugins/nvim-lint.lua +++ b/nvim/.config/nvim/lua/plugins/nvim-lint.lua @@ -4,58 +4,48 @@ return { event = { "BufReadPre", "BufNewFile" }, config = function() local lint = require("lint") - lint.linters_by_ft = { -- Python python = { "ruff" }, -- Fast! Replaces pylint, flake8, isort -- Alternative: python = { "pylint" }, -- Or combine: python = { "ruff", "mypy" }, -- ruff + type checking - -- Bash/Shell sh = { "shellcheck" }, bash = { "shellcheck" }, - zsh = { "shellcheck" }, - + zsh = { "zsh" }, -- JSON json = { "jsonlint" }, jsonc = { "jsonlint" }, - + -- YAML (added for your compose files) + yaml = { "yamllint" }, -- CSS/SCSS css = { "stylelint" }, scss = { "stylelint" }, sass = { "stylelint" }, less = { "stylelint" }, - -- HTML html = { "htmlhint" }, -- Alternative: html = { "tidy" }, - -- Dockerfile (bonus) dockerfile = { "hadolint" }, - -- JavaScript/TypeScript (bonus) javascript = { "eslint_d" }, typescript = { "eslint_d" }, javascriptreact = { "eslint_d" }, typescriptreact = { "eslint_d" }, - -- Ruby (you already have this formatter) ruby = { "rubocop" }, - -- Markdown (bonus) markdown = { "markdownlint" }, } - -- Auto-lint on save and when leaving insert mode local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) - vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { group = lint_augroup, callback = function() lint.try_lint() end, }) - -- Manual lint trigger vim.keymap.set("n", "l", function() lint.try_lint() diff --git a/nvim/.config/nvim/lua/plugins/r-nvim.lua b/nvim/.config/nvim/lua/plugins/r-nvim.lua new file mode 100644 index 0000000..7da97c7 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/r-nvim.lua @@ -0,0 +1,16 @@ +return { + "R-nvim/R.nvim", + lazy = false, -- load immediately + config = function() + local opts = { + R_args = { "--quiet", "--no-save" }, + min_editor_width = 72, + hl_term = true, -- Add this line for terminal highlighting + rconsole_width = 78, + } + require("r").setup(opts) + end, + dependencies = { + "R-nvim/cmp-r", + }, +} diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua index 9a908bb..baf3e3a 100644 --- a/nvim/.config/nvim/lua/plugins/treesitter.lua +++ b/nvim/.config/nvim/lua/plugins/treesitter.lua @@ -18,6 +18,9 @@ return { "lua", "vim", "latex", + "r", + "rnoweb", -- for Sweave files + "yaml", -- for YAML headers in Rmdkk }, -- Auto install missing parsers diff --git a/nvim/.config/nvim/lua/vim-options.lua b/nvim/.config/nvim/lua/vim-options.lua index c6ce233..a8c43c3 100644 --- a/nvim/.config/nvim/lua/vim-options.lua +++ b/nvim/.config/nvim/lua/vim-options.lua @@ -3,6 +3,7 @@ vim.cmd("set tabstop=2") vim.cmd("set softtabstop=2") vim.cmd("set shiftwidth=2") vim.g.mapleader = " " +vim.g.maplocalleader = "," vim.g.background = "light" vim.opt.swapfile = false diff --git a/scripts/scripts/kanata.sh b/scripts/scripts/kanata.sh index a6dcd61..23221ba 100755 --- a/scripts/scripts/kanata.sh +++ b/scripts/scripts/kanata.sh @@ -1 +1,3 @@ kanata --cfg ~/.config/kanata/config.kbd & + +sudo mount -a diff --git a/scripts/scripts/niri_br_blue.sh b/scripts/scripts/niri_br_blue.sh new file mode 100755 index 0000000..f19b164 --- /dev/null +++ b/scripts/scripts/niri_br_blue.sh @@ -0,0 +1,20 @@ +#!/bin/bash +STATE_FILE="$HOME/.cache/brightness_state" +TEMP_FILE="$HOME/.cache/bluelight_state" + +CURRENT=$(cat "$TEMP_FILE" 2>/dev/null || echo "6500") +BRIGHTNESS=$(cat "$STATE_FILE" 2>/dev/null || echo "1.0") + +if [ "$CURRENT" = "6500" ]; then + NEW=3400 + MSG="ON" +else + NEW=6500 + MSG="OFF" +fi + +pkill -9 gammastep +gammastep -O $NEW -b "$BRIGHTNESS" &>/dev/null & + +echo "$NEW" >"$TEMP_FILE" +notify-send "Blue Light" "$MSG" -t 1000 diff --git a/scripts/scripts/niri_br_down.sh b/scripts/scripts/niri_br_down.sh new file mode 100755 index 0000000..ec25e02 --- /dev/null +++ b/scripts/scripts/niri_br_down.sh @@ -0,0 +1,15 @@ +#!/bin/bash +STATE_FILE="$HOME/.cache/brightness_state" +TEMP_FILE="$HOME/.cache/bluelight_state" + +CURRENT=$(cat "$STATE_FILE" 2>/dev/null || echo "1.0") +NEW=$(echo "$CURRENT - 0.1" | bc -l) +if (($(echo "$NEW < 0.3" | bc -l))); then NEW=0.3; fi + +TEMP=$(cat "$TEMP_FILE" 2>/dev/null || echo "6500") + +pkill -9 gammastep +gammastep -O $TEMP -b "$NEW" &>/dev/null & + +echo "$NEW" >"$STATE_FILE" +notify-send "Brightness" "$(printf '%.0f%%' $(echo "$NEW * 100" | bc))" -t 1000 diff --git a/scripts/scripts/niri_br_reset.sh b/scripts/scripts/niri_br_reset.sh new file mode 100755 index 0000000..41e6b4c --- /dev/null +++ b/scripts/scripts/niri_br_reset.sh @@ -0,0 +1,11 @@ +#!/bin/bash +STATE_FILE="$HOME/.cache/brightness_state" +TEMP_FILE="$HOME/.cache/bluelight_state" + +TEMP=$(cat "$TEMP_FILE" 2>/dev/null || echo "6500") + +pkill -9 gammastep +gammastep -O $TEMP -b 1.0 &>/dev/null & + +echo "1.0" >"$STATE_FILE" +notify-send "Brightness" "100%" -t 1000 diff --git a/scripts/scripts/niri_br_up.sh b/scripts/scripts/niri_br_up.sh new file mode 100755 index 0000000..ca455e2 --- /dev/null +++ b/scripts/scripts/niri_br_up.sh @@ -0,0 +1,19 @@ +#!/bin/bash +STATE_FILE="$HOME/.cache/brightness_state" +TEMP_FILE="$HOME/.cache/bluelight_state" + +CURRENT=$(cat "$STATE_FILE" 2>/dev/null || echo "1.0") +NEW=$(echo "$CURRENT + 0.1" | bc -l) +if (($(echo "$NEW > 1.0" | bc -l))); then + NEW=1.0 + notify-send "Brightness" "Maximum (100%)" -t 1000 + exit 0 +fi + +TEMP=$(cat "$TEMP_FILE" 2>/dev/null || echo "6500") + +pkill -9 gammastep +gammastep -O $TEMP -b "$NEW" &>/dev/null & + +echo "$NEW" >"$STATE_FILE" +notify-send "Brightness" "$(printf '%.0f%%' $(echo "$NEW * 100" | bc))" -t 1000 diff --git a/swaync/.config/swaync/config.json b/swaync/.config/swaync/config.json new file mode 100644 index 0000000..bfaaa2c --- /dev/null +++ b/swaync/.config/swaync/config.json @@ -0,0 +1,5 @@ +{ + "timeout": 3, + "timeout-low": 2, + "timeout-critical": 0 +} diff --git a/swaync/.config/swaync/style.css b/swaync/.config/swaync/style.css new file mode 100644 index 0000000..40f8646 --- /dev/null +++ b/swaync/.config/swaync/style.css @@ -0,0 +1,332 @@ +* { + all: unset; + font-size: 18px; + font-family: "Inconsolata Nerd Font"; + transition: 200ms; +} + +trough highlight { + background: #cdd6f4; +} + +scale { + margin: 0 7px; +} + +scale trough { + margin: 0rem 1rem; + min-height: 8px; + min-width: 70px; + border-radius: 12.6px; +} + +trough slider { + margin: -10px; + border-radius: 12.6px; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.8); + transition: all 0.2s ease; + background-color: #89b4fa; +} + +trough slider:hover { + box-shadow: 0 0 2px rgba(0, 0, 0, 0.8), 0 0 8px #89b4fa; +} + +trough { + background-color: #313244; +} + +/* notifications */ +.notification-background { + box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #45475a; + border-radius: 12.6px; + margin: 18px; + background: #181825; + color: #cdd6f4; + padding: 0; +} + +.notification-background .notification { + padding: 7px; + border-radius: 12.6px; +} + +.notification-background .notification.critical { + box-shadow: inset 0 0 7px 0 #f38ba8; +} + +.notification .notification-content { + margin: 7px; +} + +.notification .notification-content overlay { + /* icons */ + margin: 4px; +} + +.notification-content .summary { + color: #cdd6f4; +} + +.notification-content .time { + color: #a6adc8; +} + +.notification-content .body { + color: #bac2de; +} + +.notification > *:last-child > * { + min-height: 3.4em; +} + +.notification-background .close-button { + margin: 7px; + padding: 2px; + border-radius: 6.3px; + color: #1e1e2e; + background-color: #f38ba8; +} + +.notification-background .close-button:hover { + background-color: #eba0ac; +} + +.notification-background .close-button:active { + background-color: #f5c2e7; +} + +.notification .notification-action { + border-radius: 7px; + color: #cdd6f4; + box-shadow: inset 0 0 0 1px #45475a; + margin: 4px; + padding: 8px; + font-size: 0.2rem; /* controls the button size not text size*/ +} + +.notification .notification-action { + background-color: #313244; +} + +.notification .notification-action:hover { + background-color: #45475a; +} + +.notification .notification-action:active { + background-color: #585b70; +} + +.notification.critical progress { + background-color: #f38ba8; +} + +.notification.low progress, +.notification.normal progress { + background-color: #89b4fa; +} + +.notification progress, +.notification trough, +.notification progressbar { + border-radius: 12.6px; + padding: 3px 0; +} + +/* control center */ +.control-center { + box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244; + border-radius: 12.6px; + background-color: #1e1e2e; + color: #cdd6f4; + padding: 14px; +} + +.control-center .notification-background { + border-radius: 7px; + box-shadow: inset 0 0 0 1px #45475a; + margin: 4px 10px; +} + +.control-center .notification-background .notification { + border-radius: 7px; +} + +.control-center .notification-background .notification.low { + opacity: 0.8; +} + +.control-center .widget-title > label { + color: #cdd6f4; + font-size: 1.3em; +} + +.control-center .widget-title button { + border-radius: 7px; + color: #cdd6f4; + background-color: #313244; + box-shadow: inset 0 0 0 1px #45475a; + padding: 8px; +} + +.control-center .widget-title button:hover { + background-color: #45475a; +} + +.control-center .widget-title button:active { + background-color: #585b70; +} + +.control-center .notification-group { + margin-top: 10px; +} + +.control-center .notification-group:focus .notification-background { + background-color: #313244; +} + +scrollbar slider { + margin: -3px; + opacity: 0.8; +} + +scrollbar trough { + margin: 2px 0; +} + +/* dnd */ +.widget-dnd { + margin-top: 5px; + border-radius: 8px; + font-size: 1.1rem; +} + +.widget-dnd > switch { + font-size: initial; + border-radius: 8px; + background: #313244; + box-shadow: none; + min-height: 24px; /* Add this */ + min-width: 48px; /* Add this */ +} + +.widget-dnd > switch:checked { + background: #89b4fa; +} + +.widget-dnd > switch slider { + background: #45475a; + border-radius: 8px; + min-height: 20px; /* Add this */ + min-width: 20px; /* Add this */ +} + +/* mpris */ +.widget-mpris-player { + background: #313244; + border-radius: 12.6px; + color: #cdd6f4; +} + +.mpris-overlay { + background-color: #313244; + opacity: 0.9; + padding: 15px 10px; +} + +.widget-mpris-album-art { + -gtk-icon-size: 100px; + border-radius: 12.6px; + margin: 0 10px; +} + +.widget-mpris-title { + font-size: 1.2rem; + color: #cdd6f4; +} + +.widget-mpris-subtitle { + font-size: 1rem; + color: #bac2de; +} + +.widget-mpris button { + border-radius: 12.6px; + color: #cdd6f4; + margin: 0 5px; + padding: 2px; +} + +.widget-mpris button image { + -gtk-icon-size: 1.8rem; +} + +.widget-mpris button:hover { + background-color: #313244; +} + +.widget-mpris button:active { + background-color: #45475a; +} + +.widget-mpris button:disabled { + opacity: 0.5; +} + +.widget-menubar > box > .menu-button-bar > button > label { + font-size: 3rem; + padding: 0.5rem 2rem; +} + +.widget-menubar > box > .menu-button-bar > :last-child { + color: #f38ba8; +} + +.power-buttons button:hover, +.powermode-buttons button:hover, +.screenshot-buttons button:hover { + background: #313244; +} + +.control-center .widget-label > label { + color: #cdd6f4; + font-size: 2rem; +} + +.widget-buttons-grid { + padding-top: 1rem; +} + +.widget-buttons-grid > flowbox > flowboxchild > button label { + font-size: 2.5rem; +} + +.widget-volume { + padding: 1rem 0; +} + +.widget-volume label { + color: #74c7ec; + padding: 0 1rem; +} + +.widget-volume trough highlight { + background: #74c7ec; +} + +.widget-backlight trough highlight { + background: #f9e2af; +} + +.widget-backlight label { + font-size: 1.5rem; + color: #f9e2af; +} + +.widget-backlight .KB { + padding-bottom: 1rem; +} + +.image { + padding-right: 0.5rem; +} diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf index 095572b..e060b23 100644 --- a/tmux/.tmux.conf +++ b/tmux/.tmux.conf @@ -30,7 +30,7 @@ bind-key k select-pane -U bind-key l select-pane -R # Configure Catppuccin -set -g @catppuccin_flavor "macchiato" +set -g @catppuccin_flavor "mocha" set -g @catppuccin_status_background "none" set -g @catppuccin_window_status_style "none" set -g @catppuccin_pane_status_enabled "off" diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc index 634b52f..be77934 100644 --- a/waybar/.config/waybar/config.jsonc +++ b/waybar/.config/waybar/config.jsonc @@ -1,137 +1,118 @@ // -*- mode: jsonc -*- { - "layer": "top", - "position": "top", - "height": 30, - "spacing": 0, - "modules-left": [ - "custom/logo", - "cpu", - "memory", - "bluetooth", - "mpris" - ], - "modules-center": [ - "hyprland/workspaces" - ], - "modules-right": [ - "tray", - "power-profiles-daemon", - "hyprland/language", - "pulseaudio", - "network", - "battery", - "clock", - "custom/power" - ], - "mpris": { - "format": "DEFAULT: {player_icon} {dynamic}", - "format-paused": "DEFAULT: {status_icon} {dynamic}", - "player-icons": { - "default": "▶", - "mpv": "🎵" - }, - "status-icons": { - "paused": "⏸" - } - // "ignored-players": ["firefox"] + "layer": "top", + "position": "top", + "height": 30, + "spacing": 0, + "modules-left": ["custom/logo", "cpu", "memory", "bluetooth", "mpris"], + "modules-center": ["hyprland/workspaces"], + "modules-right": [ + "tray", + "power-profiles-daemon", + "hyprland/language", + "pulseaudio", + "network", + "battery", + "clock", + "custom/power", + ], + "mpris": { + "format": "DEFAULT: {player_icon} {dynamic}", + "format-paused": "DEFAULT: {status_icon} {dynamic}", + "player-icons": { + "default": "▶", + "mpv": "🎵", }, - "tray": { - "icon-size": 14, - "spacing": 10 + "status-icons": { + "paused": "⏸", }, - "clock": { - "format": "{:%I:%M:%S %p}", - "tooltip-format": "{:%Y %B}\n{calendar}", - "format-alt": "{:%Y-%m-%d}", - "interval": 1 + // "ignored-players": ["firefox"] + }, + "tray": { + "icon-size": 14, + "spacing": 10, + }, + "clock": { + "format": "{:%I:%M:%S %p}", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}", + "interval": 1, + }, + "cpu": { + "format": " {usage}%", + "tooltip": false, + "interval": 1, + }, + "memory": { + "format": " {}%", + "interval": 1, + }, + "battery": { + "interval": 1, + "states": { + // "good": 95, + "warning": 30, + "critical": 15, }, - "cpu": { - "format": " {usage}%", - "tooltip": false, - "interval": 1 + "format": "{icon} {capacity}%", + "format-full": "{icon} {capacity}%", + "format-charging": "󰂄 {capacity}%", + "format-plugged": "󰂄 {capacity}%", + "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󰂂"], + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "", }, - "memory": { - "format": " {}%", - "interval": 1 + }, + "network": { + "format-wifi": " ", + "format-ethernet": "󰈀", + "format-disconnected": "󰤭", + "format-alt": "{bandwidthDownBytes}", + "interval": 1, + }, + "pulseaudio": { + "format": "{icon} {volume}%", + "format-muted": "󰝟", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": " ", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["󰕿", "󰖀", "󰕾"], }, - "battery": { - "interval": 1, - "states": { - // "good": 95, - "warning": 30, - "critical": 15 - }, - "format": "{icon} {capacity}%", - "format-full": "{icon} {capacity}%", - "format-charging": "󰂄 {capacity}%", - "format-plugged": "󰂄 {capacity}%", - "format-icons": [ - "󰁺", - "󰁼", - "󰁾", - "󰂀", - "󰂂" - ] - }, - "power-profiles-daemon": { - "format": "{icon}", - "tooltip-format": "Power profile: {profile}\nDriver: {driver}", - "tooltip": true, - "format-icons": { - "default": "", - "performance": "", - "balanced": "", - "power-saver": "" - } - }, - "network": { - "format-wifi": " ", - "format-ethernet": "󰈀", - "format-disconnected": "󰤭", - "format-alt": "{bandwidthDownBytes}", - "interval": 1 - }, - "pulseaudio": { - "format": "{icon} {volume}%", - "format-muted": "󰝟", - "format-source": "{volume}% ", - "format-source-muted": "", - "format-icons": { - "headphone": " ", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": [ - "󰕿", - "󰖀", - "󰕾" - ] - }, - "on-click": "pavucontrol" - }, - "custom/power": { - "format": "⏻", - "tooltip": false, - "on-click": "wlogout" - }, - "custom/logo": { - "format": "󰣇", - "on-click": "wofi --show drun" - }, - "bluetooth": { - "format": "󰂯", - "format-disabled": "󰂲", - "format-connected": "󰂱", - "on-click": "blueman-manager" - }, - "custom/keyboard-layer": { - "exec": "~/scripts/keyboard-layer.sh", - "return-type": "json", - "interval": "once", - "format": "🎹 {}" - } - + "on-click": "pavucontrol", + }, + "custom/power": { + "format": "⏻", + "tooltip": false, + "on-click": "wlogout", + }, + "custom/logo": { + "format": "󰣇", + "on-click": "wofi --show drun", + }, + "bluetooth": { + "format": "󰂯", + "format-disabled": "󰂲", + "format-connected": "󰂱", + "on-click": "blueman-manager", + }, + "custom/keyboard-layer": { + "exec": "~/scripts/keyboard-layer.sh", + "return-type": "json", + "interval": "once", + "format": "🎹 {}", + }, } diff --git a/yazi/.config/yazi/keymap.toml b/yazi/.config/yazi/keymap.toml index 06a443f..ac243b6 100644 --- a/yazi/.config/yazi/keymap.toml +++ b/yazi/.config/yazi/keymap.toml @@ -2,11 +2,19 @@ prepend_keymap = [ { on = "F", run = "plugin smart-filter", desc = "Smart filter" }, # rsync plugin - { on = ["R"], run = "plugin rsync", desc = "Copy files using rsync" }, + { on = [ + "R", + ], run = "plugin rsync", desc = "Copy files using rsync" }, # yafg plugin - { on = ["F", "G"], run = "plugin yafg" }, + { on = [ + "F", + "G", + ], run = "plugin yafg" }, # lazygit plugin - { on = ["g", "i"], run = "plugin lazygit", desc = "run lazygit" }, + { on = [ + "g", + "i", + ], run = "plugin lazygit", desc = "run lazygit" }, # mount plugin { on = "M", run = "plugin mount" }, # smart-enter plugin @@ -18,68 +26,207 @@ prepend_keymap = [ # Direct fuzzy search access { on = "}", run = "plugin whoosh jump_by_fzf", desc = "Direct fuzzy search for bookmarks" }, # Basic bookmark operations - { on = ["]", "a"], run = "plugin whoosh save", desc = "Add bookmark (hovered file/directory)" }, - { on = ["]", "A"], run = "plugin whoosh save_cwd", desc = "Add bookmark (current directory)" }, + { on = [ + "]", + "a", + ], run = "plugin whoosh save", desc = "Add bookmark (hovered file/directory)" }, + { on = [ + "]", + "A", + ], run = "plugin whoosh save_cwd", desc = "Add bookmark (current directory)" }, ## Temporary bookmarks - { on = ["]", "t"], run = "plugin whoosh save_temp", desc = "Add temporary bookmark (hovered file/directory)" }, - { on = ["]", "T"], run = "plugin whoosh save_cwd_temp", desc = "Add temporary bookmark (current directory)" }, + { on = [ + "]", + "t", + ], run = "plugin whoosh save_temp", desc = "Add temporary bookmark (hovered file/directory)" }, + { on = [ + "]", + "T", + ], run = "plugin whoosh save_cwd_temp", desc = "Add temporary bookmark (current directory)" }, ## Jump to bookmarks { on = "", run = "plugin whoosh jump_key_k", desc = "Jump directly to bookmark with key k" }, - { on = ["]", "f"], run = "plugin whoosh jump_by_fzf", desc = "Jump bookmark by fzf" }, + { on = [ + "]", + "f", + ], run = "plugin whoosh jump_by_fzf", desc = "Jump bookmark by fzf" }, ## Delete bookmarks - { on = ["]", "d"], run = "plugin whoosh delete_by_key", desc = "Delete bookmark by key" }, - { on = ["]", "D"], run = "plugin whoosh delete_by_fzf", desc = "Delete bookmarks by fzf (use TAB to select multiple)" }, - { on = ["]", "C"], run = "plugin whoosh delete_all", desc = "Delete all user bookmarks" }, + { on = [ + "]", + "d", + ], run = "plugin whoosh delete_by_key", desc = "Delete bookmark by key" }, + { on = [ + "]", + "D", + ], run = "plugin whoosh delete_by_fzf", desc = "Delete bookmarks by fzf (use TAB to select multiple)" }, + { on = [ + "]", + "C", + ], run = "plugin whoosh delete_all", desc = "Delete all user bookmarks" }, ## Rename Bookmarks - { on = ["]", "r"], run = "plugin whoosh rename_by_key", desc = "Rename bookmark by key" }, - { on = ["]", "R"], run = "plugin whoosh rename_by_fzf", desc = "Rename bookmark by fzf" }, + { on = [ + "]", + "r", + ], run = "plugin whoosh rename_by_key", desc = "Rename bookmark by key" }, + { on = [ + "]", + "R", + ], run = "plugin whoosh rename_by_fzf", desc = "Rename bookmark by fzf" }, # Navigation - { on = [""], run = "escape", desc = "Exit visual mode, clear selected, or cancel search" }, - { on = ["q"], run = "quit", desc = "Exit the process" }, - { on = [""], run = "close", desc = "Close the current tab, or quit if it is last tab" }, + { on = [ + "", + ], run = "escape", desc = "Exit visual mode, clear selected, or cancel search" }, + { on = [ + "q", + ], run = "quit", desc = "Exit the process" }, + { on = [ + "", + ], run = "close", desc = "Close the current tab, or quit if it is last tab" }, # projects plugin - { on = ["P", "p"], run = "plugin projects 'load SomeProject'", desc = "Load the 'SomeProject' project" }, - { on = ["P", "s"], run = "plugin projects save", desc = "Save current project" }, - { on = ["P", "l"], run = "plugin projects load", desc = "Load project" }, - { on = ["P", "P"], run = "plugin projects load_last", desc = "Load last project" }, - { on = ["P", "d"], run = "plugin projects delete", desc = "Delete project" }, - { on = ["P", "D"], run = "plugin projects delete_all", desc = "Delete all projects" }, - { on = ["P", "m"], run = "plugin projects 'merge current'", desc = "Merge current tab to other projects" }, - { on = ["P", "M"], run = "plugin projects 'merge all'", desc = "Merge current project to other projects" }, + { on = [ + "P", + "p", + ], run = "plugin projects 'load SomeProject'", desc = "Load the 'SomeProject' project" }, + { on = [ + "P", + "s", + ], run = "plugin projects save", desc = "Save current project" }, + { on = [ + "P", + "l", + ], run = "plugin projects load", desc = "Load project" }, + { on = [ + "P", + "P", + ], run = "plugin projects load_last", desc = "Load last project" }, + { on = [ + "P", + "d", + ], run = "plugin projects delete", desc = "Delete project" }, + { on = [ + "P", + "D", + ], run = "plugin projects delete_all", desc = "Delete all projects" }, + { on = [ + "P", + "m", + ], run = "plugin projects 'merge current'", desc = "Merge current tab to other projects" }, + { on = [ + "P", + "M", + ], run = "plugin projects 'merge all'", desc = "Merge current project to other projects" }, # fazif plugin - { on = ["b", "d"], run = "plugin fazif faziffd", desc = "Find files/directories with fd and fzf" }, - { on = ["b", "D"], run = "plugin fazif faziffdr", desc = "Find files/directories with fd and fzf" }, - { on = ["b", "r"], run = "plugin fazif fazifrg", desc = "Find content in files with ripgrep and fzf" }, - { on = ["b", "R"], run = "plugin fazif fazifrga", desc = "Find content in documents with ripgrep-all and fzf" }, + { on = [ + "b", + "d", + ], run = "plugin fazif faziffd", desc = "Find files/directories with fd and fzf" }, + { on = [ + "b", + "D", + ], run = "plugin fazif faziffdr", desc = "Find files/directories with fd and fzf" }, + { on = [ + "b", + "r", + ], run = "plugin fazif fazifrg", desc = "Find content in files with ripgrep and fzf" }, + { on = [ + "b", + "R", + ], run = "plugin fazif fazifrga", desc = "Find content in documents with ripgrep-all and fzf" }, # Tagging plugin # ─────────────────────────── TOGGLE TAG(S) ──────────────────────────── - { on = ["t", "t", "k"], run = "plugin simple-tag -- toggle-tag", desc = "Toggle a tag (press any key)" }, - { on = ["'"], run = "plugin simple-tag -- toggle-tag --keys=!", desc = "Toggle tag(s) with fixed tag key(s) = (! and 1 and q)" }, - { on = ["-"], run = "plugin simple-tag -- toggle-tag --keys=1", desc = "Toggle tag(s) with fixed tag key(s) = (! and 1 and q)" }, - { on = ["t", "t", "i"], run = "plugin simple-tag -- toggle-tag --input", desc = "Toggle tag(s) with value from (input box)" }, + { on = [ + "t", + "t", + "k", + ], run = "plugin simple-tag -- toggle-tag", desc = "Toggle a tag (press any key)" }, + { on = [ + "'", + ], run = "plugin simple-tag -- toggle-tag --keys=!", desc = "Toggle tag(s) with fixed tag key(s) = (! and 1 and q)" }, + { on = [ + "-", + ], run = "plugin simple-tag -- toggle-tag --keys=1", desc = "Toggle tag(s) with fixed tag key(s) = (! and 1 and q)" }, + { on = [ + "t", + "t", + "i", + ], run = "plugin simple-tag -- toggle-tag --input", desc = "Toggle tag(s) with value from (input box)" }, # ─────────────────────────── ADD TAG(S) ─────────────────────────────── - { on = ["t", "a", "k"], run = "plugin simple-tag -- add-tag", desc = "Add a tag (press any key)" }, + { on = [ + "t", + "a", + "k", + ], run = "plugin simple-tag -- add-tag", desc = "Add a tag (press any key)" }, # { on = [ "t", "a", "f" ], run = "plugin simple-tag -- add-tag --keys=!1q", desc = "Add tag(s) with fixed tag keys = (! and 1 and q)" }, - { on = ["t", "a", "i"], run = "plugin simple-tag -- add-tag --input", desc = "Add tag(s) with value from (input box)" }, + { on = [ + "t", + "a", + "i", + ], run = "plugin simple-tag -- add-tag --input", desc = "Add tag(s) with value from (input box)" }, # ─────────────────────────── REMOVE/DELETE TAG(S) ─────────────────────────── - { on = ["t", "d", "k"], run = "plugin simple-tag -- remove-tag", desc = "Remove a tag (press any key)" }, - { on = ["t", "d", "f"], run = "plugin simple-tag -- remove-tag --keys=!1q", desc = "Remove tag(s) with fixed tag keys = (! and 1 and q)" }, - { on = ["t", "d", "i"], run = "plugin simple-tag -- remove-tag --input", desc = "Remove tag(s) with value from (input box)" }, + { on = [ + "t", + "d", + "k", + ], run = "plugin simple-tag -- remove-tag", desc = "Remove a tag (press any key)" }, + { on = [ + "t", + "d", + "f", + ], run = "plugin simple-tag -- remove-tag --keys=!1q", desc = "Remove tag(s) with fixed tag keys = (! and 1 and q)" }, + { on = [ + "t", + "d", + "i", + ], run = "plugin simple-tag -- remove-tag --input", desc = "Remove tag(s) with value from (input box)" }, # ─────────────────────────── REPLACE ALL OLD TAG(S) WITH NEW TAG(S) ─────────────────────────── - { on = ["t", "r", "k"], run = "plugin simple-tag -- replace-tag", desc = "Replace with a new tag (press any key)" }, - { on = ["t", "r", "f"], run = "plugin simple-tag -- replace-tag --keys=!1q", desc = "Replace tag(s) with fixed tag keys = (! and 1 and q)" }, - { on = ["t", "r", "i"], run = "plugin simple-tag -- replace-tag --input", desc = "Replace tag(s) with value from (input box)" }, + { on = [ + "t", + "r", + "k", + ], run = "plugin simple-tag -- replace-tag", desc = "Replace with a new tag (press any key)" }, + { on = [ + "t", + "r", + "f", + ], run = "plugin simple-tag -- replace-tag --keys=!1q", desc = "Replace tag(s) with fixed tag keys = (! and 1 and q)" }, + { on = [ + "t", + "r", + "i", + ], run = "plugin simple-tag -- replace-tag --input", desc = "Replace tag(s) with value from (input box)" }, # ─────────────────────────── EDIT TAG(S) ─────────────────────────── - { on = ["t", "e"], run = "plugin simple-tag -- edit-tag ", desc = "Edit tag(s) (input box)" }, + { on = [ + "t", + "e", + ], run = "plugin simple-tag -- edit-tag ", desc = "Edit tag(s) (input box)" }, # ───────────────────────────── CLEAR TAG(S) ───────────────────────────── - { on = ["t", "c"], run = "plugin simple-tag -- clear", desc = "Clear all tags from selected or hovered files" }, + { on = [ + "t", + "c", + ], run = "plugin simple-tag -- clear", desc = "Clear all tags from selected or hovered files" }, # ───────────────────────────── CHANGE UI ───────────────────────────── - { on = ["t", "u", "s"], run = "plugin simple-tag -- toggle-ui", desc = "Toggle tag indicator (icon > tag key > hidden)" }, - { on = ["t", "u", "h"], run = "plugin simple-tag -- toggle-ui --mode=hidden", desc = "Hide all tags indicator" }, + { on = [ + "t", + "u", + "s", + ], run = "plugin simple-tag -- toggle-ui", desc = "Toggle tag indicator (icon > tag key > hidden)" }, + { on = [ + "t", + "u", + "h", + ], run = "plugin simple-tag -- toggle-ui --mode=hidden", desc = "Hide all tags indicator" }, # ─────────────────────── FILTER FILES/FOLDERS BY TAGS: ─────────────────────── - { on = ["t", "f"], run = "plugin simple-tag -- filter", desc = "Filter files/folders by a tag (press any key)" }, - { on = ["t", "F"], run = "plugin simple-tag -- filter --input", desc = "Filter files/folders by tag(s) (input box)" }, - { on = ["t", "F"], run = "plugin simple-tag -- filter --input --mode=or", desc = "Filter files/folders by contain tags (input box)" }, + { on = [ + "t", + "f", + ], run = "plugin simple-tag -- filter", desc = "Filter files/folders by a tag (press any key)" }, + { on = [ + "t", + "F", + ], run = "plugin simple-tag -- filter --input", desc = "Filter files/folders by tag(s) (input box)" }, + { on = [ + "t", + "F", + ], run = "plugin simple-tag -- filter --input --mode=or", desc = "Filter files/folders by contain tags (input box)" }, # ─────────────────────── VISUAL SELECT FILES/FOLDERS BY TAGS: ─────────────────────── # Available selection actions: # replace → Replaces the current selection list with files/folders that have the selected tag. @@ -88,91 +235,247 @@ prepend_keymap = [ # subtract → Deselects files/folders that have the selected tag from the current selection. # exclude → Combines the currently selected files/folders with the tagged items, then deselects any overlapping items between the current selection and the tagged items. # undo → Undos or redoes the last selection action. - { on = ["t", "s", "t"], run = "plugin simple-tag -- toggle-select", desc = "Select a selection action then select a tag key (toggle-select)" }, - { on = ["t", "s", "t"], run = "plugin simple-tag -- toggle-select --keys=!1q", desc = "" }, - { on = ["t", "s", "r"], run = "plugin simple-tag -- replace-select", desc = "replace-select" }, - { on = ["t", "s", "u"], run = "plugin simple-tag -- unite-select", desc = "unite-select" }, - { on = ["t", "s", "i"], run = "plugin simple-tag -- intersect-select", desc = "intersect-select" }, - { on = ["t", "s", "s"], run = "plugin simple-tag -- subtract-select", desc = "subtract-select" }, - { on = ["t", "s", "e"], run = "plugin simple-tag -- exclude-select", desc = "exclude-select" }, - { on = ["t", "s", "e"], run = "plugin simple-tag -- replace-select --keys=!1q", desc = "Replaces the current selection list with files/folders that have (! and 1 and q) tag(s)" }, - { on = ["t", "s", "R"], run = "plugin simple-tag -- replace-select --input", desc = "replace-select --input" }, - { on = ["t", "s", "U"], run = "plugin simple-tag -- unite-select --input", desc = "unite-select --input" }, - { on = ["t", "s", "I"], run = "plugin simple-tag -- intersect-select --input", desc = "intersect-select --input" }, - { on = ["t", "s", "S"], run = "plugin simple-tag -- subtract-select --input", desc = "subtract-select --input" }, - { on = ["t", "s", "E"], run = "plugin simple-tag -- exclude-select --input", desc = "exclude-select --input" }, - { on = ["t", "s", "R"], run = "plugin simple-tag -- replace-select --input --mode=or", desc = "replace-select --input --mode=or" }, - { on = ["t", "s", "R"], run = "plugin simple-tag -- replace-select --keys=!1q --mode=or", desc = "replace-select --keys=!1q --mode=or" }, + { on = [ + "t", + "s", + "t", + ], run = "plugin simple-tag -- toggle-select", desc = "Select a selection action then select a tag key (toggle-select)" }, + { on = [ + "t", + "s", + "t", + ], run = "plugin simple-tag -- toggle-select --keys=!1q", desc = "" }, + { on = [ + "t", + "s", + "r", + ], run = "plugin simple-tag -- replace-select", desc = "replace-select" }, + { on = [ + "t", + "s", + "u", + ], run = "plugin simple-tag -- unite-select", desc = "unite-select" }, + { on = [ + "t", + "s", + "i", + ], run = "plugin simple-tag -- intersect-select", desc = "intersect-select" }, + { on = [ + "t", + "s", + "s", + ], run = "plugin simple-tag -- subtract-select", desc = "subtract-select" }, + { on = [ + "t", + "s", + "e", + ], run = "plugin simple-tag -- exclude-select", desc = "exclude-select" }, + { on = [ + "t", + "s", + "e", + ], run = "plugin simple-tag -- replace-select --keys=!1q", desc = "Replaces the current selection list with files/folders that have (! and 1 and q) tag(s)" }, + { on = [ + "t", + "s", + "R", + ], run = "plugin simple-tag -- replace-select --input", desc = "replace-select --input" }, + { on = [ + "t", + "s", + "U", + ], run = "plugin simple-tag -- unite-select --input", desc = "unite-select --input" }, + { on = [ + "t", + "s", + "I", + ], run = "plugin simple-tag -- intersect-select --input", desc = "intersect-select --input" }, + { on = [ + "t", + "s", + "S", + ], run = "plugin simple-tag -- subtract-select --input", desc = "subtract-select --input" }, + { on = [ + "t", + "s", + "E", + ], run = "plugin simple-tag -- exclude-select --input", desc = "exclude-select --input" }, + { on = [ + "t", + "s", + "R", + ], run = "plugin simple-tag -- replace-select --input --mode=or", desc = "replace-select --input --mode=or" }, + { on = [ + "t", + "s", + "R", + ], run = "plugin simple-tag -- replace-select --keys=!1q --mode=or", desc = "replace-select --keys=!1q --mode=or" }, # Undo/Redo selection (only works after using 5 modes above) - { on = ["t", "s", "u"], run = "plugin simple-tag -- undo-select", desc = "Undos/Redos the last selection action" }, + { on = [ + "t", + "s", + "u", + ], run = "plugin simple-tag -- undo-select", desc = "Undos/Redos the last selection action" }, # Directory navigation - { on = ["k"], run = "arrow -1", desc = "Move cursor up" }, - { on = ["j"], run = "arrow 1", desc = "Move cursor down" }, - { on = ["h"], run = "leave", desc = "Go back to parent directory" }, - { on = ["l"], run = "enter", desc = "Enter directory" }, + { on = [ + "k", + ], run = "arrow -1", desc = "Move cursor up" }, + { on = [ + "j", + ], run = "arrow 1", desc = "Move cursor down" }, + { on = [ + "h", + ], run = "leave", desc = "Go back to parent directory" }, + { on = [ + "l", + ], run = "enter", desc = "Enter directory" }, # File operations - { on = [""], run = "open", desc = "Open selected files" }, - { on = ["y"], run = "yank", desc = "Yank selected files (copy)" }, - { on = ["x"], run = "yank --cut", desc = "Yank selected files (cut)" }, - { on = ["p"], run = "paste", desc = "Paste yanked files" }, - { on = ["d"], run = "remove", desc = "Trash selected files" }, - { on = ["D"], run = "remove --permanently", desc = "Permanently delete selected files" }, - { on = ["a"], run = "create", desc = "Create a file or directory" }, - { on = ["r"], run = "rename --cursor=before_ext", desc = "Rename selected file" }, + { on = [ + "", + ], run = "open", desc = "Open selected files" }, + { on = [ + "y", + ], run = "yank", desc = "Yank selected files (copy)" }, + { on = [ + "x", + ], run = "yank --cut", desc = "Yank selected files (cut)" }, + { on = [ + "p", + ], run = "paste", desc = "Paste yanked files" }, + { on = [ + "d", + ], run = "remove", desc = "Trash selected files" }, + { on = [ + "D", + ], run = "remove --permanently", desc = "Permanently delete selected files" }, + { on = [ + "a", + ], run = "create", desc = "Create a file or directory" }, + { on = [ + "r", + ], run = "rename --cursor=before_ext", desc = "Rename selected file" }, # Selection - { on = ["e"], run = ["select --state=none", "arrow 1"], desc = "Toggle selection" }, - { on = ["v"], run = "visual_mode", desc = "Enter visual mode" }, - { on = ["V"], run = "visual_mode --unset", desc = "Enter visual mode (unset)" }, + { on = [ + "e", + ], run = [ + "select --state=none", + "arrow 1", + ], desc = "Toggle selection" }, + { on = [ + "v", + ], run = "visual_mode", desc = "Enter visual mode" }, + { on = [ + "V", + ], run = "visual_mode --unset", desc = "Enter visual mode (unset)" }, # Search - { on = ["/"], run = "find --smart", desc = "Find file" }, - { on = ["n"], run = "find_arrow", desc = "Go to next found" }, - { on = ["N"], run = "find_arrow --previous", desc = "Go to previous found" }, + { on = [ + "/", + ], run = "find --smart", desc = "Find file" }, + { on = [ + "n", + ], run = "find_arrow", desc = "Go to next found" }, + { on = [ + "N", + ], run = "find_arrow --previous", desc = "Go to previous found" }, # Tabs - { on = ["T"], run = "tab_create --current", desc = "Create new tab" }, - { on = ["1"], run = "tab_switch 0", desc = "Switch to tab 1" }, - { on = ["2"], run = "tab_switch 1", desc = "Switch to tab 2" }, - { on = ["3"], run = "tab_switch 2", desc = "Switch to tab 3" }, + { on = [ + "T", + ], run = "tab_create --current", desc = "Create new tab" }, + { on = [ + "1", + ], run = "tab_switch 0", desc = "Switch to tab 1" }, + { on = [ + "2", + ], run = "tab_switch 1", desc = "Switch to tab 2" }, + { on = [ + "3", + ], run = "tab_switch 2", desc = "Switch to tab 3" }, # Preview - { on = ["z"], run = "plugin --sync hide-preview", desc = "Toggle preview" }, + { on = [ + "z", + ], run = "plugin --sync hide-preview", desc = "Toggle preview" }, # Other - { on = ["g", "h"], run = "cd ~", desc = "Go to home directory" }, - { on = ["g", "c"], run = "cd ~/.config", desc = "Go to config directory" }, - { on = ["g", "d"], run = "cd ~/Downloads", desc = "Go to downloads" }, - { on = ["~"], run = "help", desc = "Open help" }, + { on = [ + "g", + "h", + ], run = "cd ~", desc = "Go to home directory" }, + { on = [ + "g", + "c", + ], run = "cd ~/.config", desc = "Go to config directory" }, + { on = [ + "g", + "d", + ], run = "cd ~/Downloads", desc = "Go to downloads" }, + { on = [ + "~", + ], run = "help", desc = "Open help" }, ] [tasks] prepend_keymap = [ - { on = [""], run = "close", desc = "Close task manager" }, - { on = ["k"], run = "arrow -1", desc = "Move cursor up" }, - { on = ["j"], run = "arrow 1", desc = "Move cursor down" }, + { on = [ + "", + ], run = "close", desc = "Close task manager" }, + { on = [ + "k", + ], run = "arrow -1", desc = "Move cursor up" }, + { on = [ + "j", + ], run = "arrow 1", desc = "Move cursor down" }, ] [select] prepend_keymap = [ - { on = [""], run = "close", desc = "Cancel selection" }, - { on = [""], run = "close --submit", desc = "Submit selection" }, - { on = ["k"], run = "arrow -1", desc = "Move cursor up" }, - { on = ["j"], run = "arrow 1", desc = "Move cursor down" }, + { on = [ + "", + ], run = "close", desc = "Cancel selection" }, + { on = [ + "", + ], run = "close --submit", desc = "Submit selection" }, + { on = [ + "k", + ], run = "arrow -1", desc = "Move cursor up" }, + { on = [ + "j", + ], run = "arrow 1", desc = "Move cursor down" }, ] [input] prepend_keymap = [ - { on = [""], run = "close", desc = "Cancel input" }, - { on = [""], run = "close --submit", desc = "Submit input" }, + { on = [ + "", + ], run = "close", desc = "Cancel input" }, + { on = [ + "", + ], run = "close --submit", desc = "Submit input" }, ] [completion] prepend_keymap = [ - { on = [""], run = "close --submit", desc = "Submit completion" }, - { on = ["k"], run = "arrow -1", desc = "Move cursor up" }, - { on = ["j"], run = "arrow 1", desc = "Move cursor down" }, + { on = [ + "", + ], run = "close --submit", desc = "Submit completion" }, + { on = [ + "k", + ], run = "arrow -1", desc = "Move cursor up" }, + { on = [ + "j", + ], run = "arrow 1", desc = "Move cursor down" }, ] [help] prepend_keymap = [ - { on = [""], run = "escape", desc = "Clear filter or exit help" }, - { on = ["q"], run = "close", desc = "Exit help" }, - { on = ["k"], run = "arrow -1", desc = "Move cursor up" }, - { on = ["j"], run = "arrow 1", desc = "Move cursor down" }, + { on = [ + "", + ], run = "escape", desc = "Clear filter or exit help" }, + { on = [ + "q", + ], run = "close", desc = "Exit help" }, + { on = [ + "k", + ], run = "arrow -1", desc = "Move cursor up" }, + { on = [ + "j", + ], run = "arrow 1", desc = "Move cursor down" }, ] diff --git a/yazi/.config/yazi/package.toml b/yazi/.config/yazi/package.toml index f0633be..14a5da2 100644 --- a/yazi/.config/yazi/package.toml +++ b/yazi/.config/yazi/package.toml @@ -73,11 +73,6 @@ use = "GianniBYoung/rsync" rev = "14d2828" hash = "7394430ba473dce1023721622438bf3d" -[[plugin.deps]] -use = "Ape/simple-status" -rev = "d0da104" -hash = "68603fdd1dcaf415227e2c77a9317947" - [[plugin.deps]] use = "llanosrocas/yaziline" rev = "6266926" diff --git a/yazi/.config/yazi/plugins/whoosh.yazi/bookmarks b/yazi/.config/yazi/plugins/whoosh.yazi/bookmarks index 73ff804..4df1853 100644 --- a/yazi/.config/yazi/plugins/whoosh.yazi/bookmarks +++ b/yazi/.config/yazi/plugins/whoosh.yazi/bookmarks @@ -1,16 +1,19 @@ zshrc /home/liph/dotfiles/zshrc z yazi /home/liph/dotfiles/yazi/.config/yazi y +tex /home/liph/Documents/tex D,t tank /mnt/tank t,t +r /home/liph/Documents/r D,r podman /mnt/flash1/podman t,p ohmyposh /home/liph/dotfiles/ohmyposh/.config/ohmyposh d,o +obsidian /home/liph/Documents/obsidian/vault D,o nvim /home/liph/dotfiles/nvim/.config/nvim/ n,n,n neovim_plug /home/liph/dotfiles/nvim/.config/nvim/lua/plugins/ n,p mnt /mnt m kitty /home/liph/dotfiles/kitty/.config/kitty k hypr /home/liph/.config/hypr h home /home/liph f -Downloads /home/liph/Downloads D,D +Downloads /home/liph/Downloads D,d dotfiles /home/liph/dotfiles d,d -Documents /home/liph/Documents D,d +Documents /home/liph/Documents D,D .config /home/liph/.config c aerc /home/liph/dotfiles/aerc/.config/aerc d,a diff --git a/yazi/.config/yazi/yazi.toml b/yazi/.config/yazi/yazi.toml index fd9e726..409508c 100644 --- a/yazi/.config/yazi/yazi.toml +++ b/yazi/.config/yazi/yazi.toml @@ -23,24 +23,14 @@ image_quality = 75 # edit = [ # { run = '$EDITOR "$@"', block = true, for = "unix" }, # ] -open = [ - { run = 'xdg-open "$1"', desc = "Open", orphan = true }, -] -edit = [ - { run = 'nvim "$@"', block = true, desc = "nvim", for = "unix" }, -] +open = [{ run = 'xdg-open "$1"', desc = "Open", orphan = true }] +edit = [{ run = 'nvim "$@"', block = true, desc = "nvim", for = "unix" }] reveal = [ { run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" }, ] -play = [ - { run = 'mpv --force-window "$@"', orphan = true, for = "unix" }, -] -pdf = [ - { run = 'zathura "$@"', orphan = true, for = "linux" }, -] -text = [ - { run = 'nvim "$@"', block = true, for = "linux" }, -] +play = [{ run = 'mpv --force-window "$@"', orphan = true, for = "unix" }] +pdf = [{ run = 'zathura "$@"', orphan = true, for = "linux" }] +text = [{ run = 'nvim "$@"', block = true, for = "linux" }] [open] rules = [ @@ -48,7 +38,7 @@ rules = [ { mime = "inode/empty", use = "edit" }, # { mime = "inode/x-empty", use = "edit" }, # Text files - use edit (which uses $EDITOR/nvim) - { mime = "text/*", use = "edit" }, # Changed from "text" to "edit" + { mime = "text/*", use = "edit" }, # Changed from "text" to "edit" # { mime = "text/x-tex", use = "edit" }, # Changed from "text" to "edit" { mime = "application/json", use = "edit" }, { mime = "application/x-sh", use = "edit" }, @@ -142,10 +132,10 @@ prepend_previewers = [ { url = "*/", run = 'piper -- eza -TL=3 --color=always --icons=always --group-directories-first --no-quotes "$1"' }, # piper markdown (commented out as you had it) # rich preview plugin - { url = "*.csv", run = "rich-preview" }, # for csv files - { url = "*.md", run = "rich-preview" }, # for markdown (.md) files - { url = "*.rst", run = "rich-preview" }, # for restructured text (.rst) files - { url = "*.ipynb", run = "rich-preview" }, # for jupyter notebooks (.ipynb) + { url = "*.csv", run = "rich-preview" }, # for csv files + { url = "*.md", run = "rich-preview" }, # for markdown (.md) files + { url = "*.rst", run = "rich-preview" }, # for restructured text (.rst) files + { url = "*.ipynb", run = "rich-preview" }, # for jupyter notebooks (.ipynb) { url = "*.json", run = "rich-preview" }, # for json (.json) files # { url = "*.lang_type", run = "rich-preview"} # for particular language files eg. .py, .go., .lua, etc. ] diff --git a/zshrc/.aliases.zsh b/zshrc/.aliases.zsh index 60b4934..0ecd825 100644 --- a/zshrc/.aliases.zsh +++ b/zshrc/.aliases.zsh @@ -68,19 +68,19 @@ alias lgit='lazygit' # proton vpn alias vpnn='sudo protonvpn c' -alias vpnr='sudo protonvpn reconnect' # reconnect after sleep -alias vpn='sudo protonvpn c -f' # connect to fastest server -alias vpnd='sudo protonvpn d' # diconnect current session -alias vpnp='sudo protonvpn c --p2p' # connect to fastest p2p server -alias vpns='protonvpn status' # check status +alias vpnr='sudo protonvpn reconnect' # reconnect after sleep +alias vpn='sudo protonvpn c -f' # connect to fastest server +alias vpnd='sudo protonvpn d' # diconnect current session +alias vpnp='sudo protonvpn c --p2p' # connect to fastest p2p server +alias vpns='protonvpn status' # check status # NetworkManager -alias nmwi='nmcli device wifi list' # show you all possible wifi networks -alias nmst='nmcli device status' # shows you the current connection -alias nmco='nmcli device wifi connect' # add '$SSID' and '$PASSWORD' -alias nmsh='nmcli con show' # shows all valid connnections -alias nmup='nmcli con up' # add the name of the connection in '' -alias nmdo='nmcli con down' # add the nome of the connection in '' +alias nmwi='nmcli device wifi list' # show you all possible wifi networks +alias nmst='nmcli device status' # shows you the current connection +alias nmco='nmcli device wifi connect' # add '$SSID' and '$PASSWORD' +alias nmsh='nmcli con show' # shows all valid connnections +alias nmup='nmcli con up' # add the name of the connection in '' +alias nmdo='nmcli con down' # add the nome of the connection in '' # open with password alias tshift='sudo -E timeshift-launcher' @@ -99,13 +99,15 @@ alias lsu='sudo umount /mount/' # streamrip alias ripp='rip search tidal album' +alias rip='pyenv exec rip' +alias ripc='nvim ~/.config/streamrip/config.toml' # paru -alias ys='$AUR_HELPER -S' # install package -alias yr='$AUR_HELPER -Rn' # remove package -alias yy='$AUR_HELPER -Ss' # paru search for package +alias ys='$AUR_HELPER -S' # install packoz +alias yr='$AUR_HELPER -Rn' # remove package +alias yy='$AUR_HELPER -Ss' # paru search for package alias yay='$AUR_HELPER' -alias yi='$AUR_HELPER -Si' # aur info +alias yi='$AUR_HELPER -Si' # aur info alias which-aur="echo 'Currently using: $AUR_HELPER'" # trash-cli @@ -113,30 +115,30 @@ alias te='trash-empty' alias tr='trash-restore' # pyenv -alias pyl='pyenv local' # set this for folder in spec python version -alias pyg='pyenv global' # changes the global python version -alias pyve='pyenv virtualenvs' # shows all possible vitualenvironments +alias pyl='pyenv local' # set this for folder in spec python version +alias pyg='pyenv global' # changes the global python version +alias pyve='pyenv virtualenvs' # shows all possible vitualenvironments alias pyd='pyenv virtualenv-delete' -alias pyn='pyenv virtualenv' # makes a new env $VSERION $NAME +alias pyn='pyenv virtualenv' # makes a new env $VSERION $NAME alias pyv='pyenv versions' alias pyil='pyenv install -l' alias pyi='pyenv install' # aria2 and yt-dlp -alias aryt="yt-dlp --external-downloader aria2c --external-downloader-args '-x 8 -j2'" # add URL in '' -alias aria='aria2c -x 8' # add URL in '' for 8 segmented download -alias yd='yt-dlp' # copy link from videodownload helper and add the URL in '' +alias aryt="yt-dlp --external-downloader aria2c --external-downloader-args '-x 8 -j2'" # add URL in '' +alias aria='aria2c -x 8' # add URL in '' for 8 segmented download +alias yd='yt-dlp' # copy link from videodownload helper and add the URL in '' alias photodetect='gphoto2 --auto-detect' alias photoget='gphoto2 --get-all-files' # borg backup -alias boinit='borg init --encryption repokey' # add folder like /folder/ initiates the backupfunction -alias bolist='borg list' # /backup/ creates a list of al the backups which are contained in this folder +alias boinit='borg init --encryption repokey' # add folder like /folder/ initiates the backupfunction +alias bolist='borg list' # /backup/ creates a list of al the backups which are contained in this folder alias boc='borg create --stats --progress --compression lz4' # /backup::backup1 dotfiles creates the backup. The ::backup1 will be name of the backup # create placeholder sudo borg create --stats --compression lz4 ::{user}-{now} file or folder -alias bomo='borg mount /home/liph/backup /tmp/borg' # which repo to mount and where to mount it. make sure the folder already exists -alias boumo='borg umount /tmp/borg' # unmount the mount folder +alias bomo='borg mount /home/liph/backup /tmp/borg' # which repo to mount and where to mount it. make sure the folder already exists +alias boumo='borg umount /tmp/borg' # unmount the mount folder # systemctl alias sysen='sudo systemctl enable' @@ -165,13 +167,13 @@ alias pocupf='pocp && pocf' alias pocdupd='pocst && pocd && pocp && poc' # disk space -alias dfh='df -h' # shows a list of all mounted drives -alias duh='du -sh' #calculates folder space -alias duf='duf' # analyzes diskspace -alias duaa='dua i' # opens dua in interactive mode +alias dfh='df -h' # shows a list of all mounted drives +alias duh='du -sh' #calculates folder space +alias duf='duf' # analyzes diskspace +alias duaa='dua i' # opens dua in interactive mode alias rns='sudo pacman -Rns $(pacman -Qdtq)' # remove orphaned packages -alias rsc='sudo pacman -Sc' # remove cached packeged -alias rmc='rm -rf ~/.cache/*' # clear user cache +alias rsc='sudo pacman -Sc' # remove cached packeged +alias rmc='rm -rf ~/.cache/*' # clear user cache # ip addr alias ipa='sudo ip addr add ' @@ -179,8 +181,7 @@ alias ipl='sudo ip link set ' alias ipf='sudo ip addr flush ' # wireguard vpn -alias wgu='sudo wg-quick up' # start the connection you like to establish (f.E open) -alias wgd='sudo wg-quick down' # end the connection you like to end (f.E open) -alias wgc='sudo wg showconf' # show the config for a connection (f.E open) -alias wgs='sudo wg show' # show informations about the connection - +alias wgu='sudo wg-quick up' # start the connection you like to establish (f.E open) +alias wgd='sudo wg-quick down' # end the connection you like to end (f.E open) +alias wgc='sudo wg showconf' # show the config for a connection (f.E open) +alias wgs='sudo wg show' # show informations about the connection diff --git a/zshrc/.export.zsh b/zshrc/.export.zsh index b5c052e..1abca63 100644 --- a/zshrc/.export.zsh +++ b/zshrc/.export.zsh @@ -39,3 +39,6 @@ export MOZ_ENABLE_WAYLAND=1 # Bitwarde # export BW_SESSION=$(bw unlock --raw) +# you-should-use settings (optional) +# export YSU_MESSAGE_POSITION="after" # Show reminder after command output +# export YSU_HARDCORE=0 # Prevent execution if alias exists (probably too aggressive) diff --git a/zshrc/.plugins.zsh b/zshrc/.plugins.zsh index 3ac2607..959a4a0 100644 --- a/zshrc/.plugins.zsh +++ b/zshrc/.plugins.zsh @@ -6,6 +6,12 @@ zinit light zsh-users/zsh-syntax-highlighting zinit light zsh-users/zsh-completions zinit light zsh-users/zsh-autosuggestions zinit light Aloxaf/fzf-tab +zinit light hlissner/zsh-autopair +zinit light ajeetdsouza/zoxide +zinit ice lucid wait as"completion" +zinit snippet https://github.com/eza-community/eza/blob/main/completions/zsh/_eza +zinit light MichaelAquilina/zsh-you-should-use +zinit light wfxr/forgit # Add in snippets from "OhMyZsh“ zinit snippet OMZP::git @@ -15,3 +21,5 @@ zinit snippet OMZP::aws zinit snippet OMZP::kubectl zinit snippet OMZP::kubectx zinit snippet OMZP::command-not-found + +zinit light jeffreytse/zsh-vi-mode diff --git a/zshrc/.zshrc b/zshrc/.zshrc index a4b16d7..2f498ba 100644 --- a/zshrc/.zshrc +++ b/zshrc/.zshrc @@ -9,6 +9,12 @@ if [ ! -d "$ZINIT_HOME" ]; then git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" fi +ZVM_INIT_MODE=sourcing +# Fix zsh-vi-mode conflicts with fzf +function zvm_after_init() { + source <(fzf --zsh) +} + # Source zsh, alias source "${ZINIT_HOME}/zinit.zsh" source ~/.aliases.zsh @@ -17,9 +23,8 @@ source ~/.export.zsh # https://github.com/jungunn/fzf-git.sh source ~/scripts/fzf-git.sh # you should unse -source /usr/share/zsh/plugins/zsh-you-should-use/you-should-use.plugin.zsh +# source /usr/share/zsh/plugins/zsh-you-should-use/you-should-use.plugin.zsh # Set up fzf key bindings and fuzzy completion -source <(fzf --zsh) ## hydroxide #source ~/scripts/hydroxide.sh @@ -51,9 +56,9 @@ eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)" [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" # Bindkey -bindkey -e -bindkey '^p' history-search-backward -bindkey '^n' history-search-forward +# bindkey -e +# bindkey '^p' history-search-backward +# bindkey '^n' history-search-forward # History HISTSIZE=5000 @@ -80,9 +85,9 @@ eval "$(zoxide init --cmd cd zsh)" eval "$(thefuck --alias)" eval "$(navi widget zsh)" # pyenv https://github.com/pyenv/pyenv-virtualenv -eval "$(pyenv init --path)" +# eval "$(pyenv init --path)" eval "$(pyenv init -)" -# eval "$(pyenv virtualenv-init -)" +eval "$(pyenv virtualenv-init -)" # starship # eval "$(starship init zsh)" @@ -118,3 +123,8 @@ zinit light-mode for \ ### End of Zinit's installer chunk # . "$HOME/.local/bin/env" +# In .zshrc, after zinit loads +function zvm_after_init() { + # Re-bind ctrl+space for autosuggestions if needed + bindkey '^@' autosuggest-accept +}