pull out configuration into separate files
This commit is contained in:
parent
926e39a5fc
commit
1141392278
6 changed files with 240 additions and 241 deletions
|
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.systemd-boot.configurationLimit = 42;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
@ -51,17 +52,21 @@
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
cachix
|
cachix
|
||||||
|
calibre
|
||||||
firefox
|
firefox
|
||||||
inkscape
|
inkscape
|
||||||
p7zip
|
p7zip
|
||||||
plasma-browser-integration
|
plasma-browser-integration
|
||||||
|
slack
|
||||||
vim
|
vim
|
||||||
|
vlc
|
||||||
wget
|
wget
|
||||||
xclip
|
xclip
|
||||||
zathura
|
zathura
|
||||||
zsh
|
zsh
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
|
nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
|
||||||
|
|
||||||
fonts.fonts = with pkgs; [ fira-code ];
|
fonts.fonts = with pkgs; [ fira-code ];
|
||||||
|
|
@ -71,10 +76,12 @@
|
||||||
allowedTCPPorts = [
|
allowedTCPPorts = [
|
||||||
631 # CUPs port for printing
|
631 # CUPs port for printing
|
||||||
6881 # port for torrenting
|
6881 # port for torrenting
|
||||||
|
8010 # port for VLC to chromecast
|
||||||
];
|
];
|
||||||
allowedUDPPorts = [
|
allowedUDPPorts = [
|
||||||
631
|
631
|
||||||
6881
|
6881
|
||||||
|
8010
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
[
|
[
|
||||||
pkgs.firefox
|
pkgs.firefox
|
||||||
|
skhd
|
||||||
];
|
];
|
||||||
|
|
||||||
# Use a custom configuration.nix location.
|
# Use a custom configuration.nix location.
|
||||||
|
|
|
||||||
40
nix/direnv/direnvrc
Normal file
40
nix/direnv/direnvrc
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
layout_postgres() {
|
||||||
|
export PGDATA="$(direnv_layout_dir)/tmp/pgdata"
|
||||||
|
export PGHOST="$PGDATA"
|
||||||
|
if [[ ! -d "$PGDATA" ]]; then
|
||||||
|
initdb --locale=$LANG
|
||||||
|
cat <<EOF >>"$PGDATA/postgresql.conf"
|
||||||
|
listen_addresses = 'localhost'
|
||||||
|
unix_socket_directories = '$PGHOST'
|
||||||
|
EOF
|
||||||
|
echo "CREATE DATABASE $USER;" | postgres --single -E postgres
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
layout_go() {
|
||||||
|
export GOPATH="$(direnv_layout_dir)/tmp/golibs"
|
||||||
|
if [[ ! -d "$GOPATH" ]]; then
|
||||||
|
mkdir -p $GOPATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PATH="$GOPATH/bin:$PATH"
|
||||||
|
}
|
||||||
|
|
||||||
|
layout_mysql() {
|
||||||
|
export MYSQL_HOME="$(direnv_layout_dir)/mysql"
|
||||||
|
export MYSQLDATA="$MYSQL_HOME/data"
|
||||||
|
if [[ ! -d "$MYSQLDATA" ]]; then
|
||||||
|
mkdir -p $MYSQL_HOME
|
||||||
|
cat <<EOF >>"$MYSQL_HOME/my.cnf"
|
||||||
|
[mysqld]
|
||||||
|
table_open_cache=400
|
||||||
|
socket=/tmp/mysql.sock
|
||||||
|
max_allowed_packet=256M
|
||||||
|
datadir=$MYSQLDATA
|
||||||
|
|
||||||
|
[client]
|
||||||
|
socket=/tmp/mysql.sock
|
||||||
|
EOF
|
||||||
|
mysqld --initialize-insecure
|
||||||
|
fi
|
||||||
|
}
|
||||||
246
nix/home.nix
246
nix/home.nix
|
|
@ -13,7 +13,7 @@ let
|
||||||
sha256 = "06gh3v35bdr0qsp459183br4hpmwm36d2r9fjyx9j5jfpzggqg51";
|
sha256 = "06gh3v35bdr0qsp459183br4hpmwm36d2r9fjyx9j5jfpzggqg51";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "17lr4pc2fjcgvx0p4vpkwx3mg9jadb4lygbwri0blmnkqql8xlh3";
|
cargoSha256 = "0f0a88pv4myavdrznz68f5jfc82y8whrdwcyp1q8i6nrn606csi7";
|
||||||
nativeBuildInputs = [ pkgs.pkgconfig ];
|
nativeBuildInputs = [ pkgs.pkgconfig ];
|
||||||
buildInputs = [ pkgs.openssl ] ++ (if pkgs.stdenv.isDarwin then [ pkgs.libiconv pkgs.darwin.apple_sdk.frameworks.Security ] else []);
|
buildInputs = [ pkgs.openssl ] ++ (if pkgs.stdenv.isDarwin then [ pkgs.libiconv pkgs.darwin.apple_sdk.frameworks.Security ] else []);
|
||||||
};
|
};
|
||||||
|
|
@ -62,58 +62,11 @@ in {
|
||||||
zsh-autosuggestions
|
zsh-autosuggestions
|
||||||
zsh-history-substring-search
|
zsh-history-substring-search
|
||||||
zsh-syntax-highlighting
|
zsh-syntax-highlighting
|
||||||
] ++ (if pkgs.stdenv.isDarwin then [
|
];
|
||||||
skhd # keyboard shortcut daemon for macOS
|
|
||||||
] else [
|
|
||||||
calibre
|
|
||||||
slack
|
|
||||||
vlc
|
|
||||||
]);
|
|
||||||
|
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
stdlib = ''
|
stdlib = readFile ./direnv/direnvrc;
|
||||||
layout_postgres() {
|
|
||||||
export PGDATA="$(direnv_layout_dir)/tmp/pgdata"
|
|
||||||
export PGHOST="$PGDATA"
|
|
||||||
if [[ ! -d "$PGDATA" ]]; then
|
|
||||||
initdb --locale=$LANG
|
|
||||||
cat <<EOF >>"$PGDATA/postgresql.conf"
|
|
||||||
listen_addresses = 'localhost'
|
|
||||||
unix_socket_directories = '$PGHOST'
|
|
||||||
EOF
|
|
||||||
echo "CREATE DATABASE $USER;" | postgres --single -E postgres
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
layout_go() {
|
|
||||||
export GOPATH="$(direnv_layout_dir)/tmp/golibs"
|
|
||||||
if [[ ! -d "$GOPATH" ]]; then
|
|
||||||
mkdir -p $GOPATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
export PATH="$GOPATH/bin:$PATH"
|
|
||||||
}
|
|
||||||
|
|
||||||
layout_mysql() {
|
|
||||||
export MYSQL_HOME="$(direnv_layout_dir)/mysql"
|
|
||||||
export MYSQLDATA="$MYSQL_HOME/data"
|
|
||||||
if [[ ! -d "$MYSQLDATA" ]]; then
|
|
||||||
mkdir -p $MYSQL_HOME
|
|
||||||
cat <<EOF >>"$MYSQL_HOME/my.cnf"
|
|
||||||
[mysqld]
|
|
||||||
table_open_cache=400
|
|
||||||
socket=/tmp/mysql.sock
|
|
||||||
max_allowed_packet=256M
|
|
||||||
datadir=$MYSQLDATA
|
|
||||||
|
|
||||||
[client]
|
|
||||||
socket=/tmp/mysql.sock
|
|
||||||
EOF
|
|
||||||
mysqld --initialize-insecure
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
|
|
@ -138,40 +91,7 @@ in {
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
defaultKeymap = "viins";
|
defaultKeymap = "viins";
|
||||||
|
|
||||||
initExtra = mkForce (''
|
initExtra = readFile ./zsh/zshrc;
|
||||||
export LOCALE_ARCHIVE="/usr/lib/locale/locale-archive"
|
|
||||||
export NIX_PATH=darwin-config=$HOME/.nixpkgs/darwin-configuration.nix:$HOME/.nix-defexpr/channels:$NIX_PATH
|
|
||||||
export EDITOR=vim
|
|
||||||
|
|
||||||
source $HOME/.nix-profile/etc/profile.d/nix.sh
|
|
||||||
source $HOME/.nix-profile/share/fzf/key-bindings.zsh
|
|
||||||
source $HOME/.nix-profile/share/fzf/completion.zsh
|
|
||||||
source $HOME/.nix-profile/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
|
||||||
source $HOME/.nix-profile/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
||||||
source $HOME/.config/zsh/local.zsh
|
|
||||||
|
|
||||||
bindkey '^[[A' history-substring-search-up
|
|
||||||
bindkey '^[[B' history-substring-search-down
|
|
||||||
bindkey -M viins 'jj' vi-cmd-mode
|
|
||||||
|
|
||||||
# utility for storing functions under a new name
|
|
||||||
save_function() {
|
|
||||||
local ORIG_FUNC=$(declare -f $1)
|
|
||||||
local NEWNAME_FUNC="$2''${ORIG_FUNC#$1}"
|
|
||||||
eval "$NEWNAME_FUNC"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Override an oh-my-zsh/lib/git.sh function so that old repositories
|
|
||||||
# don't slow the shell down
|
|
||||||
save_function git_prompt_status old_git_prompt_status
|
|
||||||
function git_prompt_status() {
|
|
||||||
if [[ "$(command git config --get oh-my-zsh.hide-prompt-status 2>/dev/null)" != "1" ]]; then
|
|
||||||
old_git_prompt_status
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
eval "$(direnv hook zsh)"
|
|
||||||
'');
|
|
||||||
|
|
||||||
oh-my-zsh = {
|
oh-my-zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -245,163 +165,7 @@ in {
|
||||||
vim-goyo
|
vim-goyo
|
||||||
];
|
];
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = readFile ./vim/init.vim;
|
||||||
filetype plugin indent on
|
|
||||||
|
|
||||||
" vimtex
|
|
||||||
let g:tex_flavor = 'latex'
|
|
||||||
|
|
||||||
" ALE
|
|
||||||
let g:ale_fix_on_save = 1
|
|
||||||
let g:ale_elixir_credo_strict = 1
|
|
||||||
let g:ale_fixers = {
|
|
||||||
\ 'elm': ['elm-format', 'format'],
|
|
||||||
\ 'javascript': ['prettier'],
|
|
||||||
\ 'javascript.jsx': ['prettier'],
|
|
||||||
\ 'javascriptreact': ['prettier'],
|
|
||||||
\ 'typescriptreact': ['prettier'],
|
|
||||||
\ 'typescript': ['prettier'],
|
|
||||||
\ 'ruby': ['sorbet'],
|
|
||||||
\ 'rust': ['rustfmt'],
|
|
||||||
\ 'elixir': ['mix_format']
|
|
||||||
\}
|
|
||||||
let g:ale_linters_ignore = {
|
|
||||||
\ 'javascript': ['tsserver'],
|
|
||||||
\ 'javascriptreact': ['tsserver'],
|
|
||||||
\}
|
|
||||||
|
|
||||||
" Easymotion
|
|
||||||
map / <Plug>(easymotion-sn)
|
|
||||||
omap / <Plug>(easymotion-tn)
|
|
||||||
map n <Plug>(easymotion-next)
|
|
||||||
map N <Plug>(easymotion-prev)
|
|
||||||
let g:EasyMotion_landing_highlight = 0
|
|
||||||
|
|
||||||
" Rainbow parentheses
|
|
||||||
let g:rainbow_conf = {
|
|
||||||
\ 'guifgs': ['RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3'],
|
|
||||||
\ 'ctermfgs': ['red', 'brown', 'blue', 'gray', 'green', 'magenta', 'cyan', 'darkred', 'brown', 'darkblue', 'gray', 'darkgreen', 'darkmagenta', 'darkcyan', 'red'],
|
|
||||||
\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold']
|
|
||||||
\}
|
|
||||||
let g:rainbow_active = 1
|
|
||||||
|
|
||||||
" Vim-Test
|
|
||||||
nmap <silent> <leader>t :TestNearest<CR>
|
|
||||||
nmap <silent> <leader>T :TestFile<CR>
|
|
||||||
nmap <silent> <leader>a :TestSuite<CR>
|
|
||||||
nmap <silent> <leader>l :TestLast<CR>
|
|
||||||
nmap <silent> <leader>g :TestVisit<CR>
|
|
||||||
let test#strategy = "neovim"
|
|
||||||
|
|
||||||
" Deoplete
|
|
||||||
let g:deoplete#enable_at_startup = 1
|
|
||||||
|
|
||||||
" LanguageClient-neovim
|
|
||||||
let g:LanguageClient_serverCommands = {
|
|
||||||
\ 'elm': ['elm-language-server'],
|
|
||||||
\ 'rust': ['rustup', 'run', 'stable', 'rls'],
|
|
||||||
\ 'ruby': ['bundle', 'exec', 'srb', 'tc', '--lsp', '.'],
|
|
||||||
\ }
|
|
||||||
|
|
||||||
let g:LanguageClient_rootMarkers = {
|
|
||||||
\ 'elm': ['elm.json'],
|
|
||||||
\ 'typescriptreact': ['tsconfig.json'],
|
|
||||||
\ 'ruby': ['Gemfile'],
|
|
||||||
\ }
|
|
||||||
|
|
||||||
let g:LanguageClient_loggingFile = expand('~/.local/share/nvim/LanguageClient.log')
|
|
||||||
|
|
||||||
nnoremap <leader>t :call LanguageClient_textDocument_hover()<CR>
|
|
||||||
nnoremap <leader>y :call LanguageClient_textDocument_definition()<CR>
|
|
||||||
|
|
||||||
" Indent guides
|
|
||||||
let g:indent_guides_enable_on_vim_startup = 1
|
|
||||||
let g:indent_guides_start_level = 2
|
|
||||||
|
|
||||||
" let netrw look like NERDTree
|
|
||||||
let g:netrw_liststyle = 3
|
|
||||||
let mapleader=","
|
|
||||||
set nobackup
|
|
||||||
set noswapfile
|
|
||||||
set pastetoggle=<F2>
|
|
||||||
set nowrap
|
|
||||||
|
|
||||||
set background=dark
|
|
||||||
colorscheme PaperColor
|
|
||||||
|
|
||||||
set nocompatible
|
|
||||||
set number relativenumber
|
|
||||||
set numberwidth=1
|
|
||||||
set cursorline
|
|
||||||
set cursorcolumn
|
|
||||||
set ruler
|
|
||||||
set list
|
|
||||||
set listchars=tab:>-,trail:-,extends:>,precedes:<,nbsp:+,eol:$
|
|
||||||
set matchpairs+=<:>
|
|
||||||
set ts=2
|
|
||||||
set shiftwidth=2
|
|
||||||
set expandtab
|
|
||||||
|
|
||||||
" Open new split panes to right and bottom, which feels more natural
|
|
||||||
set splitbelow
|
|
||||||
set splitright
|
|
||||||
|
|
||||||
""" Searching and Patterns
|
|
||||||
set ignorecase
|
|
||||||
set smartcase
|
|
||||||
set smarttab
|
|
||||||
set hlsearch
|
|
||||||
" Add the g flag to search/replace by default
|
|
||||||
set gdefault
|
|
||||||
|
|
||||||
"recalculate the trailing whitespace warning when idle, and after saving
|
|
||||||
autocmd cursorhold,bufwritepost * unlet! b:statusline_trailing_space_warning
|
|
||||||
|
|
||||||
" strip trailing whitespace
|
|
||||||
autocmd BufWritePre * :%s/\s\+$//e
|
|
||||||
|
|
||||||
""" Handy remaps
|
|
||||||
noremap ; :
|
|
||||||
inoremap jj <Esc>
|
|
||||||
map <silent> <leader>V :source ~/.config/nvim/init.vim<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR>
|
|
||||||
map \q :q<CR>
|
|
||||||
map \w :w<CR>
|
|
||||||
noremap Q <nop>
|
|
||||||
|
|
||||||
""" Esperanto digraphs (for use with ctrl-k)
|
|
||||||
:digraph Cx 264
|
|
||||||
:digraph cx 265
|
|
||||||
:digraph Gx 284
|
|
||||||
:digraph gx 285
|
|
||||||
:digraph Hx 292
|
|
||||||
:digraph hx 293
|
|
||||||
:digraph Jx 308
|
|
||||||
:digraph jx 309
|
|
||||||
:digraph Sx 348
|
|
||||||
:digraph sx 349
|
|
||||||
:digraph Ux 364
|
|
||||||
:digraph ux 365
|
|
||||||
|
|
||||||
""" Terminal mode remaps
|
|
||||||
tnoremap <Esc> <C-\><C-n>
|
|
||||||
nnoremap <leader>o :below 10sp term://$SHELL<cr>i
|
|
||||||
|
|
||||||
" Quicker window movement
|
|
||||||
nnoremap <C-j> <C-w>j
|
|
||||||
nnoremap <C-k> <C-w>k
|
|
||||||
nnoremap <C-h> <C-w>h
|
|
||||||
nnoremap <C-l> <C-w>l
|
|
||||||
|
|
||||||
" Don’t reset cursor to start of line when moving around.
|
|
||||||
set nostartofline
|
|
||||||
" minimal number of lines to keep above/below cursorline
|
|
||||||
set scrolloff=10
|
|
||||||
|
|
||||||
" Local overrides?
|
|
||||||
if filereadable($HOME . "/.vimrc.local")
|
|
||||||
source ~/.vimrc.local
|
|
||||||
endif
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
|
|
|
||||||
155
nix/vim/init.vim
Normal file
155
nix/vim/init.vim
Normal file
|
|
@ -0,0 +1,155 @@
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
let g:tex_flavor = 'latex'
|
||||||
|
|
||||||
|
" Deoplete
|
||||||
|
let g:deoplete#enable_at_startup = 1
|
||||||
|
|
||||||
|
" LanguageClient-neovim
|
||||||
|
let g:LanguageClient_serverCommands = {
|
||||||
|
\ 'elm': ['elm-language-server'],
|
||||||
|
\ 'rust': ['rustup', 'run', 'stable', 'rls'],
|
||||||
|
\ 'ruby': ['bundle', 'exec', 'srb', 'tc', '--lsp', '.'],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:LanguageClient_rootMarkers = {
|
||||||
|
\ 'elm': ['elm.json'],
|
||||||
|
\ 'typescriptreact': ['tsconfig.json'],
|
||||||
|
\ 'ruby': ['Gemfile'],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:LanguageClient_loggingFile = expand('~/.local/share/nvim/LanguageClient.log')
|
||||||
|
|
||||||
|
" ALE
|
||||||
|
let g:ale_fix_on_save = 1
|
||||||
|
let g:ale_elixir_credo_strict = 1
|
||||||
|
let g:ale_fixers = {
|
||||||
|
\ 'elm': ['elm-format', 'format'],
|
||||||
|
\ 'javascript': ['prettier'],
|
||||||
|
\ 'javascript.jsx': ['prettier'],
|
||||||
|
\ 'javascriptreact': ['prettier'],
|
||||||
|
\ 'typescriptreact': ['prettier'],
|
||||||
|
\ 'typescript': ['prettier'],
|
||||||
|
\ 'ruby': ['sorbet'],
|
||||||
|
\ 'rust': ['rustfmt'],
|
||||||
|
\ 'elixir': ['mix_format']
|
||||||
|
\}
|
||||||
|
let g:ale_linters_ignore = {
|
||||||
|
\ 'javascript': ['tsserver'],
|
||||||
|
\ 'javascriptreact': ['tsserver'],
|
||||||
|
\}
|
||||||
|
|
||||||
|
" Rainbow parentheses
|
||||||
|
let g:rainbow_conf = {
|
||||||
|
\ 'guifgs': ['RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'DarkOrchid3', 'firebrick3', 'RoyalBlue3', 'SeaGreen3', 'DarkOrchid3', 'firebrick3'],
|
||||||
|
\ 'ctermfgs': ['red', 'brown', 'blue', 'gray', 'green', 'magenta', 'cyan', 'darkred', 'brown', 'darkblue', 'gray', 'darkgreen', 'darkmagenta', 'darkcyan', 'red'],
|
||||||
|
\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold']
|
||||||
|
\}
|
||||||
|
let g:rainbow_active = 1
|
||||||
|
|
||||||
|
" Easymotion
|
||||||
|
map / <Plug>(easymotion-sn)
|
||||||
|
omap / <Plug>(easymotion-tn)
|
||||||
|
map n <Plug>(easymotion-next)
|
||||||
|
map N <Plug>(easymotion-prev)
|
||||||
|
let g:EasyMotion_landing_highlight = 0
|
||||||
|
|
||||||
|
" Vim-Test
|
||||||
|
nmap <silent> <leader>t :TestNearest<CR>
|
||||||
|
nmap <silent> <leader>T :TestFile<CR>
|
||||||
|
nmap <silent> <leader>a :TestSuite<CR>
|
||||||
|
nmap <silent> <leader>l :TestLast<CR>
|
||||||
|
nmap <silent> <leader>g :TestVisit<CR>
|
||||||
|
let test#strategy = "neovim"
|
||||||
|
|
||||||
|
|
||||||
|
nnoremap <leader>t :call LanguageClient_textDocument_hover()<CR>
|
||||||
|
nnoremap <leader>y :call LanguageClient_textDocument_definition()<CR>
|
||||||
|
|
||||||
|
" Indent guides
|
||||||
|
let g:indent_guides_enable_on_vim_startup = 1
|
||||||
|
let g:indent_guides_start_level = 2
|
||||||
|
|
||||||
|
" let netrw look like NERDTree
|
||||||
|
let g:netrw_liststyle = 3
|
||||||
|
let mapleader=","
|
||||||
|
set nobackup
|
||||||
|
set noswapfile
|
||||||
|
set pastetoggle=<F2>
|
||||||
|
set nowrap
|
||||||
|
|
||||||
|
set background=dark
|
||||||
|
colorscheme PaperColor
|
||||||
|
|
||||||
|
set nocompatible
|
||||||
|
set number relativenumber
|
||||||
|
set numberwidth=1
|
||||||
|
set cursorline
|
||||||
|
set cursorcolumn
|
||||||
|
set ruler
|
||||||
|
set list
|
||||||
|
set listchars=tab:>-,trail:-,extends:>,precedes:<,nbsp:+,eol:$
|
||||||
|
set matchpairs+=<:>
|
||||||
|
set ts=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set expandtab
|
||||||
|
|
||||||
|
" Open new split panes to right and bottom, which feels more natural
|
||||||
|
set splitbelow
|
||||||
|
set splitright
|
||||||
|
|
||||||
|
""" Searching and Patterns
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
set smarttab
|
||||||
|
set hlsearch
|
||||||
|
" Add the g flag to search/replace by default
|
||||||
|
set gdefault
|
||||||
|
|
||||||
|
"recalculate the trailing whitespace warning when idle, and after saving
|
||||||
|
autocmd cursorhold,bufwritepost * unlet! b:statusline_trailing_space_warning
|
||||||
|
|
||||||
|
" strip trailing whitespace
|
||||||
|
autocmd BufWritePre * :%s/\s\+$//e
|
||||||
|
|
||||||
|
""" Handy remaps
|
||||||
|
noremap ; :
|
||||||
|
inoremap jj <Esc>
|
||||||
|
map <silent> <leader>V :source ~/.config/nvim/init.vim<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR>
|
||||||
|
map \q :q<CR>
|
||||||
|
map \w :w<CR>
|
||||||
|
noremap Q <nop>
|
||||||
|
|
||||||
|
""" Esperanto digraphs (for use with ctrl-k)
|
||||||
|
:digraph Cx 264
|
||||||
|
:digraph cx 265
|
||||||
|
:digraph Gx 284
|
||||||
|
:digraph gx 285
|
||||||
|
:digraph Hx 292
|
||||||
|
:digraph hx 293
|
||||||
|
:digraph Jx 308
|
||||||
|
:digraph jx 309
|
||||||
|
:digraph Sx 348
|
||||||
|
:digraph sx 349
|
||||||
|
:digraph Ux 364
|
||||||
|
:digraph ux 365
|
||||||
|
|
||||||
|
""" Terminal mode remaps
|
||||||
|
tnoremap <Esc> <C-\><C-n>
|
||||||
|
nnoremap <leader>o :below 10sp term://$SHELL<cr>i
|
||||||
|
|
||||||
|
" Quicker window movement
|
||||||
|
nnoremap <C-j> <C-w>j
|
||||||
|
nnoremap <C-k> <C-w>k
|
||||||
|
nnoremap <C-h> <C-w>h
|
||||||
|
nnoremap <C-l> <C-w>l
|
||||||
|
|
||||||
|
" Don’t reset cursor to start of line when moving around.
|
||||||
|
set nostartofline
|
||||||
|
" minimal number of lines to keep above/below cursorline
|
||||||
|
set scrolloff=10
|
||||||
|
|
||||||
|
" Local overrides?
|
||||||
|
if filereadable($HOME . "/.vimrc.local")
|
||||||
|
source ~/.vimrc.local
|
||||||
|
endif
|
||||||
32
nix/zsh/zshrc
Normal file
32
nix/zsh/zshrc
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
export LOCALE_ARCHIVE="/usr/lib/locale/locale-archive"
|
||||||
|
export NIX_PATH=darwin-config=$HOME/.nixpkgs/darwin-configuration.nix:$HOME/.nix-defexpr/channels:$NIX_PATH
|
||||||
|
export EDITOR=vim
|
||||||
|
|
||||||
|
source $HOME/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
source $HOME/.nix-profile/share/fzf/key-bindings.zsh
|
||||||
|
source $HOME/.nix-profile/share/fzf/completion.zsh
|
||||||
|
source $HOME/.nix-profile/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||||
|
source $HOME/.nix-profile/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||||
|
source $HOME/.config/zsh/local.zsh
|
||||||
|
|
||||||
|
bindkey '^[[A' history-substring-search-up
|
||||||
|
bindkey '^[[B' history-substring-search-down
|
||||||
|
bindkey -M viins 'jj' vi-cmd-mode
|
||||||
|
|
||||||
|
# utility for storing functions under a new name
|
||||||
|
save_function() {
|
||||||
|
local ORIG_FUNC=$(declare -f $1)
|
||||||
|
local NEWNAME_FUNC="$2''${ORIG_FUNC#$1}"
|
||||||
|
eval "$NEWNAME_FUNC"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Override an oh-my-zsh/lib/git.sh function so that old repositories
|
||||||
|
# don't slow the shell down
|
||||||
|
save_function git_prompt_status old_git_prompt_status
|
||||||
|
function git_prompt_status() {
|
||||||
|
if [[ "$(command git config --get oh-my-zsh.hide-prompt-status 2>/dev/null)" != "1" ]]; then
|
||||||
|
old_git_prompt_status
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
eval "$(direnv hook zsh)"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue