fix sway, return visual studio vim

This commit is contained in:
Grigory Shipunov 2025-01-25 19:08:41 +01:00
parent d0cf7796a9
commit a848517698
14 changed files with 540 additions and 41 deletions

View file

@ -1,4 +1,4 @@
font=Ttyp0:pixelsize=13 font=Hack Nerd Font Mono:pixelsize=14
#font=JuliaMono:pixelsize=12 #font=JuliaMono:pixelsize=12
[cursor] [cursor]

View file

@ -4,7 +4,7 @@
signingkey = DD0998E6CDF294537FC604F991FA5E5BF9AA901C signingkey = DD0998E6CDF294537FC604F991FA5E5BF9AA901C
[color] [color]
ui = auto ui = auto
[merege] [merge]
conflictstyle = diff3 conflictstyle = diff3
[commit] [commit]
gpgsign = false gpgsign = false

1
nvim.lua/.config/nvim/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
plugin

View file

@ -0,0 +1,83 @@
-- set leader and locleader before setting any maps
vim.g.mapleader = ' '
vim.g.maplocalleader = '\\'
-- set up packer and all the plugins
require('plugins')
-- old config still to luaify
vim.cmd([[
" filetype magic
autocmd BufRead,BufNewFile *.nasm set filetype=nasm
" langmap russian
set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz
" Incrementally show effects of :s, :smagic, :snomagic
set icm=split
set number
set nobackup nowritebackup
set noswapfile
" autosmartident
set ai
set si
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
" arrows for visual line navigation
imap <up> <C-O>gk
imap <down> <C-O>gj
nmap <up> gk
nmap <down> gj
vmap <up> gk
vmap <down> gj
set history=999
set undolevels=999
" Copy to clipboard
vnoremap <leader>y "+y
nnoremap <leader>Y "+yg_
nnoremap <leader>y "+y
nnoremap <leader>yy "+yy
" Paste from clipboard
nnoremap <leader>p "+p
nnoremap <leader>P "+P
vnoremap <leader>p "+p
vnoremap <leader>P "+P
"set updatetime=107
" disable modelines
set nomodeline
" change tab completion to more bash-like
set wildmode=longest:full,list:full
" U is quite useless
nnoremap U :echo "NOPE!"<CR>
" help is quite annoying when you miss esc
map <F1> <Esc>
imap <F1> <Esc>
" do not conceal stuff
set conceallevel=0
set foldlevel=999
" Whitespace highlight
highlight RedundantSpaces ctermbg=red guibg=red
match RedundantSpaces /\s\+\%#\@<!$/
" highlight yanked text
augroup highlight_yank
autocmd!
au TextYankPost * silent! lua vim.highlight.on_yank { higroup='IncSearch', timeout=200 }
augroup END
]])

View file

@ -0,0 +1,53 @@
-- setup completion menu
vim.cmd([[
set completeopt=menu,menuone,noselect
]])
-- setup cmp proper: pretty much default config
local cmp = require'cmp'
cmp.setup({
window = {
completion = cmp.config.window.bordered(winhighlight),
documentation = cmp.config.window.bordered(winhighlight),
},
snippet = {
expand = function(args)
require'snippy'.expand_snippet(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = false,
})
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'snippy' }, -- For snippy users.
{ name = 'buffer' },
{ name = 'path' },
{ name = 'nvim_lua' },
}),
formatting = {
format = function(entry, vim_item)
vim_item.kind = string.format('%s', vim_item.kind)
vim_item.menu = ({
nvim_lsp = '[LSP]',
buffer = '[B]',
path = '[F]',
snippy = '[S]',
nvim_lua = '[vim]',
})[entry.source.name]
return vim_item
end,
}
})

View file

