diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml index 94d41e7..83c40d8 100644 --- a/config/alacritty/alacritty.toml +++ b/config/alacritty/alacritty.toml @@ -1,8 +1,10 @@ +import = ["~/.cache/wal/colors-alacritty.toml"] + [env] TERM = "alacritty" [font] -size = 11.0 +size = 10 [font.glyph_offset] x = 0 diff --git a/config/i3/config b/config/i3/config index d42b48d..79247b9 100644 --- a/config/i3/config +++ b/config/i3/config @@ -54,8 +54,8 @@ new_window pixel 1 # hide_edge_borders both # Set inner/outer gaps -gaps inner 2 -gaps outer 4 +gaps inner 16 +gaps outer 0 # smart gaps smart_gaps on @@ -265,6 +265,7 @@ bindsym $mod+a focus child # open new empty workspace bindsym $mod+Shift+n exec --no-startup-id ~/.config/i3/scripts/empty_workspace +bindsym $mod+Shift+w exec --no-startup-id wal -i /usr/share/endeavouros/backgrounds/eos_wallpapers_community/ # Multimedia Keys # volume @@ -406,7 +407,8 @@ exec --no-startup-id ~/.screenlayout/monitor.sh # set wallpaper # exec --no-startup-id sleep 2 && nitrogen --restore -exec --no-startup-id sleep 1 && feh --bg-fill /usr/share/endeavouros/backgrounds/eos_wallpapers_community/SaturnV-2.png +#exec --no-startup-id sleep 1 && feh --bg-fill /usr/share/endeavouros/backgrounds/eos_wallpapers_community/krimkerre_2_poly.jpg +exec --no-startup-id wal -R # set powersavings for display: exec --no-startup-id xset s 480 dpms 600 600 600 @@ -502,6 +504,8 @@ set $darkgrey #383c4a set $grey #b0b5bd set $mediumgrey #8b8b8b set $yellowbrown #e1b700 +#set_from_resource $bg i3wm.color1 #f0f0f0 +#set_from_resource $fg i3wm.color7 #f0f0f0 # define colors for windows: #class border bground text indicator child_border @@ -533,9 +537,9 @@ strip_workspace_numbers yes ##strip_workspace_name no colors { - separator $purple + separator $fg background $darkgrey - statusline $white + statusline $fg # border bg txt indicator focused_workspace $mediumgrey $grey $darkgrey $purple active_workspace $lightblue $mediumgrey $darkgrey $purple @@ -602,7 +606,7 @@ bindsym $mod+t exec --no-startup-id rofi -show window \ # -config ~/.config/rofi/rofidmenu.rasi # ranger -bindsym $mod+r exec --no-startup-id alacritty -e ranger +bindsym $mod+r exec --no-startup-id $HOME/.config/ranger/ranger-launcher.sh # brave bindsym $mod+b exec --no-startup-id brave diff --git a/config/i3/config_old b/config/i3/config_old deleted file mode 100644 index ea3d5eb..0000000 --- a/config/i3/config_old +++ /dev/null @@ -1,551 +0,0 @@ -# i3 config file (v4) -# Please see http://i3wm.org/docs/userguide.html for a complete reference! - -# Set mod key (Mod1=, Mod4=) -set $mod Mod4 - -# set default desktop layout (default is tiling) -# workspace_layout tabbed - -# Configure border style -default_border pixel 1 -default_floating_border normal - -# Hide borders -hide_edge_borders none - -# change borders -#bindsym $mod+u border none -#bindsym $mod+y border pixel 1 -#bindsym $mod+n border normal - -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. -font xft:URWGothic-Book 11 - -# Use Mouse+$mod to drag floating windows -floating_modifier $mod - -################################################################################################ -## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ## -################################################################################################ - -exec --no-startup-id volumeicon -bindsym $mod+Ctrl+m exec terminal -e 'alsamixer' -#exec --no-startup-id pulseaudio -#exec --no-startup-id pa-applet -#bindsym $mod+Ctrl+m exec pavucontrol - -################################################################################################ - -# Screen brightness controls -# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'" -# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'" - -# Start Applications -bindsym Print exec --no-startup-id i3-scrot -bindsym $mod+Print --release exec --no-startup-id i3-scrot -w -bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s - -focus_follows_mouse no - -# change focus -bindsym $mod+h focus left -bindsym $mod+j focus down -bindsym $mod+k focus up -bindsym $mod+l focus right - -# alternatively, you can use the cursor keys: -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right - -# move focused window -bindsym $mod+Shift+h move left -bindsym $mod+Shift+j move down -bindsym $mod+Shift+k move up -bindsym $mod+Shift+l move right - -# alternatively, you can use the cursor keys: -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up -bindsym $mod+Shift+Right move right - -# workspace back and forth (with/without active container) -workspace_auto_back_and_forth yes -#bindsym $mod+b workspace back_and_forth -#bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth - -# split orientation -bindsym $mod+Ctrl+h split h;exec notify-send 'tile horizontally' -bindsym $mod+Ctrl+v split v;exec notify-send 'tile vertically' -#bindsym $mod+q split toggle - -# toggle fullscreen mode for the focused container -bindsym $mod+f fullscreen toggle - -# change container layout (stacked, tabbed, toggle split) -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split - -# toggle tiling / floating -bindsym $mod+Shift+space floating toggle - -# change focus between tiling / floating windows -bindsym $mod+space focus mode_toggle - -# toggle sticky -bindsym $mod+Shift+s sticky toggle - -# focus the parent container -bindsym $mod+q focus parent -# focus the child container -bindsym $mod+a focus child - -# move the currently focused window to the scratchpad -bindsym $mod+Shift+minus move scratchpad - -# Show the next scratchpad window or hide the focused scratchpad window. -# If there are multiple scratchpad windows, this command cycles through them. -bindsym $mod+minus scratchpad show - -#navigate workspaces next / previous -bindsym $mod+Ctrl+Right workspace next -bindsym $mod+Ctrl+Left workspace prev - -# Workspace names -# to display names or symbols instead of plain workspace numbers you can use -# something like: set $ws1 1:mail -# set $ws2 2: -set $ws1 "1" -set $ws2 "2" -set $ws3 "3" -set $ws4 "4" -set $ws5 "5" -set $ws6 "6" -set $ws7 "7" -set $ws8 "8" -set $ws9 "9" -set $ws0 "10" - -# switch to workspace -bindsym $mod+1 workspace $ws1 -bindsym $mod+2 workspace $ws2 -bindsym $mod+3 workspace $ws3 -bindsym $mod+4 workspace $ws4 -bindsym $mod+5 workspace $ws5 -bindsym $mod+6 workspace $ws6 -bindsym $mod+7 workspace $ws7 -bindsym $mod+8 workspace $ws8 -bindsym $mod+9 workspace $ws9 -bindsym $mod+0 workspace $ws0 - -# Move focused container to workspace -bindsym $mod+Ctrl+1 move container to workspace $ws1 -bindsym $mod+Ctrl+2 move container to workspace $ws2 -bindsym $mod+Ctrl+3 move container to workspace $ws3 -bindsym $mod+Ctrl+4 move container to workspace $ws4 -bindsym $mod+Ctrl+5 move container to workspace $ws5 -bindsym $mod+Ctrl+6 move container to workspace $ws6 -bindsym $mod+Ctrl+7 move container to workspace $ws7 -bindsym $mod+Ctrl+8 move container to workspace $ws8 -bindsym $mod+Ctrl+9 move container to workspace $ws9 -bindsym $mod+Ctrl+0 move container to workspace $ws0 - -# Move to workspace with focused container -bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 -bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 -bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 -bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 -bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 -bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 -bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 -bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 -bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9 -bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0 - -# Open applications on specific workspaces -# assign [class="Thunderbird"] $ws1 -# assign [class="Pale moon"] $ws2 -# assign [class="Pcmanfm"] $ws3 -# assign [class="Skype"] $ws5 - -# Open specific applications in floating mode -for_window [title="alsamixer"] floating enable border pixel 1 -for_window [class="calamares"] floating enable border normal -for_window [class="Clipgrab"] floating enable -for_window [title="File Transfer*"] floating enable -for_window [class="fpakman"] floating enable -for_window [class="Galculator"] floating enable border pixel 1 -for_window [class="GParted"] floating enable border normal -for_window [title="i3_help"] floating enable sticky enable border normal -for_window [class="Lightdm-settings"] floating enable -for_window [class="Lxappearance"] floating enable sticky enable border normal -for_window [class="Manjaro-hello"] floating enable -for_window [class="Manjaro Settings Manager"] floating enable border normal -for_window [title="MuseScore: Play Panel"] floating enable -for_window [class="Nitrogen"] floating enable sticky enable border normal -for_window [class="Oblogout"] fullscreen enable -for_window [class="octopi"] floating enable -for_window [title="About Pale Moon"] floating enable -for_window [class="Pamac-manager"] floating enable -for_window [class="Pavucontrol"] floating enable -for_window [class="qt5ct"] floating enable sticky enable border normal -for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal -for_window [class="Simple-scan"] floating enable border normal -for_window [class="(?i)System-config-printer.py"] floating enable border normal -for_window [class="Skype"] floating enable border normal -for_window [class="Timeset-gui"] floating enable border normal -for_window [class="(?i)virtualbox"] floating enable border normal -for_window [class="Xfburn"] floating enable - -# switch to workspace with urgent window automatically -for_window [urgent=latest] focus - -# reload the configuration file -bindsym $mod+Shift+c reload - -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -bindsym $mod+Shift+r restart - -# exit i3 (logs you out of your X session) -bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" - -# Set shut down, restart and locking features -bindsym $mod+F12 mode "$mode_system" -set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown -mode "$mode_system" { - bindsym l exec --no-startup-id i3exit lock, mode "default" - bindsym s exec --no-startup-id i3exit suspend, mode "default" - bindsym u exec --no-startup-id i3exit switch_user, mode "default" - bindsym e exec --no-startup-id i3exit logout, mode "default" - bindsym h exec --no-startup-id i3exit hibernate, mode "default" - bindsym r exec --no-startup-id i3exit reboot, mode "default" - bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" - - # exit system mode: "Enter" or "Escape" - bindsym Return mode "default" - bindsym Escape mode "default" -} - -# Resize window (you can also use the mouse for that) -#bindsym $mod+r mode "resize" -mode "resize" { - # These bindings trigger as soon as you enter the resize mode - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym j resize shrink width 5 px or 5 ppt - bindsym k resize grow height 5 px or 5 ppt - bindsym l resize shrink height 5 px or 5 ppt - bindsym semicolon resize grow width 5 px or 5 ppt - - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # exit resize mode: Enter or Escape - bindsym Return mode "default" - bindsym Escape mode "default" -} - -# Lock screen -bindsym $mod+Escape exec --no-startup-id blurlock - -# Autostart applications -exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 -exec --no-startup-id nitrogen --restore; sleep 1; picom -b -exec --no-startup-id manjaro-hello -exec --no-startup-id nm-applet -exec --no-startup-id xfce4-power-manager -exec --no-startup-id pamac-tray -exec --no-startup-id clipit -# exec --no-startup-id blueman-applet -# exec_always --no-startup-id sbxkb -exec --no-startup-id start_conky_maia -# exec --no-startup-id start_conky_green -exec --no-startup-id xautolock -time 20 -locker blurlock -exec_always --no-startup-id ff-theme-util -exec_always --no-startup-id fix_xcursor - -# Color palette used for the terminal ( ~/.Xresources file ) -# Colors are gathered based on the documentation: -# https://i3wm.org/docs/userguide.html#xresources -# Change the variable name at the place you want to match the color -# of your terminal like this: -# [example] -# If you want your bar to have the same background color as your -# terminal background change the line 362 from: -# background #14191D -# to: -# background $term_background -# Same logic applied to everything else. -set_from_resource $term_background background -set_from_resource $term_foreground foreground -set_from_resource $term_color0 color0 -set_from_resource $term_color1 color1 -set_from_resource $term_color2 color2 -set_from_resource $term_color3 color3 -set_from_resource $term_color4 color4 -set_from_resource $term_color5 color5 -set_from_resource $term_color6 color6 -set_from_resource $term_color7 color7 -set_from_resource $term_color8 color8 -set_from_resource $term_color9 color9 -set_from_resource $term_color10 color10 -set_from_resource $term_color11 color11 -set_from_resource $term_color12 color12 -set_from_resource $term_color13 color13 -set_from_resource $term_color14 color14 -set_from_resource $term_color15 color15 - -# Start i3bar to display a workspace bar (plus the system information i3status if available) -bar { - i3bar_command i3bar - status_command i3status - position bottom - -## please set your primary output first. Example: 'xrandr --output eDP1 --primary' -# tray_output primary -# tray_output eDP1 - - bindsym button4 nop - bindsym button5 nop -# font xft:URWGothic-Book 11 - strip_workspace_numbers yes - - colors { - background #222D31 - statusline #F9FAF9 - separator #454947 - -# border backgr. text - focused_workspace #F9FAF9 #16a085 #292F34 - active_workspace #595B5B #353836 #FDF6E3 - inactive_workspace #595B5B #222D31 #EEE8D5 - binding_mode #16a085 #2C2C2C #F9FAF9 - urgent_workspace #16a085 #FDF6E3 #E5201D - } -} - -# hide/unhide i3status bar -bindsym $mod+m bar mode toggle - -# Theme colors -# class border backgr. text indic. child_border - client.focused #556064 #556064 #80FFF9 #FDF6E3 - client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948 - client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948 - client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2 - client.placeholder #000000 #0c0c0c #ffffff #000000 - - client.background #2B2C2B - -############################# -### settings for i3-gaps: ### -############################# - -# Set inner/outer gaps -gaps inner 2 -gaps outer 4 - -# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size. -# gaps inner|outer current|all set|plus|minus -# gaps inner all set 10 -# gaps outer all plus 5 - -# Smart gaps (gaps used if only more than one container on the workspace) -smart_gaps on - -# Smart borders (draw borders around container only if it is not the only container on this workspace) -# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0) -smart_borders on - -# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces. -set $mode_gaps Gaps: (o) outer, (i) inner -set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) -bindsym $mod+Shift+g mode "$mode_gaps" - -mode "$mode_gaps" { - bindsym o mode "$mode_gaps_outer" - bindsym i mode "$mode_gaps_inner" - bindsym Return mode "default" - bindsym Escape mode "default" -} -mode "$mode_gaps_inner" { - bindsym plus gaps inner current plus 5 - bindsym minus gaps inner current minus 5 - bindsym 0 gaps inner current set 0 - - bindsym Shift+plus gaps inner all plus 5 - bindsym Shift+minus gaps inner all minus 5 - bindsym Shift+0 gaps inner all set 0 - - bindsym Return mode "default" - bindsym Escape mode "default" -} -mode "$mode_gaps_outer" { - bindsym plus gaps outer current plus 5 - bindsym minus gaps outer current minus 5 - bindsym 0 gaps outer current set 0 - - bindsym Shift+plus gaps outer all plus 5 - bindsym Shift+minus gaps outer all minus 5 - bindsym Shift+0 gaps outer all set 0 - - bindsym Return mode "default" - bindsym Escape mode "default" -} - -# F1 - -# F2 -bindsym $mod+F2 exec palemoon - -# F3 -bindsym $mod+F3 exec pcmanfm -#bindsym $mod+Shift+F3 exec $HOME/.config/ranger/ranger-launcher.sh -#bindsym $mod+Shift+F3 exec pcmanfm_pkexec - -# F4 - -# F5 -bindsym $mod+F5 exec terminal -e 'mocp' - -# F6 - -# F7 - -# F8 - -# F9 - -# F10 - -# F11 - -# F12 -# bindsym $mod+F12 mode "$mode_system" - -# q -# kill focused window -bindsym $mod+Shift+q kill -# bindsym $mod+q split toggle - -# w -# bindsym $mod+w layout tabbed - -# e -# bindsym $mod+e layout toggle split -# exit i3 (logs you out of your X session) -# bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" - -# r -# ranger -bindsym $mod+r exec $HOME/.config/ranger/ranger-launcher.sh -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -# bindsym $mod+Shift+r restart - -# t -bindsym $mod+t exec --no-startup-id pkill picom -bindsym $mod+Ctrl+t exec --no-startup-id picom -b - -# z -# launch categorized menu -bindsym $mod+z exec --no-startup-id morc_menu - -# u - -# i - -# o - -# p - -# ü - -# a -# focus the parent container -# bindsym $mod+a focus parent - -# s -# bindsym $mod+s layout stacking -# bindsym $mod+Shift+s sticky toggle - -# d -# start program launcher -bindsym $mod+d exec --no-startup-id dmenu_recency -bindsym $mod+Shift+d --release exec "killall dunst; exec notify-send 'restart dunst'" - -# f -# bindsym $mod+f fullscreen toggle - -# g - -# h -# bindsym $mod+h focus left -# bindsym $mod+Shift+h move left -# bindsym $mod+Shift+h exec xdg-open /usr/share/doc/manjaro/i3_help.pdf # disabled for window moving -# bindsym $mod+Ctrl+h split h;exec notify-send 'tile horizontally' - -# j -# bindsym $mod+j focus down -# bindsym $mod+Shift+j move down - -# k -# bindsym $mod+k focus up -# bindsym $mod+Shift+k move up - -# l -# bindsym $mod+l focus right -# bindsym $mod+Shift+l move right - -# ö - -# y - -# x -bindsym $mod+Ctrl+x --release exec --no-startup-id xkill - -# c -# reload the configuration file -# bindsym $mod+Shift+c reload - -# v -# bindsym $mod+Ctrl+v split v;exec notify-send 'tile vertically' - -# b -# brave -bindsym $mod+b exec brave - -# alternate browser -bindsym $mod+Shift+b exec palemoon -# bindsym $mod+Shift+b exec google-chrome-stable - -bindsym $mod+Ctrl+b exec terminal -e 'bmenu' - -# n - -# m -# bindsym $mod+Ctrl+m exec terminal -e 'alsamixer' # defined above -# bindsym $mod+m bar mode toggle - -# , - -# . - -# - - -# Return -# start a terminal -bindsym $mod+Return exec alacritty -bindsym $mod+Shift+Return exec terminal - - diff --git a/config/nvim-lazy/.gitignore b/config/nvim-lazy/.gitignore new file mode 100644 index 0000000..cc5457a --- /dev/null +++ b/config/nvim-lazy/.gitignore @@ -0,0 +1,8 @@ +tt.* +.tests +doc/tags +debug +.repro +foo.* +*.log +data diff --git a/config/nvim-lazy/.neoconf.json b/config/nvim-lazy/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/config/nvim-lazy/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/config/nvim-lazy/LICENSE b/config/nvim-lazy/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/config/nvim-lazy/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/config/nvim-lazy/README.md b/config/nvim-lazy/README.md new file mode 100644 index 0000000..185280b --- /dev/null +++ b/config/nvim-lazy/README.md @@ -0,0 +1,4 @@ +# 💤 LazyVim + +A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). +Refer to the [documentation](https://lazyvim.github.io/installation) to get started. diff --git a/config/nvim-lazy/init.lua b/config/nvim-lazy/init.lua new file mode 100644 index 0000000..2e8141f --- /dev/null +++ b/config/nvim-lazy/init.lua @@ -0,0 +1,4 @@ +-- bootstrap lazy.nvim, LazyVim and your plugins +require("config.lazy") + +vim.opt.termguicolors = false diff --git a/config/nvim-lazy/lazy-lock.json b/config/nvim-lazy/lazy-lock.json new file mode 100644 index 0000000..d47bcef --- /dev/null +++ b/config/nvim-lazy/lazy-lock.json @@ -0,0 +1,59 @@ +{ + "LazyVim": { "branch": "main", "commit": "b601ade71c7f8feacf62a762d4e81cf99c055ea7" }, + "LuaSnip": { "branch": "master", "commit": "7b1dda0dfdefc10b2501295eba5e463dbd7c338f" }, + "SchemaStore.nvim": { "branch": "main", "commit": "3c32d6a7bc56d56d4e3cc16fb21b59465a527aeb" }, + "bufferline.nvim": { "branch": "main", "commit": "73540cb95f8d95aa1af3ed57713c6720c78af915" }, + "catppuccin": { "branch": "main", "commit": "d97387aea8264f484bb5d5e74f2182a06c83e0d8" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "conform.nvim": { "branch": "master", "commit": "59d0dd233a2cafacfa1235ab22054c4d80a72319" }, + "crates.nvim": { "branch": "main", "commit": "d556c00d60c9421c913ee54ff690df2a34f6264e" }, + "dashboard-nvim": { "branch": "master", "commit": "a0a78099658c7d4be3714f657b18ca8285d5d106" }, + "dressing.nvim": { "branch": "master", "commit": "5162edb1442a729a885c45455a07e9a89058be2f" }, + "flash.nvim": { "branch": "main", "commit": "11a2e667d19d8f48c93c6ed2e2e525ac6b1b79be" }, + "friendly-snippets": { "branch": "main", "commit": "3e9a3f5a0cfcef1741e352c37bda4e82e5eb846a" }, + "gitsigns.nvim": { "branch": "main", "commit": "805610a9393fa231f2c2b49cb521bfa413fadb3d" }, + "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, + "lazy.nvim": { "branch": "main", "commit": "758bb5de98b805acc5eeed8cdc8ac7f0bc4b0b86" }, + "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "9ae570e206360e47d30b4c35a4550c165f4ea7b7" }, + "mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" }, + "mini.ai": { "branch": "main", "commit": "55e9b7217f29e62f734e239bfeed5731a065d801" }, + "mini.bufremove": { "branch": "main", "commit": "931a3bb514147d9e812767275c4beba6b779b1d3" }, + "mini.comment": { "branch": "main", "commit": "f9f1a646fd3d9df7397aa1b9550a875fe8189eb0" }, + "mini.indentscope": { "branch": "main", "commit": "a8274b6ea2d868198d27bd91a31ed5ea3a6a5744" }, + "mini.pairs": { "branch": "main", "commit": "5c975d8f68dc1e11bf4b20ced71e7987ed782513" }, + "mini.surround": { "branch": "main", "commit": "eb89a88a51655e46a93595204a9251a012918883" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "7aad1bf3f6b849cbf108e02c55ad4d701cb4d33a" }, + "neoconf.nvim": { "branch": "main", "commit": "d94663fc86813b00bbb99ed40f9822e18cf4e831" }, + "neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" }, + "noice.nvim": { "branch": "main", "commit": "61947de3d5904375ea94e0c13db2537488ad9829" }, + "nui.nvim": { "branch": "main", "commit": "a3597dc88b53489d3fddbddbbd13787355253bb0" }, + "nvim-cmp": { "branch": "main", "commit": "24122371810089d390847d8ba66325c1f1aa64c0" }, + "nvim-lint": { "branch": "master", "commit": "f3bcc28ffccb768212247294acccc106e029fc3c" }, + "nvim-lspconfig": { "branch": "master", "commit": "a27179f56c6f98a4cdcc79ee2971b514815a4940" }, + "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, + "nvim-spectre": { "branch": "master", "commit": "4651801ba37a9407b7257287aec45b6653ffc5e9" }, + "nvim-treesitter": { "branch": "master", "commit": "aa0c7dd29631ee8c2df738d99bd33b762b3a6e22" }, + "nvim-treesitter-context": { "branch": "master", "commit": "7068ad6d16c682db0f6bf25f64ccfee34ec5d452" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "84cc9ed772f1fee2f47c1e076f518829583d8347" }, + "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "0bdccb9c67a42a5e2d99384dc9bfa29b1451528f" }, + "nvim-web-devicons": { "branch": "master", "commit": "e37bb1feee9e7320c76050a55443fa843b4b6f83" }, + "persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" }, + "plenary.nvim": { "branch": "master", "commit": "08e301982b9a057110ede7a735dd1b5285eb341f" }, + "rustaceanvim": { "branch": "master", "commit": "1c3d3a75bebcb16df2a093b147ba498185e4ab17" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, + "telescope.nvim": { "branch": "master", "commit": "6f6bb8065567b56c42e283b06e8a1c670c0092a1" }, + "todo-comments.nvim": { "branch": "main", "commit": "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d" }, + "tokyonight.nvim": { "branch": "main", "commit": "c91aef1125e052c9d862e68389e4185ec56f6cde" }, + "trouble.nvim": { "branch": "main", "commit": "b9cf677f20bb2faa2dacfa870b084e568dca9572" }, + "venv-selector.nvim": { "branch": "main", "commit": "6a1b15eb35bbb827b6db428055087e2dbf32838f" }, + "vim-illuminate": { "branch": "master", "commit": "e522e0dd742a83506db0a72e1ced68c9c130f185" }, + "vim-startuptime": { "branch": "master", "commit": "ac2cccb5be617672add1f4f3c0a55ce99ba34e01" }, + "vimtex": { "branch": "master", "commit": "9665df7f51ee24aa81dbd81782e0a22480209753" }, + "wal.vim": { "branch": "master", "commit": "c72ba0d18946f29aab9c95eb6975d321c68b3681" }, + "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" } +} \ No newline at end of file diff --git a/config/nvim-lazy/lazyvim.json b/config/nvim-lazy/lazyvim.json new file mode 100644 index 0000000..76c676a --- /dev/null +++ b/config/nvim-lazy/lazyvim.json @@ -0,0 +1,14 @@ +{ + "extras": [ + "lazyvim.plugins.extras.lang.docker", + "lazyvim.plugins.extras.lang.json", + "lazyvim.plugins.extras.lang.python", + "lazyvim.plugins.extras.lang.rust", + "lazyvim.plugins.extras.lang.tex", + "lazyvim.plugins.extras.lang.yaml" + ], + "news": { + "NEWS.md": "3314" + }, + "version": 3 +} \ No newline at end of file diff --git a/config/nvim-lazy/lua/config/autocmds.lua b/config/nvim-lazy/lua/config/autocmds.lua new file mode 100644 index 0000000..27e9e06 --- /dev/null +++ b/config/nvim-lazy/lua/config/autocmds.lua @@ -0,0 +1,3 @@ +-- Autocmds are automatically loaded on the VeryLazy event +-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua +-- Add any additional autocmds here diff --git a/config/nvim-lazy/lua/config/keymaps.lua b/config/nvim-lazy/lua/config/keymaps.lua new file mode 100644 index 0000000..2c134f7 --- /dev/null +++ b/config/nvim-lazy/lua/config/keymaps.lua @@ -0,0 +1,3 @@ +-- Keymaps are automatically loaded on the VeryLazy event +-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua +-- Add any additional keymaps here diff --git a/config/nvim-lazy/lua/config/lazy.lua b/config/nvim-lazy/lua/config/lazy.lua new file mode 100644 index 0000000..fd269d7 --- /dev/null +++ b/config/nvim-lazy/lua/config/lazy.lua @@ -0,0 +1,47 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" + +if not (vim.uv or vim.loop).fs_stat(lazypath) then + -- bootstrap lazy.nvim + -- stylua: ignore + vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) +end +vim.opt.rtp:prepend(vim.env.LAZY or lazypath) + +require("lazy").setup({ + spec = { + -- add LazyVim and import its plugins + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- import any extras modules here + -- { import = "lazyvim.plugins.extras.lang.typescript" }, + -- { import = "lazyvim.plugins.extras.lang.json" }, + -- { import = "lazyvim.plugins.extras.ui.mini-animate" }, + -- import/override with your plugins + { import = "plugins" }, + }, + defaults = { + -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. + -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. + lazy = false, + -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, + -- have outdated releases, which may break your Neovim install. + version = false, -- always use the latest git commit + -- version = "*", -- try installing the latest stable version for plugins that support semver + }, + install = { colorscheme = { "tokyonight", "habamax" } }, + checker = { enabled = true }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) diff --git a/config/nvim-lazy/lua/config/options.lua b/config/nvim-lazy/lua/config/options.lua new file mode 100644 index 0000000..4c8559b --- /dev/null +++ b/config/nvim-lazy/lua/config/options.lua @@ -0,0 +1,5 @@ +-- Options are automatically loaded before lazy.nvim startup +-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua +-- Add any additional options here + +vim.opt.termguicolors = false diff --git a/config/nvim-lazy/lua/plugins/colorscheme.lua b/config/nvim-lazy/lua/plugins/colorscheme.lua new file mode 100644 index 0000000..4627749 --- /dev/null +++ b/config/nvim-lazy/lua/plugins/colorscheme.lua @@ -0,0 +1,10 @@ +return { + ---- add wal + { + "dylanaraps/wal.vim", + lazy = false, + config = function() + vim.cmd([[colorscheme wal]]) + end, + }, +} diff --git a/config/nvim-lazy/lua/plugins/example.lua b/config/nvim-lazy/lua/plugins/example.lua new file mode 100644 index 0000000..de22bc8 --- /dev/null +++ b/config/nvim-lazy/lua/plugins/example.lua @@ -0,0 +1,245 @@ +-- since this is just an example spec, don't actually load anything here and return an empty spec +-- stylua: ignore +if true then return {} end + +-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim +-- +-- In your plugin files, you can: +-- * add extra plugins +-- * disable/enabled LazyVim plugins +-- * override the configuration of LazyVim plugins +return { + -- add gruvbox + { "ellisonleao/gruvbox.nvim" }, + + -- Configure LazyVim to load gruvbox + { + "LazyVim/LazyVim", + opts = { + colorscheme = "gruvbox", + }, + }, + + -- change trouble config + { + "folke/trouble.nvim", + -- opts will be merged with the parent spec + opts = { use_diagnostic_signs = true }, + }, + + -- disable trouble + { "folke/trouble.nvim", enabled = false }, + + -- override nvim-cmp and add cmp-emoji + { + "hrsh7th/nvim-cmp", + dependencies = { "hrsh7th/cmp-emoji" }, + ---@param opts cmp.ConfigSchema + opts = function(_, opts) + table.insert(opts.sources, { name = "emoji" }) + end, + }, + + -- change some telescope options and a keymap to browse plugin files + { + "nvim-telescope/telescope.nvim", + keys = { + -- add a keymap to browse plugin files + -- stylua: ignore + { + "fp", + function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, + desc = "Find Plugin File", + }, + }, + -- change some options + opts = { + defaults = { + layout_strategy = "horizontal", + layout_config = { prompt_position = "top" }, + sorting_strategy = "ascending", + winblend = 0, + }, + }, + }, + + -- add pyright to lspconfig + { + "neovim/nvim-lspconfig", + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- pyright will be automatically installed with mason and loaded with lspconfig + pyright = {}, + }, + }, + }, + + -- add tsserver and setup with typescript.nvim instead of lspconfig + { + "neovim/nvim-lspconfig", + dependencies = { + "jose-elias-alvarez/typescript.nvim", + init = function() + require("lazyvim.util").lsp.on_attach(function(_, buffer) + -- stylua: ignore + vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) + vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) + end) + end, + }, + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- tsserver will be automatically installed with mason and loaded with lspconfig + tsserver = {}, + }, + -- you can do any additional lsp server setup here + -- return true if you don't want this server to be setup with lspconfig + ---@type table + setup = { + -- example to setup with typescript.nvim + tsserver = function(_, opts) + require("typescript").setup({ server = opts }) + return true + end, + -- Specify * to use this function as a fallback for any server + -- ["*"] = function(server, opts) end, + }, + }, + }, + + -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, + -- treesitter, mason and typescript.nvim. So instead of the above, you can use: + { import = "lazyvim.plugins.extras.lang.typescript" }, + + -- add more treesitter parsers + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { + "bash", + "html", + "javascript", + "json", + "lua", + "markdown", + "markdown_inline", + "python", + "query", + "regex", + "tsx", + "typescript", + "vim", + "yaml", + }, + }, + }, + + -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above + -- would overwrite `ensure_installed` with the new value. + -- If you'd rather extend the default config, use the code below instead: + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + -- add tsx and treesitter + vim.list_extend(opts.ensure_installed, { + "tsx", + "typescript", + }) + end, + }, + + -- the opts function can also be used to change the default opts: + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function(_, opts) + table.insert(opts.sections.lualine_x, "😄") + end, + }, + + -- or you can return new options to override all the defaults + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function() + return { + --[[add your custom lualine config here]] + } + end, + }, + + -- use mini.starter instead of alpha + { import = "lazyvim.plugins.extras.ui.mini-starter" }, + + -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc + { import = "lazyvim.plugins.extras.lang.json" }, + + -- add any tools you want to have installed below + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + "stylua", + "shellcheck", + "shfmt", + "flake8", + }, + }, + }, + + -- Use for completion and snippets (supertab) + -- first: disable default and behavior in LuaSnip + { + "L3MON4D3/LuaSnip", + keys = function() + return {} + end, + }, + -- then: setup supertab in cmp + { + "hrsh7th/nvim-cmp", + dependencies = { + "hrsh7th/cmp-emoji", + }, + ---@param opts cmp.ConfigSchema + opts = function(_, opts) + local has_words_before = function() + unpack = unpack or table.unpack + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil + end + + local luasnip = require("luasnip") + local cmp = require("cmp") + + opts.mapping = vim.tbl_extend("force", opts.mapping, { + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() + -- this way you will only jump inside the snippet region + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }) + end, + }, +} diff --git a/config/nvim-lazy/stylua.toml b/config/nvim-lazy/stylua.toml new file mode 100644 index 0000000..5d6c50d --- /dev/null +++ b/config/nvim-lazy/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +column_width = 120 \ No newline at end of file diff --git a/config/nvim/init.lua b/config/nvim/init.lua index 98a1975..e419e29 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -2,17 +2,17 @@ vim.opt.tabstop = 4 vim.opt.expandtab = true -- move to first character on line -vim.keymap.set('n','0','^') +vim.keymap.set("n", "0", "^") -- jump over lines visually -vim.keymap.set('n','j','gj') -vim.keymap.set('n','k','gk') +vim.keymap.set("n", "j", "gj") +vim.keymap.set("n", "k", "gk") -- format -vim.keymap.set('n','', 'gqip') +vim.keymap.set("n", "", "gqip") -- fast-saving -vim.keymap.set('n', 'w', ':w!') +vim.keymap.set("n", "w", ":w!") -- :W sudo saves that file with sudo persmission @@ -23,18 +23,18 @@ vim.keymap.set('n', 'w', ':w!') -- vim.keymap.set('', '', 'l') -- hightlight last inserted text -vim.keymap.set('n', 'gV', '`[v`]', {noremap=true}) +vim.keymap.set("n", "gV", "`[v`]", { noremap = true }) -- jk is escape in insert mode -vim.keymap.set('i', 'jk', '', {noremap=true}) +vim.keymap.set("i", "jk", "", { noremap = true }) -- yank whole line -vim.keymap.set('n', 'Y', 'y$', {noremap=true}) +vim.keymap.set("n", "Y", "y$", { noremap = true }) -- insert empty line below or above -vim.keymap.set('n', '', 'ok') -vim.keymap.set('n', '', 'Oj') +vim.keymap.set("n", "", "ok") +vim.keymap.set("n", "", "Oj") vim.opt.termguicolors = false -use ('dylanaraps/wal.vim') -vim.cmd 'colorscheme wal' +use("dylanaraps/wal.vim") +vim.cmd("colorscheme wal") diff --git a/config/ranger/commands.py b/config/ranger/commands.py index 60d8676..8af60f8 100644 --- a/config/ranger/commands.py +++ b/config/ranger/commands.py @@ -1,11 +1,13 @@ from ranger.api.commands import Command + class paste_as_root(Command): - def execute(self): - if self.fm.do_cut: - self.fm.execute_console('shell sudo mv %c .') - else: - self.fm.execute_console('shell sudo cp -r %c .') + def execute(self): + if self.fm.do_cut: + self.fm.execute_console("shell sudo mv %c .") + else: + self.fm.execute_console("shell sudo cp -r %c .") + class fzf_select(Command): """ @@ -17,22 +19,26 @@ class fzf_select(Command): See: https://github.com/junegunn/fzf """ + def execute(self): import subprocess import os.path + if self.quantifier: # match only directories - command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ + command = "find -L . ( -path '*/.*' -o -fstype 'dev' -o -fstype 'proc' ) -prune \ -o -type d -print 2> /dev/null | sed 1d | cut -b3- | fzf +m --reverse --header='Jump to file'" else: # match files and directories - command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ + command = "find -L . ( -path '*/.*' -o -fstype 'dev' -o -fstype 'proc' ) -prune \ -o -print 2> /dev/null | sed 1d | cut -b3- | fzf +m --reverse --header='Jump to filemap fzf_select'" - fzf = self.fm.execute_command(command, universal_newlines=True, stdout=subprocess.PIPE) + fzf = self.fm.execute_command( + command, universal_newlines=True, stdout=subprocess.PIPE + ) stdout, stderr = fzf.communicate() if fzf.returncode == 0: - fzf_file = os.path.abspath(stdout.rstrip('\n')) + fzf_file = os.path.abspath(stdout.rstrip("\n")) if os.path.isdir(fzf_file): self.fm.cd(fzf_file) else: - self.fm.select_file(fzf_file) \ No newline at end of file + self.fm.select_file(fzf_file) diff --git a/config/ranger/ranger-launcher.sh b/config/ranger/ranger-launcher.sh index 88968ef..b96765f 100755 --- a/config/ranger/ranger-launcher.sh +++ b/config/ranger/ranger-launcher.sh @@ -1,4 +1,3 @@ #!/bin/sh export RANGERCD=true $TERM - diff --git a/config/ranger/rc.conf b/config/ranger/rc.conf index 3cceaab..995398c 100644 --- a/config/ranger/rc.conf +++ b/config/ranger/rc.conf @@ -97,7 +97,7 @@ set show_hidden_bookmarks true # Which colorscheme to use? These colorschemes are available by default: # default, jungle, snow, solarized -set colorscheme default +#set colorscheme default # Preview files on the rightmost column? # And collapse (shrink) the last column if there is nothing to preview? @@ -116,7 +116,7 @@ set status_bar_on_top false set draw_progress_bar_in_status_bar true # Draw borders around columns? -set draw_borders true +set draw_borders false # Display the directory name in tabs? set dirname_in_tabs false diff --git a/config/rofi/arc_dark_colors.rasi b/config/rofi/arc_dark_colors.rasi new file mode 100644 index 0000000..6918845 --- /dev/null +++ b/config/rofi/arc_dark_colors.rasi @@ -0,0 +1,34 @@ +/******************************************************* + * ROFI Arc Dark colors for EndeavourOS + * Maintainer: joekamprad [joekamprad //a_t// endeavouros.com] + *******************************************************/ +* { + selected-normal-foreground: rgba ( 249, 249, 249, 100 % ); + foreground: rgba ( 196, 203, 212, 100 % ); + normal-foreground: @foreground; + alternate-normal-background: rgba ( 64, 69, 82, 59 % ); + red: rgba ( 220, 50, 47, 100 % ); + selected-urgent-foreground: rgba ( 249, 249, 249, 100 % ); + blue: rgba ( 38, 139, 210, 100 % ); + urgent-foreground: rgba ( 204, 102, 102, 100 % ); + alternate-urgent-background: rgba ( 75, 81, 96, 90 % ); + active-foreground: rgba ( 101, 172, 255, 100 % ); + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: rgba ( 249, 249, 249, 100 % ); + alternate-active-background: rgba ( 75, 81, 96, 89 % ); + background: rgba ( 45, 48, 59, 95 % ); + alternate-normal-foreground: @foreground; + normal-background: @background; + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: rgba ( 64, 132, 214, 100 % ); + border-color: rgba ( 124, 131, 137, 100 % ); + spacing: 2; + separatorcolor: rgba ( 29, 31, 33, 100 % ); + urgent-background: rgba ( 29, 31, 33, 17 % ); + selected-urgent-background: rgba ( 165, 66, 66, 100 % ); + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: rgba ( 29, 31, 33, 17 % ); + selected-active-background: rgba ( 68, 145, 237, 100 % ); +} diff --git a/config/rofi/arc_dark_transparent_colors.rasi b/config/rofi/arc_dark_transparent_colors.rasi new file mode 100644 index 0000000..cf82511 --- /dev/null +++ b/config/rofi/arc_dark_transparent_colors.rasi @@ -0,0 +1,34 @@ +/******************************************************* + * ROFI Arch Dark Transparent colors for EndeavourOS + * Maintainer: joekamprad [joekamprad //a_t// endeavouros.com] + *******************************************************/ +* { + selected-normal-foreground: rgba ( 255, 147, 5, 100 % ); + foreground: rgba ( 196, 203, 212, 100 % ); + normal-foreground: @foreground; + alternate-normal-background: rgba ( 45, 48, 59, 1 % ); + red: rgba ( 220, 50, 47, 100 % ); + selected-urgent-foreground: rgba ( 249, 249, 249, 100 % ); + blue: rgba ( 38, 139, 210, 100 % ); + urgent-foreground: rgba ( 204, 102, 102, 100 % ); + alternate-urgent-background: rgba ( 75, 81, 96, 90 % ); + active-foreground: rgba ( 101, 172, 255, 100 % ); + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: rgba ( 249, 249, 249, 100 % ); + alternate-active-background: rgba ( 45, 48, 59, 88 % ); + background: rgba ( 45, 48, 59, 88 % ); + alternate-normal-foreground: @foreground; + normal-background: rgba ( 45, 48, 59, 1 % ); + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: rgba ( 24, 26, 32, 100 % ); + border-color: rgba ( 124, 131, 137, 100 % ); + spacing: 2; + separatorcolor: rgba ( 45, 48, 59, 1 % ); + urgent-background: rgba ( 45, 48, 59, 15 % ); + selected-urgent-background: rgba ( 165, 66, 66, 100 % ); + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: rgba ( 29, 31, 33, 17 % ); + selected-active-background: rgba ( 26, 28, 35, 100 % ); +} diff --git a/config/rofi/config.rasi b/config/rofi/config.rasi new file mode 100644 index 0000000..711f785 --- /dev/null +++ b/config/rofi/config.rasi @@ -0,0 +1,5 @@ +/* Dark theme. */ +@import "~/.cache/wal/colors-rofi-dark" + +/* Light theme. */ +@import "~/.cache/wal/colors-rofi-light" diff --git a/config/rofi/power-profiles.rasi b/config/rofi/power-profiles.rasi new file mode 100644 index 0000000..3f57919 --- /dev/null +++ b/config/rofi/power-profiles.rasi @@ -0,0 +1,121 @@ +/******************************************************* + * ROFI configs i3 powermenu for EndeavourOS + * Maintainer: joekamprad [joekamprad //a_t// endeavouros.com] + *******************************************************/ +configuration { + font: "Noto Sans Regular 10"; + show-icons: false; + icon-theme: "Qogir"; + scroll-method: 0; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_colors.rasi" + + +window { + background-color: @background; + border: 0; + padding: 10; + transparency: "real"; + width: 170px; + location: east; + /*y-offset: 18;*/ + /*x-offset: 850;*/ +} +listview { + lines: 4; + columns: 1; +} +element { + border: 0; + padding: 1px; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: "Set Power Profile:"; + margin: 0px 0.3em 0em 0em; + text-color: @normal-foreground; +} diff --git a/config/rofi/powermenu.rasi b/config/rofi/powermenu.rasi new file mode 100644 index 0000000..6c6fc48 --- /dev/null +++ b/config/rofi/powermenu.rasi @@ -0,0 +1,124 @@ +/******************************************************* + * ROFI configs i3 powermenu for EndeavourOS + * Maintainer: joekamprad [joekamprad //a_t// endeavouros.com] + *******************************************************/ +configuration { + font: "Noto Sans Regular 10"; + show-icons: false; + icon-theme: "Qogir"; + scroll-method: 0; + disable-history: false; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_transparent_colors.rasi" + +window { + background-color: @background; + border: 0; + padding: 10; + transparency: "real"; + width: 120px; + location: east; + /*y-offset: 18;*/ + /*x-offset: 850;*/ +} +listview { + lines: 7; + columns: 1; + scrollbar: false; +} +element { + border: 0; + padding: 1px; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em; + text-color: @normal-foreground; +} + +/*removes the text input line*/ +mainbox { + children: [listview]; +} diff --git a/config/rofi/rofidmenu.rasi b/config/rofi/rofidmenu.rasi new file mode 100644 index 0000000..b531aad --- /dev/null +++ b/config/rofi/rofidmenu.rasi @@ -0,0 +1,135 @@ +/******************************************************* + * ROFI configs i3 Apps menu for EndeavourOS + * Maintainer: joekamprad [joekamprad //a_t// endeavouros.com] + *******************************************************/ +configuration { + font: "Noto Sans Regular 10"; + show-icons: true; + icon-theme: "Qogir"; + display-drun: "Apps"; + drun-display-format: "{name}"; + scroll-method: 0; + disable-history: false; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_transparent_colors.rasi" + +window { + background-color: @background; + border: 0; + padding: 30; +} +listview { + lines: 10; + columns: 3; +} +mainbox { + border: 0; + padding: 0; +} +message { + border: 2px 0px 0px; + border-color: @separatorcolor; + padding: 1px; +} +textbox { + text-color: @foreground; +} +listview { + fixed-height: 0; + border: 8px 0px 0px; + border-color: @separatorcolor; + spacing: 8px; + scrollbar: false; + padding: 2px 0px 0px; +} +element { + border: 0; + padding: 1px; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em; + text-color: @normal-foreground; +} diff --git a/config/rofi/rofidmenu.rasi.save b/config/rofi/rofidmenu.rasi.save new file mode 100644 index 0000000..b531aad --- /dev/null +++ b/config/rofi/rofidmenu.rasi.save @@ -0,0 +1,135 @@ +/******************************************************* + * ROFI configs i3 Apps menu for EndeavourOS + * Maintainer: joekamprad [joekamprad //a_t// endeavouros.com] + *******************************************************/ +configuration { + font: "Noto Sans Regular 10"; + show-icons: true; + icon-theme: "Qogir"; + display-drun: "Apps"; + drun-display-format: "{name}"; + scroll-method: 0; + disable-history: false; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_transparent_colors.rasi" + +window { + background-color: @background; + border: 0; + padding: 30; +} +listview { + lines: 10; + columns: 3; +} +mainbox { + border: 0; + padding: 0; +} +message { + border: 2px 0px 0px; + border-color: @separatorcolor; + padding: 1px; +} +textbox { + text-color: @foreground; +} +listview { + fixed-height: 0; + border: 8px 0px 0px; + border-color: @separatorcolor; + spacing: 8px; + scrollbar: false; + padding: 2px 0px 0px; +} +element { + border: 0; + padding: 1px; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em; + text-color: @normal-foreground; +} diff --git a/config/rofi/rofikeyhint.rasi b/config/rofi/rofikeyhint.rasi new file mode 100644 index 0000000..4177d18 --- /dev/null +++ b/config/rofi/rofikeyhint.rasi @@ -0,0 +1,137 @@ +/******************************************************* + * ROFI configs i3 keyhint-menu for EndeavourOS + * Maintainer: joekamprad [joekamprad //a_t// endeavouros.com] + *******************************************************/ +configuration { + font: "Noto Sans Regular 10"; + show-icons: false; + icon-theme: "Qogir"; + display-drun: "KeyHint"; + drun-display-format: "{name}"; + scroll-method: 0; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "~/.config/rofi/arc_dark_transparent_colors.rasi" + +window { + background-color: @background; + border: 0; + padding: 30; +} +listview { + lines: 10; + columns: 1; +} +mainbox { + border: 0; + padding: 0; +} +message { + border: 2px 0px 0px; + border-color: @separatorcolor; + padding: 1px; +} +textbox { + text-color: @foreground; +} +listview { + fixed-height: 0; + border: 8px 0px 0px; + border-color: @separatorcolor; + spacing: 8px; + scrollbar: false; + padding: 2px 0px 0px; +} +element { + border: 0; + padding: 1px; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em; + text-color: @normal-foreground; +} diff --git a/config/tmux/.tmux.conf b/config/tmux/.tmux.conf index 77c1490..fd874e4 100644 --- a/config/tmux/.tmux.conf +++ b/config/tmux/.tmux.conf @@ -52,7 +52,8 @@ bind p paste-buffer # bind -t vi-copy 'y' copy-selection # set default terminal color -set -g default-terminal "screen-256color" +set -g default-terminal "$TERM" +set -ag terminal-overrides ",$TERM:RGB" # enable activity alerts setw -g monitor-activity on diff --git a/config/wal/templates/colors-alacritty.toml b/config/wal/templates/colors-alacritty.toml new file mode 100644 index 0000000..cbba313 --- /dev/null +++ b/config/wal/templates/colors-alacritty.toml @@ -0,0 +1,27 @@ +[colors.primary] +background = '{background}' +foreground = '{foreground}' + +[colors.cursor] +text = '{foreground}' +cursor = '{cursor}' + +[colors.normal] +black = '{color0}' +red = '{color1}' +green = '{color2}' +yellow = '{color3}' +blue = '{color4}' +magenta = '{color5}' +cyan = '{color6}' +white = '{color7}' + +[colors.bright] +black = '{color8}' +red = '{color9}' +green = '{color10}' +yellow = '{color11}' +blue = '{color12}' +magenta = '{color13}' +cyan = '{color14}' +white = '{color15}' diff --git a/home/bash_aliases b/home/bash_aliases index 7284177..1cccba2 100644 --- a/home/bash_aliases +++ b/home/bash_aliases @@ -1,9 +1,6 @@ alias ls='ls --color=auto' alias lah='ls -lah' alias ll='lah' -alias v=vim -alias vim=nvim -alias nvim=lvim # folders alias gh="cd" diff --git a/home/bashrc b/home/bashrc index d8b301f..768f469 100644 --- a/home/bashrc +++ b/home/bashrc @@ -9,8 +9,8 @@ [[ $- == *i* ]] && source /usr/share/blesh/ble.sh --noattach if [[ $- == *i* ]]; then # in interactive session - # vim mode - set -o vi + # vim mode + set -o vi fi colors() { @@ -36,7 +36,8 @@ colors() { printf " ${seq0}TEXT\e[m" printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m" done - echo; echo + echo + echo done } @@ -44,12 +45,12 @@ colors() { # Change the window title of X terminals case ${TERM} in - xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*) - PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' - ;; - screen*) - PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' - ;; +xterm* | rxvt* | Eterm* | aterm | kterm | gnome* | interix | konsole*) + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' + ;; +screen*) + PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' + ;; esac use_color=true @@ -59,26 +60,26 @@ use_color=true # instead of using /etc/DIR_COLORS. Try to use the external file # first to take advantage of user additions. Use internal bash # globbing instead of external grep binary. -safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM +safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM match_lhs="" -[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" +[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" [[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(/dev/null \ - && match_lhs=$(dircolors --print-database) +[[ -z ${match_lhs} ]] && + type -P dircolors >/dev/null && + match_lhs=$(dircolors --print-database) [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true -if ${use_color} ; then +if ${use_color}; then # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 - if type -P dircolors >/dev/null ; then - if [[ -f ~/.dir_colors ]] ; then + if type -P dircolors >/dev/null; then + if [[ -f ~/.dir_colors ]]; then eval $(dircolors -b ~/.dir_colors) - elif [[ -f /etc/DIR_COLORS ]] ; then + elif [[ -f /etc/DIR_COLORS ]]; then eval $(dircolors -b /etc/DIR_COLORS) fi fi - if [[ ${EUID} == 0 ]] ; then + if [[ ${EUID} == 0 ]]; then PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] ' else PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] ' @@ -89,7 +90,7 @@ if ${use_color} ; then alias egrep='egrep --colour=auto' alias fgrep='fgrep --colour=auto' else - if [[ ${EUID} == 0 ]] ; then + if [[ ${EUID} == 0 ]]; then # show root@ when we don't have colors PS1='\u@\h \W \$ ' else @@ -105,12 +106,12 @@ unset use_color safe_term match_lhs sh #alias np='nano -w PKGBUILD' #alias more=less -xhost +local:root > /dev/null 2>&1 +xhost +local:root >/dev/null 2>&1 set -o vi export EDITOR="nvim" -export VISUAL="lvim" +export VISUAL="nvim" # default [[ $- != *i* ]] && return @@ -124,11 +125,11 @@ PS1='[\u@\h \W]\$ ' # load pc individual bashrc content if [ -e $HOME/.bashrc_individual ]; then - source $HOME/.bashrc_individual + source $HOME/.bashrc_individual fi export PATH=$PATH:$HOME/.local/bin - + src_files() { local f for f in "$@"; do @@ -147,8 +148,8 @@ if [ -e $HOME/.bash_aliases ]; then source $HOME/.bash_aliases fi -src_files "$HOME/.profile.d" src_files "$HOME/.bashrc.d" [[ ${BLE_VERSION-} ]] && ble-attach +BASHRC="loaded" diff --git a/home/bashrc.d/01_wal b/home/bashrc.d/01_wal new file mode 100644 index 0000000..27b987e --- /dev/null +++ b/home/bashrc.d/01_wal @@ -0,0 +1,5 @@ + +#(cat $HOME/.cache/wal/sequences &) + +#(source $HOME/.cache/wal/colors-tty.sh &) + diff --git a/home/bashrc.d/ranger b/home/bashrc.d/ranger index ee97308..1858fd3 100644 --- a/home/bashrc.d/ranger +++ b/home/bashrc.d/ranger @@ -1,2 +1,23 @@ -alias r=ranger +alias r=ranger_cd + +ranger() { + if [ -z "$RANGER_LEVEL" ]; then + /usr/bin/ranger "$@" + else + exit + fi +} + +ranger_cd() { + temp_file="$(mktemp -t "ranger_cd.XXXXXXXXXX")" + ranger --choosedir="$temp_file" -- "${@:-$PWD}" + if chosen_dir="$(cat -- "$temp_file")" && [ -n "$chosen_dir" ] && [ "$chosen_dir" != "$PWD" ]; then + cd -- "$chosen_dir" + fi + rm -f -- "$temp_file" +} + +if [ "$RANGERCD" ]; then unset RANGERCD && ranger_cd; fi +#$RANGERCD && unset RANGERCD && ranger_cd + diff --git a/home/bashrc.d/vim b/home/bashrc.d/vim new file mode 100644 index 0000000..b7156be --- /dev/null +++ b/home/bashrc.d/vim @@ -0,0 +1,8 @@ + +alias v=vim +alias vim=nvim +#alias lvim="NVIM_APPNAME=nvim-lazy nvim" +alias lvim="NVIM_APPNAME=nvim nvim" +alias avim="NVIM_APPNAME=nvim-astro nvim" +alias cvim="NVIM_APPNAME=nvim-chad nvim" + diff --git a/home/profile b/home/profile index e366eb2..bb9c21d 100644 --- a/home/profile +++ b/home/profile @@ -17,8 +17,6 @@ src_files() { src_files "$HOME/.profile.d" -if [ -f ~/.bashrc ]; -then - . ~/.bashrc; -fi -PATH=$PATH:$HOME/bin export PATH +[[ -f $HOME/.bashrc ]] && . $HOME/.bashrc +export PATH=$PATH:$HOME/.local/bin + diff --git a/home/profile.d/forticlient b/home/profile.d/forticlient index 924c387..5506ad2 100644 --- a/home/profile.d/forticlient +++ b/home/profile.d/forticlient @@ -1 +1 @@ -PATH="/opt/forticlient:$PATH" +export PATH="/opt/forticlient:$PATH" diff --git a/home/profile.d/vim b/home/profile.d/vim new file mode 100644 index 0000000..b5dc29e --- /dev/null +++ b/home/profile.d/vim @@ -0,0 +1,4 @@ + +export EDITOR=nvim +export VISUAL=nvim + diff --git a/scripts/01_setup_configs.sh b/scripts/01_setup_configs.sh index f3df195..36a0259 100755 --- a/scripts/01_setup_configs.sh +++ b/scripts/01_setup_configs.sh @@ -10,47 +10,45 @@ echo "Setting up configs linking to $econfigdir" echo "" function Sudo { - local firstArg=$1 - if [ $(type -t $firstArg) = function ] - then - shift && command sudo bash -c "$(declare -f $firstArg);$firstArg $*" - elif [ $(type -t $firstArg) = alias ] - then - alias sudo='\sudo ' - eval "sudo $@" - else - command sudo "$@" - fi + local firstArg=$1 + if [ $(type -t $firstArg) = function ]; then + shift && command sudo bash -c "$(declare -f $firstArg);$firstArg $*" + elif [ $(type -t $firstArg) = alias ]; then + alias sudo='\sudo ' + eval "sudo $@" + else + command sudo "$@" + fi } link_file() { echo "linking file $2" - if [ $(readlink -f $2) -ef $1 ]; then - echo " is already linked like that" - else - ln -sbfv $1 $2 - fi - echo "" + if [ $(readlink -f $2) -ef $1 ]; then + echo " is already linked like that" + else + ln -sbfv $1 $2 + fi + echo "" } link_folder() { - echo "linking folder $2" - if [ $(is_link $2) -eq 0 ]; then - # it is still a directory, create backup - echo " is a dir (pointing to $(readlink -f $2)), creating backup at $2_original" - mv -fvT --backup=numbered $2 $2_original - fi - if [ $(readlink -f $2) -ef $1 ]; then - echo " is already linked like that" - else - ln -sbfvn $1 $2 - fi - echo "" + echo "linking folder $2" + if [ $(is_link $2) -eq 0 ]; then + # it is still a directory, create backup + echo " is a dir (pointing to $(readlink -f $2)), creating backup at $2_original" + mv -fvT --backup=numbered $2 $2_original + fi + if [ $(readlink -f $2) -ef $1 ]; then + echo " is already linked like that" + else + ln -sbfvn $1 $2 + fi + echo "" } is_link() { - if [ $(readlink -f $1) = $1 ]; then - echo 0 - else - echo 1 - fi + if [ $(readlink -f $1) = $1 ]; then + echo 0 + else + echo 1 + fi } # bashrc @@ -72,11 +70,14 @@ Sudo link_file $econfigdir/etc/pacman.conf /etc/pacman.conf # i3 config link_folder $econfigdir/config/i3 $HOME/.config/i3 -mv $HOME/.i3 $HOME/.i3_original > /dev/null 2>&1 +mv $HOME/.i3 $HOME/.i3_original >/dev/null 2>&1 # alacritty link_folder $econfigdir/config/alacritty $HOME/.config/alacritty +# pywal +link_folder $econfigdir/config/wal $HOME/.config/wal + # tmux link_file $econfigdir/home/tmux.conf $HOME/.tmux.conf link_folder $econfigdir/config/tmux $HOME/.config/tmux @@ -93,10 +94,10 @@ link_file $econfigdir/bin/dmount $HOME/.local/bin/dmount link_file $econfigdir/bin/dumount $HOME/.local/bin/dumount # nvim -link_folder $econfigdir/config/nvim $HOME/.config/nvim +#link_folder $econfigdir/config/nvim $HOME/.config/nvim -# lvim -link_folder $econfigdir/config/lvim $HOME/.config/lvim +# lazyvim +link_folder $econfigdir/config/nvim-lazy $HOME/.config/nvim # gdbinit link_file $econfigdir/home/gdbinit $HOME/.gdbinit @@ -106,4 +107,3 @@ link_folder $econfigdir/config/dunst $HOME/.config/dunst # mplayer link_folder $econfigdir/home/mplayer $HOME/.mplayer - diff --git a/scripts/02_setup_programs.sh b/scripts/02_setup_programs.sh index 779e829..52a3e58 100755 --- a/scripts/02_setup_programs.sh +++ b/scripts/02_setup_programs.sh @@ -16,6 +16,12 @@ sudo pacman -S --noconfirm ueberzug # ranger image previewer sudo pacman -S --noconfirm feh # background sudo pacman -S --noconfirm ttf-roboto-mono-nerd # font sudo pacman -S --noconfirm python-pywal +sudo pacman -S --noconfirm odt2txt # odt preview +sudo pacman -S --noconfirm atool # archive preview +sudo pacman -S --noconfirm mediainfo # video preview + +sudo pacman -S --noconfirm btop # top alternative +sudo pacman -S --noconfirm ripgrep # grep # nvim sudo pacman -S --noconfirm neovim