dot_profile: added

this means we can disable expensive features on weak devices
This commit is contained in:
dogeystamp 2023-04-13 10:17:39 -04:00
parent 58cad94a41
commit 8fa79a5029
Signed by: dogeystamp
GPG Key ID: 7225FE3592EFFA38
4 changed files with 97 additions and 61 deletions

View 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"

View File

@ -112,54 +112,65 @@ 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>"
let g:UltiSnipsJumpBackwardTrigger="<c-b>"
let g:UltiSnipsSnippetDirectories=[$HOME.'/.config/nvim/ultisnips/']
endif
" my devices without python3 probably don't need these
if $SYSTEM_PROFILE == "DEFAULT"
Plug 'neovim/nvim-lspconfig'
Plug 'nvim-lua/lsp-status.nvim'
@ -167,9 +178,13 @@ if has('python3')
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'stevearc/dressing.nvim'
endif
Plug 'nvim-treesitter/nvim-treesitter'
Plug 'nvim-treesitter/nvim-treesitter'
" Code folding
set foldmethod=expr
set foldexpr=nvim_treesitter#foldexpr()
"autocmd BufEnter * normal zR
endif
Plug 'axieax/urlview.nvim'
@ -177,13 +192,7 @@ 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

View File

@ -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 = {

View File

@ -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