@ -0,0 +1,90 @@
local nvim_lsp = require'lspconfig'
local cmp_lsp = require'cmp_nvim_lsp'
-- General LSP config
-- Limit capabilities to advertised by cmp
local capabilities = cmp_lsp.default_capabilities()
-- default lsp config
-- Mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
local opts = { noremap=true, silent=true }
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, opts)
-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
local on_attach = function(client, bufnr)
-- Enable completion triggered by <c-x><c-o>
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings.
-- See `:help vim.lsp.*` for documentation on any of the below functions
local bufopts = { noremap=true, silent=true, buffer=bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<leader>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<leader>f', function() vim.lsp.buf.format { async = true } end, bufopts)
end
local lsp_flags = {
-- This is the default in Nvim 0.7+
debounce_text_changes = 150,
}
-- always show sign column
vim.cmd([[set signcolumn=yes]])
vim.g.moonflyNormalFloat = true
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
vim.lsp.handlers.hover, {
border = "single"
}
)
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
vim.lsp.handlers.signatureHelp, {
border = "single"
}
)
vim.diagnostic.config({ float = { border = "single" } })
-- Setting up servers per language
-- Default nvim-lsp setup: nil, clangd
local servers = { 'nil_ls', 'clangd', 'texlab' }
for _, serv in ipairs(servers) do
nvim_lsp[serv].setup{
on_attach = on_attach,
flags = lsp_flags,
capabilities = capabilities,
}
end
-- Rust: using rust tools package
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = on_attach,
flags = lsp_flags,
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
cargo = {
allFeatures = true,
},
},
},
},
})

View file

@ -0,0 +1,11 @@
-- this now handled by the lualine
vim.cmd([[set noshowmode]])
return require('lualine').setup {
options = {
icons_enabled = true,
--theme = 'everforest',
-- section_separators = '',
-- component_seaparators = '',
}
}

View file

