refactor: change hosts to devices and separate hm modules from nix modules
This commit is contained in:
parent
80eec12883
commit
0e4c446438
127 changed files with 36 additions and 51 deletions
42
common/home/bash/config/bashrc
Normal file
42
common/home/bash/config/bashrc
Normal file
|
@ -0,0 +1,42 @@
|
|||
# PS1
|
||||
USER_COLOR="\[\033[01;32m\]"
|
||||
HOST_COLOR="\[\033[01;38;5;183m\]"
|
||||
WHITE="\[\033[00m\]"
|
||||
PURPLE="\[\033[01;34m\]"
|
||||
RED="\[\033[38;5;124m\]"
|
||||
FAILED="$RED⛔$WHITE"
|
||||
|
||||
set_prompt() {
|
||||
BRANCH=$(git symbolic-ref -q --short HEAD 2>/dev/null)
|
||||
if [ -n "$BRANCH" ]; then
|
||||
BRANCH="$RED($WHITE$BRANCH$RED)"
|
||||
fi
|
||||
|
||||
if [ "$1" == 0 ]; then
|
||||
STATUS=""
|
||||
else
|
||||
STATUS="$FAILED"
|
||||
fi
|
||||
|
||||
LEVEL=""
|
||||
if [ $SHLVL -gt 1 ]; then
|
||||
LEVEL="shellDepth=\$((SHLVL-1))"
|
||||
fi
|
||||
|
||||
PS1="╭╴$USER_COLOR\u$HOST_COLOR@\h$BRANCH$WHITE:$PURPLE\w$WHITE $LEVEL $STATUS\n╰╴$ "
|
||||
}
|
||||
|
||||
PROMPT_COMMAND="history -a"
|
||||
|
||||
|
||||
#PATH manipulations
|
||||
[[ -d ~/.local/bin ]] && PATH+=":$HOME/.local/bin"
|
||||
|
||||
# source: https://stackoverflow.com/a/44232192
|
||||
PATH="$(perl -e 'print join(":", grep { not $seen{$_}++ } split(/:/, $ENV{PATH}))')"
|
||||
|
||||
|
||||
# Pokemon Sprite
|
||||
[ -x "$(command -v pokemon-colorscripts)" ] &&
|
||||
[ "$POKE" == "true" ] &&
|
||||
pokemon-colorscripts -r 1-5
|
31
common/home/bash/config/colorgrid.sh
Normal file
31
common/home/bash/config/colorgrid.sh
Normal file
|
@ -0,0 +1,31 @@
|
|||
function colorgrid() {
|
||||
iter=16
|
||||
while [ $iter -lt 52 ]
|
||||
do
|
||||
second=$[$iter+36]
|
||||
third=$[$second+36]
|
||||
four=$[$third+36]
|
||||
five=$[$four+36]
|
||||
six=$[$five+36]
|
||||
seven=$[$six+36]
|
||||
if [ $seven -gt 250 ];then seven=$[$seven-251]; fi
|
||||
|
||||
echo -en "\033[38;5;$(echo $iter)m█ "
|
||||
printf "%03d" $iter
|
||||
echo -en " \033[38;5;$(echo $second)m█ "
|
||||
printf "%03d" $second
|
||||
echo -en " \033[38;5;$(echo $third)m█ "
|
||||
printf "%03d" $third
|
||||
echo -en " \033[38;5;$(echo $four)m█ "
|
||||
printf "%03d" $four
|
||||
echo -en " \033[38;5;$(echo $five)m█ "
|
||||
printf "%03d" $five
|
||||
echo -en " \033[38;5;$(echo $six)m█ "
|
||||
printf "%03d" $six
|
||||
echo -en " \033[38;5;$(echo $seven)m█ "
|
||||
printf "%03d" $seven
|
||||
|
||||
iter=$[$iter+1]
|
||||
printf '\r\n'
|
||||
done
|
||||
}
|
3
common/home/bash/config/dracula/fzf.sh
Normal file
3
common/home/bash/config/dracula/fzf.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Modified from https://github.com/dracula/fzf
|
||||
|
||||
export FZF_DEFAULT_OPTS='--color=fg:#f8f8f2,hl:#bd93f9 --color=fg+:#f8f8f2,hl+:#bd93f9 --color=info:#ffb86c,prompt:#50fa7b,pointer:#ff79c6 --color=marker:#ff79c6,spinner:#ffb86c,header:#6272a4'
|
10
common/home/bash/config/dracula/less.sh
Normal file
10
common/home/bash/config/dracula/less.sh
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Modified from https://github.com/dracula/man-pages
|
||||
|
||||
#man-page colors
|
||||
export LESS_TERMCAP_mb=$'\e[1;31m' # begin bold
|
||||
export LESS_TERMCAP_md=$'\e[1;34m' # begin blink
|
||||
export LESS_TERMCAP_so=$'\e[01;45;37m' # begin reverse video
|
||||
export LESS_TERMCAP_us=$'\e[01;36m' # begin underline
|
||||
export LESS_TERMCAP_me=$'\e[0m' # reset bold/blink
|
||||
export LESS_TERMCAP_se=$'\e[0m' # reset reverse video
|
||||
export LESS_TERMCAP_ue=$'\e[0m' # reset underline
|
167
common/home/bash/default.nix
Normal file
167
common/home/bash/default.nix
Normal file
|
@ -0,0 +1,167 @@
|
|||
{ config, lib, ... }: {
|
||||
imports = [
|
||||
./programs.nix
|
||||
];
|
||||
|
||||
programs = {
|
||||
|
||||
starship = let
|
||||
textColor = "#e3e5e5";
|
||||
firstColor = "#bd93f9";
|
||||
secondColor = "#715895";
|
||||
thirdColor = "#382c4a";
|
||||
fourthColor = "#120e18";
|
||||
in {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
settings = {
|
||||
format = lib.concatStrings [
|
||||
"╭╴"
|
||||
"[](fg:${firstColor})"
|
||||
"[ ](bg:${firstColor} fg:#090c0c)"
|
||||
"[](bg:${secondColor} fg:${firstColor})"
|
||||
"$username$hostname"
|
||||
"$sudo"
|
||||
"[](fg:${secondColor} bg:${thirdColor})"
|
||||
"$directory"
|
||||
"[](fg:${thirdColor} bg:${fourthColor})"
|
||||
"$git_branch"
|
||||
"[](fg:${fourthColor})"
|
||||
"\n╰╴$shlvl$nix_shell$character"
|
||||
];
|
||||
|
||||
sudo = {
|
||||
disabled = false;
|
||||
style = "fg:${textColor} bg:${secondColor}";
|
||||
format = "[as root ]($style)";
|
||||
};
|
||||
|
||||
username = {
|
||||
show_always = true;
|
||||
style_user = "fg:${textColor} bg:${secondColor}";
|
||||
style_root = "fg:red bg:${secondColor} blink";
|
||||
format = "[ $user]($style)";
|
||||
};
|
||||
|
||||
hostname = {
|
||||
ssh_only = false;
|
||||
style = "fg:${textColor} bg:${secondColor}";
|
||||
format = "[@$hostname ]($style)";
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "fg:${firstColor} bg:${thirdColor}";
|
||||
format = "[ $path ]($style)";
|
||||
truncate_to_repo = false;
|
||||
truncation_length = 0;
|
||||
|
||||
substitutions = {
|
||||
"Documents" = " ";
|
||||
"Downloads" = " ";
|
||||
"Music" = " ";
|
||||
"Pictures" = " ";
|
||||
};
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
style = "fg:${secondColor} bg:${fourthColor}";
|
||||
symbol = "";
|
||||
format = "[ $symbol $branch ]($style)";
|
||||
};
|
||||
|
||||
shlvl = {
|
||||
disabled = false;
|
||||
repeat = true;
|
||||
symbol = " ";
|
||||
format = "[$symbol]($style)";
|
||||
threshold = 1;
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
symbol = "❄️ ";
|
||||
format = "[$symbol]($style)";
|
||||
};
|
||||
|
||||
character = {
|
||||
success_symbol = "[\\$](bold green)";
|
||||
error_symbol = "[\\$](bold red)";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
|
||||
historyFile = "\$HOME/.cache/.bash_history";
|
||||
historyFileSize = 100000; # default
|
||||
historySize = 10000; # default
|
||||
historyControl = [
|
||||
"erasedups"
|
||||
"ignorespace"
|
||||
];
|
||||
historyIgnore = [
|
||||
"ls"
|
||||
"exit"
|
||||
"logout"
|
||||
];
|
||||
|
||||
shellOptions = [
|
||||
"histappend"
|
||||
"checkwinsize"
|
||||
"extglob"
|
||||
"globstar"
|
||||
"checkjobs"
|
||||
"autocd"
|
||||
"cdspell"
|
||||
"dirspell"
|
||||
"dotglob"
|
||||
];
|
||||
|
||||
shellAliases = {
|
||||
sudo = "sudo ";
|
||||
frick = "sudo $(fc -ln -1)";
|
||||
|
||||
nivm = "nvim";
|
||||
nivim = "nvim";
|
||||
|
||||
tmux = "tmux -2";
|
||||
ls = "ls -lah --color=auto";
|
||||
cp = "cp -r";
|
||||
|
||||
chore = "(cd ~/.nix; git add flake.lock; git commit -m 'chore: update flake.lock'; git push)";
|
||||
|
||||
tup = "tailscale up --login-server https://headscale.nelim.org";
|
||||
|
||||
pc = "mosh matt@binto -- tmux -2u new -At laptop";
|
||||
oksys = "mosh matt@oksys -- tmux -2u new -At laptop";
|
||||
pve = "mosh matt@pve -- tmux -2u new -At laptop";
|
||||
|
||||
mc = "mosh mc@mc -- tmux -2u new -At laptop";
|
||||
pod = "mosh matt@pve -- ssh -t -p 6768 matt@10.0.0.122 'tmux -2u new -At laptop'";
|
||||
jelly = "mosh matt@pve -- ssh -t matt@10.0.0.123 'tmux -2u new -At laptop'";
|
||||
qbit = "mosh matt@pve -- ssh -t matt@10.0.0.128 'tmux -2u new -At laptop'";
|
||||
};
|
||||
sessionVariables = {
|
||||
# FIXME: why is this not set by home-manager?
|
||||
"RIPGREP_CONFIG_PATH" = "${config.xdg.configHome}/ripgrep/ripgreprc";
|
||||
};
|
||||
|
||||
profileExtra = ''
|
||||
export POKE=true
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
'';
|
||||
bashrcExtra = ''
|
||||
${lib.strings.fileContents ./config/dracula/less.sh}
|
||||
${lib.strings.fileContents ./config/dracula/fzf.sh}
|
||||
|
||||
${lib.strings.fileContents ./config/colorgrid.sh}
|
||||
${lib.strings.fileContents ./config/bashrc}
|
||||
'';
|
||||
#initExtra = ''
|
||||
#'';
|
||||
#logoutExtra = ''
|
||||
#'';
|
||||
};
|
||||
};
|
||||
}
|
44
common/home/bash/programs.nix
Normal file
44
common/home/bash/programs.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ pkgs, ... }: {
|
||||
programs = {
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
|
||||
ripgrep = {
|
||||
enable = true;
|
||||
arguments = [
|
||||
"--max-columns=150"
|
||||
"--max-columns-preview"
|
||||
"--hidden"
|
||||
"--glob=!.git/*"
|
||||
"--smart-case"
|
||||
"--sort"
|
||||
"path"
|
||||
];
|
||||
};
|
||||
|
||||
jq.enable = true;
|
||||
htop.enable = true;
|
||||
|
||||
bash.shellAliases = {
|
||||
cat = "bat ";
|
||||
man = "BAT_THEME='default' batman ";
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "dracula-bat";
|
||||
};
|
||||
themes = {
|
||||
dracula-bat = {
|
||||
src = "${pkgs.dracula-theme}/bat";
|
||||
file = "dracula-bat.tmTheme";
|
||||
};
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
batman
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
35
common/home/git.nix
Normal file
35
common/home/git.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ pkgs, ... }: {
|
||||
programs = {
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
|
||||
userName = "matt1432";
|
||||
userEmail = "matt@nelim.org";
|
||||
|
||||
includes = [
|
||||
{ path = "${pkgs.dracula-theme}/git-colors"; }
|
||||
];
|
||||
|
||||
delta = {
|
||||
enable = true;
|
||||
options = {
|
||||
side-by-side = true;
|
||||
line-numbers-zero-style = "#E6EDF3"; #BD93F9";
|
||||
};
|
||||
};
|
||||
|
||||
# https://github.com/dandavison/delta/issues/630#issuecomment-860046929
|
||||
extraConfig.pager = let
|
||||
cmd = "LESS='LRc --mouse' ${pkgs.delta}/bin/delta";
|
||||
in {
|
||||
diff = cmd;
|
||||
show = cmd;
|
||||
stash = cmd;
|
||||
log = cmd;
|
||||
reflog = cmd;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
26
common/home/neovim/base.vim
Normal file
26
common/home/neovim/base.vim
Normal file
|
@ -0,0 +1,26 @@
|
|||
" by default, the indent is 2 spaces.
|
||||
set smartindent
|
||||
set expandtab
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set tabstop=2
|
||||
|
||||
" for html/rb files, 2 spaces
|
||||
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
|
||||
|
||||
" for js/coffee/jade files, 4 spaces
|
||||
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 expandtab
|
||||
autocmd Filetype java setlocal ts=4 sw=4 sts=0 expandtab
|
||||
|
||||
" support scss @
|
||||
autocmd FileType scss setl iskeyword+=@-@
|
||||
|
||||
set number
|
||||
set relativenumber
|
||||
|
||||
set undofile
|
||||
set undodir=/home/matt/.cache/nvim/
|
||||
|
||||
" remove highlight on words
|
||||
nnoremap <silent> <esc> :noh<cr><esc>
|
201
common/home/neovim/default.nix
Normal file
201
common/home/neovim/default.nix
Normal file
|
@ -0,0 +1,201 @@
|
|||
{ pkgs, lib, ... }: let
|
||||
# installs a vim plugin from git with a given tag / branch
|
||||
plugin = owner: repo: rev: hash: pkgs.vimUtils.buildVimPlugin {
|
||||
pname = "${lib.strings.sanitizeDerivationName repo}";
|
||||
version = rev;
|
||||
src = pkgs.fetchFromGitHub {
|
||||
inherit rev owner repo hash;
|
||||
};
|
||||
};
|
||||
fileContents = lib.strings.fileContents;
|
||||
in {
|
||||
# TODO: make a gradle module and have java in device-vars.nix
|
||||
xdg.dataFile = {
|
||||
".gradle/gradle.properties".source =
|
||||
pkgs.writeText "gradle.properties" ''
|
||||
org.gradle.java.home = ${pkgs.temurin-bin-17}
|
||||
'';
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
gradle
|
||||
gradle-completion # FIXME: not working
|
||||
];
|
||||
|
||||
programs = {
|
||||
|
||||
java = {
|
||||
enable = true;
|
||||
package = pkgs.temurin-bin-17;
|
||||
};
|
||||
|
||||
neovim = {
|
||||
enable = true;
|
||||
package = pkgs.neovim-nightly;
|
||||
withNodeJs = true;
|
||||
withPython3 = true;
|
||||
withRuby = false;
|
||||
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
nodejs_latest
|
||||
nodePackages.npm
|
||||
nodePackages.neovim
|
||||
gradle
|
||||
|
||||
bat
|
||||
|
||||
nil
|
||||
];
|
||||
extraPython3Packages = with pkgs.python311Packages; [
|
||||
pylint
|
||||
];
|
||||
|
||||
coc = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# General
|
||||
"colors.enable" = true;
|
||||
"coc.preferences.formatOnType" = true;
|
||||
"diagnostic.checkCurrentLine" = true;
|
||||
"inlayHint.enable" = false;
|
||||
|
||||
# Eslint
|
||||
"eslint.format.enable" = true;
|
||||
"eslint.autoFixOnSave" = true;
|
||||
|
||||
# Stylelint
|
||||
"stylelintplus.enable" = true;
|
||||
"stylelintplus.cssInJs" = true;
|
||||
"stylelintplus.autoFixOnSave" = true;
|
||||
"stylelintplus.autoFixOnFormat" = true;
|
||||
"css.validate" = false;
|
||||
"less.validate" = false;
|
||||
"scss.validate" = false;
|
||||
"wxss.validate" = false;
|
||||
|
||||
# Lua lsp
|
||||
"Lua.misc.parameters" = [
|
||||
"--metapath"
|
||||
"~/.cache/sumneko_lua/meta"
|
||||
"--logpath"
|
||||
"~/.cache/sumneko_lua/log"
|
||||
];
|
||||
"Lua.workspace.library" = [
|
||||
"$\{3rd\}/luv/library"
|
||||
];
|
||||
sumneko-lua = {
|
||||
serverDir = "${pkgs.lua-language-server}/share/lua-language-server";
|
||||
enableNvimLuaDev = true;
|
||||
};
|
||||
|
||||
# Nix
|
||||
languageserver = {
|
||||
nix = {
|
||||
command = "nil";
|
||||
filetypes = [ "nix" ];
|
||||
rootPatterns = [ "flake.nix" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Misc
|
||||
"java.jdt.ls.java.home" = "${pkgs.temurin-bin-17}";
|
||||
"bashIde.shellcheckPath" = "${pkgs.shellcheck}/bin/shellcheck";
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = fileContents ./base.vim;
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
# Coc configured
|
||||
coc-css
|
||||
coc-eslint
|
||||
coc-java
|
||||
coc-sh
|
||||
coc-stylelintplus
|
||||
{
|
||||
plugin = coc-snippets;
|
||||
type = "viml";
|
||||
config = fileContents ./plugins/snippets.vim;
|
||||
}
|
||||
|
||||
## Lua
|
||||
coc-sumneko-lua
|
||||
neodev-nvim
|
||||
|
||||
## Fzf
|
||||
coc-fzf
|
||||
fzfWrapper
|
||||
fzf-vim
|
||||
|
||||
coc-highlight
|
||||
coc-json
|
||||
coc-pyright
|
||||
coc-vimlsp
|
||||
coc-yaml
|
||||
coc-toml
|
||||
coc-markdownlint
|
||||
coc-tsserver
|
||||
fugitive
|
||||
|
||||
{
|
||||
plugin = dracula-nvim;
|
||||
type = "viml";
|
||||
config = fileContents ./plugins/dracula.vim;
|
||||
}
|
||||
{
|
||||
plugin = lualine-nvim;
|
||||
type = "lua";
|
||||
config = fileContents ./plugins/lualine.lua;
|
||||
}
|
||||
{
|
||||
plugin = todo-comments-nvim;
|
||||
type = "lua";
|
||||
config = "require('todo-comments').setup()";
|
||||
}
|
||||
{
|
||||
plugin = gitsigns-nvim;
|
||||
type = "lua";
|
||||
config = "require('gitsigns').setup()";
|
||||
}
|
||||
{
|
||||
plugin = nvim-autopairs;
|
||||
type = "lua";
|
||||
config = fileContents ./plugins/autopairs.lua;
|
||||
}
|
||||
nvim-treesitter-context
|
||||
nvim-treesitter-textobjects
|
||||
{
|
||||
plugin = nvim-treesitter.withAllGrammars;
|
||||
type = "viml";
|
||||
config = fileContents ./plugins/treesitter.vim;
|
||||
}
|
||||
{
|
||||
plugin = (plugin "lukas-reineke" "indent-blankline.nvim"
|
||||
"046e2cf04e08ece927bacbfb87c5b35c0b636546"
|
||||
"sha256-bhoep8aTYje5K/dZ/XmpwBPn4PBEMPrmw33QJdfFe6M=");
|
||||
type = "lua";
|
||||
config = fileContents ./plugins/indent.lua;
|
||||
}
|
||||
{
|
||||
plugin = mini-nvim;
|
||||
type = "lua";
|
||||
config = fileContents ./plugins/mini.lua;
|
||||
}
|
||||
{
|
||||
plugin = neo-tree-nvim;
|
||||
type = "viml";
|
||||
config = ''
|
||||
${fileContents ./plugins/neotree.vim}
|
||||
|
||||
lua << EOF
|
||||
${fileContents ./plugins/neotree.lua}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
16
common/home/neovim/plugins/autopairs.lua
Normal file
16
common/home/neovim/plugins/autopairs.lua
Normal file
|
@ -0,0 +1,16 @@
|
|||
-- Auto indent when pressing Enter between brackets
|
||||
local remap = vim.api.nvim_set_keymap
|
||||
local npairs = require('nvim-autopairs')
|
||||
npairs.setup({map_cr=false})
|
||||
|
||||
_G.MUtils= {}
|
||||
|
||||
MUtils.completion_confirm=function()
|
||||
if vim.fn["coc#pum#visible"]() ~= 0 then
|
||||
return vim.fn["coc#pum#confirm"]()
|
||||
else
|
||||
return npairs.autopairs_cr()
|
||||
end
|
||||
end
|
||||
|
||||
remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
|
10
common/home/neovim/plugins/dracula.vim
Normal file
10
common/home/neovim/plugins/dracula.vim
Normal file
|
@ -0,0 +1,10 @@
|
|||
" set dot icon in place of trailing whitespaces
|
||||
set list listchars=tab:\ \ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨
|
||||
|
||||
|
||||
lua << EOF
|
||||
-- Add visual indicator for trailing whitespaces
|
||||
vim.opt.fillchars = {eob = " "}
|
||||
|
||||
vim.cmd[[colorscheme dracula]]
|
||||
EOF
|
26
common/home/neovim/plugins/indent.lua
Normal file
26
common/home/neovim/plugins/indent.lua
Normal file
|
@ -0,0 +1,26 @@
|
|||
local highlight = {
|
||||
"RainbowRed",
|
||||
"RainbowYellow",
|
||||
"RainbowBlue",
|
||||
"RainbowOrange",
|
||||
"RainbowGreen",
|
||||
"RainbowViolet",
|
||||
"RainbowCyan",
|
||||
}
|
||||
local hooks = require('ibl.hooks')
|
||||
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
|
||||
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
|
||||
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
|
||||
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
|
||||
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
|
||||
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
|
||||
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
|
||||
end)
|
||||
|
||||
require('ibl').setup({
|
||||
indent = {
|
||||
highlight = highlight,
|
||||
char = "▏",
|
||||
},
|
||||
})
|
6
common/home/neovim/plugins/lualine.lua
Normal file
6
common/home/neovim/plugins/lualine.lua
Normal file
|
@ -0,0 +1,6 @@
|
|||
require('lualine').setup({
|
||||
options = {
|
||||
theme = 'dracula',
|
||||
globalstatus = true
|
||||
}
|
||||
})
|
23
common/home/neovim/plugins/mini.lua
Normal file
23
common/home/neovim/plugins/mini.lua
Normal file
|
@ -0,0 +1,23 @@
|
|||
local map = require('mini.map')
|
||||
map.setup({
|
||||
integrations = {
|
||||
map.gen_integration.builtin_search(),
|
||||
map.gen_integration.gitsigns(),
|
||||
map.gen_integration.diagnostic(),
|
||||
},
|
||||
window = {
|
||||
focusable = true,
|
||||
width = 7,
|
||||
winblend = 75,
|
||||
},
|
||||
})
|
||||
|
||||
local ts_input = require('mini.surround').gen_spec.input.treesitter
|
||||
require('mini.surround').setup({
|
||||
custom_surroundings = {
|
||||
-- Use tree-sitter to search for function call
|
||||
f = {
|
||||
input = ts_input({ outer = '@call.outer', inner = '@call.inner' })
|
||||
},
|
||||
}
|
||||
})
|
37
common/home/neovim/plugins/neotree.lua
Normal file
37
common/home/neovim/plugins/neotree.lua
Normal file
|
@ -0,0 +1,37 @@
|
|||
-- Override netrw
|
||||
vim.g.loaded_netrw = 0
|
||||
vim.g.loaded_netrwPlugin = 0
|
||||
|
||||
require('neo-tree').setup({
|
||||
close_if_last_window = true,
|
||||
enable_refresh_on_write = true,
|
||||
|
||||
window = {
|
||||
width = 22,
|
||||
},
|
||||
|
||||
filesystem = {
|
||||
use_libuv_file_watcher = true,
|
||||
|
||||
filtered_items = {
|
||||
visible = false,
|
||||
hide_dotfiles = false,
|
||||
hide_gitignored = true,
|
||||
hide_by_name = {},
|
||||
hide_by_pattern = {},
|
||||
always_show = {},
|
||||
never_show = {},
|
||||
never_show_by_pattern = {},
|
||||
},
|
||||
},
|
||||
|
||||
source_selector = {
|
||||
winbar = true,
|
||||
statusline = false
|
||||
},
|
||||
|
||||
follow_current_file = {
|
||||
enabled = true,
|
||||
leave_dirs_open = true,
|
||||
}
|
||||
})
|
11
common/home/neovim/plugins/neotree.vim
Normal file
11
common/home/neovim/plugins/neotree.vim
Normal file
|
@ -0,0 +1,11 @@
|
|||
" Auto open Neo-Tree on big enough window
|
||||
function! OpenTree() abort
|
||||
if &columns > 100
|
||||
Neotree show
|
||||
Neotree close
|
||||
Neotree show
|
||||
endif
|
||||
lua MiniMap.open()
|
||||
endfunction
|
||||
|
||||
autocmd VimEnter * call OpenTree()
|
13
common/home/neovim/plugins/snippets.vim
Normal file
13
common/home/neovim/plugins/snippets.vim
Normal file
|
@ -0,0 +1,13 @@
|
|||
" use vscode keybinds for snippets completion
|
||||
inoremap <silent><expr> <TAB>
|
||||
\ coc#pum#visible() ? coc#_select_confirm() :
|
||||
\ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
|
||||
\ CheckBackspace() ? "\<TAB>" :
|
||||
\ coc#refresh()
|
||||
|
||||
function! CheckBackspace() abort
|
||||
let col = col('.') - 1
|
||||
return !col || getline('.')[col - 1] =~# '\s'
|
||||
endfunction
|
||||
|
||||
let g:coc_snippet_next = '<tab>'
|
17
common/home/neovim/plugins/treesitter.vim
Normal file
17
common/home/neovim/plugins/treesitter.vim
Normal file
|
@ -0,0 +1,17 @@
|
|||
lua << EOF
|
||||
|
||||
require('nvim-treesitter.configs').setup({
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true }
|
||||
})
|
||||
|
||||
require('treesitter-context').setup({
|
||||
enable = true,
|
||||
max_lines = 3,
|
||||
min_window_height = 20,
|
||||
})
|
||||
|
||||
EOF
|
||||
|
||||
" Add line under context
|
||||
hi TreesitterContextBottom gui=underline guisp=Grey
|
26
common/home/tmux.nix
Normal file
26
common/home/tmux.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ pkgs, ... }: {
|
||||
programs = {
|
||||
tmux = {
|
||||
enable = true;
|
||||
mouse = true;
|
||||
keyMode = "vi";
|
||||
terminal = "tmux-256color";
|
||||
newSession = true;
|
||||
historyLimit = 30000;
|
||||
|
||||
plugins = with pkgs.tmuxPlugins; [
|
||||
dracula
|
||||
];
|
||||
|
||||
extraConfig = ''
|
||||
bind-key -n Home send Escape "OH"
|
||||
bind-key -n End send Escape "OF"
|
||||
bind -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
|
||||
bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"
|
||||
|
||||
set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue