From f19e8a00c783ee80d3f67b6690ec244013b5d0a2 Mon Sep 17 00:00:00 2001 From: fbachus Date: Tue, 2 Sep 2025 03:32:47 +0200 Subject: [PATCH] too many things --- .config/air.toml | 9 + .config/alacritty/alacritty.toml | 58 +--- .config/dunst/dunstrc | 4 +- .config/fish/config.fish | 6 +- .config/fish/fish_variables | 44 +-- .config/fish/functions/battery_capacity.fish | 11 + .config/fish/functions/restart.fish | 2 +- .config/fish/functions/setscreenb.fish | 6 +- .config/hypr/always_applications | 5 + .config/hypr/apps.conf | 10 +- .config/hypr/autostart | 47 +-- .config/hypr/gamemode.sh | 3 +- .config/hypr/hyprbindings.conf | 52 +++- .config/hypr/hypridle.conf | 15 +- .config/hypr/hyprland.conf | 183 ++++++----- .config/hypr/hyprlock.conf | 13 +- .config/hypr/monitors.conf | 42 +++ .config/hypr/monitors.rep | 33 -- .config/hypr/tofi_scripts/brightnessmenu.fish | 6 + .config/hypr/tofi_scripts/brightnessmenu.sh | 8 + .config/hypr/tofi_scripts/powermenu.sh | 10 + .config/hypr/windowrules.conf | 74 +++-- .config/kitty/kitty.conf | 33 +- .config/kitty/kitty.conf.bak | 60 ++-- .config/neovide/config.toml | 6 + .config/nushell/config.nu | 2 - .config/nvim.backup/lazy-lock.json | 44 +-- .../nvim.backup/lua/plug_init/gitsigns.lua | 42 --- .config/nvim/lazy-lock.json | 71 +++-- .config/nvim/lua/plug_init/aerial_init.lua | 30 +- .../nvim/lua/plug_init/color-picker_init.lua | 47 ++- .config/nvim/lua/plug_init/conform_init.lua | 28 -- .../nvim/lua/plug_init/coq_third_party.lua | 12 + .config/nvim/lua/plug_init/crates_init.lua | 52 ---- .config/nvim/lua/plug_init/ft_autocmds.lua | 4 + .config/nvim/lua/plug_init/gitsigns.lua | 39 --- .config/nvim/lua/plug_init/godot_editor.lua | 22 ++ .config/nvim/lua/plug_init/init.lua | 44 +-- .config/nvim/lua/plug_init/lazy_path.lua | 16 +- .config/nvim/lua/plug_init/lsp_init.lua | 128 ++++---- .config/nvim/lua/plug_init/lualine_init.lua | 96 ------ .config/nvim/lua/plug_init/mini_init.lua | 37 ++- .config/nvim/lua/plug_init/neovide_conf.lua | 12 + .config/nvim/lua/plug_init/noice_init.lua | 41 --- .../lua/plug_init/nvim_possession_init.lua | 21 -- .../nvim/lua/plug_init/smart-open_init.lua | 9 - .config/nvim/lua/plug_init/telescope_init.lua | 21 -- .../lua/plug_init/treesitter-context_init.lua | 15 - .../nvim/lua/plug_init/treesitter_init.lua | 21 -- .config/nvim/lua/plug_init/vim_init.lua | 54 ++-- .config/nvim/lua/plug_init/which_key_init.lua | 199 ++++++++++-- .../nvim/lua/plug_init/which_key_init.lua.old | 107 ------- .config/nvim/lua/plug_init/wilder_init.lua | 42 +-- .config/nvim/lua/plugins/coq_nvim.lua | 29 -- .config/nvim/lua/plugins/crates.lua | 8 - .config/nvim/lua/plugins/debugging.lua | 84 +++++ .config/nvim/lua/plugins/lsp_config.lua | 273 ++++++++++++++-- .config/nvim/lua/plugins/lualine.lua | 180 +++++++++++ .config/nvim/lua/plugins/nvim-possession.lua | 24 +- .config/nvim/lua/plugins/peanuts.lua | 202 ++++++++++-- .config/nvim/lua/plugins/telescope.lua | 77 +++++ .config/nvim/lua/plugins/trouble.lua | 37 --- .config/nvim/lua/plugins/undotree.lua | 8 - .config/nvim/lua/plugins/which-key.lua | 9 - .config/nvim/lua/plugins/which_key.lua | 262 ++++++++++++++++ .config/nvim/stylua.toml | 1 + .config/qt6ct/qt6ct.conf | 32 ++ .config/starship.toml | 6 +- .config/tofi/brightness_config | 152 +++++++++ .config/tofi/config | 61 ++-- .config/tofi/powermenu_config | 181 +++++++++++ .config/waybar/config | 292 ++++++++++-------- .config/waybar/style.css | 231 +++++++------- .config/yazi/keymap.toml | 8 + .../yazi/plugins/confirm-quit.yazi/main.lua | 20 ++ .config/yazi/yazi.toml | 19 ++ .editorconfig | 62 ++++ .githooks-repo/README.md | 3 + .githooks-repo/pre-commit-nestjs | 3 + .gitignore | 1 + keyd.conf | 12 + 81 files changed, 2724 insertions(+), 1549 deletions(-) create mode 100644 .config/air.toml create mode 100644 .config/fish/functions/battery_capacity.fish create mode 100755 .config/hypr/always_applications mode change 100644 => 100755 .config/hypr/gamemode.sh create mode 100644 .config/hypr/monitors.conf delete mode 100644 .config/hypr/monitors.rep create mode 100755 .config/hypr/tofi_scripts/brightnessmenu.fish create mode 100755 .config/hypr/tofi_scripts/brightnessmenu.sh create mode 100755 .config/hypr/tofi_scripts/powermenu.sh create mode 100644 .config/neovide/config.toml delete mode 100644 .config/nvim/lua/plug_init/conform_init.lua create mode 100644 .config/nvim/lua/plug_init/coq_third_party.lua delete mode 100644 .config/nvim/lua/plug_init/crates_init.lua create mode 100644 .config/nvim/lua/plug_init/ft_autocmds.lua delete mode 100644 .config/nvim/lua/plug_init/gitsigns.lua create mode 100644 .config/nvim/lua/plug_init/godot_editor.lua delete mode 100644 .config/nvim/lua/plug_init/lualine_init.lua create mode 100644 .config/nvim/lua/plug_init/neovide_conf.lua delete mode 100644 .config/nvim/lua/plug_init/noice_init.lua delete mode 100644 .config/nvim/lua/plug_init/nvim_possession_init.lua delete mode 100644 .config/nvim/lua/plug_init/smart-open_init.lua delete mode 100644 .config/nvim/lua/plug_init/telescope_init.lua delete mode 100644 .config/nvim/lua/plug_init/treesitter-context_init.lua delete mode 100644 .config/nvim/lua/plug_init/treesitter_init.lua delete mode 100644 .config/nvim/lua/plug_init/which_key_init.lua.old delete mode 100644 .config/nvim/lua/plugins/coq_nvim.lua delete mode 100644 .config/nvim/lua/plugins/crates.lua create mode 100644 .config/nvim/lua/plugins/debugging.lua create mode 100644 .config/nvim/lua/plugins/lualine.lua create mode 100644 .config/nvim/lua/plugins/telescope.lua delete mode 100644 .config/nvim/lua/plugins/trouble.lua delete mode 100755 .config/nvim/lua/plugins/undotree.lua delete mode 100644 .config/nvim/lua/plugins/which-key.lua create mode 100644 .config/nvim/lua/plugins/which_key.lua create mode 100644 .config/nvim/stylua.toml create mode 100644 .config/qt6ct/qt6ct.conf create mode 100644 .config/tofi/brightness_config create mode 100644 .config/tofi/powermenu_config create mode 100644 .config/yazi/keymap.toml create mode 100644 .config/yazi/plugins/confirm-quit.yazi/main.lua create mode 100644 .config/yazi/yazi.toml create mode 100644 .editorconfig create mode 100644 .githooks-repo/README.md create mode 100644 .githooks-repo/pre-commit-nestjs create mode 100644 keyd.conf diff --git a/.config/air.toml b/.config/air.toml new file mode 100644 index 0000000..10749b2 --- /dev/null +++ b/.config/air.toml @@ -0,0 +1,9 @@ +[format] +line-width = 80 +indent-width = 2 +indent-style = "tab" +line-ending = "auto" +persistent-line-breaks = true +exclude = [] +default-exclude = true +skip = [] diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 629fa0d..a85b199 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -1,33 +1,3 @@ - -# Colors (One Dark) - -# Default colors -[colors.primary] -background = '#2d3237' -foreground = '#abb2bf' - -# Normal colors -[colors.normal] -black = '#1e2127' -red = '#e06c75' -green = '#98c379' -yellow = '#d19a66' -blue = '#61afef' -magenta = '#c678dd' -cyan = '#56b6c2' -white = '#abb2bf' - -# Bright colors -[colors.bright] -black = '#5c6370' -red = '#e06c75' -green = '#98c379' -yellow = '#d19a66' -blue = '#61afef' -magenta = '#c678dd' -cyan = '#56b6c2' -white = '#ffffff' - [debug] render_timer = false @@ -79,7 +49,7 @@ program = "/usr/bin/fish" [window] decorations = "none" dynamic_padding = false -opacity = 0.30 +opacity = 0.20 blur = true [window.padding] @@ -91,31 +61,7 @@ y = 0 #decorations = "buttonless" import = [ "~/.config/alacritty_font.toml", + "~/.config/alacritty/themes/themes/everforest_dark.toml" ] [terminal] - -# Everforest color theme - -# [colors.bright] -# black = "0x475258" -# blue = "0x7fbbb3" -# cyan = "0x83c092" -# green = "0xa7c080" -# magenta = "0xd699b6" -# red = "0xe67e80" -# yellow = "0xdbbc7f" -# -# [colors.normal] -# black = "0x475258" -# blue = "0x7fbbb3" -# cyan = "0x83c092" -# green = "0xa7c080" -# magenta = "0xd699b6" -# red = "0xe67e80" -# white = "0xd3c6aa" -# yellow = "0xdbbc7f" -# -# [colors.primary] -# background = "0x2d353b" -# foreground = "0xd3c6aa" diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc index 7d0d0b0..7b28734 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -1,5 +1,5 @@ [global] - monitor = 0 + monitor = 1 follow = none sort = yes @@ -21,7 +21,7 @@ offset = (60,20) scale = 0 - + notification_limit = 5 timeout = 8 diff --git a/.config/fish/config.fish b/.config/fish/config.fish index d091348..9adcc00 100755 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -15,7 +15,7 @@ abbr -a -- gs git status abbr -a -- lgb git lgb abbr -a !! --position anywhere --function last_history_item abbr -a mksilent --position anywhere "&>/dev/null&" -abbr -a inbg --position anywhere "&>/dev/null& && jobs | disown" +abbr -a inbg --position anywhere "&>/dev/null&; jobs | disown" abbr -a -- rm-orphans "sudo pacman -Qtdq | sudo pacman -Rns -" abbr -a -- screenl "systemctl hybrid-sleep && hyprlock &>/dev/null&" abbr -a -- tree "eza -T" @@ -23,6 +23,9 @@ abbr -a -- trd "eza -T -D" abbr -a -- trl "eza -T -L " abbr -a -- trld "eza -T -D -L " abbr -a -- trdl "eza -T -D -L " +abbr -a -- zayi yazi +abbr -a -- nv nvim +abbr -a -- v nvim abbr -a "packagelist-update" "pacman -Qe | sed 's/ .*//g' | tee ~/Sync/explicitly_installed" abbr -a "nvim-headless-update" 'nvim --headless "+Lazy! sync" +qa' abbr -a "nvim-headless-clean" 'nvim --headless "+Lazy! clean" +qa' @@ -59,6 +62,7 @@ set -g fish_color_valid_path --underline starship init fish | source zoxide init --cmd cd fish | source +# atuin init fish | source # pnpm set -gx PNPM_HOME "/home/felix/.local/share/pnpm" diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables index 2f0eb21..91da540 100644 --- a/.config/fish/fish_variables +++ b/.config/fish/fish_variables @@ -1,19 +1,21 @@ # This file contains fish universal variable definitions. # VERSION: 3.0 SETUVAR --export BAT_THEME:OneHalfDark +SETUVAR DISPLAY:\x3a0 SETUVAR --export EDITOR:nvim SETUVAR --export ELECTRON_OZONE_PLATFORM_HINT:wayland SETUVAR FLASK_ENV:development SETUVAR --export --path GODOT_ADDON_PATH:\x7e/\x2elocal/share/godot/addons +SETUVAR GTK_THEME:adwaita SETUVAR LANG:en_GB\x2eUTF\x2d8 SETUVAR LANGUAGE:en_GB\x2eUTF\x2d8 SETUVAR --export LAST_DIR:/home/felix/Code/side/advent_of_code_2024 SETUVAR --export MY_GITLAB_TOKEN:glpat\x2dye6rAJswy24rQcRNnmLo -SETUVAR --export RUSTC_WRAPPER:sccache +SETUVAR --export RUSTC_WRAPPER:\x1d SETUVAR --export SUDO_ASKPASS:/usr/bin/ksshaskpass SETUVAR TERMINAL_FONT_SIZE:14 SETUVAR --export VISUAL_EDITOR:nvim -SETUVAR __fish_initialized:3400 +SETUVAR __fish_initialized:3800 SETUVAR _fish_abbr_audio_2D_switch:\x7e/Code/scripts/alsa\x2dfp\x2dswitch\x2esh SETUVAR _fish_abbr_clera:clear SETUVAR _fish_abbr_current_2D_project:vim\x20Code/side/first_rust_gui @@ -22,28 +24,28 @@ SETUVAR _fish_abbr_uin:sudo\x20pacman\x20\x2dRuscn SETUVAR _fisher_nickeb96_2F_puffer_2D_fish_files:\x7e/\x2econfig/fish/functions/_puffer_fish_expand_bang\x2efish\x1e\x7e/\x2econfig/fish/functions/_puffer_fish_expand_dots\x2efish\x1e\x7e/\x2econfig/fish/functions/_puffer_fish_expand_lastarg\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/puffer_fish_key_bindings\x2efish SETUVAR _fisher_plugins:nickeb96/puffer\x2dfish SETUVAR _fisher_upgraded_to_4_4:\x1d -SETUVAR fish_color_autosuggestion:969896 +SETUVAR fish_color_autosuggestion:4D5566 SETUVAR fish_color_cancel:\x2d\x2dreverse -SETUVAR fish_color_command:b294bb -SETUVAR fish_color_comment:f0c674 -SETUVAR fish_color_cwd:green +SETUVAR fish_color_command:39BAE6 +SETUVAR fish_color_comment:626A73 +SETUVAR fish_color_cwd:59C2FF SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:b294bb -SETUVAR fish_color_error:cc6666 -SETUVAR fish_color_escape:00a6b2 +SETUVAR fish_color_end:F29668 +SETUVAR fish_color_error:FF3333 +SETUVAR fish_color_escape:95E6CB SETUVAR fish_color_history_current:\x2d\x2dbold SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:\x1d -SETUVAR fish_color_keyword:\x1d -SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue -SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:00a6b2 -SETUVAR fish_color_option:\x1d -SETUVAR fish_color_param:81a2be -SETUVAR fish_color_quote:b5bd68 -SETUVAR fish_color_redirection:8abeb7 -SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_keyword:39BAE6 +SETUVAR fish_color_match:F07178 +SETUVAR fish_color_normal:B3B1AD +SETUVAR fish_color_operator:E6B450 +SETUVAR fish_color_option:B3B1AD +SETUVAR fish_color_param:B3B1AD +SETUVAR fish_color_quote:C2D94C +SETUVAR fish_color_redirection:FFEE99 +SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dE6B450 +SETUVAR fish_color_selection:\x2d\x2dbackground\x3dE6B450 SETUVAR fish_color_status:red SETUVAR fish_color_user:brgreen SETUVAR fish_color_valid_path:\x2d\x2dunderline @@ -58,7 +60,7 @@ SETUVAR fish_pager_color_secondary_background:\x1d SETUVAR fish_pager_color_secondary_completion:\x1d SETUVAR fish_pager_color_secondary_description:\x1d SETUVAR fish_pager_color_secondary_prefix:\x1d -SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack +SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dE6B450 SETUVAR fish_pager_color_selected_completion:\x1d SETUVAR fish_pager_color_selected_description:\x1d SETUVAR fish_pager_color_selected_prefix:\x1d diff --git a/.config/fish/functions/battery_capacity.fish b/.config/fish/functions/battery_capacity.fish new file mode 100644 index 0000000..767c3e2 --- /dev/null +++ b/.config/fish/functions/battery_capacity.fish @@ -0,0 +1,11 @@ +function battery_capacity + cd /sys/class/power_supply/ + for dir in ( ls | rg BAT | cut -d" " -f1) + cd $dir && + cat energy_full | read x && + cat energy_full_design | read y && + echo "capacity % of $dir compared to design capacity" + kalker $x/$y && + cd .. + end +end diff --git a/.config/fish/functions/restart.fish b/.config/fish/functions/restart.fish index e212cf1..daa96ab 100644 --- a/.config/fish/functions/restart.fish +++ b/.config/fish/functions/restart.fish @@ -1,4 +1,4 @@ function restart --argument x -pkill $x && $x &>/dev/null& && sleep 0.2 && jobs | disown +pkill $x; $x &>/dev/null&; sleep 0.2; jobs | disown end diff --git a/.config/fish/functions/setscreenb.fish b/.config/fish/functions/setscreenb.fish index 66d3f09..8a573c1 100644 --- a/.config/fish/functions/setscreenb.fish +++ b/.config/fish/functions/setscreenb.fish @@ -1,6 +1,6 @@ function setscreenb --argument x -for i in (seq 1 2) -sudo ddcutil setvcp 10 $x -d $i -end + for i in (seq 1 2) + ddcutil setvcp 10 $x -d $i + end end diff --git a/.config/hypr/always_applications b/.config/hypr/always_applications new file mode 100755 index 0000000..5db148b --- /dev/null +++ b/.config/hypr/always_applications @@ -0,0 +1,5 @@ +vivaldi & +Telegram & + +## sharing is caring +ktorrent diff --git a/.config/hypr/apps.conf b/.config/hypr/apps.conf index 272e084..be3562d 100644 --- a/.config/hypr/apps.conf +++ b/.config/hypr/apps.conf @@ -3,9 +3,13 @@ $terminal = kitty $spotify = spotify --enable-features=UseOzonePlatform --ozone-platform=wayland $fileManager = dolphin -$menu = wofi --show drun -$appLauncher = tofi-drun | xargs hyprctl dispatch exec -- +$menu = tofi --show drun +$appLauncher = tofi-drun --num-results=5 | xargs hyprctl dispatch exec -- $lockscreen = hyprlock --immediate $lockscreen_timeout = hyprlock $nextcloud = nextcloud --background -$clipboard-manager = cliphist list | awk '{gsub("\t", " "); print}'\ | tofi --width=800 --font-size=14 --font-features="" --background-color=191A1CE0 | awk '{print $1}' | tr -d '\n' | cliphist decode | wl-copy +$clipboard-manager = cliphist list | awk '{gsub("\t", " "); print}'\ | tofi --width=1000 --font-size=14 --font-features="" --anchor=bottom --background-color=191A1CE0 | awk '{print $1}' | tr -d '\n' | cliphist decode | wl-copy + +$colorpicker = notify-send $(hyprpicker -af hex) +$powermenu = hyprctl dispatch exec ~/.config/hypr/tofi_scripts/powermenu.sh +$brightnessmenu = hyprctl dispatch exec ~/.config/hypr/tofi_scripts/brightnessmenu.sh diff --git a/.config/hypr/autostart b/.config/hypr/autostart index fa8b1bb..4506d99 100755 --- a/.config/hypr/autostart +++ b/.config/hypr/autostart @@ -1,33 +1,40 @@ #!/usr/bin/bash -# variables -config=$HOME/.config/hypr +## variables +config=$HOME/.config/hypr & -# wallpaper -hyprpaper & +## wallpaper +hyprpaper & -# notification daemon +## notification daemon dunst & -# secrets manager +## secrets manager kwalletd6 & -# waybar +## waybar waybar & -# syncronisation -syncthing & -nextcloud --background & - -# clipboard -wl-paste --watch cliphist store & - -# network-manager tray icon -NetworkManager & -nm-applet & -# other +## other polkit-kde-authentication-agent-1 & dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP & hypridle & -polkit-qt6 & -xwaylandvideobridge & +systemctl --user start hyprpolkitagent & + + +## syncronisation +syncthing & +nextcloud --background & + +## clipboard +wl-paste --watch cliphist store & + +# xwaylandvideobridge & + +## workspace +kitty --single-instance --session '~/.local/share/kittymainsession' & + +## network-manager tray icon +sleep 1 & +NetworkManager & +nm-applet & diff --git a/.config/hypr/gamemode.sh b/.config/hypr/gamemode.sh old mode 100644 new mode 100755 index b89b5c4..450c80c --- a/.config/hypr/gamemode.sh +++ b/.config/hypr/gamemode.sh @@ -8,7 +8,8 @@ if [ "$HYPRGAMEMODE" = 1 ] ; then keyword general:gaps_in 0;\ keyword general:gaps_out 0;\ keyword general:border_size 1;\ - keyword decoration:rounding 0" + keyword decoration:rounding 0;\ + keyword render:direct_scanout 0" exit fi hyprctl reload diff --git a/.config/hypr/hyprbindings.conf b/.config/hypr/hyprbindings.conf index 4d9207d..c62328e 100644 --- a/.config/hypr/hyprbindings.conf +++ b/.config/hypr/hyprbindings.conf @@ -13,8 +13,13 @@ bind = $mainMod ALT_L, K, exec, hyprctl switchxkblayout holtek-usb-hid-keyboard # % is needed for the DragonFly, because it is too finegrained with 65k steps binde = ,XF86AudioLowerVolume, exec, amixer -M -- set Master Playback Switch 1%- binde = ,XF86AudioRaiseVolume, exec, amixer -M -- set Master Playback Switch 1%+ - bind = ,XF86AudioMute, exec, amixer -M -- set Master Playback Switch toggle +bind = ,XF86AudioMicMute, exec, amixer -M -- set Capture toggle + +bindle = ,XF86MonBrightnessUp, exec, brightnessctl set +5% +bindle = ,XF86MonBrightnessDown, exec, brightnessctl set 5%- + +bind = ,Print, exec, hyprshot --mode region -o ~/Pictures/Screenshots/ # Reduce effects for performance bind = WIN, F1, exec, ~/.config/hypr/gamemode.sh @@ -23,18 +28,23 @@ bind = WIN, F1, exec, ~/.config/hypr/gamemode.sh bind = $mainMod, V, exec, $clipboard-manager bind = $mainMod SHIFT, V, exec, cliphist wipe +# colorpicker +bind = $mainMod SHIFT, P, exec, $colorpicker + +# Passthrough +bind = ALT_L ALT_R, M, pass, class:^(discord) + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, $terminal -bind = $mainMod, M, exit, +bind = $mainMod, M, exit, bind = $mainMod, E, exec, $fileManager -bind = $mainMod, F, togglefloating, +bind = $mainMod, F, togglefloating, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle -bind = $mainMod, C, killactive, +bind = $mainMod, C, killactive, bind = $mainMod, D, togglesplit, # dwindle bind = ALT_L, F4, killactive bind = ALT_L, SPACE, exec, $appLauncher -bind = ALT_L, F11, fullscreenstate, 0 bind = $mainMod, F11, fullscreenstate, 2 # maximize # fullscreen window w/o fullscreen mode bind = $mainMod, up, fullscreenstate, 3 # maximize # fullscreen window w/o fullscreen mode bind = ALT_L, TAB, cyclenext @@ -51,9 +61,12 @@ bind = $mainMod, O, fullscreenstate, 1 # lock bind = $mainMod, F12, exec, $lockscreen +# powermenu +bind = $mainMod SHIFT_L, F12, exec, $powermenu +bind = $mainMod ALT_L, B, exec, $brightnessmenu # swap workspaces between monitors -bind = $mainMod ALT_L, s, swapactiveworkspaces, DP-1 DP-2 -bind = $mainMod ALT_L, s, swapactiveworkspaces, eDP-1 HDMI-A-2 +# bind = $mainMod ALT_L, s, swapactiveworkspaces, DP-1 DP-2 +bind = $mainMod ALT_L, s, swapactiveworkspaces, 0 1 # generic is good enough # Move window in direction bind = $mainMod SHIFT, h, swapwindow, l @@ -64,6 +77,8 @@ bind = $mainMod SHIFT, l, swapwindow, r # Move window to other screen bind = $mainMod SHIFT, left, movewindow, mon:-1 bind = $mainMod SHIFT, right, movewindow, mon:+1 +bind = $mainMod ALT_L CTRL, h, movewindow, mon:-1 +bind = $mainMod ALT_L CTRL, l, movewindow, mon:+1 # Resize Window in direction binde = $mainMod CTRL, h, resizeactive, -25 0 @@ -100,8 +115,8 @@ bind = $mainMod ALT_L, h, movetoworkspace, r-1 bind = $mainMod ALT_L, l, movetoworkspace, r+1 # Switch to next/previous virtual workspace/ desktop, ignore empty -bind = ALT_L, h, workspace, e-1 -bind = ALT_L, l, workspace, e+1 +bind = ALT_L, h, workspace, m-1 +bind = ALT_L, l, workspace, m+1 # ---- # Example special workspace (scratchpad) @@ -116,15 +131,17 @@ bind = $mainMod SHIFT, X, movetoworkspace, special:X # ---- # Scroll through existing workspaces with mainMod + scroll -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 +bind = $mainMod, mouse_down, workspace, m-1 +bind = $mainMod, mouse_up, workspace, m+1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow -bind = SHIFT_LALT_L, h, changegroupactive, b -bind = SHIFT_LALT_L, l, changegroupactive, f +bind = SHIFT_L ALT_L, h, changegroupactive, b +bind = SHIFT_L ALT_L, l, changegroupactive, f + +## GROUPS #-------------------- # will switch to a submap called groups bind = $mainMod, G, submap, groups @@ -142,12 +159,19 @@ bind = , l, moveintogroup, r bind = , G, moveoutofgroup, # Toggle a group on the current window bind = $mainMod, t, togglegroup +# # lock window group -bind = , L, lockactivegroup +bind = , l, lockactivegroup, toggle # use reset to go backc to the global submap bind = , escape, submap, reset +# Move focus with mainMod + arrow keys +bind = $mainMod, h, movefocus, l +bind = $mainMod, j, movefocus, d +bind = $mainMod, k, movefocus, u +bind = $mainMod, l, movefocus, r + # will reset the submap, which will return to the global submap submap = reset #-------------------- diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf index ba3ecba..09ecc1a 100644 --- a/.config/hypr/hypridle.conf +++ b/.config/hypr/hypridle.conf @@ -5,17 +5,18 @@ general { } listener { - timeout = 300 # 5min. + timeout = 300 # 5 min. + # timeout = 90 # 1.5 min. on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. on-resume = brightnessctl -r # monitor backlight restor. } -# turn off keyboard backlight, uncomment this section if have keyboard backlight. -listener { - timeout = 60 # 1min. - on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight. - on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight. -} +## turn off keyboard backlight, uncomment this section if have keyboard backlight. +# listener { +# timeout = 60 # 1min. +# on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight. +# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight. +# } listener { timeout = 900 # 15min diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index fd77702..4e6f6f9 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -3,102 +3,98 @@ # For a full list, see the wiki # -autogenerated = 0 # remove this line to remove the warning - -# See https://wiki.hyprland.org/Configuring/Monitors/ -#monitor=name,resolution,offset, scale -#offset scales with scale XC -#monitor=DP-1,3840x2160@60,320x-1440,auto, bitdepth, 10, vrr, 1 #320=(2560-1920)/2 -#monitor=DP-1,3840x2160@144,auto,auto, bitdepth, 10, vrr, 1 -#monitor=DP-2,3840x2160,-2560x0,auto, bitdepth, 10, vrr, 1 -monitor=eDP-1,1920x1080,auto,1,vrr, 1 -monitor=HDMI-A-1,2560x1440@60.00,0x-1440,1 -monitor= ,highres@highrr,auto-up,1 -monitor=DP-1,highres@highrr,auto-right,auto, bitdepth, 10, vrr, 1 -monitor=DP-2,highres@highrr,auto-left,auto, bitdepth, 10, vrr, 1 - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & dunst & syncthing & $nextcloud & $terminal exec-once = $HOME/.config/hypr/autostart -exec-once = gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" # for GTK3 apps +exec-once = $HOME/.config/hypr/always_applications +#exec-once = gsettings set org.gnome.desktop.interface gtk-theme "Adwaita" # for GTK3 apps exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf source = ~/.config/hypr/background.conf source = ~/.config/hypr/hyprbindings.conf +source = ~/.config/hypr/monitors.conf source = ~/.config/hypr/apps.conf source = ~/.config/hypr/windowrules.conf # Some default env vars. env = XCURSOR_SIZE,32 env = GSK_RENDERER,ngl -env = GTK_THEME,Adwaita-dark +env = DISPLAY,:0 +env = GDK_BACKEND,wayland,x11,* +#env = GTK_THEME,AdwaitaDark +env = SDL_VIDEODRIVER,wayland env = QT_QPA_PLATFORM,wayland # here for calibre, with debatable effect env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +#plugin = /home/felix/Sync/dotfiles/.config/hypr/plugins/hyprslidr.so + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { - kb_layout = gb,de - #kb_layout = de,gb - kb_variant = nodeadkeys - kb_model = pc105 - kb_options = caps:escape - kb_rules = - numlock_by_default = true - repeat_rate = 35 - repeat_delay = 300 + kb_layout = gb,eu,de + #kb_layout = gb,de + #kb_variant = nodeadkeys + kb_model = pc105 + kb_options = caps:escape + kb_rules = + numlock_by_default = true + repeat_rate = 45 + repeat_delay = 300 - # Follow mouse 1 2 3 : - follow_mouse = 2 # see also float_switch_override_focus + # Follow mouse 1 2 3 : + follow_mouse = 2 # see also float_switch_override_focus float_switch_override_focus = 0 + accel_profile = flat - touchpad { - natural_scroll = yes + touchpad { + natural_scroll = yes clickfinger_behavior = true - } - scroll_factor = 1.0 + } + scroll_factor = 1.0 - # PC with mouse: now as device specific setting - # sensitivity = -0.4 # -1.0 - 1.0, 0 means no modification. - # accel_profile = flat - # Laptop with touchpad - sensitivity = 0 - accel_profile = adaptive + # PC with mouse: now as device specific setting + # sensitivity = -0.4 # -1.0 - 1.0, 0 means no modification. + # accel_profile = flat + # Laptop with touchpad } general { - # See https://wiki.hyprland.org/Configuring/Variables/ for more + # See https://wiki.hyprland.org/Configuring/Variables/ for more - gaps_in = 2 - gaps_out = 1 - border_size = 1 - col.active_border = rgba(33ccffee) rgba(00ff99ee) 30deg - col.inactive_border = rgba(595959aa) + gaps_in = 1 + gaps_out = 0 + border_size = 1 + col.active_border = rgba(00ff99ee) rgba(33ccffee) 30deg + col.inactive_border = rgba(595959aa) - layout = dwindle + layout = dwindle - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false } decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more + # See https://wiki.hyprland.org/Configuring/Variables/ for more - rounding = 0 + rounding = 10 + dim_inactive = false + dim_strength = 0.1 + # inactive_opacity = 0.95 - blur { - enabled = true - size = 1 - passes = 3 + blur { + enabled = true + size = 1 + passes = 3 + brightness = 0.6 popups = true - vibrancy = 0.3 - vibrancy_darkness = 0.8 - } + vibrancy = 0.2 + vibrancy_darkness = 0.2 + } shadow { enabled = no range = 4 @@ -111,64 +107,85 @@ group { enabled = true font_family = "Hurmit Nerd Font Regular" font_size = 11 + gaps_in = 5 + gradient_rounding = 15 gradients = false - scrolling = false + indicator_height = 1 render_titles = false + round_only_edges = false + scrolling = false + col.active = rgba(33ccffaa) col.inactive = rgba(00ff9933) + col.locked_active = rgba(f075f0ed) } #col.border_active = rgba(ea1d4ebb) rgba(fd7000bb) 45deg - col.border_active = rgba(00ff99ee) rgba(33ccffee) 30deg + col.border_active = rgba(33ccffee) rgba(00ff99ee) 30deg + col.border_locked_active = rgba(33ccffee) rgba(cc00ffee) 30deg } animations { - enabled = yes + enabled = yes - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - animation = windows, 1, 5, myBezier - animation = windowsOut, 1, 5, default, popin 80% - animation = border, 1, 10, default - animation = borderangle, 1, 8, default - animation = fade, 1, 7, default - animation = workspaces, 1, 5, default + animation = windows, 1, 5, myBezier + animation = windowsOut, 1, 5, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 5, default +} +render { + direct_scanout = 2 #auto } dwindle { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = yes # you probably want this + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this } master { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - # new_status = master + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + # new_status = master } gestures { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = on + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = on } misc { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers + vfr = true } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more device { - name = roccat-roccat-leadr-mouse - sensitivity = -0.4 - accel_profile = flat + name = roccat-roccat-leadr-mouse + sensitivity = -0.2 + accel_profile = flat } device { - name = razer-razer-taipan-1 - sensitivity = 0.4 - accel_profile = flat + name = razer-razer-taipan-1 + sensitivity = 0.4 + accel_profile = flat +} +device { + name = synaptics-tm3276-022 + accel_profile = custom 0.5 0.0 0.35 0.78 1.05 1.5 2.1 2.8 3.7 + #accel_profile = adaptive + sensitivity = 0.0 +} + +ecosystem { + no_update_news = true } # execute at end -exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf index c69445d..20308b4 100644 --- a/.config/hypr/hyprlock.conf +++ b/.config/hypr/hyprlock.conf @@ -1,6 +1,7 @@ disable_loading_bar = false general { + hide_cursor = true grace = 20 text_trim = false } @@ -11,17 +12,17 @@ background { path = screenshot # color = rgba(20,20,20,80) - blur_passes = 3 + blur_passes = 4 blur_size = 1 - noise = 0.2117 + noise = 0.0717 contrast = 0.8916 - brightness = 0.5172 + brightness = 0.4672 vibrancy = 0.1696 vibrancy_darkness = 1.0 } input-field { - monitor = + monitor = size = 600, 50 outline_thickness = 1 dots_size = 0.25 # Scale of input-field height, 0.2 - 0.8 @@ -50,8 +51,8 @@ input-field { valign = center } label { - monitor = - text = $TIME ' + monitor = + text = $TIME color = hsla(50, 60%, 50%, 0.8) font_size = 35 font_family = Z003 diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf new file mode 100644 index 0000000..145766e --- /dev/null +++ b/.config/hypr/monitors.conf @@ -0,0 +1,42 @@ +# See https://wiki.hyprland.org/Configuring/Monitors/ monitor=name,resolution,offset, scale offset scales with scale XC + +# for a triple monitor setup > 1: down + 2: center + 3: right -- LAPTOP +monitor=eDP-1,1920x1080,0x0,1,vrr, 1 +monitor= ,highres@highrr,auto-up,auto + + +monitor=desc:Iiyama North America PL2492H 1151164104155,highres@highrr,1920x-1260,auto, bitdepth, 10, vrr, 1 +#monitor=desc:Iiyama North America PL2492H 1151164104155,disable +monitor=desc:Iiyama North America PL2797Q 12328405B1733,highres@99.90,-640x-1440,auto, bitdepth, 10, vrr, 1 + +monitor=desc:Iiyama North America PL2492H 11511811A1794,highres@highrr,auto-up,auto, bitdepth, 10, vrr, 1 +#monitor=desc:Iiyama North America PL2792Q 1216731821134,highres@highrr,-640x-1440,auto, bitdepth, 10, vrr, 1 + +## Variant 3 +monitor=eDP-1,1920x1080,auto-down,1,vrr, 1 +monitor=desc:Iiyama North America PL2492H 1151164104155,highres@highrr,auto-left, auto, vrr, 1 +monitor=desc:Iiyama North America PL2492H 11511811A1794,highres@highrr,0x0, auto, vrr, 1 + +# --- +monitor=desc:Philips Consumer Electronics Company PHL 272B8Q UK01945026658,highres@highrr,auto-up,auto, bitdepth, 10, vrr, 1 + + +# --- DESKTOP DUAL MONITOR SETUP +#monitor=desc:Advanced Micro Peripherals Ltd ES07D03 EVE213400622,preferred,auto-right, auto, bitdepth, 8, vrr, 1, cm, auto +#monitor=desc:Iiyama North America PLG2888UH 0x01010101,preferred,auto-left, auto, bitdepth, 8, vrr, 1 + +monitor=desc:Advanced Micro Peripherals Ltd ES07D03 EVE213400622,preferred,auto-right, 1, bitdepth, 8, vrr, 1, cm, auto +monitor=desc:Iiyama North America PLG2888UH 0x01010101,preferred,auto-left, 1, bitdepth, 8, vrr, 1 + +# turn off second monitor: +#monitor=desc:Iiyama North America PLG2888UH 0x01010101,disable +# use half of second monitor (PbP mode) +#monitor=desc:Iiyama North America PLG2888UH 0x01010101,1920x2160,auto-left, 1, bitdepth, 8, vrr, 1 + +#10 bit color depth +#monitor=desc:Advanced Micro Peripherals Ltd ES07D03 EVE213400622,preferred,auto-right, 1, bitdepth, 10, vrr, 1, cm, edid, sdrbrightness, 1.12, sdrsaturation, 1.28 +#monitor=desc:Advanced Micro Peripherals Ltd ES07D03 EVE213400622,preferred,auto-right, 1, bitdepth, 10, vrr, 1, cm, wide, sdrbrightness, 1.12, sdrsaturation, 1.28 + +# hdr for primary monitor +#monitor=desc:Advanced Micro Peripherals Ltd ES07D03 EVE213400622,preferred,auto-right, 1, bitdepth, 10, vrr, 1, cm, hdredid, sdrbrightness, 1.22, sdrsaturation, 1.08 +#monitor=desc:Advanced Micro Peripherals Ltd ES07D03 EVE213400622,preferred,auto-right, 1, bitdepth, 10, vrr, 1, cm, hdr, sdrbrightness, 1.12, sdrsaturation, 1.08 diff --git a/.config/hypr/monitors.rep b/.config/hypr/monitors.rep deleted file mode 100644 index 4ef85b1..0000000 --- a/.config/hypr/monitors.rep +++ /dev/null @@ -1,33 +0,0 @@ -Monitor DP-1 (ID 0): - 3840x2160@143.98199 at 0x0 - description: Advanced Micro Peripherals Ltd ES07D03 EVE213400622 (DP-1) - make: Advanced Micro Peripherals Ltd - model: ES07D03 - serial: EVE213400622 - active workspace: 1 (1) - special workspace: 0 () - reserved: 0 0 0 0 - scale: 1.50 - transform: 0 - focused: yes - dpmsStatus: 1 - vrr: 0 - activelyTearing: false - -Monitor DP-2 (ID 1): - 3840x2160@59.99700 at 2560x0 - description: Iiyama North America PLG2888UH 0x01010101 (DP-2) - make: Iiyama North America - model: PLG2888UH - serial: 0x01010101 - active workspace: 2 (2) - special workspace: 0 () - reserved: 0 0 0 0 - scale: 1.50 - transform: 0 - focused: no - dpmsStatus: 1 - vrr: 0 - activelyTearing: false - - diff --git a/.config/hypr/tofi_scripts/brightnessmenu.fish b/.config/hypr/tofi_scripts/brightnessmenu.fish new file mode 100755 index 0000000..8ba0e3a --- /dev/null +++ b/.config/hypr/tofi_scripts/brightnessmenu.fish @@ -0,0 +1,6 @@ +#!/usr/bin/fish +set b $(seq 0 100 | tofi --config ~/.config/tofi/brightness_config) + +for i in (seq 1 2) + ddcutil setvcp 10 $b -d $i +end diff --git a/.config/hypr/tofi_scripts/brightnessmenu.sh b/.config/hypr/tofi_scripts/brightnessmenu.sh new file mode 100755 index 0000000..eea9e20 --- /dev/null +++ b/.config/hypr/tofi_scripts/brightnessmenu.sh @@ -0,0 +1,8 @@ +#!/usr/bin/sh +b=$( for ((i=0;i<=100;i+=5)) do +echo $i +done| tofi --config ~/.config/tofi/brightness_config) + +for ((i=0; i<3;i++)) do + ddcutil setvcp 10 $b -d $i +done diff --git a/.config/hypr/tofi_scripts/powermenu.sh b/.config/hypr/tofi_scripts/powermenu.sh new file mode 100755 index 0000000..5adbae4 --- /dev/null +++ b/.config/hypr/tofi_scripts/powermenu.sh @@ -0,0 +1,10 @@ +#!/usr/bin/bash + +case "$(printf "sleep\nreboot\nshutdown\nhybrid-sleep\nhibernate" | tofi --config .config/tofi/powermenu_config)" in + sleep) systemctl suspend;; + reboot) systemctl reboot;; + shutdown) shutdown now ;; + hybrid-sleep) hyprlock; systemctl suspend-then-hibernate;; + hibernate) systemctl hibernate;; + *) exit 1 ;; +esac diff --git a/.config/hypr/windowrules.conf b/.config/hypr/windowrules.conf index d02d164..a0b3137 100644 --- a/.config/hypr/windowrules.conf +++ b/.config/hypr/windowrules.conf @@ -1,31 +1,59 @@ -# Example windowrule v1 -# windowrule = float, ^(kitty)$ -# Example windowrule v2 -# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -# now invalid: # windowrulev2 = nomaximizerequest, class:.* # You'll probably like this. -windowrule = float, pinned, ^(dunst)$ -windowrule = float, pinned, ^(notification)$ + + +# Example windowrule v2 windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ See https://wiki.hyprland.org/Configuring/Window-Rules/ for more now invalid: # windowrulev2 = nomaximizerequest, class:.* # You'll probably like this. windowrulev2 = float, pinned, class:^(dunst)$ windowrulev2 = float, pinned, class:^(notification)$ windowrulev2 = float, pinned, title:^(Nextcloud)$ windowrulev2 = float, title:^(Volume Control)$ windowrulev2 = float, title:^(Network Connections)$ -windowrulev2 = float, size 300 700, stayfocused, dimaround, fullscreenstate, 0, title:(Bitwarden - Vivaldi) +windowrulev2 = float, size 400 800, stayfocused, dimaround, fullscreenstate, 0, title:(Bitwarden.*) +windowrulev2 = float, size 300 700, stayfocused, dimaround, fullscreenstate, 0, class:^(org.kde.kwalletd6)$ windowrulev2 = float, pin, workspace unset, noinitialfocus, suppressevents [fullscreen, maximize, activate, activatefocus], title:^(notificationtoasts) +windowrulev2 = float, pin, workspace unset, noinitialfocus, suppressevents [fullscreen, maximize, activate, activatefocus], initialTitle:^(Calendar Reminders)$ +windowrulev2 = float, pin, workspace unset, title:(Picture in picture) +## workspace rules +workspace = 7, monitor:0 +workspace = w[1], bordersize:0, gapsout:0, rounding:true +workspace = w[t2-9], rounding:false +# windows on special workspaces leave outer gaps +workspace = s[true], gapsout:20, gapsin:5 +# fullscreen windows leave no gaps and have decorations disabled +workspace = f[1], gapsout:0, gapsin:0, bordersize:0, decorate:false, rounding:false + + +## Workspace allocation windowrulev2 = workspace 6 silent, noinitialfocus, class:^(steam)$ -windowrulev2 = workspace special:A silent, noinitialfocus, class:^(org.telegram.desktop)$ -windowrulev2 = workspace special:A silent, noinitialfocus, class:^(zapzap)$ -windowrulev2 = workspace special:A silent, noinitialfocus, class:^(discord)$ -windowrulev2 = workspace special:A silent, noinitialfocus, class:^(Slack)$ -windowrulev2 = workspace special:S silent, noinitialfocus, class:^(spotify)$ # not capitalised on PC -windowrulev2 = workspace special:S silent, noinitialfocus, class:^(Spotify)$ # capitalised on laptop -windowrulev2 = workspace special:S silent, noinitialfocus, class:^(com.sayonara-player.Sayonara)$ +windowrulev2 = workspace 6 silent, noinitialfocus, title:^(Steam)$ +#windowrulev2 = workspace 1 silent, class:^(kitty)$ +windowrulev2 = workspace 3 silent, class:^(obsidian)$ +windowrulev2 = workspace 8 silent, noinitialfocus, class:^(input-remapper-gtk)$ +windowrulev2 = workspace 2, initialClass:^(vivaldi-stable)$ +windowrulev2 = workspace 5, class:^(thunderbird)$ -windowrulev2 = opacity 0.0 override, class:^(xwaylandvideobridge)$ -windowrulev2 = noanim, class:^(xwaylandvideobridge)$ -windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$ -windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$ -windowrulev2 = noblur, class:^(xwaylandvideobridge)$ -windowrulev2 = nofocus, class:^(xwaylandvideobridge)$ -windowrulev2 = workspace special:X silent, noinitialfocus, class:^(xwaylandvideobridge)$ +## tag allocation +# windowrulev2 = tag +comms, class:^[(org.telegram.desktop)(zapzap)(discord)(Slack)]$ +windowrulev2 = tag +comms, class:^(org.telegram.desktop)$ +windowrulev2 = tag +comms, class:^(discord)$ +windowrulev2 = tag +comms, class:^(Slack)$ +windowrulev2 = tag +comms, initialTitle:^(ZapZap)$ +windowrulev2 = tag +music, class:^([Ss]potify)$ # not capitalised on PC # capitalised on laptop +windowrulev2 = tag +music, class:^(com.sayonara-player.Sayonara)$ + +################## gaming + +windowrulev2 = tag +game, class:^(gamescope)$ +windowrulev2 = tag +game, class:^(noita)$ +windowrulev2 = tag +game, class:^(steam_app.*)$ +windowrulev2 = tag +game, title:^(Dota 2)$ + +## Tag rules +windowrulev2 = workspace 7, content game, immediate on, decorate off, idleinhibit fullscreen, class:^(gamescope)$ +windowrulev2 = workspace 7, content game, immediate on, decorate off, idleinhibit fullscreen, tag: game +windowrulev2 = workspace special:A silent, noinitialfocus, tag: comms +windowrulev2 = workspace special:S silent, noinitialfocus, idleinhibit focus, tag: music + +## Idle inhibit +windowrulev2 = idleinhibit fullscreen, fullscreen:1 + +## fixes for screensharing +windowrulev2 = workspace special:X silent, noinitialfocus, nofocus, noblur, maxsize 1 1, noanim, opacity 0.0 override, class:^(xwaylandvideobridge)$ diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf index 272e33b..9eeba7b 100644 --- a/.config/kitty/kitty.conf +++ b/.config/kitty/kitty.conf @@ -5,18 +5,23 @@ include current-theme.conf # BEGIN_COLOR_SCHEME # background #1e1e1e -background_opacity 0.7 -background_blur 1 -background_tint 1.0 -transparent_background_colors #22262D #2D313B #303030 #000 +# ↓↓same as nvim Everforest↓↓ +background #2D353B +# ↑↑----------↑↑ +background_opacity 0.25 +background_blur 0 +background_tint 0.0 +transparent_background_colors #22262D #2D313B #303030 #000 #2D353B #343F44 #3D484D +# neovim backgrounds with Everforest theme: #2D353B #343F44 # END_COLOR_SCHEME # BEGIN_KITTY_FONTS -font_family family='Hurmit Nerd Font' style=Light -bold_font auto -italic_font family='Hurmit Nerd Font' style='Light Italic' +font_family family="Hurmit Nerd Font" +bold_font auto +italic_font family='Hurmit Nerd Font' style='Light Italic' bold_italic_font auto -font_size 13.0 +font_size 14.0 +modify_font cell_height -4px # END_KITTY_FONTS # BEGIN_SCROLLBACK @@ -26,24 +31,24 @@ touch_scroll_multiplier 5.0 # BEGIN_WINDOW_LAYOUT hide_window_decorations yes #window_padding_width 0 -placement_strategy bottom +placement_strategy center # END_WINDOW_LAYOUT # BEGIN_TAB_BAR tab_bar_style powerline tab_powerline_style slanted -tab_title_template "{index} {title}" +tab_title_template "{index} {title}" tab_title_max_length 20 # active_tab_background #1e1e1e # active_tab_foreground #b4cdbe -# active_tab_font_style Light +active_tab_font_style Italic # inactive_tab_background #1e1e1e # inactive_tab_foreground #48736e -inactive_tab_font_style Light +#inactive_tab_font_style Light # END_TAB_BAR # BEGIN_PERFORMANCE_TUNING -repaint_delay 8 +repaint_delay 5 # END_PERFORMANCE_TUNING # BEGIN_KEYBOARD_SHORTCUTS @@ -68,5 +73,5 @@ map alt+z toggle_layout stack # END_KEYBOARD_SHORTCUTS # BEGIN_LAYOUT_DEFINITION -enabled_layouts grid, stack, splits:split_axis=auto, fat:bias=50;full_size=1;mirrored=false, tall:bias=50;full_size=1;mirrored=false +enabled_layouts splits:split_axis=auto, grid, stack, fat:bias=50;full_size=1;mirrored=false, tall:bias=50;full_size=1;mirrored=false # END_LAYOUT_DEFINITION diff --git a/.config/kitty/kitty.conf.bak b/.config/kitty/kitty.conf.bak index de33be4..c7b3964 100644 --- a/.config/kitty/kitty.conf.bak +++ b/.config/kitty/kitty.conf.bak @@ -1,22 +1,25 @@ # BEGIN_KITTY_THEME -# One Half Dark +# Everforest Dark Hard include current-theme.conf # END_KITTY_THEME # BEGIN_COLOR_SCHEME -background #1e1e1e -#background_opacity 0.4 -background_blur 1 -background_tint 1.0 -transparent_background_colors #22262D #2D313B #303030 #000 +# background #1e1e1e +# ↓↓same as nvim Everforest↓↓ +background #2D353B +# ↑↑----------↑↑ +background_opacity 0.25 +background_blur 0 +background_tint 0.0 +transparent_background_colors #22262D #2D313B #303030 #000 #2D353B #343F44 +# neovim backgrounds with Everforest theme: #2D353B #343F44 # END_COLOR_SCHEME # BEGIN_KITTY_FONTS -font_family family='Hurmit Nerd Font' style=Light -bold_font auto -italic_font family='Hurmit Nerd Font' style='Light Italic' +font_family family="Monofur Nerd Font" +bold_font auto +italic_font auto bold_italic_font auto -font_size 13.0 # END_KITTY_FONTS # BEGIN_SCROLLBACK @@ -32,15 +35,13 @@ placement_strategy bottom # BEGIN_TAB_BAR tab_bar_style powerline tab_powerline_style slanted -tab_title_template "{index} {title}" +tab_title_template "{index} {title}" tab_title_max_length 20 - -active_tab_background #1e1e1e -active_tab_foreground #b4cdbe +# active_tab_background #1e1e1e +# active_tab_foreground #b4cdbe # active_tab_font_style Light - -inactive_tab_background #1e1e1e -inactive_tab_foreground #48736e +# inactive_tab_background #1e1e1e +# inactive_tab_foreground #48736e inactive_tab_font_style Light # END_TAB_BAR @@ -50,24 +51,25 @@ repaint_delay 8 # BEGIN_KEYBOARD_SHORTCUTS ## BEGIN_WINDOW_MANAGEMENT -map ctrl+shift+enter new_window -map ctrl+alt+1 goto_tab 1 -map ctrl+alt+2 goto_tab 2 -map ctrl+alt+3 goto_tab 3 -map ctrl+alt+4 goto_tab 4 -map ctrl+alt+5 goto_tab 5 -map ctrl+alt+6 goto_tab 6 -map ctrl+alt+7 goto_tab 7 -map ctrl+alt+8 goto_tab 8 -map ctrl+alt+9 goto_tab 9 +map ctrl+shift+enter new_window +map ctrl+alt+enter launch --cwd=current +map ctrl+alt+1 goto_tab 1 +map ctrl+alt+2 goto_tab 2 +map ctrl+alt+3 goto_tab 3 +map ctrl+alt+4 goto_tab 4 +map ctrl+alt+5 goto_tab 5 +map ctrl+alt+6 goto_tab 6 +map ctrl+alt+7 goto_tab 7 +map ctrl+alt+8 goto_tab 8 +map ctrl+alt+9 goto_tab 9 ## BEGIN_LAYOUT_MANAGEMENT map ctrl+alt+t goto_layout tall map ctrl+alt+s goto_layout wide map ctrl+alt+p last_used_layout -map ctrl+alt+z toggle_layout stack +map alt+z toggle_layout stack # END_KEYBOARD_SHORTCUTS # BEGIN_LAYOUT_DEFINITION -enabled_layouts tall:bias=50;full_size=1;mirrored=false, grid, fat:bias=50;full_size=1;mirrored=false , stack, splits:split_axis=auto +enabled_layouts splits:split_axis=auto, grid, stack, fat:bias=50;full_size=1;mirrored=false, tall:bias=50;full_size=1;mirrored=false # END_LAYOUT_DEFINITION diff --git a/.config/neovide/config.toml b/.config/neovide/config.toml new file mode 100644 index 0000000..c18f93a --- /dev/null +++ b/.config/neovide/config.toml @@ -0,0 +1,6 @@ +[font] +normal = 'Hurmit Nerd Font' +size = 13.0 +[font.italic] +family = 'Hurmit Nerd Font' +style = 'Light Italic' diff --git a/.config/nushell/config.nu b/.config/nushell/config.nu index b00556e..98f7713 100644 --- a/.config/nushell/config.nu +++ b/.config/nushell/config.nu @@ -222,8 +222,6 @@ $env.config = { } filesize: { - metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) - format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto } cursor_shape: { diff --git a/.config/nvim.backup/lazy-lock.json b/.config/nvim.backup/lazy-lock.json index f235770..8789a1f 100644 --- a/.config/nvim.backup/lazy-lock.json +++ b/.config/nvim.backup/lazy-lock.json @@ -1,27 +1,27 @@ { - "LuaSnip": { "branch": "master", "commit": "954c81b53989097faaff0fabc11c29575288c3e1" }, - "arshamiser.nvim": { "branch": "master", "commit": "13af62f49e5c906589aba48b338267c9ef6e2a8e" }, - "arshlib.nvim": { "branch": "master", "commit": "e76e35c927098d07445c72e9416cce243f6aae59" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "LuaSnip": { "branch": "master", "commit": "eda5be8f0ce9816278671f0b578cdbb8b762c701" }, + "arshamiser.nvim": { "branch": "master", "commit": "cde6378321186257b6de65913d1b4d066b369f7d" }, + "arshlib.nvim": { "branch": "master", "commit": "111fd439268adda206a24b133096893869a50764" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, "feline.nvim": { "branch": "master", "commit": "3587f57480b88e8009df7b36dc84e9c7ff8f2c49" }, - "fzf-lua": { "branch": "main", "commit": "46b5be64aa9e7b1cf7d9c29a0e80f7f9a2250007" }, - "gitsigns.nvim": { "branch": "main", "commit": "6e05045fb1a4845fe44f5c54aafe024444c422ba" }, - "heirline.nvim": { "branch": "master", "commit": "170e1b1fd7c11db00e46d802165fb277db601ae7" }, - "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, + "fzf-lua": { "branch": "main", "commit": "797e87a11905cb231a24b7d9baed837451b94723" }, + "gitsigns.nvim": { "branch": "main", "commit": "6e3ee68bc9f65b21a21582a3d80e270c7e4f2992" }, + "heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "listish.nvim": { "branch": "master", "commit": "3bc4bb02036f3802c6428c6232633d3192ac3604" }, - "lsp-zero.nvim": { "branch": "v3.x", "commit": "b9044716e675354357ab8269ccf7bd0fcdc0991e" }, - "nui.nvim": { "branch": "main", "commit": "c9b4de623d19a85b353ff70d2ae9c77143abe69c" }, - "nvim-cmp": { "branch": "main", "commit": "41d7633e4146dce1072de32cea31ee31b056a131" }, - "nvim-lspconfig": { "branch": "master", "commit": "bd405e45c5fb122c16af8f87fa2dd7ab1981b243" }, - "nvim-possession": { "branch": "main", "commit": "253e52fe26f2816acae68e7e0ced9d89adf3f85a" }, - "nvim-treesitter": { "branch": "master", "commit": "b6b9ca448b7f236e2e60f8393a729902511f9db9" }, - "nvim-web-devicons": { "branch": "master", "commit": "8b2e5ef9eb8a717221bd96cb8422686d65a09ed5" }, - "onedark.nvim": { "branch": "master", "commit": "c5476a091b0f1b4e853db91c91ff941f848a1cdd" }, - "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, - "sqls.nvim": { "branch": "main", "commit": "4b1274b5b44c48ce784aac23747192f5d9d26207" }, + "lsp-zero.nvim": { "branch": "v3.x", "commit": "77550f2f6cbf0959ef1583d845661af075f3442b" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, + "nvim-lspconfig": { "branch": "master", "commit": "d8f03bfd5b54b10352276a0ed1f2ffe9c2e0676f" }, + "nvim-possession": { "branch": "main", "commit": "49bc69d7dd72207973e2537d73bfd9f3c1bf2678" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" }, + "onedark.nvim": { "branch": "master", "commit": "11de4da47f3e69cb70c3ae9816bd8af166cbe121" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "sqls.nvim": { "branch": "main", "commit": "d1bc5421ef3e8edc5101e37edbb7de6639207a09" }, "telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" }, - "transparent.nvim": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" }, - "undotree": { "branch": "main", "commit": "a88c8ab7f780bc14ab9356c2311c44f49213d47c" }, - "vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" }, + "transparent.nvim": { "branch": "main", "commit": "8ac59883de84e9cd1850ea25cf087031c5ba7d54" }, + "undotree": { "branch": "main", "commit": "eab459ab87dd249617b5f7187bb69e614a083047" }, + "vim-fugitive": { "branch": "master", "commit": "593f831d6f6d779cbabb70a4d1e6b1b1936a88af" }, "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" } -} \ No newline at end of file +} diff --git a/.config/nvim.backup/lua/plug_init/gitsigns.lua b/.config/nvim.backup/lua/plug_init/gitsigns.lua index be2a9c2..e69de29 100644 --- a/.config/nvim.backup/lua/plug_init/gitsigns.lua +++ b/.config/nvim.backup/lua/plug_init/gitsigns.lua @@ -1,42 +0,0 @@ -require('gitsigns').setup { - signs = { - add = { text = '│' }, - change = { text = '│' }, - delete = { text = '_' }, - topdelete = { text = '‾' }, - changedelete = { text = '~' }, - untracked = { text = '┆' }, - }, - signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` - numhl = false, -- Toggle with `:Gitsigns toggle_numhl` - linehl = false, -- Toggle with `:Gitsigns toggle_linehl` - word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` - watch_gitdir = { - follow_files = true - }, - attach_to_untracked = true, - current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` - current_line_blame_opts = { - virt_text = true, - virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' - delay = 1000, - ignore_whitespace = false, - virt_text_priority = 100, - }, - current_line_blame_formatter = ', - ', - sign_priority = 6, - update_debounce = 100, - status_formatter = nil, -- Use default - max_file_length = 40000, -- Disable if file is longer than this (in lines) - preview_config = { - -- Options passed to nvim_open_win - border = 'single', - style = 'minimal', - relative = 'cursor', - row = 0, - col = 1 - }, - yadm = { - enable = false - }, -} diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 1ae37d2..6bd0f2c 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,38 +1,49 @@ { - "aerial.nvim": { "branch": "master", "commit": "4c959cf65c5420d54b24b61a77b681dcfca0bc57" }, "color-picker.nvim": { "branch": "master", "commit": "06cb5f853535dea529a523e9a0e8884cdf9eba4d" }, - "conform.nvim": { "branch": "master", "commit": "70019124aa4f2e6838be9fbd2007f6d13b27a96d" }, - "coq.artifacts": { "branch": "artifacts", "commit": "a1ffcee295905171d87b40ee456001d45b10329b" }, - "coq.thirdparty": { "branch": "3p", "commit": "12ce499eddf83b524e0540f6fa2e49dcaec6060c" }, - "coq_nvim": { "branch": "coq", "commit": "976012b0c13763a47edbd55492ba53b03b498cdd" }, - "crates.nvim": { "branch": "main", "commit": "bd35b13e94a292ee6e32c351e05ca2202dc9f070" }, - "everforest-nvim": { "branch": "main", "commit": "616864c0c534b1eaf650ef913512dcde80ababfb" }, - "fzf-lua": { "branch": "main", "commit": "af6ecbd7f421e7894127a9e94b40e13172fbfb13" }, - "gitsigns.nvim": { "branch": "main", "commit": "68114837e81ca16d06514c3a997c9102d1b25c15" }, - "lazy.nvim": { "branch": "main", "commit": "d8f26efd456190241afd1b0f5235fe6fdba13d4a" }, - "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "97d9f1d3ad205dece6bcafd1d71cf1507608f3c7" }, - "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, - "mini.nvim": { "branch": "main", "commit": "890db26e37bb28d8a95f05570dd0d9fa757b698b" }, - "noice.nvim": { "branch": "main", "commit": "eaed6cc9c06aa2013b5255349e4f26a6b17ab70f" }, - "nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" }, + "conform.nvim": { "branch": "master", "commit": "04bfa5f35706410376bf7618a01fcf44e3f35b59" }, + "coq.artifacts": { "branch": "artifacts", "commit": "ef5f21d638ccc456cfa5b8d0ab37093cefe48c8b" }, + "coq_nvim": { "branch": "coq", "commit": "2732cfa52fffd32d535c782f418da6fb8bf331ea" }, + "crates.nvim": { "branch": "main", "commit": "a49df0f70171adc77704eac70dd2c0d179065933" }, + "everforest": { "branch": "main", "commit": "8db2bd8af38ed7b1bd12baa9a28858ff92e839bf" }, + "fzf-lua": { "branch": "main", "commit": "15a6d0d8b8c13f703053be9a7d6e2f5dab581749" }, + "gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, + "markview.nvim": { "branch": "main", "commit": "2fddeef5755f434a24bc452b0666f1ffd9882dae" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1ec4da522fa49dcecee8d190efda273464dd2192" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "86389a3dd687cfaa647b6f44731e492970034baa" }, + "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, + "mini.nvim": { "branch": "main", "commit": "0069a71538020a77a19f4f8d5e89f066e264a6dc" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "cea666ef965884414b1b71f6b39a537f9238bdb2" }, + "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lint": { "branch": "master", "commit": "dfa45de973c3ce7bd1b9a6d346f896a68ad07e44" }, - "nvim-lspconfig": { "branch": "master", "commit": "88157521e890fe7fdf18bee22438875edd6300a6" }, - "nvim-notify": { "branch": "master", "commit": "a3020c2cf4dfc4c4f390c4a21e84e35e46cf5d17" }, - "nvim-possession": { "branch": "main", "commit": "d82907c1fc40d249c6db0c01fb6c6938a0d07dee" }, - "nvim-treesitter": { "branch": "master", "commit": "6df6e80417b58abe377c90f5e3f7fe94cf7dfc55" }, - "nvim-treesitter-context": { "branch": "master", "commit": "d0dd7ce5a9d0be1f28086e818e52fdc5c78975df" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" }, - "nvim-web-devicons": { "branch": "master", "commit": "5740b7382429d20b6ed0bbdb0694185af9507d44" }, - "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, - "smart-open.nvim": { "branch": "0.2.x", "commit": "7770b01ce4d551c143d7ec8589879320796621b9" }, - "sqlite.lua": { "branch": "master", "commit": "cf482586c4f24e197375235a6e310b9b9e80ba83" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" }, + "nvim-dap": { "branch": "master", "commit": "f777d1d20ed50c2f312e286892c062d9c2f1c6fe" }, + "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, + "nvim-dap-python": { "branch": "master", "commit": "261ce649d05bc455a29f9636dc03f8cdaa7e0e2c" }, + "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, + "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, + "nvim-lint": { "branch": "master", "commit": "7ef127aaede2a4d5ad8df8321e2eb4e567f29594" }, + "nvim-lspconfig": { "branch": "master", "commit": "d64ea08d8033543a61af35f2f23cac0f0d05f7b4" }, + "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, + "nvim-notify": { "branch": "master", "commit": "397c7c1184745fca649e5104de659e6392ef5a4d" }, + "nvim-possession": { "branch": "main", "commit": "49bc69d7dd72207973e2537d73bfd9f3c1bf2678" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-treesitter-context": { "branch": "master", "commit": "dca8726fea2c14e1ce6adbaa76a04816fbfaff61" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" }, + "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "rustaceanvim": { "branch": "master", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" }, + "smart-open.nvim": { "branch": "0.3.x", "commit": "e7f27218bd43de5262d3e8e3e84a135737ca6942" }, + "sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" }, + "store.nvim": { "branch": "main", "commit": "1359fe210f619f8e54cb4bc5fdcc40c1edc18876" }, "telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" }, "telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" }, - "trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" }, + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, + "typr": { "branch": "main", "commit": "bdd9ef7143702851edd1dac85101e0a537056d2f" }, "undotree": { "branch": "main", "commit": "eab459ab87dd249617b5f7187bb69e614a083047" }, - "which-key.nvim": { "branch": "main", "commit": "1f8d414f61e0b05958c342df9b6a4c89ce268766" }, + "virtual-types.nvim": { "branch": "master", "commit": "d652ec0b1781bbb0e83dc588fb62d638006cf61e" }, + "volt": { "branch": "main", "commit": "7b8c5e790120d9f08c8487dcb80692db6d2087a1" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" } } diff --git a/.config/nvim/lua/plug_init/aerial_init.lua b/.config/nvim/lua/plug_init/aerial_init.lua index 24d7cab..f509b0a 100644 --- a/.config/nvim/lua/plug_init/aerial_init.lua +++ b/.config/nvim/lua/plug_init/aerial_init.lua @@ -1,22 +1,8 @@ -local wk = require("which-key") -require("aerial").setup({ - lazy_load = true, - backends = { "treesitter", "lsp", "markdown", "man" }, - layout = { - -- max_width = {40, 0.2} means "the lesser of 40 columns or 20% of total" - max_width = { 40, 0.2 }, - width = nil, - min_width = 10, - default_direction = "prefer_right", - -- Determines where the aerial window will be opened - -- edge - open aerial at the far right/left of the editor - -- window - open aerial to the right/left of the current window - placement = "edge", - resize_to_content = true, - }, - wk.add({ - { "{", "AerialPrev", desc = "Jump to prev Symbol" }, - { "}", "AerialNext", desc = "Jump to prev Symbol" }, - { "a", "AerialToggle!", desc = "Toggle Outline" }, - }), -}) +--local wk = require("which-key") +--require("aerial").setup({ +-- wk.add({ +-- { "{", "AerialPrev", desc = "Jump to prev Symbol" }, +-- { "}", "AerialNext", desc = "Jump to prev Symbol" }, +-- { "a", "AerialToggle!", desc = "Toggle Outline" }, +-- }), +--}) diff --git a/.config/nvim/lua/plug_init/color-picker_init.lua b/.config/nvim/lua/plug_init/color-picker_init.lua index ef55738..6056520 100644 --- a/.config/nvim/lua/plug_init/color-picker_init.lua +++ b/.config/nvim/lua/plug_init/color-picker_init.lua @@ -1,24 +1,23 @@ -local opts = { noremap = true, silent = true } - -vim.keymap.set("n", "", "PickColor", opts) -vim.keymap.set("i", "", "PickColorInsert", opts) - --- vim.keymap.set("n", "your_keymap", "ConvertHEXandRGB", opts) --- vim.keymap.set("n", "your_keymap", "ConvertHEXandHSL", opts) - -require("color-picker").setup({ -- for changing icons & mappings - -- ["icons"] = { "ﱢ", "" }, - -- ["icons"] = { "ﮊ", "" }, - -- ["icons"] = { "", "ﰕ" }, - -- ["icons"] = { "", "" }, - -- ["icons"] = { "", "" }, - ["icons"] = { "ﱢ", "" }, - ["border"] = "rounded", -- none | single | double | rounded | solid | shadow - ["keymap"] = { -- mapping example: - ["U"] = "ColorPickerSlider5Decrease", - ["O"] = "ColorPickerSlider5Increase", - }, - ["background_highlight_group"] = "Normal", -- default - ["border_highlight_group"] = "FloatBorder", -- default ["text_highlight_group"] = "Normal", --default }) -}) -vim.cmd([[hi FloatBorder guibg=NONE]]) -- if you don't want weird border background colors around the popup. +-- local opts = { noremap = true, silent = true } +-- +-- vim.keymap.set("n", "", "PickColor", opts) +-- vim.keymap.set("i", "", "PickColorInsert", opts) +-- +-- -- vim.keymap.set("n", "your_keymap", "ConvertHEXandRGB", opts) +-- -- vim.keymap.set("n", "your_keymap", "ConvertHEXandHSL", opts) +-- +-- require("color-picker").setup({ -- for changing icons & mappings +-- ["icons"] = { "ﱢ", "" }, +-- -- ["icons"] = { "ﮊ", "" }, +-- -- ["icons"] = { "", "ﰕ" }, +-- -- ["icons"] = { "", "" }, +-- -- ["icons"] = { "", "" }, +-- ["border"] = "rounded", -- none | single | double | rounded | solid | shadow +-- ["keymap"] = { -- mapping example: +-- ["U"] = "ColorPickerSlider5Decrease", +-- ["O"] = "ColorPickerSlider5Increase", +-- }, +-- ["background_highlight_group"] = "Normal", -- default +-- ["border_highlight_group"] = "FloatBorder", -- default ["text_highlight_group"] = "Normal", --default }) +-- }) +-- vim.cmd([[hi FloatBorder guibg=NONE]]) -- if you don't want weird border background colors around the popup. diff --git a/.config/nvim/lua/plug_init/conform_init.lua b/.config/nvim/lua/plug_init/conform_init.lua deleted file mode 100644 index 2966275..0000000 --- a/.config/nvim/lua/plug_init/conform_init.lua +++ /dev/null @@ -1,28 +0,0 @@ -require("conform").setup({ - vim.api.nvim_create_autocmd({ "BufWritePre", "InsertLeave" }, { - pattern = "*", - callback = function(args) - require("conform").format({ bufnr = args.buf }) - end, - }), - formatters_by_ft = { - lua = { "stylua" }, - rust = { "rustfmt", lsp_format = "fallback" }, - -- Conform will run multiple formatters sequentially - python = { "ruff", "autopep8" }, - gdscript = { "gdtoolkit" }, - bash = { "shellharden" }, - javascript = { "prettier" }, - typescript = { "prettier" }, - markdown = { "prettier" }, - css = { "prettier" }, - html = { "prettier" }, - json = { "prettier" }, - yaml = { "prettier" }, - }, - format_on_save = { - timeout_ms = 700, - lsp_format = "fallback", - }, - log_level = vim.log.levels.DEBUG, -}) diff --git a/.config/nvim/lua/plug_init/coq_third_party.lua b/.config/nvim/lua/plug_init/coq_third_party.lua new file mode 100644 index 0000000..942ef9e --- /dev/null +++ b/.config/nvim/lua/plug_init/coq_third_party.lua @@ -0,0 +1,12 @@ +require("coq_3p").setup()({ + { src = "nvimlua", short_name = "nLUA", conf_only = true }, + { src = "bc", short_name = "MATH", precision = 6 }, -- scientific calculator + { + src = "repl", + sh = "fish", + shell = { p = "perl", n = "node", g = "git", ... }, + max_lines = 20, + deadline = 500, + unsafe = { "rm", "poweroff", "mv", "cp", "systemctl", "sudo", ... }, + }, +}) diff --git a/.config/nvim/lua/plug_init/crates_init.lua b/.config/nvim/lua/plug_init/crates_init.lua deleted file mode 100644 index a999824..0000000 --- a/.config/nvim/lua/plug_init/crates_init.lua +++ /dev/null @@ -1,52 +0,0 @@ -local crates = require("crates") -local opts = { silent = true } - -vim.keymap.set("n", "ct", crates.toggle, opts) -vim.keymap.set("n", "cr", crates.reload, opts) - -vim.keymap.set("n", "cv", crates.show_versions_popup, opts) -vim.keymap.set("n", "cf", crates.show_features_popup, opts) -vim.keymap.set("n", "cd", crates.show_dependencies_popup, opts) - -vim.keymap.set("n", "cu", crates.update_crate, opts) -vim.keymap.set("v", "cu", crates.update_crates, opts) -vim.keymap.set("n", "ca", crates.update_all_crates, opts) -vim.keymap.set("n", "cU", crates.upgrade_crate, opts) -vim.keymap.set("v", "cU", crates.upgrade_crates, opts) -vim.keymap.set("n", "cA", crates.upgrade_all_crates, opts) - -vim.keymap.set("n", "cx", crates.expand_plain_crate_to_inline_table, opts) -vim.keymap.set("n", "cX", crates.extract_crate_into_table, opts) - -vim.keymap.set("n", "cH", crates.open_homepage, opts) -vim.keymap.set("n", "cR", crates.open_repository, opts) -vim.keymap.set("n", "cD", crates.open_documentation, opts) -vim.keymap.set("n", "cC", crates.open_crates_io, opts) - -local wk = require("which-key") -wk.add({ - { - mode = { "n" }, - { "c", group = "crates" }, - { "cA", desc = "Upgrade all crates" }, - { "cC", desc = "Open crates.io" }, - { "cD", desc = "Open documentation" }, - { "cH", desc = "Open homepage" }, - { "cR", desc = "Open repository" }, - { "cU", desc = "Upgrade crate" }, - { "cX", desc = "Extract crate into table" }, - { "ca", desc = "Update all crates" }, - { "cd", desc = "Show dependencies popup" }, - { "cf", desc = "Show features popup" }, - { "cr", desc = "Reload" }, - { "ct", desc = "Toggle" }, - { "cu", desc = "Update crate" }, - { "cv", desc = "Show versions popup" }, - { "cx", desc = "Expand plain crate to inline table" }, - }, - { - mode = { "v" }, - { "cu", desc = "Update crates" }, - { "cU", desc = "Upgrade crates" }, - }, -}) diff --git a/.config/nvim/lua/plug_init/ft_autocmds.lua b/.config/nvim/lua/plug_init/ft_autocmds.lua new file mode 100644 index 0000000..d0cba28 --- /dev/null +++ b/.config/nvim/lua/plug_init/ft_autocmds.lua @@ -0,0 +1,4 @@ +vim.api.nvim_create_autocmd({ "BufNewFile", "BufRead", "BufEnter" }, { + pattern = { "*.r", "*.R" }, + command = "set ts=2 sw=2 noet", +}) diff --git a/.config/nvim/lua/plug_init/gitsigns.lua b/.config/nvim/lua/plug_init/gitsigns.lua deleted file mode 100644 index 9861ec5..0000000 --- a/.config/nvim/lua/plug_init/gitsigns.lua +++ /dev/null @@ -1,39 +0,0 @@ -require('gitsigns').setup { - signs = { - add = { text = '│' }, - change = { text = '│' }, - delete = { text = '_' }, - topdelete = { text = '‾' }, - changedelete = { text = '~' }, - untracked = { text = '┆' }, - }, - signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` - numhl = true, -- Toggle with `:Gitsigns toggle_numhl` - linehl = false, -- Toggle with `:Gitsigns toggle_linehl` - word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` - watch_gitdir = { - follow_files = true - }, - attach_to_untracked = true, - current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame` - current_line_blame_opts = { - virt_text = true, - virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' - delay = 150, - ignore_whitespace = false, - virt_text_priority = 100, - }, - current_line_blame_formatter = ', - ', - sign_priority = 6, - update_debounce = 100, - status_formatter = nil, -- Use default - max_file_length = 40000, -- Disable if file is longer than this (in lines) - preview_config = { - -- Options passed to nvim_open_win - border = 'single', - style = 'minimal', - relative = 'cursor', - row = 0, - col = 1 - }, -} diff --git a/.config/nvim/lua/plug_init/godot_editor.lua b/.config/nvim/lua/plug_init/godot_editor.lua new file mode 100644 index 0000000..f53bee3 --- /dev/null +++ b/.config/nvim/lua/plug_init/godot_editor.lua @@ -0,0 +1,22 @@ +-- this file exists so that neovim listens for server automatically +-- when running in godot folder +-- +-- paths to check for project.godot file +local paths_to_check = { "/", "/../" } +local is_godot_project = false +local godot_project_path = "" +local cwd = vim.fn.getcwd() + +-- iterate over paths and check +for key, value in pairs(paths_to_check) do + if vim.uv.fs_stat(cwd .. value .. "project.godot") then + is_godot_project = true + godot_project_path = cwd .. value + break + end +end + +-- check if server is already running in godot project path +local is_server_running = vim.uv.fs_stat(godot_project_path .. "/server.pipe") +-- start server, if not already running +if is_godot_project and not is_server_running then vim.fn.serverstart(godot_project_path .. "/server.pipe") end diff --git a/.config/nvim/lua/plug_init/init.lua b/.config/nvim/lua/plug_init/init.lua index 3cc96dc..05dc38b 100644 --- a/.config/nvim/lua/plug_init/init.lua +++ b/.config/nvim/lua/plug_init/init.lua @@ -1,37 +1,15 @@ require("plug_init.vim_init") require("plug_init.lazy_path") require("lazy").setup("plugins") ---require("onedarkpro").setup({ --- filetypes = { --- all = true }, options = { --- transparency = true --- } ---}) ---require("onedarkpro").load() -require("everforest").load() -require("plug_init.which_key_init") -require("plug_init.lualine_init") -require("plug_init.aerial_init") -require("plug_init.wilder_init") -require("plug_init.telescope_init") -require("plug_init.smart-open_init") -require("plug_init.gitsigns") -require("plug_init.mini_init") -require("plug_init.nvim_possession_init") -require("plug_init.treesitter_init") -require("plug_init.conform_init") -require("plug_init.crates_init") -require("plug_init.color-picker_init") + +require("plug_init.ft_autocmds") require("plug_init.lsp_init") ---require("plug_init.noice_init") -require("plugins.lsp_config") -require("plugins.coq_nvim") -require("plugins.trouble") -require("colorizer").setup({ - "css", - "scss", - "javascript", - html = { - mode = "foreground", - }, -}) +--require("plug_init.which_key_init") +require("plug_init.wilder_init") +require("plug_init.mini_init") +require("everforest").load() +require("plug_init.godot_editor") + +--require("plug_init.color-picker_init") + +--require("plug_init.neovide_conf") diff --git a/.config/nvim/lua/plug_init/lazy_path.lua b/.config/nvim/lua/plug_init/lazy_path.lua index d14f916..41c4545 100644 --- a/.config/nvim/lua/plug_init/lazy_path.lua +++ b/.config/nvim/lua/plug_init/lazy_path.lua @@ -1,12 +1,12 @@ local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable release - lazypath, - }) + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) end vim.opt.rtp:prepend(lazypath) diff --git a/.config/nvim/lua/plug_init/lsp_init.lua b/.config/nvim/lua/plug_init/lsp_init.lua index 8c29727..c7e739a 100644 --- a/.config/nvim/lua/plug_init/lsp_init.lua +++ b/.config/nvim/lua/plug_init/lsp_init.lua @@ -1,64 +1,70 @@ -vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("UserLspConfig", {}), - callback = function(ev) - -- integrated by default now? - -- vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) - -- vim.keymap.set('n', "]d", vim.diagnostic.goto_next) - -- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) - --vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - --vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - -- - --vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - --vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) +-- vim.api.nvim_create_autocmd("LspAttach", { +-- group = vim.api.nvim_create_augroup("UserLspConfig", {}), +-- callback = function(ev) +-- -- Enable completion triggered by +-- vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" +-- vim.keymap.set("n", "[d", vim.diagnostic.goto_prev) +-- vim.keymap.set("n", "]d", vim.diagnostic.goto_next) +-- vim.keymap.set("n", "le", vim.diagnostic.open_float) +-- vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) +-- vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) +-- vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) +-- vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, opts) +-- vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) +-- vim.keymap.set("n", "f", function() vim.lsp.buf.format({ async = true }) end, opts) +-- end, +-- }) - -- vim.keymap.set("n", "rr", vim.lsp.buf.rename, opts) - -- vim.keymap.set("n", "le", vim.diagnostic.open_float) - -- vim.keymap.set("n", "i", function() - -- require("conform").format({ async = true }) - -- -- vim.lsp.buf.format { async = true } -- fallback if without conform - -- end, opts) - end, -}) +-- put this in lsp_config +-- require("mason").setup({}) -require("lspconfig").rust_analyzer.setup({ - settings = { - ["rust-analyzer"] = { - imports = { - granularity = { - group = "module", - }, - prefix = "self", - }, - cargo = { - buildScripts = { - enable = true, - }, - }, - procMacro = { - enable = true, - }, - }, - }, -}) -require("mason").setup({}) -require("mason-lspconfig").setup({ - -- Replace the language servers listed here - -- with the ones you want to install - ensure_installed = { "rust_analyzer", "ruff", "quick_lint_js", "html", "cssls", "lua_ls", "vimls" }, -}) +-- require("lint").linters_by_ft = { +-- cpp = { "cpplint" }, +-- gdscript = { "gdtoolkit" }, +-- gitcommit = { "commitlint" }, +-- lua = { "ast-grep" }, +-- fish = { "fish_lsp" }, +-- markdown = {}, +-- sql = { "sqruff" }, +-- python = { "ruff" }, +-- r = { "r-languageserver" }, +-- javascript = { "eslint" }, +-- typescript = { "eslint" }, +-- } +-- +-- require("lint").config = function() +-- local lint = require("lint") +-- vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { +-- callback = function() lint.try_lint() end, +-- }) +-- end -require("lint").linters_by_ft = { - cpp = { "cpplint" }, - gdscript = { "gdtoolkit" }, - gitcommit = { "commitlint" }, - markdown = {}, - python = { "ruff" }, -} -require("lint").config = function() - local lint = require("lint") - vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { - callback = function() - lint.try_lint() - end, - }) -end +-- virtual text (not doing anything?) +-- vim.lsp.handlers["textDocument/publishDiagnostic"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { +-- virtual_text = true, +-- }) + +-- local on_attach = function(client, bufnr) +-- --- Only Neovim 0.7 +-- if client.resolved_capabilities.code_lens then +-- local codelens = vim.api.nvim_create_augroup( +-- 'LSPCodeLens', +-- { clear = true } +-- ) +-- vim.api.nvim_create_autocmd({ 'BufEnter' }, { +-- group = codelens, +-- callback = function() +-- vim.lsp.codelens.refresh() +-- end, +-- buffer = bufnr, +-- once = true, +-- }) +-- vim.api.nvim_create_autocmd({ 'BufWritePost', 'CursorHold' }, { +-- group = codelens, +-- callback = function() +-- vim.lsp.codelens.refresh() +-- end, +-- buffer = bufnr, +-- }) +-- end +-- end diff --git a/.config/nvim/lua/plug_init/lualine_init.lua b/.config/nvim/lua/plug_init/lualine_init.lua deleted file mode 100644 index a35b949..0000000 --- a/.config/nvim/lua/plug_init/lualine_init.lua +++ /dev/null @@ -1,96 +0,0 @@ -require('lualine').setup { - options = { - icons_enabled = true, - theme = 'everforest', - component_separators = { left = '', right = '' }, - --component_separators = { left = '', right = '' }, - section_separators = { left = '', right = '' }, - disabled_filetypes = { - statusline = {}, - winbar = {}, - }, - ignore_focus = {}, - always_divide_middle = false, - globalstatus = true, - refresh = { - statusline = 200, - tabline = 200, - winbar = 20000, - }, - symbols = { - modified = ' ●', -- Text to show when the buffer is modified - alternate_file = '#', -- Text to show to identify the alternate file - directory = '', -- Text to show when the buffer is a directory - }, - }, - sections = { - lualine_a = { 'mode' }, - lualine_b = { 'branch', 'diff', 'diagnostics' }, - lualine_c = { - -- { - -- require("noice").api.status.mode.get, - -- cond = require("noice").api.status.mode.has, - -- color = { fg = "#ff9e64" }, - -- }, - -- { - -- require("noice").api.status.search.get, - -- cond = require("noice").api.status.search.has, - -- color = { fg = "#ff9e64" }, - -- }, - 'pwd', - 'filename', - }, - lualine_x = { - { - require("noice").api.status.command.get, - cond = require("noice").api.status.command.has, - color = { fg = "#ff9e64" }, - }, - { - require("noice").api.statusline.mode.get, - cond = require("noice").api.statusline.mode.has, - color = { fg = "#ff9e64" }, - }, - { - require("noice").api.status.search.get, - cond = require("noice").api.status.search.has, - color = { fg = "#ff9e64" }, - }, - 'filesize', - 'filetype', - 'require"lsp-status".status()' - }, - lualine_y = { 'searchcount', 'progress' }, - lualine_z = { 'selectioncount', 'location' }, - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = { 'filename' }, - lualine_d = {}, - lualine_x = { 'filesize', 'filetype' }, - lualine_y = { 'location' }, - lualine_z = {}, - }, - tabline = { - lualine_a = { - { - 'tabs', - mode = 2, - path = 1, - max_length = 320, - tab_max_length = 40, - use_mode_colors = true, - }, - }, - lualine_b = {}, - lualine_c = {}, - lualine_d = {}, - lualine_x = {}, - lualine_y = { { 'datetime', style = "%H:%M" } }, - lualine_z = {}, - }, - winbar = {}, - inactive_winbar = {}, - extensions = {} -} diff --git a/.config/nvim/lua/plug_init/mini_init.lua b/.config/nvim/lua/plug_init/mini_init.lua index a765bff..348dcdc 100644 --- a/.config/nvim/lua/plug_init/mini_init.lua +++ b/.config/nvim/lua/plug_init/mini_init.lua @@ -1,14 +1,35 @@ -require("mini.surround").setup({}) --surround strings with objects in one go (parens etc.) -require("mini.pairs").setup({}) --put down parens etc in pairs -require("mini.ai").setup({}) --selection with textobjects, such as "indside quotes, parens etc" -require("mini.bracketed").setup({}) -- move to textobjects with brackets -require("mini.jump2d").setup({}) -- jump to any point with Enter+ 2 letters in 2d matrix -require("mini.files").setup({}) -- floating file manager in vim editor style -require("mini.comment").setup({}) -- block comments etc +-- require("mini.pairs").setup() --put down parens etc in pairs +require("mini.ai").setup() --selection with textobjects, such as "indside quotes, parens etc" +require("mini.bracketed").setup() -- move to textobjects with brackets +--require("mini.jump2d").setup() -- jump to any point with Enter+ 2 letters in 2d matrix +require("mini.files").setup() -- floating file manager in vim editor style +require("mini.comment").setup() -- block comments etc +-- require("mini.jump").setup() -- extend f F t T to work over multiple lines and be repeated -- sugar ↓↓↓↓↓↓ -require("mini.indentscope").setup({}) -- show indent scope +require("mini.indentscope").setup() -- show indent scope +require("mini.cursorword").setup() -- highlight identical words + +-- complicated ↓↓↓↓↓↓ +require("mini.operators").setup() -- potentially interesting --require("mini.align").setup({}) -- split lines in multiple sections, align these to rules, look into it more --require("mini.git").setup({}) -- git shortcuts, but collisions with gitsigns +--require("mini.hipatterns").setup({}) -- highlight keywords and colors + +-- not working by default +vim.o.timeoutlen = 500 +require("mini.surround").setup() +-- mappings = { +-- add = 'sa', -- Add surrounding in Normal and Visual modes +-- delete = 'sd', -- Delete surrounding +-- find = 'sf', -- Find surrounding (to the right) +-- find_left = 'sF', -- Find surrounding (to the left) +-- highlight = 'sh', -- Highlight surrounding +-- replace = 'sr', -- Replace surrounding +-- update_n_lines = 'sn', -- Update `n_lines` +-- +-- suffix_last = 'l', -- Suffix to search with "prev" method +-- suffix_next = 'n', -- Suffix to search with "next" method +-- }, diff --git a/.config/nvim/lua/plug_init/neovide_conf.lua b/.config/nvim/lua/plug_init/neovide_conf.lua new file mode 100644 index 0000000..854b3f1 --- /dev/null +++ b/.config/nvim/lua/plug_init/neovide_conf.lua @@ -0,0 +1,12 @@ +vim.g.neovide_refresh_rate = 60 +vim.g.neovide_refresh_rate_idle = 5 +vim.g.neovide_no_idle = false +vim.g.neovide_cursor_trail_size = 0.5 +vim.g.neovide_cursor_animation_length = 0.05 +vim.g.neovide_cursor_unfocused_outline_width = 0.1 +vim.g.neovide_cursor_vfx_mode = "railgun" -- pixiedust, railgun, ripple, sonicboom, torpedo, wireframe +vim.g.neovide_cursor_vfx_particle_speed = 40.0 +vim.g.neovide_cursor_vfx_particle_phase = 1.5 -- mass of particles, only railgun +vim.g.neovide_cursor_vfx_particle_curl = 1.0 -- rotation of particles, only railgun +vim.g.neovide_cursor_vfx_particle_lifetime = 1.0 +vim.g.neovide_cursor_vfx_particle_density = 10 diff --git a/.config/nvim/lua/plug_init/noice_init.lua b/.config/nvim/lua/plug_init/noice_init.lua deleted file mode 100644 index de34b46..0000000 --- a/.config/nvim/lua/plug_init/noice_init.lua +++ /dev/null @@ -1,41 +0,0 @@ -require("noice").setup({ - { - cmdline = { - enabled = true, -- enables the Noice cmdline UI - view = "cmdline", -- view for rendering the cmdline. Change to `cmdline` to get a classic cmdline at the bottom - opts = {}, -- global options for the cmdline. See section on views - ---@type table - format = { - -- conceal: (default=true) This will hide the text in the cmdline that matches the pattern. - -- view: (default is cmdline view) - -- opts: any options passed to the view - -- icon_hl_group: optional hl_group for the icon - -- title: set to anything or empty string to hide - cmdline = { pattern = "^:", icon = "", lang = "vim" }, - search_down = { kind = "search", pattern = "^/", icon = " ", lang = "regex" }, - search_up = { kind = "search", pattern = "^%?", icon = " ", lang = "regex" }, - filter = { pattern = "^:%s*!", icon = "$", lang = "bash" }, - lua = { pattern = { "^:%s*lua%s+", "^:%s*lua%s*=%s*", "^:%s*=%s*" }, icon = "", lang = "lua" }, - help = { pattern = "^:%s*he?l?p?%s+", icon = "" }, - input = { view = "cmdline_input", icon = "󰥻 " }, -- Used by input() - -- lua = false, -- to disable a format, set to `false` - }, - }, - }, - -- lsp = { - -- override markdown rendering so that **cmp** and other plugins use **Treesitter** - -- override = { - -- ["vim.lsp.util.convert_input_to_markdown_lines"] = true, - -- ["vim.lsp.util.stylize_markdown"] = true, - -- ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp - -- }, - -- }, - -- you can enable a preset for easier configuration - --presets = { - --bottom_search = cmdline, -- use a classic bottom cmdline for search - --command_palette = true, -- position the cmdline and popupmenu together - --long_message_to_split = true, -- long messages will be sent to a split - --inc_rename = false, -- enables an input dialog for inc-rename.nvim - --lsp_doc_border = false, -- add a border to hover docs and signature help - --}, -}) diff --git a/.config/nvim/lua/plug_init/nvim_possession_init.lua b/.config/nvim/lua/plug_init/nvim_possession_init.lua deleted file mode 100644 index 0bec9e7..0000000 --- a/.config/nvim/lua/plug_init/nvim_possession_init.lua +++ /dev/null @@ -1,21 +0,0 @@ -local possession = require("nvim-possession") -local wk = require("which-key") - -require("nvim-possession").setup({ - autoload = true, -- default false - autosave = true, - autoswitch = { - enable = true - }, - lazy = true, - sessions = { - sessions_path = "/home/felix/.cache/nvim/sessions/" - }, - wk.add({ - { "s", group="Sessions" }, - { "sl", function() possession.list() end, desc="List sesssions" }, - { "sn", function() possession.new() end, desc="Create new session" }, - { "su", function() possession.update() end, desc="Update Session" }, - { "sd", function() possession.delete() end, desc="Delete Session" }, - }), -}) diff --git a/.config/nvim/lua/plug_init/smart-open_init.lua b/.config/nvim/lua/plug_init/smart-open_init.lua deleted file mode 100644 index 7942b1c..0000000 --- a/.config/nvim/lua/plug_init/smart-open_init.lua +++ /dev/null @@ -1,9 +0,0 @@ -local wk = require("which-key") - -require("telescope").load_extension("smart_open") -require("smart-open").setup({ - lazy = false, - wk.add({ - { "", "Telescope smart_open", desc="Smart open" }, - }) -}) diff --git a/.config/nvim/lua/plug_init/telescope_init.lua b/.config/nvim/lua/plug_init/telescope_init.lua deleted file mode 100644 index 84c2b7c..0000000 --- a/.config/nvim/lua/plug_init/telescope_init.lua +++ /dev/null @@ -1,21 +0,0 @@ -require('telescope').setup({ - defaults = { - sorting_strategy = 'descending', - scroll_strategy = 'limit', - scroll_speed = 7, - layout_strategy = 'vertical', - layout_config = { - prompt_position = 'top', - preview_cutoff = 0, - horizontal = { - height = 0.9, - }, - vertical = { - prompt_position = 'top', - height = 0.9, - width = 0.8, - mirror = true, - }, - }, - }, -}) diff --git a/.config/nvim/lua/plug_init/treesitter-context_init.lua b/.config/nvim/lua/plug_init/treesitter-context_init.lua deleted file mode 100644 index 717df53..0000000 --- a/.config/nvim/lua/plug_init/treesitter-context_init.lua +++ /dev/null @@ -1,15 +0,0 @@ -require('treesitter-context').setup{ - enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) - max_lines = 4, -- How many lines the window should span. Values <= 0 mean no limit. - min_window_height = 35, -- Minimum editor window height to enable context. Values <= 0 mean no limit. - line_numbers = true, - lazy = true, - multiline_threshold = 4, -- Maximum number of lines to show for a single context - trim_scope = 'outer', -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' - mode = 'topline', -- Line used to calculate context. Choices: 'cursor', 'topline'. - -- Separator between context and content. Should be a single character string, like '-'. - -- When separator is set, the context will only show up when there are at least 2 lines above cursorline. - separator = '—', - zindex = 20, -- The Z-index of the context window - on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching -} diff --git a/.config/nvim/lua/plug_init/treesitter_init.lua b/.config/nvim/lua/plug_init/treesitter_init.lua deleted file mode 100644 index 30dc6f9..0000000 --- a/.config/nvim/lua/plug_init/treesitter_init.lua +++ /dev/null @@ -1,21 +0,0 @@ -require("nvim-treesitter.configs").setup { - sync_install = false, - auto_install = true, - highlight = { - enable = true, - additional_vim_regex_highlighting = false, - }, - indent = { - enable = true, - }, - ensure_installed = { - "html", - "javascript", - "lua", - "php", - "python", - "rust", - "typescript", - "vim", - }, -} diff --git a/.config/nvim/lua/plug_init/vim_init.lua b/.config/nvim/lua/plug_init/vim_init.lua index 79ed911..220a36d 100644 --- a/.config/nvim/lua/plug_init/vim_init.lua +++ b/.config/nvim/lua/plug_init/vim_init.lua @@ -1,31 +1,33 @@ -vim.opt.compatible = false -vim.opt.showmatch = true -vim.opt.hlsearch = true -vim.opt.incsearch = false -vim.opt.tabstop = 4 -vim.opt.softtabstop = -1 -- use shiftwidth value -vim.opt.expandtab = false -- tabs not spaces -vim.opt.shiftwidth = 4 -vim.opt.autoindent = true -vim.opt.relativenumber = true -vim.opt.number = true -vim.opt.wildmode = "longest,list" -vim.opt.cursorline = true -vim.opt.ttyfast = true -vim.opt.scrolloff = 5 -vim.opt.wrap = false -vim.opt.mouse = "" -vim.opt.termguicolors = true -- enable truecolor -vim.opt.undofile = true -vim.opt.undodir = os.getenv("HOME") .. "/.local/share/nvim/undodir" -vim.opt.updatetime = 30 -vim.opt.colorcolumn = "79" -vim.opt.cmdheight = 0 -- remove the last interface line under statusline -vim.opt.showmode = false -- stop noice from showing mode, lualine will show mode anyway +vim.o.compatible = false +vim.o.showmatch = true +vim.o.hlsearch = true +vim.o.smartcase = true +vim.o.incsearch = false +vim.o.tabstop = 4 +vim.o.softtabstop = -1 -- use shiftwidth value +-- vim.o.expandtab = false -- tabs not spaces -- leaving it out for auto? +vim.o.shiftwidth = 4 +vim.o.autoindent = true +vim.o.relativenumber = true +vim.o.number = true +vim.o.wildmode = "longest,list" +vim.o.cursorline = true +vim.o.listchars = "tab: >,lead:·,trail:-,nbsp:+,multispace:•" +vim.o.ttyfast = true +vim.o.scrolloff = 5 +vim.o.wrap = false +vim.o.mouse = "" +vim.o.termguicolors = true -- enable truecolor +vim.o.undofile = true +vim.o.undodir = os.getenv("HOME") .. "/.local/share/nvim/undodir" +vim.o.updatetime = 30 +vim.o.colorcolumn = "79" +vim.o.cmdheight = 0 -- remove the last interface line under statusline +vim.o.showmode = false -- stop noice from showing mode, lualine will show mode anyway --- vim.g.netrw_preview = 1 vim.g.netrw_liststyle = 3 -vim.g.netrw_winsize = 25 +vim.g.netrw_winsize = 20 -- --These will: -- @@ -51,3 +53,5 @@ vim.keymap.set("n", "Y", '"+Y') -- open side panel explorer --vim.keymap.set("n", "e", ":Lexplore") -- now via whichkey +-- +--highlights diff --git a/.config/nvim/lua/plug_init/which_key_init.lua b/.config/nvim/lua/plug_init/which_key_init.lua index ed19c96..3b9a0a2 100644 --- a/.config/nvim/lua/plug_init/which_key_init.lua +++ b/.config/nvim/lua/plug_init/which_key_init.lua @@ -1,25 +1,31 @@ -local wk = require("which-key") +--local wk = require("which-key") wk.add({ { "c", group = "crates" }, - { "cA", desc = "Upgrade all crates" }, - { "cC", desc = "Open crates.io" }, - { "cD", desc = "Open documentation" }, - { "cH", desc = "Open homepage" }, - { "cR", desc = "Open repository" }, - { "cU", desc = "Upgrade crate" }, - { "cX", desc = "Extract crate into table" }, - { "ca", desc = "Update all crates" }, - { "cd", desc = "Show dependencies popup" }, - { "cf", desc = "Show features popup" }, - { "cr", desc = "Reload" }, - { "ct", desc = "Toggle" }, - { "cu", desc = "Update crate" }, - { "cv", desc = "Show versions popup" }, - { "cx", desc = "Expand plain crate to inline table" }, + { "cA", function() require("crates").upgrade_all_crates() end, desc = "Upgrade all crates" }, + { "cC", function() require("crates").open_creates_io() end, desc = "Open crates.io" }, + { "cD", function() require("crates").open_documentation() end, desc = "Open documentation" }, + { "cH", function() require("crates").open_homepage() end, desc = "Open homepage" }, + { "cR", function() require("crates").open_repository() end, desc = "Open repository" }, + { "cU", function() require("crates").upgrade_crate() end, desc = "Upgrade crate" }, + { "cX", function() require("crates").extract_crate_into_table() end, desc = "Extract crate into table" }, + { "ca", function() require("crates").update_all_crates() end, desc = "Update all crates" }, + { "cd", function() require("crates").show_dependencies_popup() end, desc = "Show dependencies popup" }, + { "cf", function() require("crates").show_features_popup() end, desc = "Show features popup" }, + { "cr", function() require("crates").reload() end, desc = "Reload" }, + { "ct", function() require("crates").toggle() end, desc = "Toggle" }, + { "cu", function() require("crates").update_crate() end, desc = "Update crate" }, + { "cv", function() require("crates").show_versions_popup() end, desc = "Show versions popup" }, + { + "cx", + function() require("crates").expand_plain_crate_to_inline_table() end, + desc = "Expand plain crate to inline table", + }, + + { "lp", "Lazy profile", desc = "show Lazy profiler" }, - --{ "e", "Lexplore", desc = "Files Sidebar" }, { "e", "lua MiniFiles.open()", desc = "Files w/ Mini" }, + { "E", "Lexplore", desc = "Files Sidebar" }, { "f", group = "Telescope" }, { "fb", "Telescope buffers", desc = "Find Buffer" }, { "fd", "Telescope lsp_document_symbols", desc = "Find LSP Symbols" }, @@ -28,41 +34,76 @@ wk.add({ { "fr", "Telescope oldfiles", desc = "Open Recent File", remap = true }, { "fs", "Telescope live_grep", desc = "Live Grep" }, { "fw", "Telescope grep_string", desc = "Find string under cursor" }, + { + "", + function() require("telescope").extensions.smart_open.smart_open() end, + mode = "n", + silent = true, + desc = "Smart open", + }, { "g", group = "Gitsigns" }, { "gB", "Gitsigns blame", desc = "Toggle Blame Sidebar" }, - { "gb", "Gitsigns blameline", desc = "Show Blame Inline" }, + { "gb", "Gitsigns blame_line", desc = "Show Blame Inline" }, + { "gd", "Gitsigns toggle_deleted", desc = "Toggle deleted lines" }, { "gh", group = "hunks" }, { "ghl", "Gitsigns setloclist", desc = "List file Changes" }, { "ghn", "Gitsigns nav_hunk", desc = "Nav Hunk" }, { "gr", group = "reset" }, { "grb", "Gitsigns reset_buffer", desc = "Reset Buffer" }, { "grh", "Gitsigns reset_hunk", desc = "Reset Hunk" }, - { "gd", "Gitsigns toggle_deleted", desc = "Toggle deleted lines" }, { "gs", group = "stage" }, { "gsb", "Gitsigns stage_buffer", desc = "Stage Buffer" }, { "gsh", "Gitsigns stage_hunk", desc = "Stage Hunk" }, { "gu", "Gitsigns undo_stage_hunk", desc = "Undo Stage Hunk" }, + -- lsp and debugging { "i", - function() - require("conform").format({ async = true }) - end, - desc = "Auto format file with linter(?), also on F3", + function() require("conform").format({ async = true }) end, + desc = "Auto format file with formatter", + }, + { + "F3", + function() require("conform").format({ async = true }) end, + mode = "ni", + desc = "Auto format file with formatter", }, { "le", vim.diagnostic.open_float, desc = "Open diagnostic float" }, { "K", desc = "Show definition" }, + -- { "d", group = "Debugging" }, + -- { + -- { mode = "n" }, + -- { "dn", require("dap").new, desc = "Start Debugger" }, + -- { "db", require("dap").toggle_breakpoint, desc = "Toggle breakpoint" }, + -- { "dc", require("dap").continue, desc = "Continue" }, + -- }, + + -- trouble plugin + { "xx", "Trouble diagnostics toggle", desc = "Diagnostics (Trouble)" }, + { "xX", "Trouble diagnostics toggle filter.buf=0", desc = "Buffer Diagnostics (Trouble)" }, + { "xs", "Trouble symbols toggle focus=false", desc = "Symbols (Trouble)" }, + { + "xl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { "xL", "Trouble loclist toggle", desc = "Location List (Trouble)" }, + { "xQ", "Trouble qflist toggle", desc = "Quickfix List (Trouble)" }, + + -- QOL shortcuts { "n", "nohl", desc = "Stop highlighting search results" }, + { "m", "NoiceDismiss", desc = "Dismiss notifications" }, + { "M", "Markview toggle", desc = "Markview toggle source view" }, { "r", group = "Rename" }, { "rr", vim.lsp.buf.rename, opts, desc = "Rename Variable" }, { "s", group = "Sessions" }, - { "sd", desc = "Delete Session" }, - { "sl", desc = "Load Session" }, - { "sn", desc = "New Session" }, - { "su", desc = "Update Session" }, + { "sl", function() require("nvim-possession").list() end, desc = "List sesssions" }, + { "sn", function() require("nvim-possession").new() end, desc = "Create new session" }, + { "su", function() require("nvim-possession").update() end, desc = "Update Session" }, + { "sd", function() require("nvim-possession").delete() end, desc = "Delete Session" }, { "t", group = "tabs" }, { "ta", "tabnew", desc = "Add new Tab" }, @@ -83,9 +124,100 @@ wk.add({ { "ww", "WhichKey", desc = "Show keybindings" }, { "y", desc = "Copy to system clipboard" }, { "Y", desc = "Copy line to system clipboard" }, + + -- mini.nvim additions + { "va", group = "select around" }, --{{{1 mini.ai + { "va(", desc = "() parens" }, + { "va)", desc = "() parens" }, + { "va[", desc = "[] brackets" }, + { "va]", desc = "[] brackets" }, + { "va{", desc = "{} braces" }, + { "va}", desc = "{} braces" }, + { "va<", desc = "<> braces" }, + { "va>", desc = "<> braces" }, + { 'va"', desc = '""' }, + { "va'", desc = "''" }, + { "val", desc = "last selection" }, + + { "vi", group = "select inside" }, + { "vi(", desc = "() parens" }, + { "vi)", desc = "() parens" }, + { "vi[", desc = "[] brackets" }, + { "vi]", desc = "[] brackets" }, + { "vi{", desc = "{} braces" }, + { "vi}", desc = "{} braces" }, + { "vi<", desc = "<> braces" }, + { "vi>", desc = "<> braces" }, + { 'vi"', desc = '""' }, + { "vi'", desc = "''" }, + { "vil", desc = "last selection" }, + --}}} + + { "[", group = "move to prev" }, --{{{2 "brackets" + { "[B", desc = "First Buffer" }, + { "[b", desc = "Prev Buffer" }, + { "[X", desc = "First Conflict" }, + { "[x", desc = "Prev Conflict" }, + { "[I", desc = "First Indent" }, + { "[i", desc = "Prev Indent" }, + { "[I", desc = "First Indent" }, + { "[i", desc = "Prev Indent" }, + { "[W", desc = "First Window in Tab" }, + { "[w", desc = "Prev Window in Tab" }, + { "[F", desc = "First File" }, + { "[f", desc = "Prev File" }, + { "[O", desc = "First Oldfile" }, + { "[o", desc = "Prev Oldfile" }, + { "[Q", desc = "First Quickfix" }, + { "[q", desc = "Prev Quickfix" }, + { "[Y", desc = "First Yank selection replacing latest put region" }, + { "[y", desc = "Prev Yank selection replacing latest put region" }, + + { "]", group = "move next" }, + { "]B", desc = "Last Buffer" }, + { "]b", desc = "Next Buffer" }, + { "]X", desc = "Last Conflict" }, + { "]x", desc = "Next Conflict" }, + { "]I", desc = "Last Indent" }, + { "]i", desc = "Next Indent" }, + { "]I", desc = "Last Indent" }, + { "]i", desc = "Next Indent" }, + { "]W", desc = "Last Window in Tab" }, + { "]w", desc = "Next Window in Tab" }, + { "]F", desc = "Last File" }, + { "]f", desc = "Next File" }, + { "]O", desc = "Last Oldfile" }, + { "]o", desc = "Next Oldfile" }, + { "]Q", desc = "Last Quickfix" }, + { "]q", desc = "Next Quickfix" }, + { "]Y", desc = "Last Yank selection replacing latest put region" }, + { "]y", desc = "Next Yank selection replacing latest put region" }, + --}}} + + { "gcc", desc = "Comment Line" }, + { + mode = { "v" }, + { "gc", group = "Comment" }, + { "g=", desc = "evaluate expression" }, + { "gm", desc = "duplicate" }, + { "gr", desc = "replace with register" }, + { "gs", desc = "sort" }, + { "gx", desc = "exchange region" }, + }, }) wk.add({ + -- These somehow have no effect whatsoever + -- { "c", group = "change" }, + -- { "c[", group = "back" }, + -- { "c]", group = "forward" }, + -- { "cg", group = "jump" }, + -- + -- { "d", group = "delete" }, + -- { "d[", group = "back" }, + -- { "d]", group = "forward" }, + -- { "dg", group = "jump" }, + { "K", desc = "Show definition" }, { "[", group = "jump backward" }, { "[c", desc = "Previous diff change" }, @@ -101,3 +233,16 @@ wk.add({ { "gi", desc = "show implementations" }, { "gr", desc = "list all references to symbol under cursor" }, }) + +function whichkeyUndotree() + wk.add({ + { "j", desc = "jump to next undo node" }, + { "gj", desc = "jump to the parent node of the node under the cursor" }, + { "k", desc = "jump to previous undo node" }, + { "J", desc = "jump to next undo node and undo to this state" }, + { "K", desc = "jump to previous undo node and undo to this state" }, + { "q", desc = "quit undotree" }, + { "p", desc = "jump into undetree diff window" }, + { "", desc = "undo to this state" }, + }) +end diff --git a/.config/nvim/lua/plug_init/which_key_init.lua.old b/.config/nvim/lua/plug_init/which_key_init.lua.old deleted file mode 100644 index 6a4a655..0000000 --- a/.config/nvim/lua/plug_init/which_key_init.lua.old +++ /dev/null @@ -1,107 +0,0 @@ -local wk = require("which-key") - -local mappings = { - f = { - name = "Telescope", --optional group name - b = { "Telescope buffers", "Find Buffer" }, - f = { "Telescope find_files", "Find File" }, - s = { "Telescope live_grep", "Live Grep" }, - h = { "Telescope help_tags", "Find Help" }, - r = { "Telescope oldfiles", "Open Recent File", noremap = false }, - w = { "Telescope grep_string", "Find string under cursor" }, - d = { "Telescope lsp_document_symbols", "Find LSP Symbols" }, - -- does not work as of now: --i = { "AdvancedGitSearch", "Git Search" }, - --n = { "New File" }, --just a label, don't create any mapping - --e = "Edit File", --same as above - }, - t = { - name = "tabs", - n = { "tabnext", "Next Tab" }, - p = { "tabprevious", "Previous Tab" }, - f = { "tabfirst", "First Tab" }, - l = { "tablast", "Last Tab" }, - a = { "tabnew", "Add new Tab" }, - c = { "tabclose", "Close Tab" }, - m = { - name = "Move Tab", - f = { "tabmove 0", "Move Tab to First" }, - l = { "tabmove $", "Move Tab to Last" }, - i = { ":tabmove ", "Input position to move Tab to" }, - } - }, - K = { "Show definition" }, - u = { "Toggle undo-tree" }, - i = { "Auto format file with linter(?), also on F3" }, - r = { - name = "Rename", - r = { "Rename Variable" } - }, - l = { - e = { "Open diagnostic float" } - }, - w = { - name = "Workspaces + Whichkey", - a = { "Add workspace folder" }, - r = { "Remove workspace folder" }, - w = { "WhichKey", "Show keybindings" }, - }, - s = { - name = "Sessions", - n = { "New Session" }, - u = { "Update Session" }, - d = { "Delete Session" }, - l = { "Load Session" }, - }, - g = { - name = "Gitsigns", - b = { "Gitsigns blameline", "Show Blame Inline" }, - B = { "Gitsigns blame", "Toggle Blame Sidebar" }, - s = { - name = "stage", - h = { "Gitsigns stage_hunk", "Stage Hunk"}, - b = { "Gitsigns stage_buffer", "Stage Buffer"}, - }, - h = { - name = "hunks", - l = { "Gitsigns setloclist", "List file Changes" }, - n = { "Gitsigns nav_hunk", "Nav Hunk"}, - }, - r = { - name = "reset", - h = { "Gitsigns reset_hunk", "Reset Hunk"}, - b = { "Gitsigns reset_buffer", "Reset Buffer"}, - }, - u = { "Gitsigns undo_stage_hunk", "Undo Stage Hunk"}, - }, - n = { "nohl", "Stop highlighting search results" }, -} - -local opts = { - mode = "n", - prefix = '' -} - -wk.register({ mappings, opts, prefix = "" }) -local mappings_leaderless = { - K = { "Show definition" }, - g = { - name = "lsp functions", - d = { "go to definition" }, - D = { "go to declaration" }, - i = { "show implementations" }, - r = { "list all references to symbol under cursor" }, - }, - ["["] = { - name = "jump backward", - d = "Previous Diagnostic", - c = "Previous diff change", - h = { "Gitsigns prev_hunk", "Previous changed git block" }, - }, - ["]"] = { - name = "jump forward", - d = "Next Diagnostic", - c = "Next diff change", - h = { "Gitsigns next_hunk", "Next changed git block" }, - }, -} -wk.register({ mappings_leaderless, opts }) diff --git a/.config/nvim/lua/plug_init/wilder_init.lua b/.config/nvim/lua/plug_init/wilder_init.lua index 7fb1104..e77ec39 100644 --- a/.config/nvim/lua/plug_init/wilder_init.lua +++ b/.config/nvim/lua/plug_init/wilder_init.lua @@ -1,30 +1,14 @@ ---- -local wilder = require('wilder') -local gradient = { - '#f4468f', '#fd4a85', '#ff507a', '#ff566f', '#ff5e63', - '#ff6658', '#ff704e', '#ff7a45', '#ff843d', '#ff9036', - '#f89b31', '#efa72f', '#e6b32e', '#dcbe30', '#d2c934', - '#c8d43a', '#bfde43', '#b6e84e', '#aff05b' -} -wilder.setup({modes = {':', '/', '?'} }) -wilder.set_option('pipeline', { - wilder.branch( - wilder.cmdline_pipeline({ - fuzzy = 1, - }), - wilder.search_pipeline() - ), -}) -for i, fg in ipairs(gradient) do -gradient[i] = wilder.make_hl('WilderGradient' .. i, 'Pmenu', {{a = 1}, {a = 1}, {foreground = fg}}) -end +local wilder = require("wilder") -wilder.set_option('renderer', wilder.wildmenu_renderer({ - highlights = { - gradient = gradient, -- must be set - -- selected_gradient key can be set to apply gradient highlighting for the selected candidate. - }, - highlighter = wilder.highlighter_with_gradient({ - wilder.basic_highlighter(), -- or wilder.lua_fzy_highlighter(), - }), -})) +wilder.set_option( + "renderer", + wilder.wildmenu_renderer({ + -- highlights = { + -- gradient = gradient, -- must be set + -- -- selected_gradient key can be set to apply gradient highlighting for the selected candidate. + -- }, + highlighter = wilder.highlighter_with_gradient({ + wilder.basic_highlighter(), -- or wilder.lua_fzy_highlighter(), + }), + }) +) diff --git a/.config/nvim/lua/plugins/coq_nvim.lua b/.config/nvim/lua/plugins/coq_nvim.lua deleted file mode 100644 index c804a9e..0000000 --- a/.config/nvim/lua/plugins/coq_nvim.lua +++ /dev/null @@ -1,29 +0,0 @@ -return { - "neovim/nvim-lspconfig", -- REQUIRED: for native Neovim LSP integration - lazy = false, -- REQUIRED: tell lazy.nvim to start this plugin at startup - dependencies = { - -- main one - { "ms-jpq/coq_nvim", branch = "coq" }, - - -- 9000+ Snippets - { "ms-jpq/coq.artifacts", branch = "artifacts" }, - - -- lua & third party sources -- See https://github.com/ms-jpq/coq.thirdparty - -- Need to **configure separately** - { 'ms-jpq/coq.thirdparty', branch = "3p" } - -- - shell repl - -- - nvim lua api - -- - scientific calculator - -- - comment banner - -- - etc - }, - init = function() - vim.g.coq_settings = { - auto_start = true, -- if you want to start COQ at startup - -- Your COQ settings here - } - end, - config = function() - -- Your LSP settings here - end, -} diff --git a/.config/nvim/lua/plugins/crates.lua b/.config/nvim/lua/plugins/crates.lua deleted file mode 100644 index 1437e64..0000000 --- a/.config/nvim/lua/plugins/crates.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - 'saecki/crates.nvim', - event = { "BufRead Cargo.toml" }, - verylazy = true, - config = function() - require('crates').setup() - end, -} diff --git a/.config/nvim/lua/plugins/debugging.lua b/.config/nvim/lua/plugins/debugging.lua new file mode 100644 index 0000000..81a40f8 --- /dev/null +++ b/.config/nvim/lua/plugins/debugging.lua @@ -0,0 +1,84 @@ +return { + { + "mfussenegger/nvim-dap", + lazy = true, + keys = { + { + "db", + function() require("dap").toggle_breakpoint() end, + desc = "Toggle Breakpoint", + }, + { + "dc", + function() require("dap").continue() end, + desc = "Continue", + }, + { + "dC", + function() require("dap").run_to_cursor() end, + desc = "Run to Cursor", + }, + { + "dT", + function() require("dap").terminate() end, + desc = "Terminate", + }, + }, + }, + { + "rcarriga/nvim-dap-ui", + config = true, + lazy = true, + keys = { + { + "du", + function() require("dapui").toggle({}) end, + desc = "Dap UI", + }, + }, + dependencies = { + "jay-babu/mason-nvim-dap.nvim", + "leoluz/nvim-dap-go", + "mfussenegger/nvim-dap-python", + "nvim-neotest/nvim-nio", + "theHamsta/nvim-dap-virtual-text", + }, + }, + -- debugging virtual text to show output + -- { + -- "theHamsta/nvim-dap-virtual-text", + -- event = "VeryLazy", + -- config = true, + -- dependencies = { + -- "mfussenegger/nvim-dap", + -- }, + -- }, + -- debugging languages + { + { + -- Automatically sets up LSP, so lsp.lua doesn't include rust. + -- Makes debugging work seamlessly. + "mrcjkb/rustaceanvim", + version = "^5", -- Recommended by module. + lazy = true, + ft = "rust", + dependencies = { + "mfussenegger/nvim-dap", + }, + }, + }, + { + "mfussenegger/nvim-dap-python", + lazy = true, + ft = "python", + config = function() + local python = vim.fn.expand("~/.local/share/nvim/mason/packages/debugpy/venv/bin/python") + require("dap-python").setup(python) + end, + -- Consider the mappings at + -- https://github.com/mfussenegger/nvim-dap-python?tab=readme-ov-file#mappings + dependencies = { + "mfussenegger/nvim-dap", + }, + }, +} diff --git a/.config/nvim/lua/plugins/lsp_config.lua b/.config/nvim/lua/plugins/lsp_config.lua index 8a8f46a..fd8feed 100644 --- a/.config/nvim/lua/plugins/lsp_config.lua +++ b/.config/nvim/lua/plugins/lsp_config.lua @@ -1,41 +1,256 @@ return { - -- LSP Support - -- { - -- 'VonHeikemen/lsp-zero.nvim', - -- branch = "v3.x", - -- lazy = true, - -- config = false, - -- }, + { + "mason-org/mason.nvim", + lazy = false, + --cmd = { "Mason", "MasonInstall", "MasonUninstall", "MasonUpdate", "MasonUninstallAll", "MasonLog" }, + opts = {}, + }, + { + "nvim-treesitter/nvim-treesitter", + lazy = false, + build = ":TSUpdate", + event = { "BufRead" }, + opts = { + sync_install = false, + auto_install = true, + highlight = { + enable = true, + -- disable for files bigger than 500KB + disable = function(lang, buf) + local max_filesize = 500 * 1024 -- 500 KB + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) + if ok and stats and stats.size > max_filesize then return true end + end, + additional_vim_regex_highlighting = false, + }, + indent = { + enable = true, + }, + ensure_installed = { + "html", + "javascript", + "gdscript", + "lua", + "php", + "python", + "rust", + "typescript", + "vim", + }, + }, + }, + { + "mason-org/mason-lspconfig.nvim", + lazy = false, + opts = { + ensure_installed = { + "rust_analyzer", + "ruff", + --"quick_lint_js", + --"eslint", + "html", + "cssls", + "gdscript", + "sqls", + "hyprls", + "lua_ls", + "ast-grep", + -- "pylyzer", + "vimls", + "ts_ls", + }, + automatic_enable = { true, rust_analyzer = false }, + }, + config = function() + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + -- Enable completion triggered by + vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev) + vim.keymap.set("n", "]d", vim.diagnostic.goto_next) + vim.keymap.set("n", "le", vim.diagnostic.open_float) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set("n", "f", function() vim.lsp.buf.format({ async = true }) end, opts) + end, + }) + end, + }, { "neovim/nvim-lspconfig", - -- dependencies = { - -- {"hrsh7th/cmp-nvim-lsp"}, - -- }, - lazy = true, - }, - { - "williamboman/mason.nvim", - lazy = true, - }, - { - "williamboman/mason-lspconfig.nvim", - lazy = true, + lazy = false, -- REQUIRED: tell lazy.nvim to start this plugin at startup + dependencies = { + -- main one + { "ms-jpq/coq_nvim", branch = "coq", lazy = false }, + + -- 9000+ Snippets + { "ms-jpq/coq.artifacts", branch = "artifacts", lazy = false }, + + -- lua & third party sources -- See https://github.com/ms-jpq/coq.thirdparty + -- Need to **configure separately** + --{ "ms-jpq/coq.thirdparty", branch = "3p", lazy = false }, + -- - shell repl + -- - nvim lua api + -- - scientific calculator + -- - comment banner + -- - etc + }, + init = function() + vim.g.coq_settings = { + auto_start = true, -- if you want to start COQ at startup + -- Your COQ settings here + display = { statusline = { helo = false } }, -- disable greeting notification + } + end, + config = function() + vim.lsp.config( + "rust_analyzer", + coq.lsp_ensure_capabilities({ + settings = { + ["rust-analyzer"] = { + imports = { + granularity = { + group = "module", + }, + prefix = "self", + }, + cargo = { + buildScripts = { + enable = true, + }, + }, + procMacro = { + enable = true, + }, + }, + }, + }) + ) + vim.lsp.config("gdscript", coq.lsp_ensure_capabilities({})) + + --vim.lsp.enable({ "lua_ls" }) + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + -- Enable completion triggered by + vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev) + vim.keymap.set("n", "]d", vim.diagnostic.goto_next) + vim.keymap.set("n", "le", vim.diagnostic.open_float) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set("n", "f", function() vim.lsp.buf.format({ async = true }) end, opts) + end, + }) + end, }, { "mfussenegger/nvim-lint", - lazy = false, + event = { "BufWritePre", "InsertLeave" }, + lazy = true, + opts = { + linters_by_ft = { + cpp = { "cpplint" }, + gdscript = { "gdlint" }, + gitcommit = { "commitlint" }, + lua = { "ast-grep" }, + fish = { "fish_lsp" }, + markdown = {}, + sql = { "sqruff" }, + python = { "ruff" }, + r = { "r-languageserver" }, + javascript = { "eslint" }, + typescript = { "eslint" }, + }, + }, + config = function() + local lint = require("lint") + vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + callback = function() lint.try_lint() end, + }) + end, }, -- supposedly faster formatter { "stevearc/conform.nvim", - opts = {}, + lazy = true, + event = { "BufWritePre" }, + + --keys = { "i", "F3" }, + opts = { + vim.api.nvim_create_autocmd({ "BufWritePost" }, { + pattern = "*", + callback = function(args) require("conform").format({ bufnr = args.buf }) end, + }), + formatters_by_ft = { + lua = { "stylua" }, + rust = { "rustfmt", lsp_format = "fallback" }, + -- Conform will run multiple formatters sequentially + python = { "ruff", "autopep8", lsp_format = "fallback" }, + gdscript = { "gdformat" }, + bash = { "shellharden" }, + javascript = { "biome" }, + typescript = { "biome" }, + markdown = { "prettier" }, + r = { "air" }, -- how to make air use tabs not spaces + css = { "ast-grep" }, + html = { "ast-grep" }, + -- sql = { "sqruff" }, + json = { "biome" }, + yaml = { "biome" }, + vue = { "biome" }, + }, + format_on_save = { + timeout_ms = 700, + lsp_format = "fallback", + }, + log_level = vim.log.levels.WARNING, + function() + require("conform").formatters.prettier = { + inherit = true, + command = "prettier", + prepend_args = { "--tab-width", "4" }, + } + require("conform").formatters.biome = { + command = "biome format", + prepend_args = "--indent-width=4 --use-editorconfig=true", + } + require("lua").formatters.stylua = { + prepend = "--column-width=80", + } + end, + }, + }, + { "nvim-treesitter/nvim-treesitter-textobjects", lazy = true, event = "BufRead" }, + { + "nvim-treesitter/nvim-treesitter-context", + lazy = true, + event = "BufRead", + opts = { + enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) + max_lines = 4, -- How many lines the window should span. Values <= 0 mean no limit. + min_window_height = 35, -- Minimum editor window height to enable context. Values <= 0 mean no limit. + line_numbers = true, + lazy = true, + multiline_threshold = 4, -- Maximum number of lines to show for a single context + trim_scope = "outer", -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' + mode = "topline", -- Line used to calculate context. Choices: 'cursor', 'topline'. + -- Separator between context and content. Should be a single character string, like '-'. + -- When separator is set, the context will only show up when there are at least 2 lines above cursorline. + separator = "—", + zindex = 20, -- The Z-index of the context window + on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching + }, + }, + { + "jubnzv/virtual-types.nvim", + lazy = false, }, - -- Autocompletion - -- { - -- "hrsh7th/nvim-cmp", - -- dependencies = { - -- {"L3MON4D3/LuaSnip"} - -- }, - -- lazy = true, - -- }, } diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..ffc325b --- /dev/null +++ b/.config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,180 @@ +return { + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + lazy = false, + opts = { + options = { + icons_enabled = true, + theme = "everforest", + component_separators = { left = "", right = "" }, + --component_separators = { left = '', right = '' }, + section_separators = { left = "", right = "" }, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = false, + globalstatus = true, + refresh = { + statusline = 200, + tabline = 200, + winbar = 500, + events = { + "WinEnter", + "BufEnter", + "BufWritePost", + "SessionLoadPost", + "FileChangedShellPost", + "VimResized", + "Filetype", + "CursorMoved", + "CursorMovedI", + "ModeChanged", + }, + }, + symbols = { + --modified = " ●", -- Text to show when the buffer is modified + alternate_file = "#", -- Text to show to identify the alternate file + directory = "", -- Text to show when the buffer is a directory + modified = "[+]", -- Text to show when the file is modified. + readonly = "[-]", -- Text to show when the file is non-modifiable or readonly. + unnamed = "[No Name]", -- Text to show for unnamed buffers. + newfile = "[New]", -- Text to show for newly created file before first write + }, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "branch", "diff", "diagnostics" }, + lualine_c = { + -- { + -- require("noice").api.status.mode.get, + -- cond = require("noice").api.status.mode.has, + -- color = { fg = "#ff9e64" }, + -- }, + -- { + -- require("noice").api.status.search.get, + -- cond = require("noice").api.status.search.has, + -- color = { fg = "#ff9e64" }, + -- }, + "pwd", + + -- { "filename", path = 3 }, + }, + lualine_x = { + { + require("noice").api.status.command.get, + cond = require("noice").api.status.command.has, + color = { fg = "#ff9e64" }, + }, + { + require("noice").api.statusline.mode.get, + cond = require("noice").api.statusline.mode.has, + color = { fg = "#ff9e64" }, + }, + { + require("noice").api.status.search.get, + cond = require("noice").api.status.search.has, + color = { fg = "#ff9e64" }, + }, + "filesize", + { + "fileformat", + symbols = { + unix = "LF", + dos = "CRLF", + }, + }, + "filetype", + 'require"lsp-status".status()', + }, + lualine_y = { "searchcount", "progress" }, + lualine_z = { "selectioncount", "location" }, + }, + inactive_sections = {}, + tabline = { + lualine_a = { + { + "tabs", + mode = 2, + path = 1, + max_length = 320, + tab_max_length = 40, + use_mode_colors = true, + }, + }, + lualine_b = {}, + lualine_c = {}, + lualine_d = {}, + lualine_x = { + { + function() + if require("nvim-possession").status then + return require("nvim-possession").status() + else + end + end, + cond = function() return require("nvim-possession").status() ~= nil end, + }, + }, + lualine_y = { { "datetime", style = "%H:%M" } }, + lualine_z = {}, + }, + winbar = { + lualine_a = {}, + -- 0: Just the filename + -- 1: Relative path + -- 2: Absolute path + -- 3: Absolute path, with tilde as the home directory + -- 4: Filename and parent dir, with tilde as the home directory + lualine_b = { separator = nil, { "bufnr" }, { "filename", path = 3 } }, + lualine_c = { + { + "diagnostics", + + -- Table of diagnostic sources, available sources are: + -- 'nvim_lsp', 'nvim_diagnostic', 'nvim_workspace_diagnostic', 'coc', 'ale', 'vim_lsp'. + -- or a function that returns a table as such: + -- { error=error_cnt, warn=warn_cnt, info=info_cnt, hint=hint_cnt } + sources = { "nvim_diagnostic", "coc" }, + + -- Displays diagnostics for the defined severity types + sections = { "error", "warn" }, + -- sections = { "error", "warn", "info", "hint" }, + + diagnostics_color = { + -- Same values as the general color option can be used here. + error = "DiagnosticError", -- Changes diagnostics' error color. + warn = "DiagnosticWarn", -- Changes diagnostics' warn color. + -- info = "DiagnosticInfo", -- Changes diagnostics' info color. + -- hint = "DiagnosticHint", -- Changes diagnostics' hint color. + }, + symbols = { error = "E", warn = "W", info = "I", hint = "H" }, + colored = true, -- Displays diagnostics status in color if set to true. + update_in_insert = false, -- Update diagnostics in insert mode. + always_visible = false, -- Show diagnostics even if there are none. + }, + }, + lualine_x = { + --[["filesize", "filetype"]] + }, + lualine_y = {}, + lualine_z = {}, + }, + inactive_winbar = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { + "bufnr", + { + "filename", + path = 4, + }, + }, + lualine_x = {}, + lualine_y = {}, + lualine_z = {}, + }, + extensions = {}, + }, +} diff --git a/.config/nvim/lua/plugins/nvim-possession.lua b/.config/nvim/lua/plugins/nvim-possession.lua index 15f6bdc..872dfb2 100644 --- a/.config/nvim/lua/plugins/nvim-possession.lua +++ b/.config/nvim/lua/plugins/nvim-possession.lua @@ -1,9 +1,19 @@ return { - { "gennaro-tedesco/nvim-possession", - dependencies = { - "ibhagwan/fzf-lua", - }, - lazy = true, - config = true, - }, + { + "gennaro-tedesco/nvim-possession", + lazy = true, + keys = { "s" }, + config = true, + opts = { + autoload = false, -- default false + autosave = true, + autoswitch = { + enable = true, + }, + sessions = { + sessions_path = "/home/felix/.cache/nvim/sessions/", + }, + }, + }, + { "ibhagwan/fzf-lua", lazy = true }, } diff --git a/.config/nvim/lua/plugins/peanuts.lua b/.config/nvim/lua/plugins/peanuts.lua index e9fca99..3b9124e 100644 --- a/.config/nvim/lua/plugins/peanuts.lua +++ b/.config/nvim/lua/plugins/peanuts.lua @@ -2,57 +2,193 @@ return { -- not deps --{ "xiyaowong/transparent.nvim" }, -- { "olimorris/onedarkpro.nvim" }, - { "neanias/everforest-nvim" }, - { "ibhagwan/fzf-lua", lazy = true }, - { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", lazy = true }, - { "nvim-treesitter/nvim-treesitter-context", lazy = true }, { - "nvim-telescope/telescope.nvim", - tag = "0.1.2", - dependencies = { - "nvim-lua/plenary.nvim", - "MunifTanjim/nui.nvim", + "neanias/everforest-nvim", + lazy = false, + priority = 1000, + name = "everforest", + opts = { + on_highlights = function(hl, palette) + hl.MiniCursorword = { underdotted = true } + hl.MiniCursorwordCurrent = {} -- just needs to be mentioned to override color theme default and clone MiniCursorword + end, + }, + }, + + { + "alex-popov-tech/store.nvim", + dependencies = { + "OXY2DEV/markview.nvim", -- optional, for pretty readme preview / help window + }, + cmd = "Store", + opts = { + width = 1000, + height = 500, }, - lazy = true, }, { "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, lazy = false, }, - { "stevearc/aerial.nvim" }, { "folke/noice.nvim", - event = "VeryLazy", - opts = {}, - dependencies = { - "MunifTanjim/nui.nvim", - --OPTIONAL: - -- `nvim-notify` is only needed, if you want to use the notification view. - -- If not available, we use `mini` as the fallback - "rcarriga/nvim-notify", + lazy = true, + opts = { + -- cmdline = { + -- view = "cmdline", + -- }, + routes = { + { + filter = { + event = "msg_show", + kind = "", + find = "written", + }, + opts = { skip = true }, + }, + }, }, + dependencies = {}, }, + { "MunifTanjim/nui.nvim", lazy = true }, -- dep of noice.nvim + { "rcarriga/nvim-notify", lazy = true }, -- dep of noice.nvim { "echasnovski/mini.nvim", + lazy = true, version = false, }, { - "danielfalk/smart-open.nvim", - branch = "0.2.x", - lazy = true, + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", dependencies = { - "kkharji/sqlite.lua", - -- Only required if using match_algorithm fzf - { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, - -- Optional. If installed, native fzy will be used when match_algorithm is fzy - { "nvim-telescope/telescope-fzy-native.nvim" }, + "nvim-lua/plenary.nvim", + "MunifTanjim/nui.nvim", + "nvim-tree/nvim-web-devicons", -- optional, but recommended + }, + cmd = "Neotree", + lazy = true, -- neo-tree will lazily load itself + }, + { + "gelguy/wilder.nvim", + lazy = true, + event = { "CmdlineEnter" }, + opts = { + modes = { ":", "/", "?" }, }, }, - { "gelguy/wilder.nvim", lazy = true }, - { "norcalli/nvim-colorizer.lua", verylazy = true }, - { "ziontee113/color-picker.nvim", verylazy = true }, - { "lewis6991/gitsigns.nvim", verylazy = true }, - -- optional - { "nvim-treesitter/nvim-treesitter-textobjects", lazy = true }, + { "OXY2DEV/markview.nvim", lazy = true, ft = "Markdown", cmd = "Markview", event = { "BufRead *.md" } }, + { + "norcalli/nvim-colorizer.lua", + lazy = true, + event = { "BufRead" }, + opts = { + "*", + css = { rgb_fn = true, hsl_fn = true }, + scss = { rgb_fn = true, hsl_fn = true }, + "javascript", + "html", + }, + mode = "background", + }, + { + "ziontee113/color-picker.nvim", + lazy = true, + keys = { + { "", mode = { "n" }, "PickColorInsert", desc = "open color widget" }, + { "", mode = { "i" }, "PickColor", desc = "open color widget" }, + }, + cmd = { "PickColor", "PickColorInsert" }, + opts = { + ["icons"] = { "ﱢ", "" }, + -- ["icons"] = { "ﮊ", "" }, + -- ["icons"] = { "", "ﰕ" }, + -- ["icons"] = { "", "" }, + -- ["icons"] = { "", "" }, + ["border"] = "rounded", -- none | single | double | rounded | solid | shadow + ["keymap"] = { -- mapping example: + ["U"] = "ColorPickerSlider5Decrease", + ["O"] = "ColorPickerSlider5Increase", + }, + ["background_highlight_group"] = "Normal", -- default + ["border_highlight_group"] = "FloatBorder", -- default ["text_highlight_group"] = "Normal", --default }) + vim.cmd([[hi FloatBorder guibg=NONE]]), -- if you don't want weird border background colors around the popup. + }, + -- }, + -- config = { + -- vim.cmd([[hi FloatBorder guibg=NONE]]), -- if you don't want weird border background colors around the popup. + -- }, + }, + { + "jiaoshijie/undotree", + dependencies = "nvim-lua/plenary.nvim", + config = true, + keys = { + { "u", function() require("undotree").toggle() end, desc = "toggle undotree" }, + }, + }, + { + "saecki/crates.nvim", + lazy = true, + event = { "BufReadPost Cargo.toml" }, + opts = {}, + -- config = function() require("crates").setup() end, + }, + { + "folke/trouble.nvim", + opts = {}, + cmd = "Trouble", + lazy = true, + keys = { "x" }, + }, + { + "lewis6991/gitsigns.nvim", + lazy = false, + opts = { + signs = { + add = { text = "│" }, + change = { text = "│" }, + delete = { text = "_" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + untracked = { text = "┆" }, + }, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = true, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true, + }, + attach_to_untracked = true, + current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align' + delay = 150, + ignore_whitespace = false, + virt_text_priority = 0, + }, + current_line_blame_formatter = ", - ", + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + border = "single", + style = "minimal", + relative = "cursor", + row = 0, + col = 1, + }, + }, + }, + { + "nvzone/typr", + dependencies = "nvzone/volt", + opts = {}, + lazy = true, + cmd = { "Typr", "TyprStats" }, + }, } diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..c4a0397 --- /dev/null +++ b/.config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,77 @@ +return { + { + "nvim-telescope/telescope.nvim", + tag = "0.1.2", + lazy = true, + keys = { + { "", mode = { "n" }, "Telescope smart_open", desc = "smart_open" }, + { "ff", mode = { "n" }, "Telescope find_files", desc = "Find File" }, + { "fh", mode = { "n" }, "Telescope help_tags", desc = "Find Help" }, + { "fs", mode = { "n" }, "Telescope live_grep", desc = "Live Grep" }, + }, + cmd = { "Telescope" }, + opts = { + defaults = { + sorting_strategy = "descending", + scroll_strategy = "limit", + scroll_speed = 7, + layout_strategy = "vertical", + layout_config = { + prompt_position = "top", + preview_cutoff = 0, + horizontal = { + height = 0.9, + }, + vertical = { + prompt_position = "top", + height = 0.9, + width = 0.8, + mirror = true, + }, + }, + }, + extensions = { + smart_open = { + match_algorithm = "fzy", + disable_devicons = false, + }, + fzy_native = {}, + }, + pickers = { + buffers = { + mappings = { + n = { + ["ww"] = "which_key", + ["dd"] = function() require("telescope.actions").delete_buffer() end, + }, + i = { + [""] = "which_key", + [""] = function() require("telescope.actions").delete_buffer() end, + }, + }, + }, + }, + }, + }, + { + "danielfalk/smart-open.nvim", + branch = "0.3.x", + lazy = true, + -- keys = { "", "Telescope smart_open", desc = "smart open" }, + config = { + function() require("telescope").load_extension("smart_open") end, + }, + }, + { "nvim-lua/plenary.nvim", lazy = true }, + { "MunifTanjim/nui.nvim", lazy = true }, + -- Only required if using match_algorithm fzf + -- { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, + -- faster and better matching than fzf + { + "nvim-telescope/telescope-fzy-native.nvim", + config = { + function() require("telescope").load_extension("fzy_native") end, + }, + }, + { "kkharji/sqlite.lua", lazy = true }, +} diff --git a/.config/nvim/lua/plugins/trouble.lua b/.config/nvim/lua/plugins/trouble.lua deleted file mode 100644 index da1f027..0000000 --- a/.config/nvim/lua/plugins/trouble.lua +++ /dev/null @@ -1,37 +0,0 @@ -return { - "folke/trouble.nvim", - opts = {}, - cmd = "Trouble", - keys = { - { - "xx", - "Trouble diagnostics toggle", - desc = "Diagnostics (Trouble)", - }, - { - "xX", - "Trouble diagnostics toggle filter.buf=0", - desc = "Buffer Diagnostics (Trouble)", - }, - { - "cs", - "Trouble symbols toggle focus=false", - desc = "Symbols (Trouble)", - }, - { - "cl", - "Trouble lsp toggle focus=false win.position=right", - desc = "LSP Definitions / references / ... (Trouble)", - }, - { - "xL", - "Trouble loclist toggle", - desc = "Location List (Trouble)", - }, - { - "xQ", - "Trouble qflist toggle", - desc = "Quickfix List (Trouble)", - }, - }, -} diff --git a/.config/nvim/lua/plugins/undotree.lua b/.config/nvim/lua/plugins/undotree.lua deleted file mode 100755 index 6454306..0000000 --- a/.config/nvim/lua/plugins/undotree.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - "jiaoshijie/undotree", - dependencies = "nvim-lua/plenary.nvim", - config = true, - keys = { -- load the plugin only when using it's keybinding: - { "u", "lua require('undotree').toggle()" }, - }, -} diff --git a/.config/nvim/lua/plugins/which-key.lua b/.config/nvim/lua/plugins/which-key.lua deleted file mode 100644 index 21738f9..0000000 --- a/.config/nvim/lua/plugins/which-key.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - "folke/which-key.nvim", - event = "VeryLazy", - init = function() - vim.o.timeout = true - vim.o.timeoutlen = 50 - end, - opts = {}, -} diff --git a/.config/nvim/lua/plugins/which_key.lua b/.config/nvim/lua/plugins/which_key.lua new file mode 100644 index 0000000..85195d7 --- /dev/null +++ b/.config/nvim/lua/plugins/which_key.lua @@ -0,0 +1,262 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 50 + end, + opts = { + spec = { + { "c", group = "crates" }, + { "cA", function() require("crates").upgrade_all_crates() end, desc = "Upgrade all crates" }, + { "cC", function() require("crates").open_creates_io() end, desc = "Open crates.io" }, + { "cD", function() require("crates").open_documentation() end, desc = "Open documentation" }, + { "cH", function() require("crates").open_homepage() end, desc = "Open homepage" }, + { "cR", function() require("crates").open_repository() end, desc = "Open repository" }, + { "cU", function() require("crates").upgrade_crate() end, desc = "Upgrade crate" }, + { + "cX", + function() require("crates").extract_crate_into_table() end, + desc = "Extract crate into table", + }, + { "ca", function() require("crates").update_all_crates() end, desc = "Update all crates" }, + { + "cd", + function() require("crates").show_dependencies_popup() end, + desc = "Show dependencies popup", + }, + { "cf", function() require("crates").show_features_popup() end, desc = "Show features popup" }, + { "cr", function() require("crates").reload() end, desc = "Reload" }, + { "ct", function() require("crates").toggle() end, desc = "Toggle" }, + { "cu", function() require("crates").update_crate() end, desc = "Update crate" }, + { "cv", function() require("crates").show_versions_popup() end, desc = "Show versions popup" }, + { + "cx", + function() require("crates").expand_plain_crate_to_inline_table() end, + desc = "Expand plain crate to inline table", + }, + + { "lp", "Lazy profile", desc = "show Lazy profiler" }, + + { "e", "lua MiniFiles.open()", desc = "Files w/ Mini" }, + { "E", "Lexplore", desc = "Files Sidebar" }, + { "f", group = "Telescope" }, + { "fb", "Telescope buffers", desc = "Find Buffer" }, + { "fd", "Telescope lsp_document_symbols", desc = "Find LSP Symbols" }, + { "ff", "Telescope find_files", desc = "Find File" }, + { "fh", "Telescope help_tags", desc = "Find Help" }, + { "fr", "Telescope oldfiles", desc = "Open Recent File", remap = true }, + { "fs", "Telescope live_grep", desc = "Live Grep" }, + { "fw", "Telescope grep_string", desc = "Find string under cursor" }, + { + "", + function() require("telescope").extensions.smart_open.smart_open() end, + mode = "n", + silent = true, + desc = "Smart open", + }, + + { "g", group = "Gitsigns" }, + { "gB", "Gitsigns blame", desc = "Toggle Blame Sidebar" }, + { "gb", "Gitsigns blame_line", desc = "Show Blame Inline" }, + { "gd", "Gitsigns toggle_deleted", desc = "Toggle deleted lines" }, + { "gh", group = "hunks" }, + { "ghl", "Gitsigns setloclist", desc = "List file Changes" }, + { "ghn", "Gitsigns nav_hunk", desc = "Nav Hunk" }, + { "gr", group = "reset" }, + { "grb", "Gitsigns reset_buffer", desc = "Reset Buffer" }, + { "grh", "Gitsigns reset_hunk", desc = "Reset Hunk" }, + { "gs", group = "stage" }, + { "gsb", "Gitsigns stage_buffer", desc = "Stage Buffer" }, + { "gsh", "Gitsigns stage_hunk", desc = "Stage Hunk" }, + { "gu", "Gitsigns undo_stage_hunk", desc = "Undo Stage Hunk" }, + + -- lsp and debugging + { + "i", + function() require("conform").format({ async = true }) end, + desc = "Auto format file with linter(?), also on F3", + }, + { + "F3", + function() require("conform").format({ async = true }) end, + mode = "ni", + desc = "Auto format file with formatter", + }, + { "le", vim.diagnostic.open_float, desc = "Open diagnostic float" }, + { "K", desc = "Show definition" }, + -- { "d", group = "Debugging" }, + -- { + -- { mode = "n" }, + -- { "dn", require("dap").new, desc = "Start Debugger" }, + -- { "db", require("dap").toggle_breakpoint, desc = "Toggle breakpoint" }, + -- { "dc", require("dap").continue, desc = "Continue" }, + -- }, + + -- trouble plugin + { "xx", "Trouble diagnostics toggle", desc = "Diagnostics (Trouble)" }, + { + "xX", + "Trouble diagnostics toggle filter.buf=0", + desc = "Buffer Diagnostics (Trouble)", + }, + { "xs", "Trouble symbols toggle focus=false", desc = "Symbols (Trouble)" }, + { + "xl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { "xL", "Trouble loclist toggle", desc = "Location List (Trouble)" }, + { "xQ", "Trouble qflist toggle", desc = "Quickfix List (Trouble)" }, + + -- QOL shortcuts + { "n", "nohl", desc = "Stop highlighting search results" }, + { "m", "NoiceDismiss", desc = "Dismiss notifications" }, + { "M", "Markview toggle", desc = "Markview toggle source view" }, + + { "r", group = "Rename" }, + { "rr", vim.lsp.buf.rename, opts, desc = "Rename Variable" }, + + { "s", group = "Sessions" }, + { "sl", function() require("nvim-possession").list() end, desc = "List sesssions" }, + { "sn", function() require("nvim-possession").new() end, desc = "Create new session" }, + { "su", function() require("nvim-possession").update() end, desc = "Update Session" }, + { "sd", function() require("nvim-possession").delete() end, desc = "Delete Session" }, + + { "t", group = "tabs" }, + { "ta", "tabnew", desc = "Add new Tab" }, + { "tc", "tabclose", desc = "Close Tab" }, + { "tf", "tabfirst", desc = "First Tab" }, + { "tl", "tablast", desc = "Last Tab" }, + { "tm", group = "Move Tab" }, + { "tmf", "tabmove 0", desc = "Move Tab to First" }, + { "tmi", ":tabmove ", desc = "Input position to move Tab to" }, + { "tml", "tabmove $", desc = "Move Tab to Last" }, + { "tn", "tabnext", desc = "Next Tab" }, + { "tp", "tabprevious", desc = "Previous Tab" }, + + { "u", desc = "Toggle undo-tree" }, + { "w", group = "Workspaces + Whichkey" }, + { "wa", desc = "Add workspace folder" }, + { "wr", desc = "Remove workspace folder" }, + { "ww", "WhichKey", desc = "Show keybindings" }, + { "y", desc = "Copy to system clipboard" }, + { "Y", desc = "Copy line to system clipboard" }, + + -- mini.nvim additions + { "va", group = "select around" }, --{{{1 mini.ai + { "va(", desc = "() parens" }, + { "va)", desc = "() parens" }, + { "va[", desc = "[] brackets" }, + { "va]", desc = "[] brackets" }, + { "va{", desc = "{} braces" }, + { "va}", desc = "{} braces" }, + { "va<", desc = "<> braces" }, + { "va>", desc = "<> braces" }, + { 'va"', desc = '""' }, + { "va'", desc = "''" }, + { "val", desc = "last selection" }, + + { "vi", group = "select inside" }, + { "vi(", desc = "() parens" }, + { "vi)", desc = "() parens" }, + { "vi[", desc = "[] brackets" }, + { "vi]", desc = "[] brackets" }, + { "vi{", desc = "{} braces" }, + { "vi}", desc = "{} braces" }, + { "vi<", desc = "<> braces" }, + { "vi>", desc = "<> braces" }, + { 'vi"', desc = '""' }, + { "vi'", desc = "''" }, + { "vil", desc = "last selection" }, + --}}} + + { "[", group = "move to prev" }, --{{{2 "brackets" + { "[B", desc = "First Buffer" }, + { "[b", desc = "Prev Buffer" }, + { "[X", desc = "First Conflict" }, + { "[x", desc = "Prev Conflict" }, + { "[I", desc = "First Indent" }, + { "[i", desc = "Prev Indent" }, + { "[I", desc = "First Indent" }, + { "[i", desc = "Prev Indent" }, + { "[W", desc = "First Window in Tab" }, + { "[w", desc = "Prev Window in Tab" }, + { "[F", desc = "First File" }, + { "[f", desc = "Prev File" }, + { "[O", desc = "First Oldfile" }, + { "[o", desc = "Prev Oldfile" }, + { "[Q", desc = "First Quickfix" }, + { "[q", desc = "Prev Quickfix" }, + { "[Y", desc = "First Yank selection replacing latest put region" }, + { "[y", desc = "Prev Yank selection replacing latest put region" }, + + { "]", group = "move next" }, + { "]B", desc = "Last Buffer" }, + { "]b", desc = "Next Buffer" }, + { "]X", desc = "Last Conflict" }, + { "]x", desc = "Next Conflict" }, + { "]I", desc = "Last Indent" }, + { "]i", desc = "Next Indent" }, + { "]I", desc = "Last Indent" }, + { "]i", desc = "Next Indent" }, + { "]W", desc = "Last Window in Tab" }, + { "]w", desc = "Next Window in Tab" }, + { "]F", desc = "Last File" }, + { "]f", desc = "Next File" }, + { "]O", desc = "Last Oldfile" }, + { "]o", desc = "Next Oldfile" }, + { "]Q", desc = "Last Quickfix" }, + { "]q", desc = "Next Quickfix" }, + { "]Y", desc = "Last Yank selection replacing latest put region" }, + { "]y", desc = "Next Yank selection replacing latest put region" }, + --}}} + + { "gcc", desc = "Comment Line" }, + { + mode = { "v" }, + { "gc", group = "Comment" }, + { "g=", desc = "evaluate expression" }, + { "gm", desc = "duplicate" }, + { "gr", desc = "replace with register" }, + { "gs", desc = "sort" }, + { "gx", desc = "exchange region" }, + }, + -- These somehow have no effect whatsoever + -- { "c", group = "change" }, + -- { "c[", group = "back" }, + -- { "c]", group = "forward" }, + -- { "cg", group = "jump" }, + -- + -- { "d", group = "delete" }, + -- { "d[", group = "back" }, + -- { "d]", group = "forward" }, + -- { "dg", group = "jump" }, + + { "K", desc = "Show definition" }, + { "[", group = "jump backward" }, + { "[c", desc = "Previous diff change" }, + { "[d", desc = "Previous Diagnostic" }, + { "[h", "Gitsigns prev_hunk", desc = "Previous changed git block" }, + { "]", group = "jump forward" }, + { "]c", desc = "Next diff change" }, + { "]d", desc = "Next Diagnostic" }, + { "]h", "Gitsigns next_hunk", desc = "Next changed git block" }, + { "g", group = "lsp functions" }, + { "gD", desc = "go to declaration" }, + { "gd", desc = "go to definition" }, + { "gi", desc = "show implementations" }, + { "gr", desc = "list all references to symbol under cursor" }, + + --undotree + { "j", desc = "jump to next undo node" }, + { "gj", desc = "jump to the parent node of the node under the cursor" }, + { "k", desc = "jump to previous undo node" }, + { "J", desc = "jump to next undo node and undo to this state" }, + { "K", desc = "jump to previous undo node and undo to this state" }, + { "q", desc = "quit undotree" }, + { "p", desc = "jump into undetree diff window" }, + { "", desc = "undo to this state" }, + }, + }, +} diff --git a/.config/nvim/stylua.toml b/.config/nvim/stylua.toml new file mode 100644 index 0000000..4a006fe --- /dev/null +++ b/.config/nvim/stylua.toml @@ -0,0 +1 @@ +collapse_simple_statement = "Always" diff --git a/.config/qt6ct/qt6ct.conf b/.config/qt6ct/qt6ct.conf new file mode 100644 index 0000000..152bd00 --- /dev/null +++ b/.config/qt6ct/qt6ct.conf @@ -0,0 +1,32 @@ +[Appearance] +color_scheme_path=/usr/share/color-schemes/Kvantum.colors +custom_palette=true +icon_theme=Tela-dark +standard_dialogs=default +style=kvantum-dark + +[Fonts] +fixed="Hurmit Nerd Font,12,-1,5,300,0,0,0,0,0,0,0,0,0,0,1" +general="Noto Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=2 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=3 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=/usr/share/qt6ct/qss/scrollbar-simple.qss +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4\xfd\0\0\x5\x9f\0\0\0\0\0\0\0\0\0\0\x4\xfd\0\0\x5\x9f\0\0\0\0\x2\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\x4\xfd\0\0\x5\x9f) + +[Troubleshooting] +force_raster_widgets=0 +ignored_applications=@Invalid() diff --git a/.config/starship.toml b/.config/starship.toml index 3d9d162..506b701 100644 --- a/.config/starship.toml +++ b/.config/starship.toml @@ -2,9 +2,9 @@ #[╭─user───❯](bold blue) $username #[┣─system─❯](bold yellow) $hostname #[┣─project❯](bold red) $directory$rust$git_branch$git_status$package$golang$terraform$docker_context$python$docker_context$nodejs -#[╰─cmd────❯](bold green) +#[╰─cmd────❯](bold green) #""" -add_newline = false +add_newline = true #format = """ #$time\ @@ -37,7 +37,7 @@ style_user = "green bold" style_root = "red bold" format = "[$user]($style) " disabled = false -show_always = true +show_always = false [hostname] ssh_only = true diff --git a/.config/tofi/brightness_config b/.config/tofi/brightness_config new file mode 100644 index 0000000..6001ba6 --- /dev/null +++ b/.config/tofi/brightness_config @@ -0,0 +1,152 @@ +include = config + +font-size = 17 + +###---- +### Text theming +# + # Default text color + # + # All text defaults to this color if not otherwise specified. + text-color = #FFFFFF + + # Selection text + selection-color = #9cd3ff + + # Matching portion of selection text + selection-match-color = #9cd3ff + default-result-color = #FFFFFF + alternate-result-color = #808080 + + +# +### Text cursor theme +# + # Style of the optional text cursor. + # + # Supported values: bar, block, underscore + text-cursor-style = underscore + + # Color of the text cursor + # + # If unspecified, defaults to the same as input-color + # text-cursor-color = #FFFFFF + + # Color of text behind the text cursor when text-cursor-style = block + # + # If unspecified, defaults to the same as background-color + # text-cursor-background = #000000 + + # Corner radius of the text cursor + text-cursor-corner-radius = 0 + + # Thickness of the bar and underscore text cursors. + # + # If unspecified, defaults to a font-dependent value when + # text-cursor-style = underscore, or to 2 otherwise. + # text-cursor-thickness = 2 + +# +### Text layout +# + # Prompt to display. + prompt-text = "Brightness" + + # Extra horizontal padding between prompt and input. + prompt-padding = 8 + + # Placeholder input text. + placeholder-text = "" + + # Maximum number of results to display. + # If 0, tofi will draw as many results as it can fit in the window. + num-results = 7 + + # Spacing between results in pixels. Can be negative. + result-spacing = 6 + + # List results horizontally. + horizontal = true + + # Minimum width of input in horizontal mode. + min-input-width = 0 + +# +### Window theming +# + width = 330 + height = 50 + # Width and height of the window. Can be pixels or a percentage. + + # Window background color + background-color = #191A1CF0 + + # Width of the border outlines in pixels. + outline-width = 0 + + # Border outline color + outline-color = #080800 + + # Radius of window corners in pixels. + corner-radius = 0 + + # Whether to scale the window by the output's scale factor. + scale = true + +# +### Window positioning +# + # The name of the output to appear on. An empty string will use the + # default output chosen by the compositor. + output = "" + + # Location on screen to anchor the window to. + # + # Supported values: top-left, top, top-right, right, bottom-right, + # bottom, bottom-left, left, center. + anchor = top + + margin-top = 5% + + # Set the size of the exclusive zone. + # + # A value of -1 means ignore exclusive zones completely. + # A value of 0 will move tofi out of the way of other windows' zones. + # A value greater than 0 will set that much space as an exclusive zone. + # + # Values greater than 0 are only meaningful when tofi is anchored to a + # single edge. + exclusive-zone = -1 + + +# +### Behaviour +# + # Hide the mouse cursor. + hide-cursor = true + + # Show a text cursor in the input field. + text-cursor = false + + # Sort results by number of usages in run and drun modes. + history = false + + require-match = true + + auto-accept-single = true + + # If true, typed input will be hidden, and what is displayed (if + # anything) is determined by the hidden-character option. + hide-input = true + + # Replace displayed input characters with a character. If the empty + # string is given, input will be completely hidden. + # This option only has an effect when hide-input is set to true. + hidden-character = "" + +# +### Inclusion +# + # Configs can be split between multiple files, and then included + # within each other. + # include = /path/to/config diff --git a/.config/tofi/config b/.config/tofi/config index b354b41..43be614 100644 --- a/.config/tofi/config +++ b/.config/tofi/config @@ -13,13 +13,14 @@ # characters not in the chosen font will fail to render. # # Otherwise, fonts are interpreted in Pango format. - # font = "Nimbus Mono PS" - # font = "hurmit nerd font" + #font = "Nimbus Mono PS" + #font = "hurmit nerd font" + #font = /usr/share/fonts/TTF/SauceCodeProNerdFont-Regular.ttf font = /usr/share/fonts/OTF/HurmitNerdFont-Light.otf - # font = /usr/share/fonts/OTF/HurmitNerdFont-Regular.otf + #font = /usr/share/fonts/OTF/HurmitNerdFont-Regular.otf # Point size of text. - font-size = 19 + font-size = 20 # Comma separated list of OpenType font feature settings to apply, # if supported by the chosen font. The format is similar to the CSS @@ -45,7 +46,7 @@ # specified via `font`. Disabling font hinting speeds up text # rendering appreciably, but will likely look poor at small font pixel # sizes. - hint-font = true + hint-font = false # ### Text theming @@ -72,27 +73,27 @@ # Prompt text theme # prompt-color = #FFFFFF - prompt-background = #00000000 - prompt-background-padding = 0 - prompt-background-corner-radius = 0 + #prompt-background = #00000000 + #prompt-background-padding = 0 + #prompt-background-corner-radius = 0 # Placeholder text theme placeholder-color = #FFFFFFA8 - placeholder-background = #00000000 - placeholder-background-padding = 0 - placeholder-background-corner-radius = 15 + #placeholder-background = #00000000 + #placeholder-background-padding = 0 + #placeholder-background-corner-radius = 15 # Input text theme # input-color = #FFFFFF - input-background = #00000000 - input-background-padding = 0 - input-background-corner-radius = 15 + #input-background = #00000000 + #input-background-padding = 0 + #input-background-corner-radius = 15 # Default result text theme # default-result-color = #FFFFFF - default-result-background = #00000000 - default-result-background-padding = 0 - default-result-background-corner-radius = 15 + #default-result-background = #00000000 + #default-result-background-padding = 0 + #default-result-background-corner-radius = 15 # Alternate (even-numbered) result text theme # @@ -106,12 +107,12 @@ # Selection text selection-color = #33ccff - selection-background = #00000000 - selection-background-padding = 0 - selection-background-corner-radius = 15 + #selection-background = #00000000 + #selection-background-padding = 0 + #selection-background-corner-radius = 15 # Matching portion of selection text - selection-match-color = #00ff99 + selection-match-color = #00ff99 # @@ -120,7 +121,7 @@ # Style of the optional text cursor. # # Supported values: bar, block, underscore - text-cursor-style = bar + text-cursor-style = underscore # Color of the text cursor # @@ -145,17 +146,17 @@ ### Text layout # # Prompt to display. - prompt-text = "> " + prompt-text = ">" # Extra horizontal padding between prompt and input. - prompt-padding = 0 + prompt-padding = 8 # Placeholder input text. placeholder-text = "" # Maximum number of results to display. # If 0, tofi will draw as many results as it can fit in the window. - num-results = 5 + #num-results = 5 # Spacing between results in pixels. Can be negative. result-spacing = 0 @@ -174,10 +175,10 @@ height = 270 # Window background color - background-color = #191A1CA0 + background-color = #191A1CC0 # Width of the border outlines in pixels. - outline-width = 1 + outline-width = 0 # Border outline color outline-color = #080800 @@ -186,10 +187,10 @@ border-width = 2 # Border color - border-color = #00ff99 + border-color = #00ff99aa # Radius of window corners in pixels. - corner-radius = 10 + corner-radius = 0 # Padding between borders and text. Can be pixels or a percentage. padding-top = 8 @@ -231,7 +232,7 @@ # Window offset from edge of screen. Only has an effect when anchored # to the relevant edge. Can be pixels or a percentage. margin-top = 20% - margin-bottom = 0 + margin-bottom = 0% margin-left = 0 margin-right = 3% diff --git a/.config/tofi/powermenu_config b/.config/tofi/powermenu_config new file mode 100644 index 0000000..66b81df --- /dev/null +++ b/.config/tofi/powermenu_config @@ -0,0 +1,181 @@ +# Default config for tofi +# +# Copy this file to ~/.config/tofi/config and get customising! +# +# A complete reference of available options can be found in `man 5 tofi`. + +include = ~/.config/tofi/config + +# +### Fonts +# + font = /usr/share/fonts/OTF/HurmitNerdFont-Light.otf + font-size = 17 + + # font-features = "smcp, c2sc" (all small caps) + # font-features = "liga 0" (disable ligatures) + font-features = "smcp" + + # Comma separated list of OpenType font variation settings to apply + # to variable fonts. The format is similar to the CSS + # "font-variation-settings" property. + # + # Examples: + # + # font-variations = "wght 900" (Extra bold) + # font-variations = "wdth 25, slnt -10" (Narrow and slanted) + font-variations = "" + + hint-font = false + +# +### Text theming +# + # Default text color + # + # All text defaults to this color if not otherwise specified. + text-color = #FFFFFF + + # Selection text + selection-color = #ffbb00 + + # Matching portion of selection text + selection-match-color = #ff7700 + + +# +### Text cursor theme +# + # Style of the optional text cursor. + # + # Supported values: bar, block, underscore + text-cursor-style = underscore + + # Color of the text cursor + # + # If unspecified, defaults to the same as input-color + # text-cursor-color = #FFFFFF + + # Color of text behind the text cursor when text-cursor-style = block + # + # If unspecified, defaults to the same as background-color + # text-cursor-background = #000000 + + # Corner radius of the text cursor + text-cursor-corner-radius = 0 + + # Thickness of the bar and underscore text cursors. + # + # If unspecified, defaults to a font-dependent value when + # text-cursor-style = underscore, or to 2 otherwise. + # text-cursor-thickness = 2 + +# +### Text layout +# + # Prompt to display. + prompt-text = "" + + # Extra horizontal padding between prompt and input. + prompt-padding = 8 + + # Placeholder input text. + placeholder-text = "" + + # Maximum number of results to display. + # If 0, tofi will draw as many results as it can fit in the window. + #num-results = 5 + + # Spacing between results in pixels. Can be negative. + result-spacing = 15 + + # List results horizontally. + horizontal = false + + # Minimum width of input in horizontal mode. + min-input-width = 0 + +# +### Window theming +# + # Width and height of the window. Can be pixels or a percentage. + width = 100% + height = 100% + + border-width = 0 + border-color = #ffbb00ab + + # Padding between borders and text. Can be pixels or a percentage. + padding-top = 35% + padding-left = 35% + + # Window background color + background-color = #191A1CF0 + + # Width of the border outlines in pixels. + outline-width = 0 + + # Border outline color + outline-color = #080800 + + # Radius of window corners in pixels. + corner-radius = 0 + + # Whether to scale the window by the output's scale factor. + scale = true + +# +### Window positioning +# + # The name of the output to appear on. An empty string will use the + # default output chosen by the compositor. + output = "" + + # Location on screen to anchor the window to. + # + # Supported values: top-left, top, top-right, right, bottom-right, + # bottom, bottom-left, left, center. + anchor = center + + # Set the size of the exclusive zone. + # + # A value of -1 means ignore exclusive zones completely. + # A value of 0 will move tofi out of the way of other windows' zones. + # A value greater than 0 will set that much space as an exclusive zone. + # + # Values greater than 0 are only meaningful when tofi is anchored to a + # single edge. + exclusive-zone = -1 + + +# +### Behaviour +# + # Hide the mouse cursor. + hide-cursor = true + + # Show a text cursor in the input field. + text-cursor = false + + # Sort results by number of usages in run and drun modes. + history = false + + require-match = true + + auto-accept-single = false + + # If true, typed input will be hidden, and what is displayed (if + # anything) is determined by the hidden-character option. + hide-input = true + + # Replace displayed input characters with a character. If the empty + # string is given, input will be completely hidden. + # This option only has an effect when hide-input is set to true. + hidden-character = "" + +# +### Inclusion +# + # Configs can be split between multiple files, and then included + # within each other. + # include = /path/to/config diff --git a/.config/waybar/config b/.config/waybar/config index 360d4a0..f433f7c 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -1,138 +1,162 @@ { - "layer": "bottom", // Waybar at top layer - // "position": "bottom", // Waybar position (top|bottom|left|right) - //"height": 30, // Waybar height (to be removed for auto height) - "height": 25, - "mode": "dock", // (dock|hide|invisible|overlay) - "exclusive": "false", - // "width": 1280, // Waybar width - "spacing": 4, // Gaps between modules (4px) - // Choose the order of the modules - "modules-left": ["hyprland/workspaces"], - "modules-center": ["clock"], - "modules-right": ["pulseaudio", "temperature", "cpu", "memory", "battery", "backlight", "hyprland/language", "tray"], - "hyprland/workspaces": { - "disable-scroll": false, - "all-outputs": false, - "warp-on-scroll": true, - "format": "{name}", - "show-special": true, - "persistent-workspaces": { - "*": 5, - } - }, - "hyprland/window": { - "format": "{title}" - }, - "hyprland/language": { - "format-en": "UK", - "format-de": "DE", - "on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next" - }, - "keyboard-state": { - // "numlock": true, - "capslock": true, - "format": "{name} {icon}", - "format-icons": { - "locked": "", - "unlocked": "" - } - }, - "wlr/taskbar": { - "format": "{icon}", - "icon-size": 14, - "on-click": "activate", - }, - "tray": { - // "icon-size": 21, - "spacing": 10 - }, - "clock": { - "timezones": ["Europe/Berlin", "Asia/Hong_Kong"], - "tooltip-format": "{tz_list}\n{:%Y %B}\n{calendar}", - "format": "{:%H:%M}", - "format-alt": "{:%Y-%m-%d}", - "actions":{ - "on-scroll-up": "tz_up", - "on-scroll-down": "tz_down", + "layer": "bottom", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + //"height": 30, // Waybar height (to be removed for auto height) + "height": 25, + "mode": "dock", // (dock|hide|invisible|overlay) + "exclusive": "false", + // "width": 1280, // Waybar width + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["hyprland/workspaces"], + "modules-center": ["clock"], + "modules-right": ["pulseaudio", "temperature", "cpu", "memory", "battery", "backlight", "hyprland/language", "idle_inhibitor", "tray"], + "hyprland/workspaces": { + "disable-scroll": false, + "all-outputs": false, + "warp-on-scroll": true, + "format": "{name}", + "show-special": true, + "persistent-workspaces": { + "*": 5, + } }, - "smooth-scrolling-threshold": 6.0, - }, - "cpu": { - "format": "{usage}% ", - "tooltip": false - }, - "memory": { - "format": "{used}GB", - "format-alt": "{}% " - }, - "temperature": { - // "thermal-zone": 2, - // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", - "critical-threshold": 80, - // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C", // {icon}", - "format-icons": ["", "", ""] - }, - "backlight": { - "device": "intel_backlight", - "format": "{percent}%",// {icon}", - "format-icons": ["", "", "", "", "", "", "", "", ""] - }, - "battery": { - "states": { - "good": 95, - "warning": 30, - "critical": 15 - }, - "format": "{time} {icon}", - "format-alt": "{capacity}% {icon}", - "format-charging": "{capacity}% ", - "format-plugged": "{capacity}% ", - // "format-good": "", // An empty format will hide the module - // "format-full": "", - "format-icons": ["", "", "", "", ""], - }, - "network": { - // "interface": "wlp2*", // (Optional) To force the use of this interface - // "format-wifi": "{essid} ({signalStrength}%) ", - // "format-ethernet": "{ipaddr}/{cidr} ", - // "tooltip-format": "{ifname} via {gwaddr} ", - // "format-linked": "{ifname} (No IP) ", - // "format-disconnected": "Disconnected ⚠", - // "format-alt": "{ifname}: {ipaddr}/{cidr}" - }, - "pulseaudio": { - "scroll-step": 0.25, // %, can be a float - "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": "{icon} {format_source}", - "format-muted": "{format_source}", - "format-source": "{volume}% ", - "format-source-muted": "", - "format-icons": { - "headphone": "", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["", "", ""] - }, - "on-click": "pavucontrol-qt -t 3", - "on-click-middle": "amixer set Master Playback Switch toggle --quiet", - }, - "custom/media": { - "format": "{icon} {}", - "return-type": "json", - "max-length": 40, - "format-icons": { - "spotify": "", - "default": "🎜" - }, - "escape": true, - "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder - // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name - } + "hyprland/window": { + "format": "{title}" + }, + "hyprland/language": { + "format-en": "UK", + "format-de": "DE", + "format-eu": "EU", + "on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next" + }, + "keyboard-state": { + // "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "wlr/taskbar": { + "format": "{icon}", + "icon-size": 14, + "on-click": "activate", + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + "timezones": ["Europe/Berlin", "Asia/Hong_Kong"], + "tooltip-format": "{tz_list}\n{:%Y %B}\n{calendar}", + "format": "{:%H:%M | %a, %d %b}", + "format-alt": "{:%Y-%m-%d}", + "locale": "en_GB.UTF-8", + "calendar": { + "mode" : "month", + "mode-mon-col" : 3, + "weeks-pos" : "left", + "on-scroll" : 1, + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}", + }, + }, + "actions": { + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down", + "on-click-right": "tz_up", + "on-click-middle": "mode", + }, + "smooth-scrolling-threshold": 6.0, + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{used}GB", + "format-alt": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C", // {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + "device": "intel_backlight", + "format": "{percent}%",// {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{time} {icon}", + "format-alt": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""], + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + // "format-wifi": "{essid} ({signalStrength}%) ", + // "format-ethernet": "{ipaddr}/{cidr} ", + // "tooltip-format": "{ifname} via {gwaddr} ", + // "format-linked": "{ifname} (No IP) ", + // "format-disconnected": "Disconnected ⚠", + // "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + "scroll-step": 0.25, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": "{icon} {format_source}", + "format-muted": "{format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol-qt -t 3", + "on-click-middle": "amixer set Master Playback Switch toggle --quiet", + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + }, + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } } diff --git a/.config/waybar/style.css b/.config/waybar/style.css index 4d25032..60517c9 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -1,29 +1,29 @@ * { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: "Hurmit Nerd Font", FontAwesome, Roboto, Helvetica, Arial, - sans-serif; - font-size: 1.1rem; - margin: 0; + /* `otf-font-awesome` is required to be installed for icons */ + font-family: + "Hurmit Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 1.1rem; + margin: 0; } window#waybar { - background-color: rgba(43, 48, 59, 0); - color: rgb(204, 204, 204); - transition-property: background-color; - transition-duration: 0.5s; + background-color: rgba(43, 48, 59, 0); + color: rgb(204, 204, 204); + transition-property: background-color; + transition-duration: 0.5s; } window#waybar.hidden { - opacity: 0; + opacity: 0; } .modules-left, .modules-center, .modules-right { - /*background-color: black; rgba(255, 255, 255, 1);*/ - border: 1px solid; - border-radius: 8px; - padding: 0px; + /*background-color: black; rgba(255, 255, 255, 1);*/ + border-top: 1px solid; + border-radius: 0px; + padding: 0px; } /* @@ -36,25 +36,17 @@ window#waybar.solo { */ button { - /* Use box-shadow instead of border so the text isn't offset */ - /* box-shadow: inset 0 -3px transparent; */ - /* Avoid rounded borders under each button name */ - border: 0px; - border-radius: 0px; + /* Use box-shadow instead of border so the text isn't offset */ + /* box-shadow: inset 0 -3px transparent; */ + /* Avoid rounded borders under each button name */ + border: 0px; + border-radius: 0px; } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ button:hover { - background: inherit; - box-shadow: inset 0 3px #ffffff; -} - -#workspaces button { - padding: 2px 5px 0px 5px; - border: 1px solid transparent; /*avoid jumping by always having a border*/ - background-color: transparent; - color: #ffffff; - border-radius: 8px; + background: inherit; + box-shadow: inset 0 3px #ffffff; } #workspaces button, @@ -63,27 +55,33 @@ button:hover { #workspaces button.special, #workspaces button.special.empty, #workspaces button.special.active { - background-color: transparent; - transition: linear 0.1s; + background-color: rgba(0, 0, 0, 1); + /* border-radius: 8px; */ + border: 1px solid transparent; /*avoid jumping by always having a border*/ + color: #ffffff; + padding: 0px 5px 2px 5px; + transition: linear 0.1s; } #workspaces button.urgent, #workspaces button.special.urgent { - background-color: rgba(250, 17, 55, 0.6); + background-color: rgba(250, 17, 55, 0.6); } #workspaces button.empty { - color: rgba(255, 255, 255, 0.4); + color: rgba(255, 255, 255, 0.4); } #workspaces button:hover { - border: 1px solid rgba(40, 220, 255, 0.8); - box-shadow: inset 0 0 0 0 transparent; - padding: 0px 5px 2px 5px; + border: 1px solid rgba(40, 220, 255, 0.8); + box-shadow: inset 0 0 0 0 transparent; + padding: 1px 5px 1px 5px; } +#workspaces button.special.active, #workspaces button.active { - color: rgba(40, 240, 255, 0.9); - padding: 1px 5px 1px 5px; + background-color: rgba(0, 0, 0, 1); + color: rgba(40, 240, 255, 0.9); + padding: 2px 5px 0px 5px; } /*#workspaces button.active { @@ -92,15 +90,15 @@ button:hover { }*/ #workspaces { - background-color: rgba(255, 255, 255, 0.1); - /*border: 1px solid;*/ - border-radius: 8px; - padding: 1px; + background-color: rgba(0, 0, 0, 0.3); + /*border: 1px solid;*/ + border-radius: 8px; + padding: 1px; } #mode { - background-color: #64727d; - /*border-bottom: 3px solid #ffffff;*/ + background-color: #64727d; + /*border-bottom: 3px solid #ffffff;*/ } #clock, @@ -120,19 +118,19 @@ button:hover { #scratchpad, #language, #mpd { - padding: 0 8px; - color: #909090; - border-radius: 0px; - border-top: 1rem; - border: solid; - margin: 0px; - border-bottom: 0rem; + padding: 0 6px; + color: #909090; + border-radius: 0px; + border-top: 1rem; + border: solid; + margin: 0px; + border-bottom: 0rem; } #backlight, #battery, #clock, #tray { - color: #eeeeee; + color: #eeeeee; } /*#window, @@ -142,171 +140,160 @@ button:hover { /* If workspaces is the leftmost module, omit left margin */ .modules-left > widget:first-child > #workspaces { - margin-left: 0; + margin-left: 0; } /* If workspaces is the rightmost module, omit right margin */ .modules-right > widget:last-child > #workspaces { - margin-right: 0; + margin-right: 0; } #clock { - font-weight: bold; - font-size: 1.2rem; - background-color: rgba(255, 255, 255, 0.1); - border-radius: 8px; - margin: 0; + font-weight: bold; + font-size: 1.2rem; + background-color: rgba(255, 255, 255, 0.1); + border-radius: 0px; + padding: 0; + margin: 0; } #battery.charging, #battery.plugged { - background-color: #26a65b; + background-color: #26a65b; } @keyframes blink { - to { - background-color: #ffffff; - } + to { + background-color: #ffffff; + } } #battery.critical:not(.charging) { - background-color: #f53c3c; - color: #ffffff; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; } label:focus { - background-color: #000000; + background-color: #000000; } #cpu, #battery, #temperature, #memory { - border-top: solid 2px #1de8d1; - margin: 0; + border-top: solid 2px #1de8d1; + margin: 0; } /*#memory { border-top: solid 2px #9b59b6; }*/ -#disk { - background-color: #964b00; -} - #backlight { - border-top: solid 2px #d1f2f2; -} - -#network { - border-top: solid 2px #2980b9; -} - -#network.disconnected { - border-top: 2px #f53c3c; + border-top: solid 2px #d1f2f2; } #pulseaudio { - border-top: 2px #f1c40f; - color: #1acbc4; + border-top: 2px #f1c40f; + color: #1acbc4; } #pulseaudio.muted { - border-top: 2px #90b1b1; - color: #01534c; + border-top: 2px #90b1b1; + color: #01534c; } #wireplumber { - color: #000000; + color: #000000; } #custom-media { - /*background-color: #66cc99;*/ - color: #2a5c45; - min-width: 100px; + /*background-color: #66cc99;*/ + color: #2a5c45; + min-width: 100px; } #custom-media.custom-spotify { - /*background-color: #66cc99;*/ + /*background-color: #66cc99;*/ } #custom-media.custom-vlc { - /*background-color: #ffa000;*/ + /*background-color: #ffa000;*/ } #temperature.critical { - background-color: #eb4d4b; + background-color: #eb4d4b; } #tray { - border-top: 2px #2980b9; + border-top: 2px #2980b9; } #tray > .passive { - -gtk-icon-effect: dim; + -gtk-icon-effect: dim; } #tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; + -gtk-icon-effect: highlight; + background-color: #eb4d4b; } #idle_inhibitor { - background-color: #2d3436; + background-color: #2d3436; } -#idle_inhibitor.activated { - background-color: #ecf0f1; - color: #2d3436; -} +/* #idle_inhibitor.activated { */ +/* background-color: #ecf0f1; */ +/* color: #2d3436; */ +/* } */ #mpd { - background-color: #66cc99; - color: #2a5c45; + background-color: #66cc99; + color: #2a5c45; } #mpd.disconnected { - background-color: #f53c3c; + background-color: #f53c3c; } #mpd.stopped { - background-color: #90b1b1; + background-color: #90b1b1; } #mpd.paused { - background-color: #51a37a; + background-color: #51a37a; } #language { - border-top: 2px #df73cf; - color: #909090; - padding: 0 5px; - min-width: 16px; + border-top: 2px #df73cf; + color: #909090; + padding: 0 5px; + min-width: 16px; } #keyboard-state { - border-top: 2px #97e1ad; - padding: 0 0px; - min-width: 16px; + border-top: 2px #97e1ad; + padding: 0 0px; + min-width: 16px; } #keyboard-state > label { - padding: 0 5px; + padding: 0 5px; } #keyboard-state > label.locked { - background: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.2); } #scratchpad { - background: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.2); } #scratchpad.empty { - background-color: transparent; + background-color: transparent; } diff --git a/.config/yazi/keymap.toml b/.config/yazi/keymap.toml new file mode 100644 index 0000000..9c0ce02 --- /dev/null +++ b/.config/yazi/keymap.toml @@ -0,0 +1,8 @@ +[[mgr.prepend_keymap]] +on = "!" +run = 'shell "$SHELL" --block' +desc = "Open shell here" + +[[mgr.prepend_keymap]] +on = "q" +run = "plugin confirm-quit" diff --git a/.config/yazi/plugins/confirm-quit.yazi/main.lua b/.config/yazi/plugins/confirm-quit.yazi/main.lua new file mode 100644 index 0000000..09788ee --- /dev/null +++ b/.config/yazi/plugins/confirm-quit.yazi/main.lua @@ -0,0 +1,20 @@ +local count = ya.sync(function() + return #cx.tabs +end) + +local function entry() + if count() < 2 then + return ya.mgr_emit("quit", {}) + end + + local yes = ya.confirm({ + pos = { "center", w = 60, h = 9 }, + title = "Quit?", + content = ui.Text("\nMultiple tabs are open.\n\nAre you sure you want to quit?"):wrap(ui.Text.WRAP), + }) + if yes then + ya.mgr_emit("quit", {}) + end +end + +return { entry = entry } diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml new file mode 100644 index 0000000..a30f16c --- /dev/null +++ b/.config/yazi/yazi.toml @@ -0,0 +1,19 @@ +[mgr] +ratio = [ 1,4,3 ] +sort_dir_first = true +linemode = "mtime" +show_symlink = true +scrolloff = 2 +wrap = true +tab_size = 2 +image_delay = 100 +image_filter = "triangle" + +[[confirm.quit]] +enabled = true +origin = "center" + +[confirm.trash] + +[confirm.delete] +[confirm.overwrite] diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6664713 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,62 @@ +# EditorConfig is awesome: https://editorconfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +indent_style = tab +indent_size = 4 +trim_trailing_whitespace = true + +# Matches multiple files with brace expansion notation +# Set default charset +[*.{js,py}] +charset = utf-8 + +[*.{js,ts}] +indent_style = space +indent_size = 4 + +[*.{html,css,scss,sass}] +indent_style = tab +indent_size = 2 + +[*.md] +indent_style = tab +indent_size = 4 + +[*.py] +indent_style = space +indent_size = 4 + +[*.{c, cpp}] +indent_style = tab +indent_size = 8 + +[*.{r, R}] +indent_style = tab +indent_size = 2 + +[*.rs] +indent_style = tab + +[*.{sql}] +indent_style = tab +indent_size = 4 + +# Tab indentation (no size specified) +[Makefile] +indent_style = tab + +# Indentation override for all JS under lib directory +[lib/**.js] +indent_style = space +indent_size = 2 + +# Matches the exact files either package.json or .travis.yml +[{package.json,.travis.yml}] +indent_style = space +indent_size = 2 diff --git a/.githooks-repo/README.md b/.githooks-repo/README.md new file mode 100644 index 0000000..01882bf --- /dev/null +++ b/.githooks-repo/README.md @@ -0,0 +1,3 @@ +# What is this directory? +This folder is just a personal collection of used git hooks so that I can +collect them in one place and sync between devices, as well as back them up. diff --git a/.githooks-repo/pre-commit-nestjs b/.githooks-repo/pre-commit-nestjs new file mode 100644 index 0000000..6e12517 --- /dev/null +++ b/.githooks-repo/pre-commit-nestjs @@ -0,0 +1,3 @@ +prettier --check "src/**/*.ts" "test/**/*.ts" "package.json" "package-lock.json" +eslint "{src,apps,libs,test}/**/*.ts" +pnpm run test diff --git a/.gitignore b/.gitignore index 9900197..3d5888d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.jpeg *.webp *.bak +*.so .config/tmux/plugins *sync-conflict* history.txt diff --git a/keyd.conf b/keyd.conf new file mode 100644 index 0000000..e7fb519 --- /dev/null +++ b/keyd.conf @@ -0,0 +1,12 @@ +# put in /etc/keyd/default.conf +[ids] + +* + +[main] + +# Maps capslock to escape when pressed and control when held. +capslock = overload(control, esc) + +# Remaps the escape key to capslock +#esc = capslock