@ -0,0 +1,214 @@
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
vim.cmd [[packadd packer.nvim]]
return true
end
return false
end
local setup_fzf = function()
vim.api.nvim_set_keymap('n', '<c-P>', "<cmd>lua require('fzf-lua').files()<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>g', "<cmd>lua require('fzf-lua').git_files()<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>b', "<cmd>lua require('fzf-lua').buffers()<CR>", { noremap = true, silent = true })
end
local packer_bootstrap = ensure_packer()
return require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
-- insert images into markdown automagically
use {
'ferrine/md-img-paste.vim',
ft = { 'markdown' },
config = vim.cmd([[
" insert images into markdown automagically
autocmd FileType markdown nmap <buffer><silent> <localleader>p :call mdip#MarkdownClipboardImage()<CR>
let g:mdip_imgdir = 'static'
let g:mdip_imgname = 'image'
]])
}
--Better syntax
use 'rust-lang/rust.vim'
use 'LnL7/vim-nix'
use 'cespare/vim-toml'
use 'JuliaEditorSupport/julia-vim'
use {
'lervag/vimtex',
ft = { 'tex' },
-- do not conceal stuff
config = function() vim.cmd([[
let g:tex_conceal = ''
autocmd FileType tex nnoremap <localleader>= :VimtexTocToggle<CR>
]]) end,
}
use 'lepture/vim-jinja'
use 'neomutt/neomutt.vim'
use 'godlygeek/tabular'
use 'preservim/vim-markdown'
-- treesitter
use {
'nvim-treesitter/nvim-treesitter',
run = function()
local ts_update = require('nvim-treesitter.install').update({ with_sync = true })
ts_update()
end,
config = function()
require('ts_setup')
end,
}
-- pretty bits
-- use {
-- '/home/grue/projects/zen-footburn.nvim',
-- config = function()
-- vim.cmd([[
-- set termguicolors
-- colorscheme zenburn
-- ]])
-- end,
-- }
use {
'sainnhe/everforest',
config = function()
vim.cmd([[
set termguicolors
let g:everforest_transparent_background = 2
colorscheme everforest
]])
end,
}
-- use {
-- 'jeffkreeftmeijer/vim-dim',
-- config = function()
-- vim.cmd([[
-- colorscheme dim
-- ]])
-- end,
-- }
use {
'johnfrankmorgan/whitespace.nvim',
config = function ()
require('whitespace-nvim').setup({
ignored_filetypes = { 'TelescopePrompt', 'Trouble', 'help' },
})
-- remove trailing whitespace with a keybinding
vim.keymap.set('n', '<Leader>t', require('whitespace-nvim').trim)
end
}
use {
'nvim-lualine/lualine.nvim',
requires = { 'kyazdani42/nvim-web-devicons', opt = true },
-- after = { 'zen-footburn.nvim' },
config = function()
-- this now handled by the lualine
vim.cmd([[set noshowmode]])
return require('lualine').setup {
options = {
icons_enabled = true,
theme = 'auto',
-- section_separators = '',
-- component_seaparators = '',
}
}
end,
}
-- Git
use 'tpope/vim-fugitive'
use {
'lewis6991/gitsigns.nvim',
config = function()
vim.cmd([[set signcolumn=yes]])
require('gitsigns').setup()
end,
}
-- Nifty stuff
use 'tpope/vim-surround'
-- use 'airblade/vim-rooter'
use {
'nvim-telescope/telescope.nvim',
branch = '0.1.x',
requires = { { 'nvim-lua/plenary.nvim' } },
config = function()
require('telescope').setup{
pickers = {
find_files = {
theme = "dropdown",
}
}
}
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>b', builtin.buffers, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
end,
}
-- completion
use {
'hrsh7th/nvim-cmp',
requires = {
-- completion sources
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-nvim-lua',
'dcampos/nvim-snippy',
'dcampos/cmp-snippy'
},
config = function()
require('completion')
end,
}
use {
'dcampos/nvim-snippy',
config = function()
require'snippy'.setup({
mappings = {
is = {
['<Tab>'] = 'expand_or_advance',
['<S-Tab>'] = 'previous',
},
nx = {
['<leader>x'] = 'cut_text',
},
},
})
end,
}
use 'dcampos/cmp-snippy'
use 'honza/vim-snippets'
-- neovim VSCode edition
use {
'neovim/nvim-lspconfig',
after = { 'nvim-cmp' },
requires = { 'simrat39/rust-tools.nvim' },
config = function()
require'lsp_setup'
end,
}
use {
'jamessan/vim-gnupg',
}
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
if packer_bootstrap then
require('packer').sync()
end
end)

View file

@ -0,0 +1,17 @@
local ts_conf = require('nvim-treesitter.configs')
ts_conf.setup {
ensure_installed = { "vim", "vimdoc", "rust", "nix" },
highlight = {
enable = true,
},
indent = {
enable = true,
},
incremental_selection = {
enable = true,
},
textobjects = {
enable = true,
},
}

View file

@ -0,0 +1,43 @@
[colors.cursor]
text = "#000000"
cursor = "#ffff00"
[colors.primary]
foreground = "#dcdccc"
background = "#111111"
[colors.normal]
black = "#222222"
red = "#cc9393"
green = "#7f9f7f"
yellow = "#d0bf8f"
blue = "#6ca0a3"
magenta = "#dc8cc3"
cyan = "#93e0e3"
white = "#dcdccc"
[colors.bright]
black = "#666666"
red = "#dca3a3"
green = "#bfebbf"
yellow = "#f0dfaf"
blue = "#8cd0d3"
magenta = "#fcace3"
cyan = "#b3ffff"
white = "#ffffff"
[font]
size = 10
[font.bold]
family = "Hack Nerd Font Mono"
[font.bold_italic]
family = "Hack Nerd Font Mono"
[font.italic]
family = "Hack Nerd Font Mono"
[font.normal]
family = "Hack Nerd Font Mono"

View file

