diff options
135 files changed, 1531 insertions, 1042 deletions
diff --git a/.gitignore b/.gitignore index 01894e8..d24a0c3 100644..100755 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .zcompdump *.lock +urls diff --git a/README.md b/README.md index 3e9230c..3e9230c 100644..100755 --- a/README.md +++ b/README.md diff --git a/aerc/.config/aerc/Development.qmap b/aerc/.config/aerc/Development.qmap new file mode 100755 index 0000000..60418a0 --- /dev/null +++ b/aerc/.config/aerc/Development.qmap @@ -0,0 +1 @@ +INBOX = tag:inbox and not tag:archived diff --git a/aerc/.config/aerc/Job.qmap b/aerc/.config/aerc/Job.qmap new file mode 100755 index 0000000..60418a0 --- /dev/null +++ b/aerc/.config/aerc/Job.qmap @@ -0,0 +1 @@ +INBOX = tag:inbox and not tag:archived diff --git a/aerc/.config/aerc/Personal.qmap b/aerc/.config/aerc/Personal.qmap index b9094ee..16cd958 100644..100755 --- a/aerc/.config/aerc/Personal.qmap +++ b/aerc/.config/aerc/Personal.qmap @@ -1,5 +1,12 @@ +_INBOX = tag:inbox and not tag:maillist and not tag:trash and not tag:sent and not tag:spam and not tag:draft +_Trash = tag:trash +_Sent = tag:sent +_Spam = tag:spam +_Drafts = tag:draft + info-gnu = tag:info-gnu info-guix = tag:info-guix +help-guix = tag:help-guix sg7 = tag:sg7 sg13 = tag:sg13 sg14 = tag:sg14 @@ -9,3 +16,7 @@ std-discussion = tag:std-discussion std-proposals = tag:std-proposals notmuch = tag:notmuch rjarry-aerc-discuss = tag:rjarry-aerc-discuss +pgsql-general = tag:pgsql-general +boost = tag:boost +boost-users = tag:boost-users +zsh-users = tag:zsh-users diff --git a/aerc/.config/aerc/TestMail.qmap b/aerc/.config/aerc/TestMail.qmap new file mode 100755 index 0000000..60418a0 --- /dev/null +++ b/aerc/.config/aerc/TestMail.qmap @@ -0,0 +1 @@ +INBOX = tag:inbox and not tag:archived diff --git a/aerc/.config/aerc/accounts.conf b/aerc/.config/aerc/accounts.conf index fdec2f1..d00167d 100644 --- a/aerc/.config/aerc/accounts.conf +++ b/aerc/.config/aerc/accounts.conf @@ -10,6 +10,7 @@ maildir-store = ~/Mail/personal query-map = ~/.config/aerc/Personal.qmap outgoing-cred-cmd = pass Email/personal@rozanov.info check-mail-cmd = NOTMUCH_PROFILE=personal notmuch new +multi-file-strategy = act-dir [Development] source = notmuch://~/Mail/dev @@ -31,6 +32,16 @@ maildir-store = ~/Mail/job outgoing-cred-cmd = pass Email/job@rozanov.info check-mail-cmd = NOTMUCH_PROFILE=job notmuch new +[Accounts] +source = notmuch://~/Mail/account +outgoing = smtp://account@rozanov.info@mail.rozanov.info:587 +default = INBOX +from = Daniil Rozanov <account@rozanov.info> +maildir-store = ~/Mail/account +# query-map = ~/.config/aerc/Account.qmap +outgoing-cred-cmd = pass Email/account@rozanov.info +check-mail-cmd = NOTMUCH_PROFILE=account notmuch new + [TestMail] source = notmuch://~/Mail/testmail outgoing = smtp://testmail@rozanov.info@mail.rozanov.info:587 diff --git a/aerc/.config/aerc/aerc.conf b/aerc/.config/aerc/aerc.conf index 0cd144d..deb8cf7 100644..100755 --- a/aerc/.config/aerc/aerc.conf +++ b/aerc/.config/aerc/aerc.conf @@ -604,7 +604,7 @@ pager=less -Rc # none of their specified headers are present in the message. # # Default: From|To,Cc|Bcc,Date,Subject -#header-layout=From|To,Cc|Bcc,Date,Subject +header-layout=From,To,Cc,Bcc,Date,Subject # Whether to always show the mimetype of an email, even when it is just a single part # @@ -674,7 +674,7 @@ pager=less -Rc # ignored. # # This parameter can also be set per account in accounts.conf. -#address-book-cmd= +address-book-cmd=abook --mutt-query '%s' # Specifies the command to be used to select attachments. Any occurrence of # '%s' in the file-picker-cmd will be replaced with the argument <arg> diff --git a/aerc/.config/aerc/binds.conf b/aerc/.config/aerc/binds.conf index cebb942..58397e9 100644..100755 --- a/aerc/.config/aerc/binds.conf +++ b/aerc/.config/aerc/binds.conf @@ -15,6 +15,7 @@ [messages] q = :prompt 'Quit?' quit<Enter> +md = :modify-labels +trash<Enter> <C-r> = :check-mail<Enter> j = :next<Enter> @@ -63,7 +64,7 @@ a = :archive flat<Enter> A = :unmark -a<Enter>:mark -T<Enter>:archive flat<Enter> C = :compose<Enter> -m = :compose<Enter> +# m = :compose<Enter> b = :bounce<space> diff --git a/aerc/.config/aerc/stylesets/gruvbox b/aerc/.config/aerc/stylesets/gruvbox index 2c15329..2c15329 100644..100755 --- a/aerc/.config/aerc/stylesets/gruvbox +++ b/aerc/.config/aerc/stylesets/gruvbox diff --git a/aerc/.config/aerc/stylesets/gruvbox_material_dark_medium b/aerc/.config/aerc/stylesets/gruvbox_material_dark_medium index b115337..b115337 100644..100755 --- a/aerc/.config/aerc/stylesets/gruvbox_material_dark_medium +++ b/aerc/.config/aerc/stylesets/gruvbox_material_dark_medium diff --git a/alacritty/.config/alacritty/alacritty.toml b/alacritty/.config/alacritty/alacritty.toml deleted file mode 100644 index 8cc9953..0000000 --- a/alacritty/.config/alacritty/alacritty.toml +++ /dev/null @@ -1,19 +0,0 @@ -[env] -TERM = "xterm-256color" - -[font] -size = 11.0 - -[font.normal] -family = "CommitMono Nerd Font Mono" -style = "Regular" - -[font.bold] -style = "Bold" - -[font.italic] -style = "Regular" # Italic - -[[keyboard.bindings]] -action = "ToggleFullscreen" -key = "F11" diff --git a/clang-format/.clang-format b/clang-format/.clang-format index 4a88ce1..4a88ce1 100644..100755 --- a/clang-format/.clang-format +++ b/clang-format/.clang-format diff --git a/editorconfig/.editorconfig b/editorconfig/.editorconfig index 6a637a0..9c3d9bc 100644..100755 --- a/editorconfig/.editorconfig +++ b/editorconfig/.editorconfig @@ -16,3 +16,4 @@ indent_size = 4 # Tab indentation (no size specified) [Makefile] indent_style = tab +indent_size = 4 diff --git a/ghostty/.config/ghostty/config b/ghostty/.config/ghostty/config new file mode 100755 index 0000000..813b1eb --- /dev/null +++ b/ghostty/.config/ghostty/config @@ -0,0 +1,21 @@ +keybind = page_up=scroll_page_up +keybind = page_down=scroll_page_down + +keybind = ctrl+shift+h=goto_split:left +keybind = ctrl+shift+j=goto_split:down +keybind = ctrl+shift+k=goto_split:up +keybind = ctrl+shift+l=goto_split:right +keybind = ctrl+shift+p=previous_tab +keybind = ctrl+shift+n=next_tab + +keybind = ctrl+shift+alt+h=resize_split:left,15 +keybind = ctrl+shift+alt+j=resize_split:down,15 +keybind = ctrl+shift+alt+k=resize_split:up,15 +keybind = ctrl+shift+alt+l=resize_split:right,15 +keybind = ctrl+shift+alt+e=equalize_splits + +keybind = f11=toggle_fullscreen +keybind = ctrl+shift+q=close_window +keybind = ctrl+shift+d=close_tab + +font-size = 11.5 diff --git a/git/.gitconfig b/git/.gitconfig index bd628ff..bd628ff 100644..100755 --- a/git/.gitconfig +++ b/git/.gitconfig diff --git a/gnupg/.gnupg/gpg-agent.conf b/gnupg/.gnupg/gpg-agent.conf index 682af4e..682af4e 100644..100755 --- a/gnupg/.gnupg/gpg-agent.conf +++ b/gnupg/.gnupg/gpg-agent.conf diff --git a/gnupg/.gnupg/gpg.conf b/gnupg/.gnupg/gpg.conf index ffa0f43..ffa0f43 100644..100755 --- a/gnupg/.gnupg/gpg.conf +++ b/gnupg/.gnupg/gpg.conf diff --git a/hypr/.config/hypr/hypridle.conf b/hypr/.config/hypr/hypridle.conf new file mode 100755 index 0000000..dd40f90 --- /dev/null +++ b/hypr/.config/hypr/hypridle.conf @@ -0,0 +1,34 @@ +general { + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + before_sleep_cmd = loginctl lock-session # lock before suspend. + after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. +} + +listener { + timeout = 300 # 5min. + on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. + on-resume = brightnessctl -r # monitor backlight restore. +} + +# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. +listener { + timeout = 300 # 5min. + 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 = 600 # 10min + on-timeout = loginctl lock-session # lock screen when timeout has passed +} + +listener { + timeout = 610 # 5.5min + on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed + on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired. +} + +listener { + timeout = 1800 # 30min + on-timeout = systemctl suspend # suspend pc +} diff --git a/hypr/.config/hypr/hyprland.conf b/hypr/.config/hypr/hyprland.conf new file mode 100755 index 0000000..365759f --- /dev/null +++ b/hypr/.config/hypr/hyprland.conf @@ -0,0 +1,288 @@ +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=eDP-1, 3024x1965@60, auto, auto +monitor=HDMI-A-1, 3840x2560@49.98, auto, auto + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty -d $(hyprcwd) +$browser = firefox +$fileManager = thunar +$menu = rofi -show drun --show-icons + + +################# +### AUTOSTART ### +################# + +exec-once = hyprlock +exec-once = hypridle +exec-once = waybar +exec-once = dunst +# exec-once = hyprpaper +exec-once = swaybg -i ~/wallpapers/current + + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +env = XCURSOR_SIZE,23 +env = HYPRCURSOR_SIZE,23 +# Optionally, customize slurp's appearance +env = SLURP_ARGS, -d -b -B F050F022 -b 10101022 -c ff00ff + +# Can fix high cpu loads on some machines +env = GRIMBLAST_HIDE_CURSOR, 0 + +##################### +### LOOK AND FEEL ### +##################### + +general { + gaps_in = 4 + gaps_out = 4, 4, 4, 4 + + border_size = 1 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +decoration { + rounding = 10 + + # Does not exists in current version + # rounding_power = 2 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 3 + + vibrancy = 0.1696 + noise = 0.05 +contrast = 1 +new_optimizations = true + + } +} + +animations { + enabled = yes + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade +} + +# "Smart gaps" / "No gaps when only" +workspace = w[tv1], gapsout:0, gapsin:0 +workspace = f[1], gapsout:0, gapsin:0 +windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] +windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] +windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] +windowrulev2 = rounding 0, floating:0, onworkspace:f[1] + + +layerrule = blur,waybar +layerrule = blur,rofi +layerrule = blur,notifications +layerrule = ignorezero,notifications + +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +master { + new_status = master +} + +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + +############# +### INPUT ### +############# + +input { + kb_layout = us, ru + kb_options = grp:alt_shift_toggle + # kb_variant = + # kb_model = + # kb_rules = + + follow_mouse = 1 + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } +} + +device { + name = apple-spi-keyboard + # All supported options + # less /usr/share/X11/xkb/rules/base.lst + kb_options = caps:escape, +} + +gestures { + workspace_swipe = true +} + + +################### +### KEYBINDINGS ### +################### + +$mainMod = SUPER # Sets "Windows" key as main modifier + +bind = $mainMod, T, exec, $terminal +bind = $mainMod, B, exec, $browser +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, SPACE, exec, $menu +bind = $mainMod, Q, killactive, +bind = $mainMod, X, exit, +bind = $mainMod, F, fullscreen, 0 +bind = $mainMod, O, togglesplit, + + +bind = $mainMod, p, exec, grimblast copysave active +bind = $mainMod SHIFT, p, exec, grimblast copysave area +bind = $mainMod ALT, p, exec, grimblast copysave output +bind = $mainMod CTRL, p, exec, grimblast copysave screen + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 5%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 5%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +binde = , XF86LaunchA, exec, brightnessctl --device='kbd_backlight' set 5%- +binde = , XF86Search, exec, brightnessctl --device='kbd_backlight' set 5%+ + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/hypr/.config/hypr/hyprpaper.conf b/hypr/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..86f2c26 --- /dev/null +++ b/hypr/.config/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +preload = ~/wallpapers/current +wallpaper = , ~/wallpapers/current diff --git a/isync/.config/isyncrc b/isync/.config/isyncrc index d382511..65166a5 100644..100755 --- a/isync/.config/isyncrc +++ b/isync/.config/isyncrc @@ -76,3 +76,22 @@ Channel testmail Far :testmail-remote: Near :testmail-local: Patterns * + + +IMAPStore account-remote +Host mail.rozanov.info +Port 993 +User account@rozanov.info +PassCmd "pass Email/account@rozanov.info" +TLSType IMAPS +CertificateFile /etc/ssl/certs/ca-certificates.crt + +MaildirStore account-local +Path ~/Mail/account/ +Inbox ~/Mail/account/INBOX +SubFolders Verbatim + +Channel account +Far :account-remote: +Near :account-local: +Patterns * diff --git a/mako/.config/mako/config b/mako/.config/mako/config new file mode 100755 index 0000000..faa4442 --- /dev/null +++ b/mako/.config/mako/config @@ -0,0 +1,21 @@ +background-color=#30303090 +width=300 +height=110 +border-size=1 +border-color=#88c0d090 +border-radius=5 +default-timeout=4000 +ignore-timeout=1 +font=monospace 14 +format=<b>%s</b>\n%b + +[urgency=low] +border-color=#cccccc + +[urgency=normal] +border-color=#60a1ee + +[urgency=critical] +border-color=#bf616aA0 +default-timeout=0 + diff --git a/mpv/.config/mpv/mpv.conf b/mpv/.config/mpv/mpv.conf new file mode 100644 index 0000000..5cdb892 --- /dev/null +++ b/mpv/.config/mpv/mpv.conf @@ -0,0 +1,2 @@ +gpu-context=wayland +hwdec diff --git a/newsboat/.config/newsboat/config b/newsboat/.config/newsboat/config index 8aa6490..f45e6b1 100644..100755 --- a/newsboat/.config/newsboat/config +++ b/newsboat/.config/newsboat/config @@ -1,7 +1,6 @@ -#show-read-feeds no auto-reload no -browser "open %u >/dev/null 2>&1" +pager "less -R" external-url-viewer "urlscan -dc -r 'linkhandler {}'" bind-key j down @@ -30,17 +29,9 @@ color listfocus_unread yellow default bold color info red black bold color article white default bold -browser linkhandler +browser firefox macro , open-in-browser -macro t set browser "qndl" ; open-in-browser ; set browser linkhandler -macro a set browser "tsp yt-dlp --embed-metadata -xic -f bestaudio/best --restrict-filenames" ; open-in-browser ; set browser linkhandler -macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler -macro w set browser "lynx" ; open-in-browser ; set browser linkhandler -macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler -macro c set browser "echo %u | xclip -r -sel c" ; open-in-browser ; set browser linkhandler -macro C set browser "youtube-viewer --comments=%u" ; open-in-browser ; set browser linkhandler -macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler -macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler +macro v set browser "mpv %u &"; open-in-browser-noninteractively; set browser firefox; highlight all "---.*---" yellow highlight feedlist ".*(0/0))" black diff --git a/newsboat/.config/newsboat/urls b/newsboat/.config/newsboat/urls deleted file mode 100644 index 2ca9352..0000000 --- a/newsboat/.config/newsboat/urls +++ /dev/null @@ -1,24 +0,0 @@ ----People--- -https://herbsutter.com/feed blog -https://lukesmith.xyz/index.xml blog - ----C++_organizations--- -https://cppcon.org/rss c++ -https://isocpp.org/blog/rss/category/news c++ news -https://isocpp.org/blog/rss/category/product-news c++ news -https://isocpp.org/blog/rss/category/articles-books c++ -https://isocpp.org/blog/rss/category/video-on-demand c++ -https://isocpp.org/blog/rss/category/events c++ -https://isocpp.org/blog/rss/category/training c++ -https://isocpp.org/blog/rss/category/standardization c++ - ----Systems--- -https://guix.gnu.org/feeds/blog.atom - ----Projects--- -https://neovim.io/news.xml - ----YouTube--- -https://www.youtube.com/feeds/videos.xml?channel_id=UCvmBEbr9NZt7UEh9doI7n_A - - diff --git a/notmuch/.config/notmuch/account/config b/notmuch/.config/notmuch/account/config new file mode 100755 index 0000000..dc8d1f7 --- /dev/null +++ b/notmuch/.config/notmuch/account/config @@ -0,0 +1,16 @@ +# vim: filetype=dosini + +[database] +path=/home/chell/Mail/account +[user] +name=Daniil Rozanov +primary_email=account@rozanov.info +[new] +tags=inbox;unread +ignore=.mbsyncstate;.uidvalidity +[search] +exclude_tags=deleted;spam; +[maildir] +synchronize_flags=true +[crypto] +gpg_path=gpg diff --git a/notmuch/.config/notmuch/default/config b/notmuch/.config/notmuch/default/config index a0579a4..a0579a4 100644..100755 --- a/notmuch/.config/notmuch/default/config +++ b/notmuch/.config/notmuch/default/config diff --git a/notmuch/.config/notmuch/dev/config b/notmuch/.config/notmuch/dev/config index 0876333..0876333 100644..100755 --- a/notmuch/.config/notmuch/dev/config +++ b/notmuch/.config/notmuch/dev/config diff --git a/notmuch/.config/notmuch/dev/hooks b/notmuch/.config/notmuch/dev/hooks deleted file mode 120000 index f631275..0000000 --- a/notmuch/.config/notmuch/dev/hooks +++ /dev/null @@ -1 +0,0 @@ -../hooks
\ No newline at end of file diff --git a/notmuch/.config/notmuch/hooks/post-new b/notmuch/.config/notmuch/hooks/post-new index 992e0b4..1cda0d8 100755 --- a/notmuch/.config/notmuch/hooks/post-new +++ b/notmuch/.config/notmuch/hooks/post-new @@ -1,16 +1,22 @@ #!/bin/sh -notmuch tag +info-gnu -- cc:info-gnu@gnu.org or to:info-gnu@gnu.org -notmuch tag +info-guix -- cc:info-guix@gnu.org or to:info-guix@gnu.org -notmuch tag +sg7 -- cc:sg7@lists.isocpp.org or to:sg7@lists.isocpp.org -notmuch tag +sg13 -- cc:sg13@lists.isocpp.org or to:sg13@lists.isocpp.org -notmuch tag +sg14 -- cc:sg14@lists.isocpp.org or to:sg14@lists.isocpp.org -notmuch tag +sg15 -- cc:sg15@lists.isocpp.org or to:sg15@lists.isocpp.org -notmuch tag +sg16 -- cc:sg16@lists.isocpp.org or to:sg16@lists.isocpp.org -notmuch tag +std-discussion -- cc:std-discussion@lists.isocpp.org or to:std-discussion@lists.isocpp.org -notmuch tag +std-proposals -- cc:std-proposals@lists.isocpp.org or to:std-proposals@lists.isocpp.org -notmuch tag +notmuch -- cc:notmuch@notmuchmail.org or to:notmuch@notmuchmail.org -notmuch tag +rjarry-aerc-discuss -- cc:~rjarry/aerc-discuss@lists.sr.ht or to:~rjarry/aerc-discuss@lists.sr.ht +notmuch tag +info-gnu +maillist -- cc:info-gnu@gnu.org or to:info-gnu@gnu.org +notmuch tag +info-guix +maillist -- cc:info-guix@gnu.org or to:info-guix@gnu.org +notmuch tag +help-guix +maillist -- cc:help-guix@gnu.org or to:help-guix@gnu.org +notmuch tag +sg7 +maillist -- cc:sg7@lists.isocpp.org or to:sg7@lists.isocpp.org +notmuch tag +sg13 +maillist -- cc:sg13@lists.isocpp.org or to:sg13@lists.isocpp.org +notmuch tag +sg14 +maillist -- cc:sg14@lists.isocpp.org or to:sg14@lists.isocpp.org +notmuch tag +sg15 +maillist -- cc:sg15@lists.isocpp.org or to:sg15@lists.isocpp.org +notmuch tag +sg16 +maillist -- cc:sg16@lists.isocpp.org or to:sg16@lists.isocpp.org +notmuch tag +std-discussion +maillist -- cc:std-discussion@lists.isocpp.org or to:std-discussion@lists.isocpp.org +notmuch tag +std-proposals +maillist -- cc:std-proposals@lists.isocpp.org or to:std-proposals@lists.isocpp.org +notmuch tag +notmuch +maillist -- cc:notmuch@notmuchmail.org or to:notmuch@notmuchmail.org +notmuch tag +rjarry-aerc-discuss +maillist -- cc:~rjarry/aerc-discuss@lists.sr.ht or to:~rjarry/aerc-discuss@lists.sr.ht +notmuch tag +pgsql-general +maillist -- cc:pgsql-general@lists.postgresql.org or to:pgsql-general@lists.postgresql.org +notmuch tag +pgsql-general +maillist -- cc:pgsql-general@postgresql.org or to:pgsql-general@postgresql.org +notmuch tag +boost-users +maillist -- cc:boost-users@lists.boost.org or to:boost-users@lists.boost.org +notmuch tag +boost +maillist -- cc:boost@lists.boost.org or to:boost@lists.boost.org +notmuch tag +zsh-users +maillist -- cc:zsh-users@zsh.org or to:zsh-users@zsh.org # Some interesting trashing/trashed, Xing/Xed in general was mentioned @@ -20,3 +26,5 @@ notmuch tag -inbox -unread -draft +sent -- folder:Sent notmuch tag -inbox -unread +draft -- folder:Draft notmuch tag +inbox -- folder:INBOX + +notmuch search --format=text0 --output=files tag:trash | xargs -0 --no-run-if-empty rm -v diff --git a/notmuch/.config/notmuch/job/config b/notmuch/.config/notmuch/job/config index d43dbc9..d43dbc9 100644..100755 --- a/notmuch/.config/notmuch/job/config +++ b/notmuch/.config/notmuch/job/config diff --git a/notmuch/.config/notmuch/job/hooks b/notmuch/.config/notmuch/job/hooks deleted file mode 120000 index f631275..0000000 --- a/notmuch/.config/notmuch/job/hooks +++ /dev/null @@ -1 +0,0 @@ -../hooks
\ No newline at end of file diff --git a/notmuch/.config/notmuch/personal/config b/notmuch/.config/notmuch/personal/config index 161faf5..161faf5 100644..100755 --- a/notmuch/.config/notmuch/personal/config +++ b/notmuch/.config/notmuch/personal/config diff --git a/notmuch/.config/notmuch/personal/hooks b/notmuch/.config/notmuch/personal/hooks deleted file mode 120000 index f631275..0000000 --- a/notmuch/.config/notmuch/personal/hooks +++ /dev/null @@ -1 +0,0 @@ -../hooks
\ No newline at end of file diff --git a/notmuch/.config/notmuch/testmail/config b/notmuch/.config/notmuch/testmail/config index e69de29..e69de29 100644..100755 --- a/notmuch/.config/notmuch/testmail/config +++ b/notmuch/.config/notmuch/testmail/config diff --git a/notmuch/.config/notmuch/testmail/hooks b/notmuch/.config/notmuch/testmail/hooks deleted file mode 120000 index f631275..0000000 --- a/notmuch/.config/notmuch/testmail/hooks +++ /dev/null @@ -1 +0,0 @@ -../hooks
\ No newline at end of file diff --git a/nvim/.config/nvim/.gitignore b/nvim/.config/nvim/.gitignore index e033bc6..dc90214 100644..100755 --- a/nvim/.config/nvim/.gitignore +++ b/nvim/.config/nvim/.gitignore @@ -1 +1,5 @@ lazy-lock.json +node_modules/ +package-lock.json +package.json +.luarc.json diff --git a/nvim/.config/nvim/after/ftplugin/c.lua b/nvim/.config/nvim/after/ftplugin/c.lua new file mode 100644 index 0000000..b9b960b --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/c.lua @@ -0,0 +1,14 @@ +vim.keymap.set( + "n", + "<localleader>s", + "<cmd>ClangdSwitchSourceHeader<cr>", + { desc = "Switch source/header", buffer = 0 } +) + +vim.keymap.set("n", "<localleader>a", "<cmd>ClangdAST<cr>", { desc = "Clang's AST", buffer = 0 }) + +vim.keymap.set("n", "<localleader>m", "<cmd>ClangdMemoryUsage<cr>", { desc = "Clang's memory usage", buffer = 0 }) + +vim.keymap.set("n", "<localleader>i", "<cmd>ClangdSymbolInfo<cr>", { desc = "Clang's symbol info", buffer = 0 }) + +vim.keymap.set("n", "<localleader>a", "<cmd>ClangdTypeHierarchy<cr>", { desc = "Type hierarchy", buffer = 0 }) diff --git a/nvim/.config/nvim/after/ftplugin/dbui.lua b/nvim/.config/nvim/after/ftplugin/dbui.lua index dccca2f..dccca2f 100644..100755 --- a/nvim/.config/nvim/after/ftplugin/dbui.lua +++ b/nvim/.config/nvim/after/ftplugin/dbui.lua diff --git a/nvim/.config/nvim/after/ftplugin/log.lua b/nvim/.config/nvim/after/ftplugin/log.lua new file mode 100644 index 0000000..9034143 --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/log.lua @@ -0,0 +1,3 @@ +-- vim.opt_local.spell = false + +-- fasdf diff --git a/nvim/.config/nvim/after/ftplugin/sql.lua b/nvim/.config/nvim/after/ftplugin/sql.lua index cb4775f..cb4775f 100644..100755 --- a/nvim/.config/nvim/after/ftplugin/sql.lua +++ b/nvim/.config/nvim/after/ftplugin/sql.lua diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index d3ebf8f..afac52a 100644..100755 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -1,25 +1,6 @@ -vim.g.mapleader = " " -vim.g.maplocalleader = " " - -local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" -if not vim.uv.fs_stat(lazypath) then - vim.fn.system { - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", - lazypath, - } -end - --- Add lazy to the `runtimepath`, this allows us to `require` it. ----@diagnostic disable-next-line: undefined-field -vim.opt.rtp:prepend(lazypath) - --- Set up lazy, and load my `lua/custom/plugins/` folder -require("lazy").setup({ import = "custom/plugins" }, { - change_detection = { - notify = false, - }, -}) +require "globals" +require "keymaps" +require "options" +require "autocmds" +require "lsp" +require "rocks-setup" diff --git a/nvim/.config/nvim/lsp/bashls.lua b/nvim/.config/nvim/lsp/bashls.lua new file mode 100755 index 0000000..ff1e16d --- /dev/null +++ b/nvim/.config/nvim/lsp/bashls.lua @@ -0,0 +1,4 @@ +return { + cmd = { 'bash-language-server', 'start' }, + filetypes = { 'bash', 'sh', 'zsh' } +} diff --git a/nvim/.config/nvim/lsp/clangd.lua b/nvim/.config/nvim/lsp/clangd.lua new file mode 100755 index 0000000..beaf665 --- /dev/null +++ b/nvim/.config/nvim/lsp/clangd.lua @@ -0,0 +1,24 @@ +return { + cmd = { "clangd", "--background-index", "--experimental-modules-support" }, + root_markers = { + ".clangd", + ".clang-tidy", + ".clang-format", + "compile_commands.json", + "compile_flags.txt", + "configure.ac", + ".git", + }, + filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "proto" }, + capabilities = { + offsetEncoding = { "utf-8", "utf-16" }, + textDocument = { + completion = { + editsNearCursor = true, + }, + semanticTokens = { + multilineTokenSupport = true, + }, + }, + }, +} diff --git a/nvim/.config/nvim/lsp/cmake.lua b/nvim/.config/nvim/lsp/cmake.lua new file mode 100644 index 0000000..3fc70fc --- /dev/null +++ b/nvim/.config/nvim/lsp/cmake.lua @@ -0,0 +1,5 @@ +return { + cmd = { "neocmakelsp", "--stdio" }, + filetypes = { "cmake" }, + root_markers = { ".git", "build", "cmake" }, +} diff --git a/nvim/.config/nvim/lsp/lua_ls.lua b/nvim/.config/nvim/lsp/lua_ls.lua new file mode 100755 index 0000000..3ea54d9 --- /dev/null +++ b/nvim/.config/nvim/lsp/lua_ls.lua @@ -0,0 +1,20 @@ +return { + cmd = { 'lua-language-server' }, + root_makers = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', + }, + filetypes = { 'lua' }, + settings = { + Lua = { + runtime = { + version = 'LuaJIT', + } + } + } +} diff --git a/nvim/.config/nvim/lsp/marksman.lua b/nvim/.config/nvim/lsp/marksman.lua new file mode 100644 index 0000000..742b363 --- /dev/null +++ b/nvim/.config/nvim/lsp/marksman.lua @@ -0,0 +1,5 @@ +return { + cmd = { "marksman" }, + root_markers = { ".marksman.toml", ".git" }, + filetypes = { "markdown", "markdown.mdx" }, +} diff --git a/nvim/.config/nvim/plugin/autocmds.lua b/nvim/.config/nvim/lua/autocmds.lua index 6349fb8..d3edf52 100644..100755 --- a/nvim/.config/nvim/plugin/autocmds.lua +++ b/nvim/.config/nvim/lua/autocmds.lua @@ -1,8 +1,19 @@ local aucmd = vim.api.nvim_create_autocmd + local function augroup(name) - return vim.api.nvim_create_augroup("chell_" .. name, {}) + return vim.api.nvim_create_augroup(name, {}) end +-- Set local settings for terminal buffers +aucmd("TermOpen", { + group = vim.api.nvim_create_augroup("custom-term-open", {}), + callback = function() + vim.opt_local.number = false + vim.opt_local.relativenumber = false + vim.opt_local.scrolloff = 0 + end, +}) + -- highlight after yank aucmd("TextYankPost", { desc = "Highlight when yanking (copying) text", @@ -43,6 +54,7 @@ vim.api.nvim_create_autocmd({ "InsertLeave", "WinEnter" }, { end end, }) + vim.api.nvim_create_autocmd({ "InsertEnter", "WinLeave" }, { group = augroup "auto_cursorline_hide", callback = function() diff --git a/nvim/.config/nvim/lua/bundles/cmp.lua b/nvim/.config/nvim/lua/bundles/cmp.lua new file mode 100755 index 0000000..68cd71b --- /dev/null +++ b/nvim/.config/nvim/lua/bundles/cmp.lua @@ -0,0 +1,79 @@ +local lspkind = require "lspkind" +lspkind.init {} + +-- LuaSnip +local luasnip = require "luasnip" +luasnip.config.setup { + history = false, + updateevents = "TextChanged,TextChangedI", +} +for _, ft_path in ipairs(vim.api.nvim_get_runtime_file("lua/custom/snippets/*.lua", true)) do + loadfile(ft_path)() +end + +require("luasnip.loaders.from_vscode").lazy_load() + +-- Cmp +local cmp = require "cmp" + +cmp.setup { + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + completion = { completeopt = "menu,menuone,noinsert" }, + sorting = { + comparators = { + cmp.config.compare.offset, + cmp.config.compare.exact, + cmp.config.compare.recently_used, + require "clangd_extensions.cmp_scores", + cmp.config.compare.kind, + cmp.config.compare.sort_text, + cmp.config.compare.length, + cmp.config.compare.order, + }, + }, + mapping = cmp.mapping.preset.insert { + ["<C-d>"] = cmp.mapping.scroll_docs(-4), + ["<C-f>"] = cmp.mapping.scroll_docs(4), + -- ["<C-n>"] = cmp.mapping.select_next_item, + -- ["<C-p>"] = cmp.mapping.select_prev_item, + ["<C-y>"] = cmp.mapping(cmp.mapping.confirm { select = true }, { "i", "c" }), + -- Will move you to the right of each of the snippet's expansion locations. + ["<C-l>"] = cmp.mapping(function() + if luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + end + end, { "i", "s" }), + -- Will move you to the left of each of the snippet's expansion locations. + ["<C-h>"] = cmp.mapping(function() + if luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + end + end, { "i", "s" }), + }, + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "path" }, + { name = "buffer" }, + }, +} + +-- cmp.setup.cmdline(":", { +-- mapping = cmp.mapping.preset.cmdline(), +-- sources = cmp.config.sources({ +-- { name = "path" }, +-- }, { +-- { name = "cmdline" }, +-- }), +-- matching = { disallow_symbol_nonprefix_matching = false }, +-- }) + +require("nvim-autopairs").setup {} + +-- Automatically add `(` after selecting a function or method +local cmp_autopairs = require "nvim-autopairs.completion.cmp" +cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) diff --git a/nvim/.config/nvim/lua/bundles/colorscheme.lua b/nvim/.config/nvim/lua/bundles/colorscheme.lua new file mode 100644 index 0000000..ce544f8 --- /dev/null +++ b/nvim/.config/nvim/lua/bundles/colorscheme.lua @@ -0,0 +1 @@ +vim.cmd "colorscheme kanagawa" diff --git a/nvim/.config/nvim/lua/bundles/telescope.lua b/nvim/.config/nvim/lua/bundles/telescope.lua new file mode 100755 index 0000000..b29c18d --- /dev/null +++ b/nvim/.config/nvim/lua/bundles/telescope.lua @@ -0,0 +1,16 @@ +require("telescope").setup { + defaults = { + mappints = {}, + }, + pickers = {}, + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown(), + }, + }, +} + +pcall(require("telescope").load_extension, "fzf") +pcall(require("telescope").load_extension, "smart_history") +pcall(require("telescope").load_extension, "rest") +pcall(require("telescope").load_extension, "ui-select") diff --git a/nvim/.config/nvim/lua/custom/autopairs.lua b/nvim/.config/nvim/lua/custom/autopairs.lua deleted file mode 100644 index 00c7812..0000000 --- a/nvim/.config/nvim/lua/custom/autopairs.lua +++ /dev/null @@ -1,5 +0,0 @@ -require("nvim-autopairs").setup {} --- Automatically add `(` after selecting a function or method -local cmp_autopairs = require "nvim-autopairs.completion.cmp" -local cmp = require "cmp" -cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) diff --git a/nvim/.config/nvim/lua/custom/cmake.lua b/nvim/.config/nvim/lua/custom/cmake.lua deleted file mode 100644 index bef1fc7..0000000 --- a/nvim/.config/nvim/lua/custom/cmake.lua +++ /dev/null @@ -1 +0,0 @@ -require("cmake").setup { cmake = { parallel_jobs = #vim.uv.cpu_info() } } diff --git a/nvim/.config/nvim/lua/custom/cmp.lua b/nvim/.config/nvim/lua/custom/cmp.lua deleted file mode 100644 index 5cbb2e8..0000000 --- a/nvim/.config/nvim/lua/custom/cmp.lua +++ /dev/null @@ -1,69 +0,0 @@ -vim.opt.completeopt = { "menu", "menuone", "noselect" } -vim.opt.shortmess:append "c" - -local lspkind = require "lspkind" -lspkind.init {} - -local luasnip = require "luasnip" -luasnip.config.setup {} -require("luasnip.loaders.from_vscode").lazy_load() - -local cmp = require "cmp" - -cmp.setup { - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - completion = { completeopt = "menu,menuone,noinsert" }, - mapping = cmp.mapping.preset.insert { - -- ["<C-n>"] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Insert }, - -- ["<C-p>"] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Insert }, - ["<C-y>"] = cmp.mapping( - cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Insert, - select = true, - }, - { "i", "c" } - ), - ["<C-b>"] = cmp.mapping.scroll_docs(-4), - ["<C-f>"] = cmp.mapping.scroll_docs(4), - -- ["<C-y>"] = cmp.mapping.confirm { select = true }, - -- -- Will move you to the right of each of the snippet's expansion locations. - ["<C-l>"] = cmp.mapping(function() - if luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - end - end, { "i", "s" }), - -- Will move you to the left of each of the snippet's expansion locations. - ["<C-h>"] = cmp.mapping(function() - if luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - end - end, { "i", "s" }), - }, - sources = { - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "path" }, - { name = "buffer" }, - }, -} - --- Setup up vim-dadbod -cmp.setup.filetype({ "sql" }, { - sources = { - { name = "vim-dadbod-completion" }, - { name = "buffer" }, - }, -}) - -luasnip.config.set_config { - history = false, - updateevents = "TextChanged,TextChangedI", -} - -for _, ft_path in ipairs(vim.api.nvim_get_runtime_file("lua/custom/snippets/*.lua", true)) do - loadfile(ft_path)() -end diff --git a/nvim/.config/nvim/lua/custom/gitsigns.lua b/nvim/.config/nvim/lua/custom/gitsigns.lua deleted file mode 100644 index 2a12ebb..0000000 --- a/nvim/.config/nvim/lua/custom/gitsigns.lua +++ /dev/null @@ -1,60 +0,0 @@ -local gitsigns = require "gitsigns" - -local on_attach = function(bufnr) - local function map(mode, l, r, opts) - opts = opts or {} - opts.buffer = bufnr - vim.keymap.set(mode, l, r, opts) - end - - -- Navigation - map("n", "]c", function() - if vim.wo.diff then - vim.cmd.normal { "]c", bang = true } - else - gitsigns.nav_hunk "next" - end - end) - - map("n", "[c", function() - if vim.wo.diff then - vim.cmd.normal { "[c", bang = true } - else - gitsigns.nav_hunk "prev" - end - end) - - -- Actions - map("n", "<leader>gs", gitsigns.stage_hunk, { desc = "Stage hunk" }) - map("n", "<leader>gr", gitsigns.reset_hunk, { desc = "Reset hunk" }) - map("v", "<leader>gs", function() - gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" } - end, { desc = "Stage hunk" }) - map("v", "<leader>gr", function() - gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" } - end, { desc = "Reset hunk" }) - map("n", "<leader>gS", gitsigns.stage_buffer, { desc = "Stage buffer" }) - map("n", "<leader>gu", gitsigns.undo_stage_hunk, { desc = "Undo stage hunk" }) - map("n", "<leader>gR", gitsigns.reset_buffer, { desc = "Reset buffer" }) - map("n", "<leader>gp", gitsigns.preview_hunk, { desc = "Preview hunk" }) - map("n", "<leader>gb", function() - gitsigns.blame_line { full = true } - end, { desc = "Blame line" }) - map("n", "<leader>Tb", gitsigns.toggle_current_line_blame, { desc = "Toggle blame line" }) - map("n", "<leader>Td", gitsigns.toggle_deleted, { desc = "Toggle deleted" }) - map("n", "<leader>gd", gitsigns.diffthis, { desc = "Diff this" }) - map("n", "<leader>gD", function() - gitsigns.diffthis "~" - end, { desc = "Diff this ~" }) -end - -gitsigns.setup { - signs = { - add = { text = "+" }, - change = { text = "~" }, - delete = { text = "_" }, - topdelete = { text = "‾" }, - changedelete = { text = "~" }, - }, - on_attach = on_attach, -} diff --git a/nvim/.config/nvim/lua/custom/harpoon.lua b/nvim/.config/nvim/lua/custom/harpoon.lua deleted file mode 100644 index 06a20d7..0000000 --- a/nvim/.config/nvim/lua/custom/harpoon.lua +++ /dev/null @@ -1,25 +0,0 @@ -local harpoon = require "harpoon" -harpoon:setup() - -vim.keymap.set("n", "<leader>a", function() - harpoon:list():add() -end) - -vim.keymap.set("n", "<leader><leader>", function() - harpoon.ui:toggle_quick_menu(harpoon:list()) -end) - -vim.keymap.set("n", "<c-n>", function() - require("harpoon"):list():next() -end) - -vim.keymap.set("n", "<c-p>", function() - require("harpoon"):list():prev() -end) - --- Set <space>1..<space>5 be my shortcuts to moving to the files -for _, idx in ipairs { 1, 2, 3, 4, 5 } do - vim.keymap.set("n", string.format("<leader>%d", idx), function() - harpoon:list():select(idx) - end) -end diff --git a/nvim/.config/nvim/lua/custom/init.lua b/nvim/.config/nvim/lua/custom/init.lua deleted file mode 100644 index 9e39d84..0000000 --- a/nvim/.config/nvim/lua/custom/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -require("chell.globals") -require("chell.options") -require("chell.keymaps") -require("chell.autocmds") -require("chell.lazy") diff --git a/nvim/.config/nvim/lua/custom/leap.lua b/nvim/.config/nvim/lua/custom/leap.lua deleted file mode 100644 index 5f25e50..0000000 --- a/nvim/.config/nvim/lua/custom/leap.lua +++ /dev/null @@ -1,3 +0,0 @@ -vim.keymap.set("n", "s", "<Plug>(leap)", { desc = "Leap" }) -vim.keymap.set("n", "S", "<Plug>(leap-from-window)", { desc = "Leap other window" }) -require("leap").setup { safe_labels = {} } diff --git a/nvim/.config/nvim/lua/custom/lsp.lua b/nvim/.config/nvim/lua/custom/lsp.lua deleted file mode 100644 index 47ca1d3..0000000 --- a/nvim/.config/nvim/lua/custom/lsp.lua +++ /dev/null @@ -1,113 +0,0 @@ ---TODO: make it prettier - -require("neodev").setup { - library = { - plugins = { "nvim-dap-ui" }, - types = true, - }, -} - -local capabilities = nil -if pcall(require, "cmp_nvim_lsp") then - capabilities = require("cmp_nvim_lsp").default_capabilities() -end - -local lspconfig = require "lspconfig" - -local servers = { - bashls = true, - gopls = true, - lua_ls = true, - rust_analyzer = true, - - jsonls = { - settings = { - json = { - schemas = require("schemastore").json.schemas(), - validate = { enable = true }, - }, - }, - }, - - yamlls = { - settings = { - yaml = { - schemaStore = { - enable = false, - url = "", - }, - schemas = require("schemastore").yaml.schemas(), - }, - }, - }, - - clangd = { - init_options = { clangdFileStatus = true }, - }, -} - -for name, config in pairs(servers) do - if config == true then - config = {} - end - config = vim.tbl_deep_extend("force", {}, { - capabilities = capabilities, - }, config) - - lspconfig[name].setup(config) -end - -local disable_semantic_tokens = { - lua = true, -} - -vim.api.nvim_create_autocmd("LspAttach", { - callback = function(args) - local bufnr = args.buf - local client = assert(vim.lsp.get_client_by_id(args.data.client_id), "must have valid client") - local builtin = require "telescope.builtin" - - vim.opt_local.omnifunc = "v:lua.vim.lsp.omnifunc" - vim.keymap.set("n", "gd", vim.lsp.buf.definition, { buffer = 0 }) - vim.keymap.set("n", "gr", vim.lsp.buf.references, { buffer = 0 }) - vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = 0 }) - vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, { buffer = 0 }) - vim.keymap.set("n", "<leader>lr", vim.lsp.buf.rename, { buffer = 0 }) - vim.keymap.set("n", "<leader>la", vim.lsp.buf.code_action, { buffer = 0 }) - vim.keymap.set("n", "<leader>ls", builtin.lsp_document_symbols, { desc = "[D]ocument [S]ymbols" }) - vim.keymap.set("n", "<leader>lw", builtin.lsp_dynamic_workspace_symbols, { desc = "[W]orkspace Symbols" }) - -- nmap("gd", builtin.lsp_definitions, { desc = "[G]oto [D]efinition" }) - -- nmap("gr", builtin.lsp_references, { desc = "[G]oto [R]eferences" }) - -- nmap("gI", builtin.lsp_implementations, { desc = "[G]oto [I]mplementation" }) - - local filetype = vim.bo[bufnr].filetype - if disable_semantic_tokens[filetype] then - client.server_capabilities.semanticTokensProvider = nil - end - - if client and client.server_capabilities.inlayHintProvider and vim.lsp.inlay_hint then - vim.keymap.set("n", "<leader>Th", function() - vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) - end, { desc = "[T]oggle Inlay [H]ints" }) - end - end, -}) - --- Autoformatting Setup -require("conform").setup { - formatters_by_ft = { - lua = { "stylua" }, - cpp = { "clang-format" }, - c = { "clang-format" }, - }, -} - -vim.api.nvim_create_autocmd("BufWritePre", { - callback = function(args) - require("conform").format { - bufnr = args.buf, - lsp_fallback = true, - quiet = true, - } - end, -}) diff --git a/nvim/.config/nvim/lua/custom/plugins/autopairs.lua b/nvim/.config/nvim/lua/custom/plugins/autopairs.lua deleted file mode 100644 index 170b337..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/autopairs.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - "windwp/nvim-autopairs", - event = "InsertEnter", - -- Optional dependency - dependencies = { "hrsh7th/nvim-cmp" }, - config = function() - require "custom.autopairs" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/bqf.lua b/nvim/.config/nvim/lua/custom/plugins/bqf.lua deleted file mode 100644 index 92630a8..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/bqf.lua +++ /dev/null @@ -1 +0,0 @@ -return { "kevinhwang91/nvim-bqf", ft = "qf" } diff --git a/nvim/.config/nvim/lua/custom/plugins/celluar.lua b/nvim/.config/nvim/lua/custom/plugins/celluar.lua deleted file mode 100644 index f90161e..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/celluar.lua +++ /dev/null @@ -1 +0,0 @@ -return { "Eandrju/cellular-automaton.nvim" } diff --git a/nvim/.config/nvim/lua/custom/plugins/cmake.lua b/nvim/.config/nvim/lua/custom/plugins/cmake.lua deleted file mode 100644 index 8bd0207..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/cmake.lua +++ /dev/null @@ -1,17 +0,0 @@ -if vim.loop.os_uname().sysname ~= "Darwin" then - return { - "daniilrozanov/cmake.nvim", - lazy = false, - config = function() - require "custom.cmake" - end, - } -else - return { - dir = "~/repositories/cmake.nvim", - lazy = false, - config = function() - require "custom.cmake" - end, - } -end diff --git a/nvim/.config/nvim/lua/custom/plugins/cmp.lua b/nvim/.config/nvim/lua/custom/plugins/cmp.lua deleted file mode 100644 index 83fb5a2..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/cmp.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - { - "hrsh7th/nvim-cmp", - event = "InsertEnter", - priority = 100, - dependencies = { - "onsails/lspkind.nvim", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-path", - "hrsh7th/cmp-buffer", - { - "L3MON4D3/LuaSnip", - build = "make install_jsregexp", - dependencies = { "rafamadriz/friendly-snippets" }, - }, - "saadparwaiz1/cmp_luasnip", - }, - config = function() - require "custom.cmp" - end, - }, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/comment.lua b/nvim/.config/nvim/lua/custom/plugins/comment.lua deleted file mode 100644 index 46f5032..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/comment.lua +++ /dev/null @@ -1 +0,0 @@ -return { 'numToStr/Comment.nvim' } diff --git a/nvim/.config/nvim/lua/custom/plugins/conform.lua b/nvim/.config/nvim/lua/custom/plugins/conform.lua deleted file mode 100644 index 2fcf210..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/conform.lua +++ /dev/null @@ -1,36 +0,0 @@ -return { -- Autoformat - "stevearc/conform.nvim", - lazy = false, - keys = { - { - "<leader>lf", - function() - require("conform").format { async = true, lsp_fallback = true } - end, - mode = "", - desc = "Format buffer", - }, - }, - opts = { - notify_on_error = false, - format_on_save = function(bufnr) - -- Disable "format_on_save lsp_fallback" for languages that don't - -- have a well standardized coding style. You can add additional - -- languages here or re-enable it for the disabled ones. - local disable_filetypes = { c = true, cpp = true } - return { - timeout_ms = 500, - lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype], - } - end, - formatters_by_ft = { - lua = { "stylua" }, - -- Conform can also run multiple formatters sequentially - -- python = { "isort", "black" }, - -- - -- You can use a sub-list to tell conform to run *until* a formatter - -- is found. - -- javascript = { { "prettierd", "prettier" } }, - }, - }, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/dadbod.lua b/nvim/.config/nvim/lua/custom/plugins/dadbod.lua deleted file mode 100644 index 8411fa5..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/dadbod.lua +++ /dev/null @@ -1,16 +0,0 @@ -return { - "kristijanhusak/vim-dadbod-ui", - dependencies = { - { "tpope/vim-dadbod", lazy = true }, - { "kristijanhusak/vim-dadbod-completion", ft = { "sql", "mysql", "plsql" }, lazy = true }, - }, - cmd = { - "DBUI", - "DBUIToggle", - "DBUIAddConnection", - "DBUIFindBuffer", - }, - init = function() - vim.g.db_ui_use_nerd_fonts = 1 - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/gitsigns.lua b/nvim/.config/nvim/lua/custom/plugins/gitsigns.lua deleted file mode 100644 index 3da8ed4..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/gitsigns.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - "lewis6991/gitsigns.nvim", - config = function() - require "custom.gitsigns" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/harpoon.lua b/nvim/.config/nvim/lua/custom/plugins/harpoon.lua deleted file mode 100644 index aa8dae8..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/harpoon.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - "ThePrimeagen/harpoon", - branch = "harpoon2", - dependencies = { "nvim-lua/plenary.nvim" }, - config = function() - require "custom.harpoon" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/leap.lua b/nvim/.config/nvim/lua/custom/plugins/leap.lua deleted file mode 100644 index 5566ecc..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/leap.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - "ggandor/leap.nvim", - lazy = false, --TODO: lazy - config = function() - require "custom.leap" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/lsp.lua b/nvim/.config/nvim/lua/custom/plugins/lsp.lua deleted file mode 100644 index ac87b84..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/lsp.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - { - "neovim/nvim-lspconfig", - dependencies = { - "folke/neodev.nvim", - "williamboman/mason.nvim", - "williamboman/mason-lspconfig.nvim", - "WhoIsSethDaniel/mason-tool-installer.nvim", - - { "j-hui/fidget.nvim", opts = {} }, - - -- Autoformatting - "stevearc/conform.nvim", - - -- Schema information - "b0o/SchemaStore.nvim", - }, - config = function() - require "custom.lsp" - end, - }, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/lualine.lua b/nvim/.config/nvim/lua/custom/plugins/lualine.lua deleted file mode 100644 index 661f7fc..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/lualine.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons" }, - config = true, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/mini.lua b/nvim/.config/nvim/lua/custom/plugins/mini.lua deleted file mode 100644 index 654222e..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/mini.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { -- Collection of various small independent plugins/modules - "echasnovski/mini.nvim", - dependencies = "nvim-treesitter/nvim-treesitter", - config = function() - -- Better Around/Inside textobjects - require("mini.ai").setup { n_lines = 500 } - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/neorg.lua b/nvim/.config/nvim/lua/custom/plugins/neorg.lua deleted file mode 100644 index 455b80d..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/neorg.lua +++ /dev/null @@ -1,22 +0,0 @@ -return {} --- return { --- "nvim-neorg/neorg", --- lazy = false, --- version = "*", --- config = function() --- require("neorg").setup { --- load = { --- ["core.defaults"] = {}, --- ["core.concealer"] = {}, --- ["core.dirman"] = { --- config = { --- workspaces = { --- notes = "~/notes" --- }, --- default_workspace = "notes" --- } --- }, --- } --- } --- end, --- } diff --git a/nvim/.config/nvim/lua/custom/plugins/sort.lua b/nvim/.config/nvim/lua/custom/plugins/sort.lua deleted file mode 100644 index f5483e6..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/sort.lua +++ /dev/null @@ -1 +0,0 @@ -return { "sQVe/sort.nvim" } diff --git a/nvim/.config/nvim/lua/custom/plugins/substitude.lua b/nvim/.config/nvim/lua/custom/plugins/substitude.lua deleted file mode 100644 index bb8bd9f..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/substitude.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - "gbprod/substitute.nvim", - config = function() - require "custom.substitude" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/surround.lua b/nvim/.config/nvim/lua/custom/plugins/surround.lua deleted file mode 100644 index e3c3c6c..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/surround.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - "kylechui/nvim-surround", - event = { "BufReadPre", "BufNewFile" }, - version = "*", - config = true, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/telescope.lua b/nvim/.config/nvim/lua/custom/plugins/telescope.lua deleted file mode 100644 index 00be4c1..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/telescope.lua +++ /dev/null @@ -1,15 +0,0 @@ -return { - "nvim-telescope/telescope.nvim", - event = "VimEnter", - branch = "0.1.x", - dependencies = { - "nvim-lua/plenary.nvim", - { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, - { "nvim-telescope/telescope-smart-history.nvim" }, - { "nvim-telescope/telescope-ui-select.nvim" }, - { "nvim-tree/nvim-web-devicons" }, - }, - config = function() - require "custom.telescope" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/themes.lua b/nvim/.config/nvim/lua/custom/plugins/themes.lua deleted file mode 100644 index 0f9ca03..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/themes.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - { "ellisonleao/gruvbox.nvim", priority = 1000, config = function() - require("gruvbox").setup({}) - vim.cmd([[colorscheme gruvbox]]) - end - }, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/todo-comments.lua b/nvim/.config/nvim/lua/custom/plugins/todo-comments.lua deleted file mode 100644 index 4b46f89..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/todo-comments.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - "folke/todo-comments.nvim", - event = "VimEnter", - dependencies = { "nvim-lua/plenary.nvim" }, - opts = { signs = false }, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/toggleterm.lua b/nvim/.config/nvim/lua/custom/plugins/toggleterm.lua deleted file mode 100644 index 8775389..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/toggleterm.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - "akinsho/toggleterm.nvim", - version = "*", - config = function() - require "custom.toggleterm" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/treesitter.lua b/nvim/.config/nvim/lua/custom/plugins/treesitter.lua deleted file mode 100644 index dd37a3a..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/treesitter.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - config = function() - require "custom.treesitter" - end, -} diff --git a/nvim/.config/nvim/lua/custom/plugins/vim-sleuth.lua b/nvim/.config/nvim/lua/custom/plugins/vim-sleuth.lua deleted file mode 100644 index a564707..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/vim-sleuth.lua +++ /dev/null @@ -1 +0,0 @@ -return {} diff --git a/nvim/.config/nvim/lua/custom/plugins/which-key.lua b/nvim/.config/nvim/lua/custom/plugins/which-key.lua deleted file mode 100644 index 42ebe43..0000000 --- a/nvim/.config/nvim/lua/custom/plugins/which-key.lua +++ /dev/null @@ -1,24 +0,0 @@ -return { - "folke/which-key.nvim", - event = "VeryLazy", - opts = { - -- TODO: move this to where mappings created - spec = { - { "<leader>f", desc = "Find" }, - { "<leader>T", desc = "Toggle options" }, - { "<leader>t", desc = "ToggleTerm" }, - { "<leader>g", desc = "Git" }, - { "<leader>l", desc = "LSP" }, - { "<leader><tab>", desc = "Tab pages" }, - } - }, - keys = { - { - "<leader>?", - function() - require("which-key").show({ global = false }) - end, - desc = "Buffer Local Keymaps (which-key)", - }, - }, -} diff --git a/nvim/.config/nvim/lua/custom/substitude.lua b/nvim/.config/nvim/lua/custom/substitude.lua deleted file mode 100644 index e666195..0000000 --- a/nvim/.config/nvim/lua/custom/substitude.lua +++ /dev/null @@ -1,6 +0,0 @@ -require("substitute").setup {} - -vim.keymap.set("n", ",", require("substitute").operator, { noremap = true }) -vim.keymap.set("n", ",,", require("substitute").line, { noremap = true }) --- vim.keymap.set("n", "", require("substitute").eol, { noremap = true }) -vim.keymap.set("x", ",", require("substitute").visual, { noremap = true }) diff --git a/nvim/.config/nvim/lua/custom/telescope.lua b/nvim/.config/nvim/lua/custom/telescope.lua deleted file mode 100644 index 219264b..0000000 --- a/nvim/.config/nvim/lua/custom/telescope.lua +++ /dev/null @@ -1,82 +0,0 @@ --- local data = assert(vim.fn.stdpath "data") --[[@as string]] - -require("telescope").setup { - extensions = { - fzf = {}, - wrap_results = true, - history = { - -- path = vim.fs.joinpath(data, "telescope_history.sqlite3"), - limit = 100, - }, - ["ui-select"] = { - require("telescope.themes").get_dropdown(), - }, - }, - defaults = { - -- configure to use ripgrep - vimgrep_arguments = { - "rg", - "--follow", -- Follow symbolic links - "--hidden", -- Search for hidden files - "--no-heading", -- Don't group matches by each file - "--with-filename", -- Print the file path with the matched lines - "--line-number", -- Show line numbers - "--column", -- Show column numbers - "--smart-case", -- Smart case search - - -- Exclude some patterns from search - "--glob=!**/.git/*", - "--glob=!**/.idea/*", - "--glob=!**/.vscode/*", - "--glob=!**/build/*", - "--glob=!**/dist/*", - "--glob=!**/yarn.lock", - "--glob=!**/package-lock.json", - }, - }, - pickers = { - find_files = { - hidden = true, - -- needed to exclude some files & dirs from general search - -- when not included or specified in .gitignore - find_command = { - "rg", - "--files", - "--hidden", - "--glob=!**/.git/*", - "--glob=!**/.idea/*", - "--glob=!**/.vscode/*", - "--glob=!**/build/*", - "--glob=!**/dist/*", - "--glob=!**/yarn.lock", - "--glob=!**/package-lock.json", - }, - }, - }, -} - -pcall(require("telescope").load_extension, "fzf") -pcall(require("telescope").load_extension, "smart_history") -pcall(require("telescope").load_extension, "rest") -pcall(require("telescope").load_extension, "ui-select") - -local builtin = require "telescope.builtin" - -vim.keymap.set("n", "<leader>fh", builtin.help_tags, { desc = "Search [H]elp" }) -vim.keymap.set("n", "<leader>fk", builtin.keymaps, { desc = "Search [K]eymaps" }) -vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Search [F]iles" }) -vim.keymap.set("n", "<leader>fs", builtin.builtin, { desc = "Search [S]elect Telescope" }) -vim.keymap.set("n", "<leader>fw", builtin.grep_string, { desc = "Search current [W]ord" }) -vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "Search by [G]rep" }) -vim.keymap.set("n", "<leader>fd", builtin.diagnostics, { desc = "Search [D]iagnostics" }) -vim.keymap.set("n", "<leader>fr", builtin.resume, { desc = "Search [R]esume" }) -vim.keymap.set("n", "<leader>f.", builtin.oldfiles, { desc = 'Search Recent Files ("." for repeat)' }) -vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "[ ] Find existing buffers" }) -vim.keymap.set("n", "<leader>fn", function() - require("telescope.builtin").find_files { cwd = vim.fn.stdpath "config" } -end, { desc = "Search [N]eovim files" }) - -vim.keymap.set("n", "<leader>fa", function() - ---@diagnostic disable-next-line: param-type-mismatch - builtin.find_files { cwd = vim.fs.joinpath(vim.fn.stdpath "data", "lazy") } -end) diff --git a/nvim/.config/nvim/lua/custom/toggleterm.lua b/nvim/.config/nvim/lua/custom/toggleterm.lua deleted file mode 100644 index 6aafb2f..0000000 --- a/nvim/.config/nvim/lua/custom/toggleterm.lua +++ /dev/null @@ -1,41 +0,0 @@ -require("toggleterm").setup { - size = function(term) - if term.direction == "horizontal" then - return 15 - elseif term.direction == "vertical" then - return vim.o.columns * 0.33 - end - end, -} - -local Terminal = require("toggleterm.terminal").Terminal -local on_open = function(_) - vim.cmd "startinsert!" - -- vim.keymap.set("n", "q", "<cmd>close<CR>", { noremap = true, silent = true, buffer = term.bufnr }) -end -local on_close = function(_) - vim.cmd "startinsert!" -end -if vim.fn.executable "lazygit" then - local lazygit = Terminal:new { - cmd = "lazygit", - dir = "git_dir", - direction = "float", - on_open = on_open, - on_close = on_close, - count = 999, - } - vim.keymap.set("n", "<leader>gg", function() - lazygit:toggle() - end, { desc = "ToggleTerm LazyGit" }) -end - -vim.keymap.set("n", "<leader>tf", function() - Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "float") -end) -vim.keymap.set("n", "<leader>tv", function() - Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "vertical") -end) -vim.keymap.set("n", "<leader>th", function() - Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "horizontal") -end) diff --git a/nvim/.config/nvim/lua/custom/treesitter.lua b/nvim/.config/nvim/lua/custom/treesitter.lua deleted file mode 100644 index 5f8e8fb..0000000 --- a/nvim/.config/nvim/lua/custom/treesitter.lua +++ /dev/null @@ -1,51 +0,0 @@ -local M = {} - -M.setup = function() - local group = vim.api.nvim_create_augroup("custom-treesitter", { clear = true }) - - require("nvim-treesitter.configs").setup { - ensure_installed = { - "bash", - "c", - "diff", - "html", - "lua", - "luadoc", - "json", - "markdown", - "vim", - "vimdoc", - "cpp", - "cmake", - "query", - "http", - "proto", - "xml", - "graphql", - }, - highlight = { enable = true }, - indent = { enable = true }, - } - - local syntax_on = { - -- elixir = true, - -- php = true, - } - - vim.api.nvim_create_autocmd("FileType", { - group = group, - callback = function(args) - local bufnr = args.buf - local ft = vim.bo[bufnr].filetype - pcall(vim.treesitter.start) - - -- if syntax_on[ft] then - -- vim.bo[bufnr].syntax = "on" - -- end - end, - }) -end - -M.setup() - -return M diff --git a/nvim/.config/nvim/lua/globals.lua b/nvim/.config/nvim/lua/globals.lua new file mode 100644 index 0000000..8e642e9 --- /dev/null +++ b/nvim/.config/nvim/lua/globals.lua @@ -0,0 +1,2 @@ +vim.g.maplocalleader = "," +vim.g.mapleader = " " diff --git a/nvim/.config/nvim/lua/keymaps.lua b/nvim/.config/nvim/lua/keymaps.lua new file mode 100755 index 0000000..dc66b77 --- /dev/null +++ b/nvim/.config/nvim/lua/keymaps.lua @@ -0,0 +1,246 @@ +-- Keymaps working on Russian layout +local function escape(str) + local escape_chars = [[;,."|\]] + return vim.fn.escape(str, escape_chars) +end + +local en = [[`qwertyuiop[]asdfghjkl;'zxcvbnm]] +local en_shift = [[~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>]] +local ru = [[ёйцукенгшщзхъфывапролджэячсмить]] +local ru_shift = [[ËЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]] +vim.opt.langmap = vim.fn.join({ + escape(ru_shift) .. ";" .. escape(en_shift), + escape(ru) .. ";" .. escape(en), +}, ",") + +-- Actions +vim.keymap.set("n", "<leader>w", "<cmd>w<cr>", { desc = "Write buffer" }) +vim.keymap.set("n", "<leader>W", "<cmd>wall<cr>", { desc = "Write all" }) +vim.keymap.set("n", "<leader>r", '<cmd>!"%:p"<cr>', { desc = "Run file in shell" }) +vim.keymap.set("n", "<leader>q", "<cmd>q<cr>", { desc = "Quit window" }) +vim.keymap.set("n", "<leader>Q", "<cmd>wqall<cr>", { desc = "Quit" }) +vim.keymap.set("v", "x", "gg0oG$", { desc = "Select all" }) +vim.keymap.set("n", "dx", "ggdG", { desc = "Delete all" }) + +-- UI navigation +vim.keymap.set("n", "<c-j>", "<c-w><c-j>", { desc = "Move to window down" }) +vim.keymap.set("n", "<c-k>", "<c-w><c-k>", { desc = "Move to window up" }) +vim.keymap.set("n", "<c-l>", "<c-w><c-l>", { desc = "Move to window right" }) +vim.keymap.set("n", "<c-h>", "<c-w><c-h>", { desc = "Move to window left" }) + +vim.keymap.set("n", "<leader>s", "<cmd>vsplit<cr>", { desc = "Split vert." }) +vim.keymap.set("n", "<leader>S", "<cmd>split<cr>", { desc = "Split hor." }) + +vim.keymap.set("n", "<m-t>", "<cmd>tabnew<cr>", { desc = "New Tab" }) +vim.keymap.set("n", "<s-m-t>", "<cmd>tabclose<cr>", { desc = "Close Tab" }) + +vim.keymap.set("n", "<C-c>", "<cmd>bd<CR>", { desc = "closes the current buffer", silent = true }) +vim.keymap.set("n", "<C-n>", "<cmd>bn<CR>", { desc = "cycles to the next buffer", silent = true }) +vim.keymap.set("n", "<C-p>", "<cmd>bp<CR>", { desc = "cycles to the previous buffer", silent = true }) + +-- Cmdline +vim.keymap.set("c", "<c-n>", "<Down>") +vim.keymap.set("c", "<c-p>", "<Up>") + +-- Treesitter text objects +-- select +vim.keymap.set({ "x", "o" }, "aa", function() + require("nvim-treesitter-textobjects.select").select_textobject("@parameter.outer", "textobjects") +end, { desc = "parameter" }) +vim.keymap.set({ "x", "o" }, "ia", function() + require("nvim-treesitter-textobjects.select").select_textobject("@parameter.inner", "textobjects") +end, { desc = "parameter" }) +vim.keymap.set({ "x", "o" }, "af", function() + require("nvim-treesitter-textobjects.select").select_textobject("@function.outer", "textobjects") +end, { desc = "function" }) +vim.keymap.set({ "x", "o" }, "if", function() + require("nvim-treesitter-textobjects.select").select_textobject("@function.inner", "textobjects") +end, { desc = "function" }) +vim.keymap.set({ "x", "o" }, "ac", function() + require("nvim-treesitter-textobjects.select").select_textobject("@class.outer", "textobjects") +end, { desc = "class" }) +vim.keymap.set({ "x", "o" }, "ic", function() + require("nvim-treesitter-textobjects.select").select_textobject("@class.inner", "textobjects") +end, { desc = "class" }) +vim.keymap.set({ "x", "o" }, "as", function() + require("nvim-treesitter-textobjects.select").select_textobject("@local.scope", "locals") +end, { desc = "scope" }) +-- move (useless since I have leap but anyway this is default behaviour) +vim.keymap.set({ "n", "x", "o" }, "]m", function() + require("nvim-treesitter-textobjects.move").goto_next_start("@function.outer", "textobjects") +end, { desc = "Next start of method" }) +vim.keymap.set({ "n", "x", "o" }, "]M", function() + require("nvim-treesitter-textobjects.move").goto_next_end("@function.outer", "textobjects") +end, { desc = "Next end of method" }) +vim.keymap.set({ "n", "x", "o" }, "[m", function() + require("nvim-treesitter-textobjects.move").goto_previous_start("@function.outer", "textobjects") +end, { desc = "Next start of method" }) +vim.keymap.set({ "n", "x", "o" }, "[M", function() + require("nvim-treesitter-textobjects.move").goto_previous_end("@function.outer", "textobjects") +end, { desc = "Next end of method" }) + +-- Terminal +vim.keymap.set("t", "<C-n>", "<C-\\><C-n>", { desc = "To normal mode" }) + +-- Leap +vim.keymap.set({ "n", "x", "o" }, "s", "<Plug>(leap)", { desc = "Leap" }) +vim.keymap.set("n", "S", "<Plug>(leap-from-window)", { desc = "Leap other window" }) +vim.keymap.set({ "n", "x", "o" }, "gs", function() + require("leap.remote").action() +end, { desc = "Leap remote action" }) + +-- Substitute +vim.keymap.set("n", ";", function() + require("substitute").operator() +end, { noremap = true }) +vim.keymap.set("x", ";", function() + require("substitute").visual() +end, { noremap = true }) + +-- Zen +vim.keymap.set("n", "<leader>tz", "<cmd>ZenMode<cr>", { desc = "Zen mode" }) + +-- Oil +vim.keymap.set("n", "<leader>e", "<cmd>Oil<cr>", { desc = "Open file explorer" }) + +-- Telescope +vim.keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Files" }) +vim.keymap.set("n", "<leader>fw", "<cmd>Telescope grep_string<cr>", { desc = "Current Word" }) +vim.keymap.set("n", "<leader>fg", "<cmd>Telescope live_grep<cr>", { desc = "Live Grep" }) +vim.keymap.set("n", "<leader>fd", "<cmd>Telescope diagnostics<cr>", { desc = "Diagnostics" }) +-- vim.keymap.set("n", "<leader>fr", "<cmd>Telescope resume<cr>", { desc = "Resume" }) +-- vim.keymap.set("n", "<leader>f.", "<cmd>Telescope oldfiles<cr>", { desc = "Recent Files" }) +-- vim.keymap.set("n", "<leader>fs", "<cmd>Telescope builtin<cr>", { desc = "Select Telescope" }) +-- vim.keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help" }) +-- vim.keymap.set("n", "<leader>fk", "<cmd>Telescope keymaps<cr>", { desc = "Keymaps" }) +vim.keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<cr>", { desc = " Find existing buffers" }) +vim.keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = " Find existing buffers" }) +vim.keymap.set("n", "<leader>fn", function() + require("telescope.builtin").find_files { cwd = vim.fn.stdpath "config" } +end, { desc = "Neovim files" }) + +-- Neogen +vim.keymap.set("n", "<leader>o", "<cmd>Neogen<cr>", { desc = "Gen current item's doc", silent = true }) + +-- LSP +local lsp = function(bufnr) + local bufopts = function(desc) + return { noremap = true, silent = true, buffer = bufnr, desc = desc } + end + vim.keymap.set("n", "<leader>lt", vim.lsp.buf.type_definition, bufopts "Go to type definition") + vim.keymap.set("n", "<leader>la", vim.lsp.buf.format, bufopts "Format") + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts "Goto declaration") + vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts "Goto definition") +end + +-- Neogit +vim.keymap.set("n", "<leader>gg", "<cmd>Neogit<cr>", { desc = "Neogit" }) + +-- GitSigns +local gitsigns = function(bufnr) + local gitsigns = require "gitsigns" + + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + -- Navigation + map("n", "]c", function() + if vim.wo.diff then + vim.cmd.normal { "]c", bang = true } + else + gitsigns.nav_hunk "next" + end + end) + + map("n", "[c", function() + if vim.wo.diff then + vim.cmd.normal { "[c", bang = true } + else + gitsigns.nav_hunk "prev" + end + end) + + -- Actions + map("n", "<leader>gs", gitsigns.stage_hunk, { desc = "Stage hunk" }) + map("n", "<leader>gr", gitsigns.reset_hunk, { desc = "Reset hunk" }) + map("v", "<leader>gs", function() + gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" } + end, { desc = "Stage hunk" }) + + map("v", "<leader>gr", function() + gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" } + end, { desc = "Reset hunk" }) + + map("n", "<leader>gS", gitsigns.stage_buffer, { desc = "Stage buffer" }) + map("n", "<leader>gR", gitsigns.reset_buffer, { desc = "Reset buffer" }) + map("n", "<leader>gp", gitsigns.preview_hunk, { desc = "Preview hunk" }) + map("n", "<leader>gi", gitsigns.preview_hunk_inline, { desc = "Preview hunk inline" }) + + map("n", "<leader>gb", function() + gitsigns.blame_line { full = true } + end, { desc = "Blame line full" }) + + map("n", "<leader>gd", gitsigns.diffthis, { desc = "Diff" }) + + map("n", "<leader>gD", function() + gitsigns.diffthis "~" + end, { desc = "Diff ~" }) + + map("n", "<leader>gQ", function() + gitsigns.setqflist "all" + end, { desc = "Setqflist all" }) + map("n", "<leader>gq", gitsigns.setqflist, { desc = "Setqflist" }) + + -- Toggles + map("n", "<leader>tgb", gitsigns.toggle_current_line_blame, { desc = "Toggle current line blame" }) + map("n", "<leader>tgw", gitsigns.toggle_word_diff, { desc = "Toggle word diff" }) + map("n", "<leader>tgs", gitsigns.toggle_signs, { desc = "Toggle signs" }) + + -- Text object + map({ "o", "x" }, "ih", gitsigns.select_hunk, { desc = "Select hunk" }) +end + +-- DAP +vim.keymap.set("n", "<Leader>db", function() + require("dap").toggle_breakpoint() +end, { desc = "Toggle breakpoint", silent = true }) +vim.keymap.set("n", "<Leader>dc", function() + require("dap").continue() +end, { desc = "Continue", silent = true }) +vim.keymap.set("n", "<Leader>du", function() + require("dapui").toggle() +end, { desc = "Toggle DAP UI", silent = true }) +vim.keymap.set("n", "<Leader>dn", function() + require("dap").step_into() +end, { desc = "Step into" }) +vim.keymap.set("n", "<Leader>dN", function() + require("dap").step_over() +end, { desc = "Step over" }) +vim.keymap.set("n", "<Leader>dp", function() + require("dap").step_out() +end, { desc = "Step out" }) +vim.keymap.set("n", "<Leader>dK", function() + require("dap.ui.widgets").hover() +end, { desc = "hover" }) + +-- Toggle UI +local toggle = function(obj) + return function() + obj.enable(not obj.is_enabled()) + end +end + +vim.keymap.set("n", "<leader>th", toggle(vim.lsp.inlay_hint), { desc = "Inlay hints" }) +vim.keymap.set("n", "<leader>td", toggle(vim.diagnostic), { desc = "Diagnostics" }) +vim.keymap.set("n", "<leader>tn", function() + vim.opt.relativenumber = not vim.o.rnu + vim.opt.number = not vim.o.nu +end, { desc = "Number" }) +vim.keymap.set("n", "<leader>ts", function() + vim.opt.spell = not vim.o.spell +end, { desc = "Spelling" }) + +return { gitsigns = gitsigns, lsp = lsp } diff --git a/nvim/.config/nvim/lua/lsp.lua b/nvim/.config/nvim/lua/lsp.lua new file mode 100755 index 0000000..6f32cbd --- /dev/null +++ b/nvim/.config/nvim/lua/lsp.lua @@ -0,0 +1,16 @@ +vim.lsp.config("*", { root_markers = { ".git" } }) + +vim.lsp.enable { "clangd", "lua_ls", "marksman", "bashls", "cmake" } + +-- Probably I don't need this :\ +vim.api.nvim_create_autocmd("LspAttach", { + callback = function(ev) + local client = vim.lsp.get_client_by_id(ev.data.client_id) + + if client and client:supports_method "textDocument/completion" then + vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true }) + end + + require("keymaps").lsp(ev.buf) + end, +}) diff --git a/nvim/.config/nvim/lua/options.lua b/nvim/.config/nvim/lua/options.lua new file mode 100755 index 0000000..488e702 --- /dev/null +++ b/nvim/.config/nvim/lua/options.lua @@ -0,0 +1,49 @@ +vim.opt.number = true +vim.opt.relativenumber = true + +vim.opt.mouse = "a" + +vim.opt.clipboard = "unnamedplus" -- Sync clipboard between OS and Neovim. + +vim.opt.breakindent = true -- Enable break indent + +vim.opt.undofile = true -- Save undo history + +vim.opt.ignorecase = true -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term +vim.opt.smartcase = true + +vim.opt.signcolumn = "yes" -- Keep signcolumn on by default + +vim.opt.updatetime = 250 -- Decrease update time + +vim.opt.timeoutlen = 300 -- Decrease mapped sequence wait time + +vim.opt.splitright = true -- Configure how new splits should be opened +vim.opt.splitbelow = true + +vim.opt.list = true -- Sets how neovim will display certain whitespace characters in the editor. +vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" } + +-- vim.opt.inccommand = "split" -- Preview substitutions live + +vim.opt.cursorline = true -- Show which line your cursor is on + +vim.opt.scrolloff = 10 -- Minimal number of screen lines to keep above and below the cursor. +vim.opt.sidescrolloff = 5 + +vim.opt.hlsearch = true -- Set highlight on search +vim.opt.incsearch = true + +vim.opt.laststatus = 3 + +vim.opt.completeopt = { "menu", "menuone", "noselect" } +vim.opt.shortmess:append "c" + +vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" + +vim.diagnostic.config { virtual_text = true, virtual_line = false } + +vim.opt.spell = true +vim.opt.spelllang = "en,ru_yo" + +vim.opt.background = "dark" diff --git a/nvim/.config/nvim/lua/plugins/auto-session.lua b/nvim/.config/nvim/lua/plugins/auto-session.lua new file mode 100644 index 0000000..a8074a8 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/auto-session.lua @@ -0,0 +1,3 @@ +require("auto-session").setup { + suppressed_dirs = { "~/", "~/Downloads", "/" }, +} diff --git a/nvim/.config/nvim/lua/plugins/clangd_extensions.lua b/nvim/.config/nvim/lua/plugins/clangd_extensions.lua new file mode 100644 index 0000000..8eafd34 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/clangd_extensions.lua @@ -0,0 +1,33 @@ +require("clangd_extensions").setup { + ast = { + -- requires vscode fonticons + role_icons = { + type = "", + declaration = "", + expression = "", + specifier = "", + statement = "", + ["template argument"] = "", + }, + + kind_icons = { + Compound = "", + Recovery = "", + TranslationUnit = "", + PackExpansion = "", + TemplateTypeParm = "", + TemplateTemplateParm = "", + TemplateParamObject = "", + }, + + highlights = { + detail = "Comment", + }, + }, + memory_usage = { + border = "none", + }, + symbol_info = { + border = "none", + }, +} diff --git a/nvim/.config/nvim/lua/plugins/cmake.lua b/nvim/.config/nvim/lua/plugins/cmake.lua new file mode 100755 index 0000000..190b729 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/cmake.lua @@ -0,0 +1,17 @@ +-- if vim.loop.os_uname().sysname ~= "Darwin" then +-- return { +-- "daniilrozanov/cmake.nvim", +-- lazy = false, +-- config = function() +-- require "custom.cmake" +-- end, +-- } +-- else +-- return { +-- dir = "~/repositories/cmake.nvim", +-- lazy = false, +-- config = function() +-- require "custom.cmake" +-- end, +-- } +-- end diff --git a/nvim/.config/nvim/lua/plugins/comment.lua b/nvim/.config/nvim/lua/plugins/comment.lua new file mode 100755 index 0000000..91f5899 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/comment.lua @@ -0,0 +1,3 @@ +require("Comment").setup { + ignore = "^$", +} diff --git a/nvim/.config/nvim/lua/plugins/conform.lua b/nvim/.config/nvim/lua/plugins/conform.lua new file mode 100755 index 0000000..83fd33d --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/conform.lua @@ -0,0 +1,17 @@ +vim.api.nvim_create_autocmd("BufWritePre", { + callback = function(args) + require("conform").format { + bufnr = args.buf, + lsp_fallback = true, + quiet = true, + } + end, +}) + +require("conform").setup { + formatters_by_ft = { + lua = { "stylua" }, + cpp = { "clang-format" }, + c = { "clang-format" }, + }, +} diff --git a/nvim/.config/nvim/lua/plugins/gitsigns.lua b/nvim/.config/nvim/lua/plugins/gitsigns.lua new file mode 100755 index 0000000..7c91dbe --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/gitsigns.lua @@ -0,0 +1,21 @@ +require("gitsigns").setup { + signs = { + add = { text = "┃" }, + change = { text = "┃" }, + delete = { text = "_" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + untracked = { text = "┆" }, + }, + signs_staged = { + add = { text = "┃" }, + change = { text = "┃" }, + delete = { text = "_" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + untracked = { text = "┆" }, + }, + on_attach = function(bufnr) + require("keymaps").gitsigns(bufnr) + end, +} diff --git a/nvim/.config/nvim/lua/plugins/harpoon.lua b/nvim/.config/nvim/lua/plugins/harpoon.lua new file mode 100755 index 0000000..dcf3ee2 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/harpoon.lua @@ -0,0 +1,25 @@ +-- local harpoon = require "harpoon" +-- harpoon:setup() +-- +-- vim.keymap.set("n", "<leader>a", function() +-- harpoon:list():add() +-- end, { desc = "Add buffer to harpoon" }) +-- +-- vim.keymap.set("n", "<leader><leader>", function() +-- harpoon.ui:toggle_quick_menu(harpoon:list()) +-- end, { desc = "Toggle harpoon menu" }) +-- +-- vim.keymap.set("n", "<c-n>", function() +-- require("harpoon"):list():next() +-- end, { desc = "Goto next harpooned" }) +-- +-- vim.keymap.set("n", "<c-p>", function() +-- require("harpoon"):list():prev() +-- end, { desc = "Goto prev harpooned" }) +-- +-- -- Set <space>1..<space>5 be my shortcuts to moving to the files +-- for _, idx in ipairs { 1, 2, 3, 4, 5 } do +-- vim.keymap.set("n", string.format("<leader>%d", idx), function() +-- harpoon:list():select(idx) +-- end, { desc = string.format("Goto %d harpooned", idx) }) +-- end diff --git a/nvim/.config/nvim/lua/plugins/lazydev.lua b/nvim/.config/nvim/lua/plugins/lazydev.lua new file mode 100755 index 0000000..0dfa477 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/lazydev.lua @@ -0,0 +1,6 @@ +require("lazydev").setup { + library = { + -- Load luvit types when the `vim.uv` word is found + { path = "${3rd}/luv/library", words = { "vim%.uv" } }, + }, +} diff --git a/nvim/.config/nvim/lua/plugins/leap.lua b/nvim/.config/nvim/lua/plugins/leap.lua new file mode 100755 index 0000000..c624d83 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/leap.lua @@ -0,0 +1,7 @@ +require("leap").setup {} + +-- Exclude whitespace and the middle of alphabetic words from preview +require("leap").opts.preview_filter = function(ch0, ch1, ch2) + return not (ch1:match "%s" or ch0:match "%a" and ch1:match "%a" and ch2:match "%a") +end +require("leap").opts.equivalence_classes = { " \t\r\n", "([{", ")]}", "'\"`" } diff --git a/nvim/.config/nvim/lua/plugins/leetcode.lua b/nvim/.config/nvim/lua/plugins/leetcode.lua new file mode 100644 index 0000000..1c6d550 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/leetcode.lua @@ -0,0 +1 @@ +require("leetcode").setup {} diff --git a/nvim/.config/nvim/lua/plugins/lualine.lua b/nvim/.config/nvim/lua/plugins/lualine.lua new file mode 100755 index 0000000..c200066 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/lualine.lua @@ -0,0 +1 @@ +require("lualine").setup {} diff --git a/nvim/.config/nvim/lua/plugins/neorg.lua b/nvim/.config/nvim/lua/plugins/neorg.lua new file mode 100755 index 0000000..eeede50 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/neorg.lua @@ -0,0 +1,22 @@ +require("neorg").setup { + load = { + ["core.defaults"] = {}, + ["core.ui"] = {}, + ["core.summary"] = {}, + ["core.autocommands"] = {}, + ["core.highlights"] = {}, + ["core.integrations.treesitter"] = {}, + ["core.neorgcmd"] = {}, + ["core.concealer"] = {}, + ["core.latex.renderer"] = {}, + ["core.qol.toc"] = {}, + ["core.dirman"] = { + config = { + workspaces = { + notes = "~/notes", + }, + default_workspace = "notes", + }, + }, + }, +} diff --git a/nvim/.config/nvim/lua/plugins/oil.lua b/nvim/.config/nvim/lua/plugins/oil.lua new file mode 100644 index 0000000..40bdc44 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/oil.lua @@ -0,0 +1,21 @@ +require("oil").setup { + keymaps = { + ["g?"] = { "actions.show_help", mode = "n" }, + ["<CR>"] = "actions.select", + ["<C-v>"] = { "actions.select", opts = { vertical = true } }, + ["<C-s>"] = { "actions.select", opts = { horizontal = true } }, + ["<C-t>"] = { "actions.select", opts = { tab = true } }, + ["<C-p>"] = "actions.preview", + ["<C-c>"] = { "actions.close", mode = "n" }, + ["<C-m>"] = "actions.refresh", + ["-"] = { "actions.parent", mode = "n" }, + ["_"] = { "actions.open_cwd", mode = "n" }, + ["`"] = { "actions.cd", mode = "n" }, + ["~"] = { "actions.cd", opts = { scope = "tab" }, mode = "n" }, + ["gs"] = { "actions.change_sort", mode = "n" }, + ["gx"] = "actions.open_external", + ["g."] = { "actions.toggle_hidden", mode = "n" }, + ["g\\"] = { "actions.toggle_trash", mode = "n" }, + }, + use_default_keymaps = false, +} diff --git a/nvim/.config/nvim/lua/custom/mini.lua b/nvim/.config/nvim/lua/plugins/rest.lua index e69de29..e69de29 100644 --- a/nvim/.config/nvim/lua/custom/mini.lua +++ b/nvim/.config/nvim/lua/plugins/rest.lua diff --git a/nvim/.config/nvim/lua/custom/plugins/textcase.lua b/nvim/.config/nvim/lua/plugins/textcase.lua index e335b38..e335b38 100644..100755 --- a/nvim/.config/nvim/lua/custom/plugins/textcase.lua +++ b/nvim/.config/nvim/lua/plugins/textcase.lua diff --git a/nvim/.config/nvim/lua/plugins/todo-comments.lua b/nvim/.config/nvim/lua/plugins/todo-comments.lua new file mode 100755 index 0000000..18dc91c --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/todo-comments.lua @@ -0,0 +1 @@ +require("todo-comments").setup { signs = false } diff --git a/nvim/.config/nvim/lua/plugins/toggleterm.lua b/nvim/.config/nvim/lua/plugins/toggleterm.lua new file mode 100755 index 0000000..08ea37c --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/toggleterm.lua @@ -0,0 +1,21 @@ +require("toggleterm").setup { + size = function(term) + if term.direction == "horizontal" then + return 15 + elseif term.direction == "vertical" then + return vim.o.columns * 0.33 + end + end, +} + +local Terminal = require("toggleterm.terminal").Terminal +local on_open = function(_) + vim.cmd "startinsert!" +end +local on_close = function(_) + vim.cmd "startinsert!" +end + +vim.keymap.set("n", "<leader>tt", function() + Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "float") +end) diff --git a/nvim/.config/nvim/lua/plugins/treesitter-textobjects.lua b/nvim/.config/nvim/lua/plugins/treesitter-textobjects.lua new file mode 100755 index 0000000..6d6b33d --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/treesitter-textobjects.lua @@ -0,0 +1,11 @@ +require("nvim-treesitter-textobjects").setup { + select = { + lookahead = true, + selection_modes = { + ["@parameter.outer"] = "v", -- charwise + ["@function.outer"] = "v", -- charwise (V for linevise) + ["@class.outer"] = "<c-v>", -- blockwise + }, + include_surrounding_whitespace = true, + }, +} diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua new file mode 100755 index 0000000..c0ee7bf --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,4 @@ +require("nvim-treesitter.configs").setup { + highlight = { enable = true }, + indent = { enable = true }, +} diff --git a/nvim/.config/nvim/lua/plugins/which-key.lua b/nvim/.config/nvim/lua/plugins/which-key.lua new file mode 100755 index 0000000..df9ca9d --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/which-key.lua @@ -0,0 +1,13 @@ +local wk = require "which-key" + +wk.setup {} + +wk.add { + { "<leader><tab>", group = "Tab pages" }, + { "<leader>f", group = "Find" }, + { "<leader>g", group = "Git" }, + { "<leader>l", group = "LSP" }, + { "<leader>t", group = "Toggle" }, + { "<leader>tg", group = "Gitsigns" }, + { "<leader>d", group = "DAP" }, +} diff --git a/nvim/.config/nvim/lua/plugins/zen-mode.lua b/nvim/.config/nvim/lua/plugins/zen-mode.lua new file mode 100644 index 0000000..1fee333 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/zen-mode.lua @@ -0,0 +1,3 @@ +zen = require "zen-mode" + +zen.setup {} diff --git a/nvim/.config/nvim/lua/rocks-setup.lua b/nvim/.config/nvim/lua/rocks-setup.lua new file mode 100644 index 0000000..84a0adf --- /dev/null +++ b/nvim/.config/nvim/lua/rocks-setup.lua @@ -0,0 +1,24 @@ +local rocks_config = { + rocks_path = vim.env.HOME .. "/.local/share/nvim/rocks", +} + +vim.g.rocks_nvim = rocks_config + +local luarocks_path = { + vim.fs.joinpath(rocks_config.rocks_path, "share", "lua", "5.1", "?.lua"), + vim.fs.joinpath(rocks_config.rocks_path, "share", "lua", "5.1", "?", "init.lua"), +} +package.path = package.path .. ";" .. table.concat(luarocks_path, ";") + +local luarocks_cpath = { + vim.fs.joinpath(rocks_config.rocks_path, "lib", "lua", "5.1", "?.so"), + vim.fs.joinpath(rocks_config.rocks_path, "lib64", "lua", "5.1", "?.so"), + -- Remove the dylib and dll paths if you do not need macos or windows support + vim.fs.joinpath(rocks_config.rocks_path, "lib", "lua", "5.1", "?.dylib"), + vim.fs.joinpath(rocks_config.rocks_path, "lib64", "lua", "5.1", "?.dylib"), + vim.fs.joinpath(rocks_config.rocks_path, "lib", "lua", "5.1", "?.dll"), + vim.fs.joinpath(rocks_config.rocks_path, "lib64", "lua", "5.1", "?.dll"), +} +package.cpath = package.cpath .. ";" .. table.concat(luarocks_cpath, ";") + +vim.opt.runtimepath:append(vim.fs.joinpath(rocks_config.rocks_path, "lib", "luarocks", "rocks-5.1", "*", "*")) diff --git a/nvim/.config/nvim/plugin/keymaps.lua b/nvim/.config/nvim/plugin/keymaps.lua deleted file mode 100644 index 48fff51..0000000 --- a/nvim/.config/nvim/plugin/keymaps.lua +++ /dev/null @@ -1,60 +0,0 @@ -local set = vim.keymap.set - -set("n", "<leader>w", "<cmd>w<cr>", { desc = "Write buffer" }) - -set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" }) - --- execute current file. TODO: think this can be smarter -set("n", "<leader>r", '<cmd>!"%:p"<cr>') - --- ui navigation -set("n", "<m-j>", "<c-w><c-j>") -set("n", "<m-k>", "<c-w><c-k>") -set("n", "<m-l>", "<c-w><c-l>") -set("n", "<m-h>", "<c-w><c-h>") - -set("n", "<m-<>", "<c-w>5<") -set("n", "<m->>", "<c-w>5>") -set("n", "<m-+>", "<c-w>4+") -set("n", "<m-->", "<c-w>4-") - -set("n", "<m-v>", "<cmd>vsplit<cr>") -set("n", "<m-s>", "<cmd>split<cr>") - -set("n", "<m-q>", "<cmd>q<cr>", { desc = "Quit window" }) - -set("n", "<m-t>", "<cmd>tabnew<cr>", { desc = "New Tab" }) -set("n", "<s-m-t>", "<cmd>tabclose<cr>", { desc = "Close Tab" }) -set("n", "<m-n>", "<cmd>tabnext<cr>", { desc = "Next Tab" }) -set("n", "<m-p>", "<cmd>tabprevious<cr>", { desc = "Previous Tab" }) - --- Toggle hlsearch if it's on, otherwise just do "enter" -set("n", "<cr>", function() - ---@diagnostic disable-next-line: undefined-field - if vim.opt.hlsearch:get() then - vim.cmd.nohl() - return "" - else - return "<cr>" - end -end, { expr = true }) - --- useful for indent text -set("v", ">", ">gv") -set("v", "<", "<gv") - ---swap lines -set("n", "<c-j>", function() - if vim.opt.diff:get() then - vim.cmd [[normal! ]c]] - else - vim.cmd [[m .+1<CR>==]] - end -end) -set("n", "<c-k>", function() - if vim.opt.diff:get() then - vim.cmd [[normal! [c]] - else - vim.cmd [[m .-2<cr>==]] - end -end) diff --git a/nvim/.config/nvim/plugin/netrw.lua b/nvim/.config/nvim/plugin/netrw.lua deleted file mode 100644 index e69de29..0000000 --- a/nvim/.config/nvim/plugin/netrw.lua +++ /dev/null diff --git a/nvim/.config/nvim/plugin/options.lua b/nvim/.config/nvim/plugin/options.lua deleted file mode 100644 index cc3016c..0000000 --- a/nvim/.config/nvim/plugin/options.lua +++ /dev/null @@ -1,41 +0,0 @@ -local opt = vim.opt - -opt.number = true -opt.relativenumber = true - -opt.mouse = "a" - -opt.clipboard = "unnamedplus" -- Sync clipboard between OS and Neovim. - -opt.breakindent = true -- Enable break indent - -opt.undofile = true -- Save undo history - -opt.ignorecase = true -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term -opt.smartcase = true - -opt.signcolumn = "yes" -- Keep signcolumn on by default - -opt.updatetime = 250 -- Decrease update time - -opt.timeoutlen = 300 -- Decrease mapped sequence wait time - -opt.splitright = true -- Configure how new splits should be opened -opt.splitbelow = true - -opt.list = true -- Sets how neovim will display certain whitespace characters in the editor. -opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" } - --- opt.inccommand = "split" -- Preview substitutions live - -opt.cursorline = true -- Show which line your cursor is on - -opt.scrolloff = 10 -- Minimal number of screen lines to keep above and below the cursor. -opt.sidescrolloff = 5 - -opt.hlsearch = true -- Set highlight on search -opt.incsearch = true - -opt.background = "dark" - -opt.laststatus = 3 diff --git a/nvim/.config/nvim/plugin/terminal.lua b/nvim/.config/nvim/plugin/terminal.lua deleted file mode 100644 index 0249feb..0000000 --- a/nvim/.config/nvim/plugin/terminal.lua +++ /dev/null @@ -1,14 +0,0 @@ -local opt = vim.opt_local - --- Set local settings for terminal buffers -vim.api.nvim_create_autocmd("TermOpen", { - group = vim.api.nvim_create_augroup("custom-term-open", {}), - callback = function() - opt.number = false - opt.relativenumber = false - opt.scrolloff = 0 - end, -}) - --- Easily hit escape in terminal mode. -vim.keymap.set("t", "<esc><esc>", "<c-\\><c-n>") diff --git a/nvim/.config/nvim/rocks.toml b/nvim/.config/nvim/rocks.toml new file mode 100644 index 0000000..2c4a529 --- /dev/null +++ b/nvim/.config/nvim/rocks.toml @@ -0,0 +1,148 @@ +[rocks] + +[config] +auto_setup = true + +[plugins] +"rocks.nvim" = "2.45.0" +"rocks-git.nvim" = "2.5.3" +"rocks-config.nvim" = "3.1.1" +"rocks-lazy.nvim" = "1.2.0" +"rocks-dev.nvim" = "1.8.0" +"nightfox.nvim" = "3.10.0" +"gruvbox.nvim" = "2.0.0" +"kanagawa.nvim" = "scm" +"2048.nvim" = "2.8.2" +"auto-hlsearch.nvim" = { version = "1.1.0", event = "CmdlineEnter" } +"better-escape.nvim" = "2.3.3" +"cellular-automaton.nvim" = "scm" +"clangd_extensions.nvim" = "scm" +"comment.nvim" = "0.8.0" +"conform.nvim" = "9.0.0" +"diffview.nvim" = "scm" +"gitsigns.nvim" = "1.0.2" +"lazydev.nvim" = { version = "1.9.0", ft = "lua" } +"leap.nvim" = "scm" +"lspkind.nvim" = "scm" +"lualine.nvim" = "scm" +"lush.nvim" = "scm" +"oil.nvim" = "2.15.0" +"repeat.vim" = "1.2" +"rest.nvim" = "3.13.0" +"substitute.nvim" = "2.0.0" +"telescope-ui-select.nvim" = "scm" +"telescope.nvim" = "scm" +"todo-comments.nvim" = "1.4.0" +"toggleterm.nvim" = "2.13.1" +"which-key.nvim" = "3.17.0" +"zen-mode.nvim" = "1.4.0" +auto-session = "2.5.1" +cmp-buffer = "scm" +cmp-cmdline = "scm" +cmp-git = "scm" +cmp-nvim-lsp = "scm" +cmp-path = "scm" +cmp_luasnip = "scm" +friendly-snippets = "scm" +harpoon = "scm" +luasnip = "2.4.0" +neogen = "2.20.0" +neogit = "2.0.0" +neorg = "9.3.0" +neorg-conceal-wrap = "1.0.1" +nvim-autopairs = "scm" +nvim-bqf = { version = "1.1.1", ft = "qf" } +nvim-cmp = "scm" +nvim-dap = "0.10.0" +nvim-dap-ui = "4.0.0" +nvim-dap-virtual-text = "scm" +nvim-treesitter-textobjects = "scm" +nvim-web-devicons = "0.100" +vim-startuptime = "4.5.0" +# "markview.nvim"= "25.9.0" # fancy preview + +# Treesitter parsers +tree-sitter-bash = "scm" +tree-sitter-c = "scm" +tree-sitter-cmake = "scm" +tree-sitter-comment = "0.0.31" +tree-sitter-cpp = "scm" +tree-sitter-css = "0.0.38" +tree-sitter-diff = "scm" +tree-sitter-ecma = "0.0.30" +tree-sitter-gnuplot = "0.0.30" +tree-sitter-html = "0.0.36" +tree-sitter-http = "scm" +tree-sitter-jsdoc = "0.0.35" +tree-sitter-json = "0.0.36" +tree-sitter-latex = "0.0.35" +tree-sitter-lua = "0.0.35" +tree-sitter-luadoc = "0.0.29" +tree-sitter-make = "0.0.30" +tree-sitter-markdown_inline = "0.0.42" +tree-sitter-nix = "0.0.59" +tree-sitter-query = "scm" +tree-sitter-scheme = "0.0.35" +tree-sitter-sql = "0.0.41" +tree-sitter-toml = "0.0.31" +tree-sitter-vim = "0.0.34" +tree-sitter-vimdoc = "0.0.34" +tree-sitter-xml = "scm" +tree-sitter-yaml = "0.0.36" + +[plugins.vim-cool] +git = "romainl/vim-cool" +rev = "9ea940c0d537e55de0de4c0298c04b976960fb12" + +[plugins.nvim-treesitter] +git = "nvim-treesitter/nvim-treesitter" +rev = "v0.10.0" +branch = "main" + +[plugins."poimandres.nvim"] +git = "olivercederborg/poimandres.nvim" +rev = "v0.6.0" + +[plugins."nvim-surround"] +git = "kylechui/nvim-surround" +rev = "v3.1.2" + +[plugins."sort.nvim"] +git = "sQVe/sort.nvim" +rev = "c789da6968337d2a61104a929880b5f144e02855" + +[plugins."zenbones.nvim"] +git = "zenbones-theme/zenbones.nvim" +rev = "v4.8.0" + +[plugins."image.nvim"] +git = "3rd/image.nvim" + +[bundles.telescope] +items = [ + "telescope.nvim", + "telescope-ui-select.nvim" +] +config = "bundles.telescope" + +[bundles.cmp] +items = [ + "lspkind.nvim", + "nvim-cmp", + "cmp-buffer", + "cmp-cmdline", + "cmp-nvim-lsp", + "cmp-path", + "cmp_luasnip", + "friendly-snippets", + "luasnip", + ] + config = "bundles.cmp" + +[bundles.colorscheme] +items = [ +"nightfox.nvim", +"gruvbox.nvim", +"kanagawa.nvim", +] +config = "bundles.colorscheme" diff --git a/nvim/.config/nvim/spell/en.utf-8.add b/nvim/.config/nvim/spell/en.utf-8.add new file mode 100644 index 0000000..063d3ce --- /dev/null +++ b/nvim/.config/nvim/spell/en.utf-8.add @@ -0,0 +1,28 @@ +Treesitter +DAP +LSP +Neogen +Neogit +GitSigns +деструктора +отнаследоваться +имплементацию +деструктор +STL +multimap +hashmap +Многопоточность +многопоточности +мьютексом +mutex +сокет +сокетом +OSI +подсети +Метапрограммирование +инстанцирование +имплементации +LLVM +контрвариантные +treesitter +CMake diff --git a/nvim/.config/nvim/spell/en.utf-8.add.spl b/nvim/.config/nvim/spell/en.utf-8.add.spl Binary files differnew file mode 100644 index 0000000..7eef4d5 --- /dev/null +++ b/nvim/.config/nvim/spell/en.utf-8.add.spl diff --git a/nvim/.config/nvim/spell/ru.utf-8.spl b/nvim/.config/nvim/spell/ru.utf-8.spl Binary files differnew file mode 100644 index 0000000..43d0e4b --- /dev/null +++ b/nvim/.config/nvim/spell/ru.utf-8.spl diff --git a/nvim/.config/nvim/spell/ru.utf-8.sug b/nvim/.config/nvim/spell/ru.utf-8.sug Binary files differnew file mode 100644 index 0000000..b418a0d --- /dev/null +++ b/nvim/.config/nvim/spell/ru.utf-8.sug diff --git a/nvim/.config/nvim/stylua.toml b/nvim/.config/nvim/stylua.toml index 364ef9c..364ef9c 100644..100755 --- a/nvim/.config/nvim/stylua.toml +++ b/nvim/.config/nvim/stylua.toml diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi new file mode 100644 index 0000000..f035020 --- /dev/null +++ b/rofi/.config/rofi/config.rasi @@ -0,0 +1 @@ +@theme "spotlight-dark" diff --git a/stylua/stylua.toml b/stylua/stylua.toml index 364ef9c..364ef9c 100644..100755 --- a/stylua/stylua.toml +++ b/stylua/stylua.toml diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf deleted file mode 100644 index 8fec4b2..0000000 --- a/tmux/.tmux.conf +++ /dev/null @@ -1,91 +0,0 @@ -# Keybindings -setw -g mode-keys vi -bind-key k select-pane -U -bind-key j select-pane -D -bind-key h select-pane -L -bind-key l select-pane -R -bind-key M-k resize-pane -U 5 -bind-key M-j resize-pane -D 5 -bind-key M-h resize-pane -L 5 -bind-key M-l resize-pane -R 5 -bind 'v' copy-mode - - -unbind '"' -unbind % -bind-key "\\" split-window -h -c "#{pane_current_path}" -bind-key "|" split-window -fh -c "#{pane_current_path}" -bind-key "-" split-window -v -c "#{pane_current_path}" -bind-key "_" split-window -fv -c "#{pane_current_path}" - -unbind c -bind c new-window -c "#{pane_current_path}" - -unbind r -bind r source-file $HOME/.tmux.conf - -set -g prefix C-s - -# start window numbers at 1 to match keyboard order with tmux window order -set -g base-index 1 -set-window-option -g pane-base-index 1 - -# renumber windows sequentially after closing any of them -set -g renumber-windows on - -# remove administrative debris (session name, hostname, time) in status bar -set -g status-left '' -set -g status-right '' - -# increase scrollback lines -set -g history-limit 50000 - -# don't suspend-client -unbind-key C-z - - -# Style - -# Dark grey background -set -g default-terminal "screen-256color" -set -ag terminal-overrides ",xterm-256color:Tc" - -# Pane border -set -g pane-border-style fg=cyan -set -g pane-active-border-style fg=green - -# Status bar -set -g status-style bg=black,fg=yellow -set -g window-status-style fg=green,bold - -# Message/input -set -g message-style bg=black,fg=white - -# Pane text -set -g pane-border-style fg=white - - -# Plugins -set-environment -g TMUX_PLUGIN_MANAGER_PATH $XDG_DATA_HOME/tmux/plugins/ - -# List of plugins -set -g @plugin 'tmux-plugins/tpm' -set -g @plugin 'tmux-plugins/tmux-sensible' -set -g @plugin 'tmux-plugins/tmux-yank' - -set -g @plugin 'tmux-plugins/tmux-resurrect' -set -g @plugin 'tmux-plugins/tmux-continuum' -set -g @plugin 'tmux-plugins/tmux-sessionist' - -# restore: neovim session, automatic -set -g @resurrect-strategy-nvim 'session' -set -g @resurrect-capture-pane-contents 'on' -set -g @continuum-restore 'on' -set -g @continuum-save-interval '5' - -run $XDG_DATA_HOME'/tmux/plugins/tpm/tpm' -run-shell $XDG_DATA_HOME'/tmux/plugins/tmux-continuum/continuum.tmux' -run-shell $XDG_DATA_HOME'/tmux/plugins/tmux-sessionist/sessionist.tmux' -run-shell $XDG_DATA_HOME'/tmux/plugins/tmux-resurrect/resurrect.tmux' - - diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc new file mode 100755 index 0000000..7020d51 --- /dev/null +++ b/waybar/.config/waybar/config.jsonc @@ -0,0 +1,41 @@ +{ + "reload_style_on_change" : true, + "position": "top", + "height" : 32, + "modules-left": ["hyprland/workspaces"], + "modules-right": ["network", "wireplumber", "backlight", "battery", "clock"], + "clock": { + "format": "<span foreground='#f5c2e7'> </span>{:%a %d %H:%M}" + }, + "battery": { + "states": { + "warning": 30, + "critical": 15 + }, + "format": "<span foreground='#a6e3a1'>{icon} </span> {capacity}%", + "format-warning": "<span foreground='#B1E3AD'>{icon} </span> {capacity}%", + "format-critical": "<span foreground='#E38C8F'>{icon} </span> {capacity}%", + "format-charging": "<span foreground='#B1E3AD'> </span>{capacity}%", + "format-plugged": "<span foreground='#B1E3AD'> </span>{capacity}%", + "format-icons": ["", "", "", "", ""], + "tooltip-format": "{time}" + }, + "network": { + "format-wifi": " ", + "format-ethernet": "🌐", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": " ", + "tooltip-format-wifi": "{essid}. Signal Strenght: {signalStrength}%" + }, + "wireplumber": { + "format": "{icon} {volume}%", + "format-muted": "🔇", + "format-icons": { + "default": ["🔈", "🔉", "🔊"] + } + }, + "backlight": { + "format": "{icon} {percent}%", + "format-icons": ["🔆"] + } +} diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css new file mode 100755 index 0000000..a1be003 --- /dev/null +++ b/waybar/.config/waybar/style.css @@ -0,0 +1,73 @@ +* { + font-size: 14px; + font-weight: normal; + color: white; +} + +window#waybar { + background: rgba(120, 120, 120, 0.30); +} + +#workspaces { + padding: 2px 0; +} + +#workspaces button { + border: none; + border-radius: 10px; + margin: 0 2px; + padding: 0 6px; +} + +#workspaces button:hover { + background-color: transparent; + background: rgba(120, 120, 120, 0.30); + box-shadow: inherit; + text-shadow: inherit; +} + +#workspaces button.focused { + /*background-color: rgba(0, 0, 0, 0);*/ +} + +#workspaces button.active { + background-color: rgba(0, 0, 0, 0.3); +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + + +#pulseaudio, +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#wireplumber, +#tray, +#network, +#mode, +#scratchpad { + margin-top: 2px; + margin-bottom: 2px; + margin-left: 4px; + margin-right: 4px; + padding-left: 4px; + padding-right: 4px; +} + +#network { + color: #9BC7FF +} + +.modules-left>widget:first-child>#workspaces { + margin-left: 10px; +} + +.modules-right>widget:last-child>#workspaces { + margin-right: 0; +} diff --git a/zsh/.config/zsh/.zprofile b/zsh/.config/zsh/.zprofile index 38df93c..9e5f5fd 100644..100755 --- a/zsh/.config/zsh/.zprofile +++ b/zsh/.config/zsh/.zprofile @@ -4,3 +4,6 @@ export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt # User defaults export EDITOR="nvim" export PAGER="less" + +#CMake +export CMAKE_EXPORT_COMPILE_COMMANDS=1 diff --git a/zsh/.config/zsh/.zshrc b/zsh/.config/zsh/.zshrc index 4b256ce..5c489a7 100644..100755 --- a/zsh/.config/zsh/.zshrc +++ b/zsh/.config/zsh/.zshrc @@ -110,8 +110,8 @@ bindkey '^e' edit-command-line # Aliases alias v=nvim alias ls="ls --color" -alias la="ls -la" -alias c='clear; tmux clear-history' +alias la="ls -lah" +alias c='clear' alias x='source $ZDOTDIR/.zshrc' function fkill () { (date; ps -ef) | @@ -135,19 +135,9 @@ alias gl='git log' alias gsh='git show' alias gsw='git switch' +alias -g L=' | less -R' +alias -g G=' | grep' + # Shell integrations source <(fzf --zsh) - - -# Start tmux - -function start_tmux() { - if type tmux &> /dev/null; then - if [[ -z "$TMUX" && -z $TERMINAL_CONTEXT ]]; then - tmux -2 new-session -A -s home - fi - fi -} - -start_tmux diff --git a/zsh/.config/zsh/functions.zsh b/zsh/.config/zsh/functions.zsh index e854a4a..e854a4a 100644..100755 --- a/zsh/.config/zsh/functions.zsh +++ b/zsh/.config/zsh/functions.zsh diff --git a/zsh/.zshenv b/zsh/.zshenv index b2783f6..d5e9f9a 100644..100755 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,2 +1,17 @@ # ZSH config dir export ZDOTDIR=$HOME/.config/zsh + +# TODO: DELETE THIS AS SOON AS THIS WILL BE UNNECESSARY +# This is just a fix of some gtk bug which stops opening +# transmission, pavucontrol and maybe other +export GSK_RENDERER=ngl + +export XDG_CACHE_HOME=$HOME/.cache +export XDG_CONFIG_HOME=$HOME/.config +export XDG_DATA_HOME=$HOME/.local/share +export XDG_STATE_HOME=$HOME/.local/state + +export PATH="$PATH:$HOME/.local/bin" +export PATH="$PATH:$HOME/.cargo/bin" + +[[ -f "$XDG_CONFIG_HOME/user-dirs.dirs" ]] && . "$XDG_CONFIG_HOME/user-dirs.dirs" |