aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/alacritty/alacritty.linux.yml6
-rw-r--r--config/nvim/init.lua70
-rw-r--r--config/nvim/lua/mappings.lua8
-rw-r--r--config/nvim/lua/plugins.lua190
-rw-r--r--config/qutebrowser/config.py4
-rwxr-xr-xconfig/zsh/zprofile8
-rwxr-xr-xlocal/bin/project-open6
-rwxr-xr-xtest2
8 files changed, 215 insertions, 79 deletions
diff --git a/config/alacritty/alacritty.linux.yml b/config/alacritty/alacritty.linux.yml
index 6c3b53e..7ca4f80 100644
--- a/config/alacritty/alacritty.linux.yml
+++ b/config/alacritty/alacritty.linux.yml
@@ -2,6 +2,10 @@
# alacritty #
#############
+env:
+ TERM: xterm-256color
+ WINIT_X11_SCALE_FACTOR: '1'
+
# font
font:
size: 9.0
@@ -12,8 +16,10 @@ font:
family: Fira Code
style: Regular
italic:
+ family: FiraMono
style: Italic
bold:
+ family: Fira Code
style: Bold
use_thin_strokes: false
diff --git a/config/nvim/init.lua b/config/nvim/init.lua
index 5b9770d..7665221 100644
--- a/config/nvim/init.lua
+++ b/config/nvim/init.lua
@@ -54,65 +54,19 @@ vim.g.gruvbox_contrast_dark = 'medium'
vim.g.gruvbox_contrast_light = 'hard'
vim.g.gruvbox_invert_selection = 0
+-- remove ugly treesitter error highlight
+require 'nvim-treesitter.highlight'
+local hlmap = vim.treesitter.highlighter.hl_map
+hlmap.error = nil
-local actions = require('telescope.actions')
-require('telescope').setup {
- defaults = {
- mappings = {
- i = {
- ['<C-j>'] = actions.move_selection_next,
- ['<C-k>'] = actions.move_selection_previous,
- ['<esc>'] = actions.close,
- ['kj'] = actions.close,
- }
- },
- -- preview = false,
- }
-}
+vim.cmd [[
+augroup packer_user_config
+ autocmd!
+ autocmd BufWritePost plugins.lua source <afile> | PackerCompile
+augroup end
+]]
-require('lualine').setup {
- options = {
- theme = 'gruvbox',
- icons_enabled = true,
- section_separators = '',
- component_separators = ''
- }
-}
-
-require('nvim-treesitter.configs').setup {
- highlight = {
- enable = true
- },
- -- indent = {
- -- enable = true
- -- },
- incremental_selection = {
- enable = true,
- keymaps = {
- init_selection = "gnn",
- node_incremental = "grn",
- scope_incremental = "grc",
- node_decremental = "grm",
- }
- }
-}
-vim.cmd [[ highlight link pythonTSKeywordOperator Keyword ]]
--- vim.cmd [[ highlight link TSError Normal ]]
--- require 'nvim-treesitter.highlight'
--- local hlmap = vim.treesitter.highlighter.hl_map
--- hlmap.error = nil
-
-
-require('nvim_comment').setup()
-
--- local on_attach = function(_, bufnr)
--- local opts = {noremap = true, silent = true }
--- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>', opts)
--- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>', opts)
--- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<cr>', opts)
--- end
-
--- require('lspconfig').clangd.setup {}
--- require('lspconfig').pyright.setup { on_attach = on_attach }
+-- remove trailing white space on save
+vim.cmd [[ autocmd BufWritePre * %s/\s\+$//e ]]
require('mappings')
diff --git a/config/nvim/lua/mappings.lua b/config/nvim/lua/mappings.lua
index ef4df4b..50c57e2 100644
--- a/config/nvim/lua/mappings.lua
+++ b/config/nvim/lua/mappings.lua
@@ -7,6 +7,9 @@ map('n', '<leader>sc', '<cmd>source $MYVIMRC<cr>', {}) -- source vimrc
map('n', '<leader>;', 'mqA;<esc>`q', {}) -- put semicolon at the end of line
map('n', 'cu', 'ct_', {}) -- common change until
map('n', '<leader>ss', '<cmd>setlocal spell!<cr>', {}) -- toggle spelling check
+map('n', '<leader>]', '<C-]>', {}) -- toggle spelling check
+map('n', '<leader>t', '<C-t>', {}) -- toggle spelling check
+
-- split navigation
map('n', '<C-j>', '<C-w><C-j>', {})
@@ -47,7 +50,6 @@ vim.cmd [[ autocmd FileType python nmap <leader>bd mq:g/^\s*breakpoint()$/d<cr>`
vim.cmd [[ autocmd FileType python nmap <leader>ba mqobreakpoint()<esc>`q ]]
-- pluggins
-
map('x', 'ga', '<cmd>EasyAlign<cr>', {})
map('n', 'ga', '<cmd>EasyAlign<cr>', {})
@@ -55,7 +57,3 @@ map('n', '<leader>l', '<cmd>SidewaysRight<cr>', {})
map('n', '<leader>h', '<cmd>SidewaysLeft<cr>', {})
map('n', '<leader>w', '<cmd>ArgWrap<cr>', {})
-
-map('n', '<C-p>', '<cmd>Telescope git_files<cr>', {})
-map('n', '<f2>', '<cmd>Telescope help_tags<cr>', {})
-map('n', '<leader>;', '<cmd>Telescope commands<cr>', {})
diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua
index 1d5d0b4..34b878d 100644
--- a/config/nvim/lua/plugins.lua
+++ b/config/nvim/lua/plugins.lua
@@ -1,26 +1,142 @@
-vim.cmd [[packadd packer.nvim]]
+vim.cmd [[ packadd packer.nvim ]]
return require('packer').startup(function()
use 'wbthomason/packer.nvim' -- plugin manager (can manage itself)
- use 'terrortylor/nvim-comment' -- comments
use 'junegunn/vim-easy-align' -- align
use 'AndrewRadev/sideways.vim' -- Move arguments sideways
use 'FooSoft/vim-argwrap' -- Put arguments on multiple lines
use 'tpope/vim-eunuch' -- basic commands on current file (Rename/Remove)
use 'romainl/vim-cool' -- only highlight search matches when searching
- use 'neovim/nvim-lspconfig' -- nvim lsp configuration
+ -- nvim lsp configuration
+ use {
+ 'neovim/nvim-lspconfig',
+ ft = {'rust', 'python', 'c', 'cpp', 'lua'},
+ config = function()
+ local on_attach = function(client, bufnr)
+ local opts = { noremap = true, silent = true }
+ local map = function(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
+ map('n', '<leader>[', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
+ map('n', '<leader>]', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
+ map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
+ map('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
+ map('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
+ map('n', '<leader>q', '<cmd>Telescope lsp_workspace_diagnostics<CR>', opts)
+ map('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
+ end
+ local lspconfig = require('lspconfig')
+ lspconfig.clangd.setup { on_attach = on_attach }
+ -- need python-lsp-server and pyls-flake8
+ lspconfig.pylsp.setup { on_attach = on_attach }
+ -- rust_analyzer
+ lspconfig.rust_analyzer.setup { on_attach = on_attach }
+ -- package lua-language-server on ArchLinux
+ lspconfig.sumneko_lua.setup {
+ on_attach = on_attach ,
+ settings = {
+ Lua = {
+ runtime = {
+ -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
+ version = 'LuaJIT',
+ -- Setup your lua path
+ path = vim.split(package.path, ';'),
+ },
+ diagnostics = {
+ -- Get the language server to recognize the `vim` global
+ globals = {'vim'},
+ },
+ workspace = {
+ -- Make the server aware of Neovim runtime files
+ library = {
+ [vim.fn.expand('$VIMRUNTIME/lua')] = true,
+ [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true,
+ },
+ },
+ }
+ },
+ }
+ vim.diagnostic.config {
+ signs = false,
+ update_in_insert = false,
+ }
+ end,
+ }
+
+ -- rust lsp (needs rust-analyser)
+ use {
+ 'simrat39/rust-tools.nvim',
+ requires = {'neovim/nvim-lspconfig'},
+ ft = {'rust'},
+ config = function()
+ require('rust-tools').setup {}
+ vim.diagnostic.config {
+ signs = false,
+ update_in_insert = false,
+ }
+ end
+ }
+
+ -- comment text objects
+ use {
+ 'numToStr/Comment.nvim',
+ config = function()
+ require('Comment').setup()
+ end
+ }
-- color scheme
- use {'ellisonleao/gruvbox.nvim', requires = {'rktjmp/lush.nvim'}}
+ use {
+ 'ellisonleao/gruvbox.nvim',
+ requires = {'rktjmp/lush.nvim'},
+ config = function()
+ vim.opt.termguicolors = true
+ vim.opt.background = "dark"
+ vim.cmd [[ colorscheme gruvbox ]]
+ vim.g.gruvbox_italic = 1
+ vim.g.gruvbox_bold = 1
+ vim.g.gruvbox_termcolors = 256
+ vim.g.gruvbox_contrast_dark = 'medium'
+ vim.g.gruvbox_contrast_light = 'hard'
+ vim.g.gruvbox_invert_selection = 0
+ end
+ }
-- status line
use {
'nvim-lualine/lualine.nvim',
- requires = {'kyazdani42/nvim-web-devicons', opt = true}
+ requires = {'kyazdani42/nvim-web-devicons', opt = true},
+ config = function()
+ require('lualine').setup {
+ options = {
+ theme = 'gruvbox',
+ icons_enabled = true,
+ section_separators = '',
+ component_separators = ''
+ }
+ }
+ end
}
-- better syntax highlight for everything
use {
'nvim-treesitter/nvim-treesitter',
- run = ':TSUpdate'
+ run = ':TSUpdate',
+ config = function()
+ require('nvim-treesitter.configs').setup {
+ highlight = {
+ enable = true
+ },
+ -- indent = { enable = true },
+ -- TODO: could be neat
+ -- incremental_selection = {
+ -- enable = true,
+ -- keymaps = {
+ -- init_selection = "gnn",
+ -- node_incremental = "grn",
+ -- scope_incremental = "grc",
+ -- node_decremental = "grm",
+ -- }
+ -- }
+ }
+ vim.cmd [[ highlight link pythonTSKeywordOperator Keyword ]]
+ end
}
-- fuzzy finder (replace fzf.vim or ctrlp.vim)
use {
@@ -28,6 +144,66 @@ return require('packer').startup(function()
requires = {
{'nvim-lua/plenary.nvim'},
{'kyazdani42/nvim-web-devicons', opt = true},
- }
+ },
+ config = function()
+ local actions = require('telescope.actions')
+ require('telescope').setup {
+ defaults = {
+ mappings = {
+ i = {
+ ['<C-j>'] = actions.move_selection_next,
+ ['<C-k>'] = actions.move_selection_previous,
+ ['<esc>'] = actions.close,
+ ['kj'] = actions.close,
+ }
+ },
+ }
+ }
+ local map = vim.api.nvim_set_keymap
+ map('n', '<C-p>', '<cmd>Telescope git_files<cr>', {})
+ map('n', '<leader>H', '<cmd>Telescope help_tags<cr>', {})
+ map('n', '<leader>;', '<cmd>Telescope commands<cr>', {})
+ end
+
+ }
+ -- todos,fix,etc.. highlight and list
+ use {
+ 'folke/todo-comments.nvim',
+ requires = 'nvim-lua/plenary.nvim',
+ config = function()
+ require('todo-comments').setup {
+ signs = false
+ }
+ end
+ }
+
+ -- remote files and lsp
+ use {
+ 'chipsenkbeil/distant.nvim',
+ config = function()
+ require('distant').setup {
+ ['*'] = require('distant.settings').chip_default()
+ }
+ end,
+ run = ':DistantInstall'
}
+
+ -- jupyter kernel in nvim (with images, needs ueberzug)
+ use {
+ 'dccsillag/magma-nvim',
+ -- ft = { 'python' }, -- doesn't work
+ run = ':UpdateRemotePlugins',
+ config = function()
+ local map = vim.api.nvim_set_keymap
+ map('n', '<leader>m', "nvim_exec('MagmaEvaluateOperator', v:true)", { expr = true})
+ map('n', '<leader>mm', '<cmd>MagmaEvaluateLine<CR>', {})
+ map('x', '<leader>m', '<cmd><C-u>MagmaEvaluateVisual<CR>', {})
+ map('n', '<leader>mc', '<cmd>MagmaReevaluateCell<CR>', {})
+ map('n', '<leader>md', '<cmd>MagmaDelete<CR>', {})
+ map('n', '<leader>mo', '<cmd>MagmaShowOutput<CR>', {})
+ end
+ }
+
+ use { 'nvim-treesitter/playground', opt = true, cmd = { 'TSPlaygroundToggle' } }
+ -- use { '~/git/argwrap.nvim', opt = true }
end)
diff --git a/config/qutebrowser/config.py b/config/qutebrowser/config.py
index 15b0343..269a38c 100644
--- a/config/qutebrowser/config.py
+++ b/config/qutebrowser/config.py
@@ -40,7 +40,8 @@ c.url.searchengines = {
c.window.hide_decoration = False
config.bind("<Command-Return>", "config-cycle window.hide_decoration true false", mode="normal")
-c.fonts.default_family = ["Fira Mono", "Baekmuk", "Symbola"]
+# package noto-fonts-emoji on ArchLinux
+c.fonts.default_family = ["Fira Mono", "Baekmuk", "Noto Color Emoji", "Symbola"]
c.fonts.hints = "bold 11pt default_family"
if platform.system() == 'Darwin':
c.fonts.default_size = '13pt'
@@ -439,3 +440,4 @@ c.colors.tabs.selected.even.bg = base05
c.colors.webpage.bg = base00
# vim:TSBufDisable highlight
+# vim:LspStop
diff --git a/config/zsh/zprofile b/config/zsh/zprofile
index d6c19d9..b64522f 100755
--- a/config/zsh/zprofile
+++ b/config/zsh/zprofile
@@ -3,25 +3,25 @@
if [ "$(uname)" = 'Linux' ]
then
export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:$HOME/.local/bin"
- export TERM='st-256color'
export MAIL='me@cacharle.xyz'
export SUDO='doas'
elif [ "$(uname)" = 'Darwin' ]
then
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export PATH="$PATH:$HOME/.brew/bin:$HOME/git/dotfiles/bin:$HOME/bin:/usr/local/anaconda3/bin"
- export TERM='xterm-256color'
export MAIL='charles.cabergs@colruytgroup.com'
export SUDO='sudo'
export LC_CTYPE='en_US.UTF-8'
fi
# applications
-export EDITOR='vim'
-export TERMINAL='st'
+export EDITOR='nvim'
+export TERMINAL='alacritty'
export BROWSER='qutebrowser'
export BROWSERCLI='w3m'
+export TERM='xterm-256color'
+
# XDG all the things
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
diff --git a/local/bin/project-open b/local/bin/project-open
index adb27a4..63d9314 100755
--- a/local/bin/project-open
+++ b/local/bin/project-open
@@ -16,7 +16,7 @@ dest_path="$HOME/git/$dest"
if cd "$dest_path" 2> /dev/null
then
touch "$dest_path"
- exec st
+ exec "$TERMINAL"
else
while [ -z "$choice" ]
do
@@ -28,7 +28,7 @@ else
mkdir -p "$dest_path"
cd "$dest_path" || exit 1
git init
- exec st
+ exec "$TERMINAL"
;;
"clone")
@@ -43,7 +43,7 @@ else
other) ;;
esac
url="$prefix$(echo "$dest" | dmenu -p "Enter repository url: $prefix")"
- st -e /bin/sh -c "git clone --recursive '$url' '$dest_path' && cd '$dest_path' && exec $SHELL" ||
+ "$TERMINAL" -e /bin/sh -c "git clone --recursive '$url' '$dest_path' && cd '$dest_path' && exec $SHELL" ||
notify-send -u critical "Could not clone $url in $dest_path" && exit 1
;;
diff --git a/test b/test
index 1f881f0..b32e3a4 100755
--- a/test
+++ b/test
@@ -29,6 +29,6 @@ then
fi
# XMONAD
-xmonad --recompile || ret=$?
+[ ! "$CI" = 'true' ] && { xmonad --recompile || ret=$?; }
exit $ret