@ -2,7 +2,7 @@
theme = "foot" theme = "foot"
[icons] [icons]
icons = "awesome6" icons = "material-nf"
[[block]] [[block]]
block = "time" block = "time"
@ -14,23 +14,23 @@ idle_fg = { link = "idle_bg" }
[[block]] [[block]]
block = "maildir" block = "maildir"
interval = 60 interval = 60
inboxes = ["/home/grue/mail/dump@dvb.solutions/INBOX", "/home/grue/mail/grigory@tlm.solutions/INBOX" ] inboxes = ["/home/0xa/mail/dump@dvb.solutions/INBOX", "/home/0xa/mail/grigory@tlm.solutions/INBOX" ]
threshold_critical = 1 threshold_critical = 1
display_type = "new" display_type = "new"
[[block.click]] [[block.click]]
button = "left" button = "left"
cmd = "foot --app-id floating-foot --window-size-chars=150x50 -- zsh -c neomutt" cmd = "alacritty --class floating-foot -e zsh -c neomutt"
[[block]] [[block]]
block = "maildir" block = "maildir"
interval = 60 interval = 60
inboxes = ["/home/grue/mail/mail@oxapentane.com/INBOX", "/home/grue/mail/mail@oxapentane.com/sinkhole", "/home/grue/mail/grigory@shipunov.xyz/INBOX"] inboxes = ["/home/0xa/mail/mail@oxapentane.com/INBOX", "/home/0xa/mail/mail@oxapentane.com/sinkhole", "/home/0xa/mail/grigory@shipunov.xyz/INBOX"]
threshold_warning = 1 threshold_warning = 1
threshold_critical = 10 threshold_critical = 10
display_type = "new" display_type = "new"
[[block.click]] [[block.click]]
button = "left" button = "left"
cmd = "foot --app-id floating-foot --window-size-chars=150x50 -- zsh -c neomutt" cmd = "alacritty --class floating-foot -e zsh -c neomutt"
[[block]] [[block]]
block = "backlight" block = "backlight"
@ -49,20 +49,16 @@ block = "net"
device = "enp1s0f0" device = "enp1s0f0"
format = " $icon{ | $ip $ipv6 }" format = " $icon{ | $ip $ipv6 }"
## TODO patch upstream # TODO patch upstream
# [[block]] #[[block]]
# block = "net" #block = "net"
# device = "wg-mullvad" #device = "wg-mullvad"
# format = " $device " #format = " $device up $ip "
[[block]] [[block]]
block = "memory" block = "memory"
format = " $icon $mem_used_percents " format = " $icon $mem_used_percents "
[[block]]
block = "cpu"
format = " $icon $frequency $barchart $utilization "
[[block]] [[block]]
block = "load" block = "load"
format = " $1m.eng(w:4) $5m.eng(w:4) $15m.eng(w:4) " format = " $1m.eng(w:4) $5m.eng(w:4) $15m.eng(w:4) "

View file

@ -1,14 +1,14 @@
# Default # Default
profile { profile {
output eDP-1 enable output eDP-1 enable adaptive_sync on
} }
# Home # Home
profile { profile {
output eDP-1 enable enable position -1920,960 output eDP-1 enable position 3840,0 adaptive_sync on
output "LG Electronics LG HDR 4K 0x00000CA7" enable mode 3840x2160 position 0,0 output DP-8 enable mode 3840x2160 position 0,0 adaptive_sync on
} }
# Work # Work
profile { profile {
output eDP-1 enable position 0,1200 output eDP-1 enable position 0,1200 adaptive_sync on
output "Samsung Electric Company LF24T450G HNMTA01726" enable mode 1920x1200 position 0,0 output "Samsung Electric Company LF24T450G HNMTA01726" enable mode 1920x1200@60Hz position 0,0 adaptive_sync on
} }

View file

