Compare commits
4 Commits
e3a77a5ac0
...
d7f13ff865
Author | SHA1 | Date | |
---|---|---|---|
d7f13ff865 | |||
8fa79a5029 | |||
58cad94a41 | |||
1100fc0755 |
20
src/.config/dot_profile.example
Normal file
20
src/.config/dot_profile.example
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
# Profile that enables/disables certain features based on the device
|
||||
# Everything might need to be restarted for this to take effect.
|
||||
|
||||
## ----------
|
||||
## IMPORTANT!
|
||||
## ----------
|
||||
## Copy this to '~/.config/dot_profile'.
|
||||
|
||||
# Profiles
|
||||
# --------
|
||||
# DEFAULT:
|
||||
# Everything's enabled. Nvim auto-installs plugins on launch.
|
||||
# SLIM:
|
||||
# Try to reduce bloat; turn off expensive plugins and eye-candy.
|
||||
# Run :PlugInstall in Nvim to install plugins.
|
||||
# MINIMAL:
|
||||
# Nothing is launched automatically, and no plugins are installed.
|
||||
|
||||
export SYSTEM_PROFILE="DEFAULT"
|
@ -17,17 +17,19 @@ set -gx MANPATH "$MANPATH:/home/dogeystamp/.cache/cppman/"
|
||||
set fish_greeting ""
|
||||
|
||||
if status --is-interactive
|
||||
source ~/.config/fish/functions/prompts.fish
|
||||
source ~/.config/fish/functions/extra_prompt.fish
|
||||
|
||||
# Enable Vi bindings
|
||||
fish_hybrid_key_bindings
|
||||
|
||||
source ~/.config/fish/functions/prompts.fish
|
||||
|
||||
set __fish_git_prompt_showdirtystate 1
|
||||
set __fish_git_prompt_showupstream auto
|
||||
|
||||
set fish_color_param normal
|
||||
set fish_color_cwd grey
|
||||
|
||||
rem.sh show
|
||||
if test $SYSTEM_PROFILE = "DEFAULT"
|
||||
source ~/.config/fish/functions/extra_prompt.fish
|
||||
rem.sh show
|
||||
end
|
||||
end
|
||||
|
@ -1,4 +1,8 @@
|
||||
function fish_right_prompt
|
||||
if test $SYSTEM_PROFILE != "DEFAULT"
|
||||
return
|
||||
end
|
||||
|
||||
set -l usercolor (set_color $fish_color_cwd)
|
||||
if command -sq cksum
|
||||
# randomised color for user/hostname based on disco.fish
|
||||
|
@ -9,6 +9,8 @@ set shell=/bin/sh
|
||||
|
||||
hi Search cterm=NONE ctermfg=white ctermbg=blue
|
||||
hi StatusLine ctermbg=NONE cterm=italic
|
||||
hi SignColumn ctermbg=NONE
|
||||
|
||||
|
||||
autocmd InsertEnter * hi StatusLine cterm=bold
|
||||
autocmd InsertLeave * hi StatusLine cterm=italic
|
||||
@ -110,47 +112,57 @@ nnoremap <C-k> <C-w>W
|
||||
" exit all (akin to ZZ, ZQ)
|
||||
nnoremap <silent> ZF :qa<cr>
|
||||
|
||||
" copy URL under cursor to clipboard bind
|
||||
:nnoremap <silent><leader>uu :let @+ = expand('<cfile>')<CR>
|
||||
|
||||
" Plugins
|
||||
|
||||
" Run PlugInstall if there are missing plugins
|
||||
" (disabled because it's kind of intense for weak devices)
|
||||
"autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||
"\| PlugInstall --sync | source $MYVIMRC
|
||||
"\| endif
|
||||
if $SYSTEM_PROFILE == "DEFAULT"
|
||||
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||
\| PlugInstall --sync | source $MYVIMRC
|
||||
\| endif
|
||||
endif
|
||||
|
||||
" The rest will not be sourced if the system is on minimal settings.
|
||||
if $SYSTEM_PROFILE == "MINIMAL"
|
||||
finish
|
||||
endif
|
||||
|
||||
call plug#begin()
|
||||
|
||||
filetype plugin indent on
|
||||
|
||||
Plug 'lervag/vimtex'
|
||||
let g:vimtex_view_method = 'zathura'
|
||||
let g:vimtex_compiler_method = 'latexmk'
|
||||
set conceallevel=0
|
||||
let g:tex_conceal='abdmg'
|
||||
let g:vimtex_view_forward_search_on_start=1
|
||||
let g:vimtex_compiler_latexmk = {
|
||||
\ 'build_dir' : $HOME.'/.cache/latexmk/',
|
||||
\ 'callback' : 1,
|
||||
\ 'continuous' : 1,
|
||||
\ 'executable' : 'latexmk',
|
||||
\ 'hooks' : [],
|
||||
\ 'options' : [
|
||||
\ '-verbose',
|
||||
\ '-file-line-error',
|
||||
\ '-synctex=1',
|
||||
\ '-interaction=nonstopmode',
|
||||
\ ],
|
||||
\}
|
||||
if $SYSTEM_PROFILE == "DEFAULT"
|
||||
Plug 'lervag/vimtex'
|
||||
let g:vimtex_view_method = 'zathura'
|
||||
let g:vimtex_compiler_method = 'latexmk'
|
||||
set conceallevel=0
|
||||
let g:tex_conceal='abdmg'
|
||||
let g:vimtex_view_forward_search_on_start=1
|
||||
let g:vimtex_compiler_latexmk = {
|
||||
\ 'build_dir' : $HOME.'/.cache/latexmk/',
|
||||
\ 'callback' : 1,
|
||||
\ 'continuous' : 1,
|
||||
\ 'executable' : 'latexmk',
|
||||
\ 'hooks' : [],
|
||||
\ 'options' : [
|
||||
\ '-verbose',
|
||||
\ '-file-line-error',
|
||||
\ '-synctex=1',
|
||||
\ '-interaction=nonstopmode',
|
||||
\ ],
|
||||
\}
|
||||
|
||||
" spellcheck
|
||||
au BufEnter *.tex set spell spelllang=en_ca
|
||||
" spellcheck
|
||||
au BufEnter *.tex set spell spelllang=en_ca
|
||||
|
||||
" Autowrite in tex files
|
||||
" au TextChanged,TextChangedI *.tex silent write
|
||||
" Autowrite in tex files
|
||||
" au TextChanged,TextChangedI *.tex silent write
|
||||
endif
|
||||
|
||||
|
||||
if has('python3')
|
||||
if has('python3') && ($SYSTEM_PROFILE == "DEFAULT" || $SYSTEM_PROFILE == "SLIM")
|
||||
Plug 'SirVer/ultisnips'
|
||||
let g:UltiSnipsExpandTrigger="<c-m>"
|
||||
let g:UltiSnipsJumpForwardTrigger="<c-m>"
|
||||
@ -158,24 +170,29 @@ if has('python3')
|
||||
let g:UltiSnipsSnippetDirectories=[$HOME.'/.config/nvim/ultisnips/']
|
||||
endif
|
||||
|
||||
Plug 'nvim-treesitter/nvim-treesitter'
|
||||
if $SYSTEM_PROFILE == "DEFAULT"
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
Plug 'nvim-lua/lsp-status.nvim'
|
||||
|
||||
Plug 'hrsh7th/nvim-cmp'
|
||||
Plug 'hrsh7th/cmp-nvim-lsp'
|
||||
|
||||
Plug 'stevearc/dressing.nvim'
|
||||
|
||||
Plug 'nvim-treesitter/nvim-treesitter'
|
||||
" Code folding
|
||||
set foldmethod=expr
|
||||
set foldexpr=nvim_treesitter#foldexpr()
|
||||
"autocmd BufEnter * normal zR
|
||||
endif
|
||||
|
||||
Plug 'axieax/urlview.nvim'
|
||||
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
Plug 'nvim-lua/completion-nvim'
|
||||
Plug 'nvim-lua/lsp-status.nvim'
|
||||
Plug 'stevearc/dressing.nvim'
|
||||
Plug 'ggandor/leap.nvim'
|
||||
|
||||
call plug#end()
|
||||
|
||||
" copy URL under cursor to clipboard bind
|
||||
:nnoremap <silent><leader>uu :let @+ = expand('<cfile>')<CR>
|
||||
|
||||
" see .config/nvim/lua/init.lua
|
||||
lua require('init')
|
||||
|
||||
" Code folding
|
||||
set foldmethod=expr
|
||||
set foldexpr=nvim_treesitter#foldexpr()
|
||||
"autocmd BufEnter * normal zR
|
||||
if $SYSTEM_PROFILE == "DEFAULT"
|
||||
" see .config/nvim/lua/init.lua
|
||||
lua require('init')
|
||||
endif
|
||||
|
@ -24,28 +24,26 @@ require("urlview").setup({
|
||||
},
|
||||
})
|
||||
|
||||
local nvim_lsp = require('lspconfig')
|
||||
|
||||
local on_attach = function(client, bufnr)
|
||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
|
||||
local opts = { noremap=true, silent=true }
|
||||
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', 'gK', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
buf_set_keymap('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
buf_set_keymap('n', 'gt', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
||||
buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
||||
buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', opts)
|
||||
local opts = { noremap=true, silent=true }
|
||||
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', 'gK', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
buf_set_keymap('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
buf_set_keymap('n', 'gt', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
||||
buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
||||
buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', opts)
|
||||
end
|
||||
|
||||
-- settings per server (overrides defaults)
|
||||
@ -68,6 +66,8 @@ local servers = {
|
||||
},
|
||||
clangd = {}
|
||||
}
|
||||
|
||||
local nvim_lsp = require('lspconfig')
|
||||
for lsp, sv_settings in pairs(servers) do
|
||||
-- defaults
|
||||
settings = {
|
||||
@ -86,3 +86,33 @@ require('dressing').setup({
|
||||
insert_only = false,
|
||||
}
|
||||
})
|
||||
|
||||
-- fancy motions (leap.nvim)
|
||||
vim.keymap.set({'n', 'x', 'o'}, 'f', '<Plug>(leap-forward-to)')
|
||||
vim.keymap.set({'n', 'x', 'o'}, 'F', '<Plug>(leap-backward-to)')
|
||||
require('leap').opts.safe_labels = {
|
||||
"a", "s", "d", "f", "g", "h", "j", "k", "l"
|
||||
}
|
||||
require('leap').opts.labels = { "a", "s", "d",
|
||||
"f", "k", "l", "h", "o", "d", "w", "e", "m", "b",
|
||||
"u", "y", "v", "r", "g", "t", "c", "x", "/", "z",
|
||||
}
|
||||
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
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({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
@ -61,4 +61,11 @@ if [ -r "$XDG_CONFIG_HOME"/identity ]; then
|
||||
source "$XDG_CONFIG_HOME"/identity
|
||||
fi
|
||||
|
||||
# Profile to enable/disable features on certain devices
|
||||
if [ ! -f "$XDG_CONFIG_HOME"/dot_profile ]; then
|
||||
export SYSTEM_PROFILE="DEFAULT"
|
||||
else
|
||||
source "$XDG_CONFIG_HOME"/dot_profile
|
||||
fi
|
||||
|
||||
source .config/bashrc
|
||||
|
10
src/.xinitrc
10
src/.xinitrc
@ -1,7 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
mon-on
|
||||
picom &
|
||||
|
||||
if [ $SYSTEM_PROFILE == "MINIMAL" ]; then
|
||||
dwm
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ $SYSTEM_PROFILE == "DEFAULT" ]; then
|
||||
picom &
|
||||
fi
|
||||
xwallpaper --center .config/wall.png
|
||||
# Host specific wallpapers
|
||||
wallpaper
|
||||
|
Loading…
x
Reference in New Issue
Block a user