nvf
for realsies... (also flake.lock update)
This commit is contained in:
parent
25af328bfa
commit
6026661a77
3 changed files with 270 additions and 93 deletions
|
|
@ -1,6 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./vim.nix
|
||||
inputs.nvf.homeManagerModules.default
|
||||
./nvf.nix
|
||||
];
|
||||
|
||||
home.stateVersion = "26.05"; # Nope, didn't read the comment either.
|
||||
|
|
@ -15,6 +20,8 @@
|
|||
karp
|
||||
keepassxc
|
||||
pdfarranger
|
||||
# emacs
|
||||
emacs
|
||||
# multimedia
|
||||
furnace
|
||||
corrscope
|
||||
|
|
@ -27,15 +34,14 @@
|
|||
# games
|
||||
osu-lazer-bin
|
||||
pcsx2
|
||||
ppsspp
|
||||
# emulation
|
||||
(unstable.bottles.override {removeWarningPopup = true;})
|
||||
# devel
|
||||
unstable.ocaml
|
||||
unstable.racket
|
||||
unstable.lazygit
|
||||
unstable.opencode
|
||||
unstable.nodejs
|
||||
unstable.python315
|
||||
treesitter-cli
|
||||
];
|
||||
|
||||
programs = {
|
||||
|
|
@ -60,12 +66,10 @@
|
|||
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "asnev";
|
||||
userEmail = "notasnev@proton.me";
|
||||
signing = {
|
||||
key = "/home/coyote/.ssh/id_ed25519.pub";
|
||||
format = "ssh";
|
||||
};
|
||||
settings.user.name = "asnev";
|
||||
settings.user.email = "notasnev@proton.me";
|
||||
signing.key = "/home/coyote/.ssh/id_ed25519.pub";
|
||||
signing.format = "ssh";
|
||||
includes = [
|
||||
{
|
||||
condition = "gitdir:/home/coyote/NixOS/";
|
||||
|
|
@ -87,7 +91,7 @@
|
|||
enable = true;
|
||||
clock24 = true;
|
||||
baseIndex = 1;
|
||||
shortcut = "a";
|
||||
shortcut = "b";
|
||||
keyMode = "vi";
|
||||
terminal = "tmux-256color";
|
||||
escapeTime = 10;
|
||||
|
|
@ -118,8 +122,6 @@
|
|||
renamed = "r";
|
||||
deleted = "d";
|
||||
};
|
||||
character.success_symbol = "[λ](bold green)";
|
||||
character.error_symbol = "[λ](bold red)";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
181
home/coyote/nvf.nix
Normal file
181
home/coyote/nvf.nix
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
{...}: {
|
||||
programs.nvf = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
enableManpages = true;
|
||||
|
||||
settings.vim = {
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
syntaxHighlighting = true;
|
||||
lineNumberMode = "relNumber";
|
||||
searchCase = "smart";
|
||||
hideSearchHighlight = false;
|
||||
|
||||
clipboard = {
|
||||
enable = true;
|
||||
registers = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
|
||||
options = {
|
||||
encoding = "utf-8";
|
||||
backspace = "indent,eol,start";
|
||||
history = 1000;
|
||||
mouse = "a";
|
||||
updatetime = 300;
|
||||
|
||||
ruler = true;
|
||||
cursorline = true;
|
||||
showcmd = true;
|
||||
showmode = true;
|
||||
laststatus = 1;
|
||||
wildmenu = true;
|
||||
wildmode = ["longest" "list" "full"];
|
||||
ttyfast = true;
|
||||
lazyredraw = true;
|
||||
signcolumn = "no";
|
||||
|
||||
autoindent = true;
|
||||
expandtab = true;
|
||||
smarttab = true;
|
||||
tabstop = 4;
|
||||
shiftwidth = 4;
|
||||
softtabstop = 4;
|
||||
|
||||
hlsearch = true;
|
||||
incsearch = true;
|
||||
|
||||
termguicolors = true;
|
||||
background = "dark";
|
||||
showmatch = true;
|
||||
};
|
||||
|
||||
theme = {
|
||||
enable = true;
|
||||
name = "gruvbox";
|
||||
style = "dark";
|
||||
};
|
||||
|
||||
globals.terminal_ansi_colors = [
|
||||
"#282828"
|
||||
"#cc241d"
|
||||
"#98971a"
|
||||
"#d79921"
|
||||
"#458588"
|
||||
"#b16286"
|
||||
"#689d6a"
|
||||
"#a89984"
|
||||
"#928374"
|
||||
"#fb4934"
|
||||
"#b8bb26"
|
||||
"#fabd2f"
|
||||
"#83a598"
|
||||
"#d3869b"
|
||||
"#8ec07c"
|
||||
"#ebdbb2"
|
||||
];
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
mode = "i";
|
||||
key = "<C-l>";
|
||||
action = "λ";
|
||||
desc = "inserts lambda";
|
||||
}
|
||||
];
|
||||
|
||||
languages.nix = {
|
||||
enable = true;
|
||||
treesitter.enable = true;
|
||||
lsp.enable = false;
|
||||
format.enable = false;
|
||||
extraDiagnostics.enable = false;
|
||||
};
|
||||
|
||||
utility.undotree.enable = true;
|
||||
|
||||
augroups = [
|
||||
{
|
||||
name = "my_filetype_settings";
|
||||
clear = true;
|
||||
}
|
||||
];
|
||||
|
||||
autocmds = [
|
||||
{
|
||||
event = ["FileType"];
|
||||
pattern = [
|
||||
"javascript"
|
||||
"javascriptreact"
|
||||
"typescript"
|
||||
"typescriptreact"
|
||||
"html"
|
||||
"css"
|
||||
"scss"
|
||||
"json"
|
||||
"jsonc"
|
||||
"vue"
|
||||
"svelte"
|
||||
"yaml"
|
||||
"toml"
|
||||
"markdown"
|
||||
"nix"
|
||||
"vim"
|
||||
"ruby"
|
||||
"eruby"
|
||||
"dart"
|
||||
"haskell"
|
||||
"elm"
|
||||
];
|
||||
group = "my_filetype_settings";
|
||||
desc = "2-space indent";
|
||||
command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2";
|
||||
}
|
||||
{
|
||||
event = ["FileType"];
|
||||
pattern = [
|
||||
"python"
|
||||
"rust"
|
||||
"java"
|
||||
"lua"
|
||||
"c"
|
||||
"cpp"
|
||||
"cs"
|
||||
"php"
|
||||
"kotlin"
|
||||
"swift"
|
||||
"scala"
|
||||
"perl"
|
||||
];
|
||||
group = "my_filetype_settings";
|
||||
desc = "4-space indent";
|
||||
command = "setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4";
|
||||
}
|
||||
{
|
||||
event = ["FileType"];
|
||||
pattern = ["go" "gomod" "make"];
|
||||
group = "my_filetype_settings";
|
||||
desc = "hard tabs";
|
||||
command = "setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0";
|
||||
}
|
||||
{
|
||||
event = ["FileType"];
|
||||
pattern = ["lisp" "scheme" "clojure" "racket" "fennel"];
|
||||
group = "my_filetype_settings";
|
||||
desc = "Lisp-style indent";
|
||||
command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 lisp autoindent";
|
||||
}
|
||||
];
|
||||
|
||||
luaConfigRC.my_lispwords = ''
|
||||
vim.opt.lispwords:append({
|
||||
"defun", "defmacro", "defvar", "defparameter", "defmethod",
|
||||
"define-syntax", "lambda", "let", "let*", "letrec", "flet",
|
||||
"labels", "progn", "when", "unless", "if", "cond",
|
||||
})
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
programs.vim = {
|
||||
enable = true;
|
||||
packageConfigurable = pkgs.unstable.vim-full;
|
||||
defaultEditor = true;
|
||||
|
||||
plugins = with pkgs.unstable.vimPlugins; [gruvbox vim-nix undotree];
|
||||
|
||||
extraConfig = ''
|
||||
set nocompatible
|
||||
set encoding=utf-8
|
||||
set backspace=indent,eol,start
|
||||
set clipboard=unnamedplus
|
||||
set mouse=a
|
||||
set history=1000
|
||||
set updatetime=300
|
||||
|
||||
syntax on
|
||||
set ruler
|
||||
set number
|
||||
set relativenumber
|
||||
set cursorline
|
||||
set showcmd
|
||||
set showmode
|
||||
set laststatus=1
|
||||
set wildmenu
|
||||
set wildmode=longest,list,full
|
||||
set ttyfast
|
||||
set lazyredraw
|
||||
|
||||
filetype plugin indent on
|
||||
set autoindent
|
||||
set expandtab
|
||||
set smarttab
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set softtabstop=4
|
||||
|
||||
set hlsearch
|
||||
set incsearch
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
inoremap <C-l> λ
|
||||
|
||||
set termguicolors
|
||||
set background=dark
|
||||
colorscheme gruvbox
|
||||
let g:terminal_ansi_colors = ['#282828', '#cc241d', '#98971a', '#d79921', '#458588', '#b16286', '#689d6a', '#a89984', '#928374', '#fb4934', '#b8bb26', '#fabd2f', '#83a598', '#d3869b', '#8ec07c', '#ebdbb2']
|
||||
|
||||
set showmatch
|
||||
|
||||
set lispwords+=defun,defmacro,defvar,defparameter,defmethod,define-syntax,lambda,let,let*,letrec,flet,labels,progn,when,unless,if,cond
|
||||
|
||||
augroup coyote_filetype_settings
|
||||
autocmd!
|
||||
autocmd FileType javascript,javascriptreact,typescript,typescriptreact,html,css,scss,json,jsonc,vue,svelte,yaml,toml,markdown,nix,vim,ruby,eruby,dart,haskell,elm
|
||||
\ setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2
|
||||
autocmd FileType python,rust,java,lua,c,cpp,cs,php,kotlin,swift,scala,perl
|
||||
\ setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
|
||||
autocmd FileType go,gomod,make
|
||||
\ setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0
|
||||
autocmd FileType lisp,scheme,clojure,racket,fennel
|
||||
\ setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2
|
||||
\ lisp autoindent
|
||||
augroup END
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in a new issue