Changed nvim completion autoselection

This commit is contained in:
2024-01-28 23:31:17 -06:00
parent 9b6eca40d5
commit fe2b5d8115
11 changed files with 304 additions and 158 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
dotfile

View File

@@ -2,8 +2,6 @@ local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require('lspconfig') local lspconfig = require('lspconfig')
vim.lsp.set_log_level('debug')
local servers = {'ccls', 'rust_analyzer'} local servers = {'ccls', 'rust_analyzer'}
for _, lsp in ipairs(servers) do for _, lsp in ipairs(servers) do
@@ -15,6 +13,7 @@ end
local cmp = require 'cmp' local cmp = require 'cmp'
cmp.setup { cmp.setup {
preselect = cmp.PreselectMode.None,
mapping = cmp.mapping.preset.insert({ mapping = cmp.mapping.preset.insert({
['<Tab>'] = cmp.mapping(function(fallback) ['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then

View File

@@ -31,6 +31,7 @@ vim.opt.wrapscan=true
vim.opt.report=0 vim.opt.report=0
vim.opt.list=true vim.opt.list=true
vim.opt.completeopt=menuone,noselect,noinsert
vim.g['loaded_perl_provider']=0 vim.g['loaded_perl_provider']=0

View File

@@ -1,3 +1,13 @@
import = [ [font]
"~/.config/alacritty/themes/AyuDark.toml" size = 12
]
[font.italic]
family = "Codelia Nerd Font"
style = "Italic"
[font.normal]
family = "Codelia Nerd Font"
style = "Regular"
[shell]
program = "/bin/zsh"

View File

@@ -1,10 +1,8 @@
require('config/keymaps') require('config/keymaps')
require('config/settings') require('config/settings')
require('config/plugins') require('config/plugins')
require('config/plugins/coc')
require('config/plugins/lualine') require('config/plugins/lualine')
require('config/plugins/ale') require('config/plugins/lspconfig')
require('config/plugins/nerdtree')
local vimscriptpath = vim.fn.stdpath("config") .. "/lua/config/vimscript/" local vimscriptpath = vim.fn.stdpath("config") .. "/lua/config/vimscript/"

View File

@@ -4,3 +4,7 @@ vim.keymap.set('n', '<C-h>', '<C-w>h')
vim.keymap.set('n', '<C-j>', '<C-w>j') vim.keymap.set('n', '<C-j>', '<C-w>j')
vim.keymap.set('n', '<C-k>', '<C-w>k') vim.keymap.set('n', '<C-k>', '<C-w>k')
vim.keymap.set('n', '<C-l>', '<C-w>l') vim.keymap.set('n', '<C-l>', '<C-w>l')
vim.keymap.set('n', '<leader>ff', ':FzfLua files<CR>')
vim.keymap.set('n', '<leader>fb', ':FzfLua buffers<CR>')
vim.keymap.set('n', '<leader>rg', ':FzfLua grep<CR>')

View File

@@ -1,22 +1,31 @@
local plugins = { local plugins = {
'rebelot/kanagawa.nvim',
'nvim-lualine/lualine.nvim', 'nvim-lualine/lualine.nvim',
'kyazdani42/nvim-web-devicons', 'kyazdani42/nvim-web-devicons',
{'neoclide/coc.nvim',
branch = 'release'}, 'kylechui/nvim-surround',
'navarasu/onedark.nvim',
'tpope/vim-surround', {
'godlygeek/tabular', 'ibhagwan/fzf-lua',
'OmniSharp/omnisharp-vim', config = function()
'dense-analysis/ale', require('fzf-lua').setup({'skim'})
end
},
'neovim/nvim-lspconfig',
'hrsh7th/nvim-cmp',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-path',
'rust-lang/rust.vim',
{ {
'windwp/nvim-autopairs', 'windwp/nvim-autopairs',
event = 'InsertEnter', event = 'InsertEnter',
opts={}, opts={},
}, },
'preservim/nerdtree',
'junegunn/fzf.vim',
'junegunn/fzf',
'rust-lang/rust.vim'
} }
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"

View File

@@ -0,0 +1,37 @@
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require('lspconfig')
local servers = {'ccls', 'rust_analyzer'}
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
capabilities = capabilities
}
end
local cmp = require 'cmp'
cmp.setup {
preselect = cmp.PreselectMode.None,
mapping = cmp.mapping.preset.insert({
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end, { 'i', 's' }),
}),
sources = {
{ name = 'nvim_lsp' },
{ name = 'path' }
},
}

View File

@@ -31,6 +31,7 @@ vim.opt.wrapscan=true
vim.opt.report=0 vim.opt.report=0
vim.opt.list=true vim.opt.list=true
vim.opt.completeopt=menuone,noselect,noinsert
vim.g['loaded_perl_provider']=0 vim.g['loaded_perl_provider']=0

View File

@@ -1,6 +1,7 @@
filetype plugin indent on filetype plugin indent on
syntax on syntax on
colorscheme onedark colorscheme kanagawa
if has('multi_byte') && &encoding ==# 'utf-8' if has('multi_byte') && &encoding ==# 'utf-8'
let &listchars = 'tab:▸ ,extends:,precedes:,nbsp:±' let &listchars = 'tab:▸ ,extends:,precedes:,nbsp:±'
else else

View File

@@ -1,178 +1,242 @@
### Variables # This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4 set $mod Mod4
set $left h # Font for window titles. Will also be used by the bar unless a different font
set $down j # is used in the bar {} block below.
set $up k default_border pixel 5
set $right l default_floating_border pixel 5
set $term alacritty # Use pactl to adjust volume in PulseAudio.
set $menu rofi -show drun bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
bindsym XF86AudioPlay exec dbus-send --print-reply --dest=org.mpris.MediaPlayer2.Feishin /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
# bindsym XF86AudioPlay exec python3 /home/eesim/Scripts/MuteMusic.py
bindsym XF86AudioPause exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
bindsym $mod+Shift+o exec swaymsg "output * dpms on"
### Output configuration # Use Mouse+$mod to drag floating windows to their wanted position
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill floating_modifier $mod
output eDP-1 resolution 1920x1200 pos 1920,0 # start a terminal
output HDMI-A-1 resolution 1920x1080 pos 0,0 bindsym $mod+Return exec --no-startup-id alacritty
bindsym $mod+Control+f exec MOZ_ENABLE_WAYLAND=1 firefox
bindsym $mod+Control+s exec steam
bindsym $mod+Control+t exec thunar
bindsym $mod+Control+d exec discord
bindsym $mod+Control+x exec strawberry
bindsym $mod+Control+q exec qbittorrent
bindsym $mod+Control+h exec helvum
bindsym $mod+Control+p exec pavucontrol
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% # kill focused window
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
### Idle configuration
exec swayidle -w \
timeout 300 'swaylock -f -c 000000' \
timeout 420 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
timeout 600 'systemctl suspend' \
before-sleep 'swaylock -f -c 000000'
### Input configuration
input type:touchpad {
tap enabled
natural_scroll enabled
scroll_factor 0.5
accel_profile adaptive
pointer_accel 0.1
}
### Key bindings
bindsym XF86MonBrightnessDown exec light -U 5
bindsym XF86MonBrightnessUp exec light -A 5
bindsym $mod+Shift+s exec grim -g "$(slurp)"
floating_modifier $mod normal
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
# Start your launcher # take screenshot
bindsym $mod+Space exec $menu bindsym $mod+Shift+s exec flameshot gui
# Reload the configuration file # change focus
bindsym $mod+Shift+c reload bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# Exit sway (logs you out of your Wayland session) # alternatively, you can use the cursor keys:
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left bindsym $mod+Left focus left
bindsym $mod+Down focus down bindsym $mod+Down focus down
bindsym $mod+Up focus up bindsym $mod+Up focus up
bindsym $mod+Right focus right bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift # move focused window
bindsym $mod+Shift+$left move left bindsym $mod+Shift+h move left
bindsym $mod+Shift+$down move down bindsym $mod+Shift+j move down
bindsym $mod+Shift+$up move up bindsym $mod+Shift+k move up
bindsym $mod+Shift+$right move right bindsym $mod+Shift+l move right
# Ditto, with arrow keys # alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right bindsym $mod+Shift+Right move right
# Switch to workspace # split in horizontal orientation
bindsym $mod+1 workspace number 1 bindsym $mod+b split h
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace # split in vertical orientation
bindsym $mod+Shift+1 move container to workspace number 1 bindsym $mod+v split v
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Horizontal and vertical splits # enter fullscreen mode for the focused container
bindsym $mod+b splith bindsym $mod+f fullscreen toggle
bindsym $mod+v splitv
# Switch the current container between different layout styles # change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split bindsym $mod+e layout toggle split
# Make the current focus fullscreen # toggle tiling / floating
bindsym $mod+f fullscreen bindsym $mod+Shift+space floating toggle
# Toggle the current focus between tiling and floating mode # change focus between tiling / floating windows
bindsym $mod+Shift+p floating toggle #bindsym $mod+space focus mode_toggle
# Swap focus between the tiling area and the floating area # focus the parent container
bindsym $mod+p focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
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 $ws10 "10"
set $MonitorA "DP-1"
set $MonitorB "HDMI-A-1"
# 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 $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
workspace $ws1 output $MonitorA
workspace $ws2 output $MonitorA
workspace $ws3 output $MonitorA
workspace $ws4 output $MonitorB
workspace $ws5 output $MonitorB
workspace $ws6 output $MonitorB
workspace $ws7 output $MonitorB
workspace $ws8 output $MonitorB
workspace $ws9 output $MonitorB
workspace $ws10 output $MonitorB
set $opacity 0.9
for_window [app_id="de.shorsh.discord-screenaudio"] opacity $opacity
for_window [class="discord"] opacity $opacity
for_window [app_id="Alacritty"] opacity $opacity
for_window [app_id="org.qbittorrent.qBittorrent"] opacity $opacity
for_window [class="gamescope"] fullscreen
for_window [app_id="gamescope"] fullscreen
for_window [app_id="mpv"] fullscreen
# Workspace 1
# Workspace 2
assign [app_id="mpv"] $ws2
# Workspace 3
assign [class="steam"] $ws3
assign [class="gamescope"] $ws3
assign [app_id="gamescope"] $ws3
# Workspace 4
assign [app_id="firefox"] $ws4
# Workspace 5
assign [app_id="de.shorsh.discord-screenaudio"] $ws5
assign [class="discord"] $ws5
# Workspace 6
assign [app_id="com.obsproject.Studio"] $ws6
# Workspace 7
assign [class="Sonixd"] $ws7
assign [app_id="org.strawberrymusicplayer.strawberry"] $ws7
# Workspace 8
assign [app_id="com.github.wwmm.easyeffects"] $ws8
assign [app_id="org.pipewire.Helvum"] $ws8
assign [app_id="pavucontrol"] $ws8
# Workspace 9
assign [app_id="org.qbittorrent.qBittorrent"] $ws9
assign [app_id="transmission-qt"] $ws9
# Workspace 10
assign [app_id="python3"] $ws10
assign [class="steam_proton"] $ws10
### Scratchpad: # reload the configuration file
bindsym $mod+Shift+c reload
# Move the currently focused window to the scratchpad # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+minus move scratchpad bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
# Show the next scratchpad window or hide the focused scratchpad window. bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'"
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
### Resizing containers:
# resize window (you can also use the mouse for that)
mode "resize" { mode "resize" {
bindsym $left resize shrink width 20px # These bindings trigger as soon as you enter the resize mode
bindsym $down resize grow height 20px
bindsym $up resize shrink height 20px
bindsym $right resize grow width 20px
bindsym Left resize shrink width 20px # Pressing left will shrink the windows width.
bindsym Down resize grow height 20px # Pressing right will grow the windows width.
bindsym Up resize shrink height 20px # Pressing up will shrink the windows height.
bindsym Right resize grow width 20px # Pressing down will grow the windows height.
bindsym h resize shrink width 10 px
bindsym j resize grow height 10 px
bindsym k resize shrink height 10 px
bindsym l resize grow width 10 px
# Return to default mode # same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px
bindsym Down resize grow height 10 px
bindsym Up resize shrink height 10 px
bindsym Right resize grow width 10 px
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
bindsym $mod+r mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
set $bg-color #58536d
### Style
set $bg-color #58536D
set $inactive-bg-color #2f343f set $inactive-bg-color #2f343f
set $text-color #f3f4f5 set $text-color #f3f4f5
set $inactive-text-color #676E7D set $inactive-text-color #676E7D
@@ -185,18 +249,39 @@ client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-col
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #4B5177 client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #4B5177
client.urgent $urgent-bg-color $urgent-bg-color $text-color #4B5177 client.urgent $urgent-bg-color $urgent-bg-color $text-color #4B5177
default_border pixel 4 default_border pixel 6
font pango:SourceCodePro Medium 0 gaps inner 10
gaps outer -5
smart_gaps on
smart_gaps inverse_outer
### Status Bar:
bar { bar {
swaybar_command waybar swaybar_command waybar
} }
bindsym $mod+space exec rofi --no-startup-id -show drun
include /etc/sway/config.d/* # Set Monitors
output DP-1 mode 3440x1440@144Hz pos 0 0 scale 1
output HDMI-A-1 mode 1920x1080@75Hz pos 3440 0
exec --no-startup-id openrgb --startminimized
exec --no-startup-id sway-audio-idle-inhibit
exec --no-startup-id ydotoold
exec --no-startup-id easyeffects --gapplication-service
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec --no-startup-id swayidle -w \
timeout 300 'swaymsg "output * dpms off"' \
resume '/home/eesim/Scripts/ResumeMonitor.sh'
exec vorta
exec MOZ_ENABLE_WAYLAND=1 firefox
exec discord
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
exec sleep 0.2 && swww init
exec sleep 0.3 && swww img -o DP-1 /home/eesim/Pictures/UWWallpaper.png
exec sleep 0.3 && swww img -o HDMI-A-1 /home/eesim/Pictures/169Wallpaper.png