@ -14,8 +14,8 @@ set $down j
set $up k set $up k
set $right l set $right l
# Your preferred terminal emulator # Your preferred terminal emulator
set $term foot set $term alacritty
set $floatterm foot --app-id floating-foot set $floatterm alacritty --class floating-foot
set $lock $HOME/.config/sway/lock.sh set $lock $HOME/.config/sway/lock.sh
# Your preferred application launcher # Your preferred application launcher
@ -27,9 +27,9 @@ set $menu rofi -show combi | xargs swaymsg exec --
# #
# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/) # Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
# output * bg /run/current-system/sw/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill # output * bg /run/current-system/sw/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
# output * bg /home/grue/Pictures/tiles/23.png tile output * bg /home/0xa/Pictures/tiles/23.png tile
# output * bg /home/grue/Pictures/paper.jpg fill # output * bg /home/grue/Pictures/paper.jpg fill
output * bg ./wall.jpg fill # output * bg ./wall.jpg fill
# #
# Example configuration: # Example configuration:
@ -61,6 +61,7 @@ exec swayidle -w \
dwt enabled dwt enabled
dwtp enabled dwtp enabled
middle_emulation enabled middle_emulation enabled
natural_scroll enabled
} }
input type:keyboard { input type:keyboard {
@ -86,7 +87,7 @@ seat * hide_cursor 5000
for_window [app_id="floating-foot"] floating enable for_window [app_id="floating-foot"] floating enable
# Start a python shell # Start a python shell
bindsym --to-code $mod+z exec $floatterm python bindsym --to-code $mod+z exec $floatterm -e python
# Kill focused window # Kill focused window
bindsym --to-code $mod+Shift+q kill bindsym --to-code $mod+Shift+q kill
@ -111,9 +112,9 @@ seat * hide_cursor 5000
bindsym --to-code --locked XF86MonBrightnessDown exec "brightnessctl set 5%-" bindsym --to-code --locked XF86MonBrightnessDown exec "brightnessctl set 5%-"
bindsym --to-code --locked XF86MonBrightnessUp exec "brightnessctl set +5%" bindsym --to-code --locked XF86MonBrightnessUp exec "brightnessctl set +5%"
# Volume # Volume
bindsym --to-code --locked XF86AudioRaiseVolume exec 'pamixer -i 1' bindsym --to-code --locked XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+'
bindsym --to-code --locked XF86AudioLowerVolume exec 'pamixer -d 1' bindsym --to-code --locked XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-'
bindsym --to-code --locked XF86AudioMute exec 'pamixer -t' bindsym --to-code --locked XF86AudioMute exec 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'
# Screen locking # Screen locking
bindsym --to-code $mod+Delete exec $lock bindsym --to-code $mod+Delete exec $lock
# Screenshots # Screenshots
@ -308,7 +309,7 @@ client.focused $color06 $color06 $color00 $color07 $color06
# Read `man 5 sway-bar` for more information about this section. # Read `man 5 sway-bar` for more information about this section.
bar { bar {
position top position top
font pango:Ttyp0 8 font pango:Hack 9
icon_theme "Adwaita" icon_theme "Adwaita"
status_command /run/current-system/sw/bin/i3status-rs status_command /run/current-system/sw/bin/i3status-rs
colors { colors {
@ -324,7 +325,7 @@ bar {
# default border # default border
default_border pixel 2 default_border pixel 2
# Set font # Set font
font pango:Ttyp0 8 font pango:Hack 9
# bindsym --to-code $mod+t input type:touchpad toggle # bindsym --to-code $mod+t input type:touchpad toggle

View file

@ -1,13 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
img="$HOME/Pictures/paper.jpg"
#grim $img
#gm convert $img -scale 5% -scale 2000% $img
#gm convert $img -blur 0x10 $img
# swaylock -Ffk -i $img -s fill
# swaylock -Ffk -i $HOME/Pictures/tiles/156.png -s tile
swaylock -Ffk -i $HOME/Pictures/tiles/23.png -s tile swaylock -Ffk -i $HOME/Pictures/tiles/23.png -s tile
# swaylock -Ffk -i $HOME/Pictures/tiles/10.png -s tile
#rm -f $img