refactor home/tiling
refactor home/terminal refactor home/apps refactor home/services refactor home/games
This commit is contained in:
parent
c241155b93
commit
e228035134
31 changed files with 39 additions and 21 deletions
292
home/terminal/neovim.nix
Normal file
292
home/terminal/neovim.nix
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
kdePackages.qtdeclarative
|
||||
prettier
|
||||
prettierd
|
||||
alejandra
|
||||
stylua
|
||||
black
|
||||
clang-tools
|
||||
];
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
enablePrintInit = true;
|
||||
defaultEditor = true;
|
||||
waylandSupport = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
opts = {
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
number = true;
|
||||
};
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
flavour = config.catppuccin.flavor;
|
||||
};
|
||||
};
|
||||
keymaps = [
|
||||
# --- Normal mode mappings ---
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
|
||||
# --- Visual mode mappings ---
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
plugins = {
|
||||
nvim-autopairs = {
|
||||
enable = true;
|
||||
};
|
||||
cmp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
autoEnableSources = true;
|
||||
performance = {
|
||||
debounce = 60;
|
||||
fetchingTimeout = 200;
|
||||
maxViewEntries = 30;
|
||||
};
|
||||
snippet = {
|
||||
expand = "luasnip";
|
||||
};
|
||||
formatting = {
|
||||
fields = [
|
||||
"kind"
|
||||
"abbr"
|
||||
"menu"
|
||||
];
|
||||
};
|
||||
sources = [
|
||||
{name = "git";}
|
||||
{name = "nvim_lsp";}
|
||||
{name = "path";}
|
||||
{name = "buffer";}
|
||||
{name = "fish";}
|
||||
{name = "emoji";}
|
||||
{
|
||||
name = "buffer"; # text within current buffer
|
||||
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
|
||||
keywordLength = 3;
|
||||
}
|
||||
{name = "copilot";}
|
||||
{
|
||||
name = "path"; # file system paths
|
||||
keywordLength = 3;
|
||||
}
|
||||
{
|
||||
name = "luasnip"; # snippets
|
||||
keywordLength = 3;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
conform-nvim = {
|
||||
enable = true;
|
||||
settings = {
|
||||
formatters_by_ft = {
|
||||
lua = ["stylua"];
|
||||
python = ["black"];
|
||||
nix = ["alejandra"];
|
||||
javascript = ["prettier"];
|
||||
css = ["prettier"];
|
||||
json = ["prettier"];
|
||||
jsonc = ["prettier"];
|
||||
fish = ["fish_indent"];
|
||||
c = ["clang-format"];
|
||||
cpp = ["clang-format"];
|
||||
};
|
||||
|
||||
# Default formatting options
|
||||
default_format_opts = {
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
|
||||
# Format-on-save behavior
|
||||
format_on_save = {
|
||||
timeout_ms = 500;
|
||||
};
|
||||
|
||||
# Custom formatter settings
|
||||
formatters = {
|
||||
shfmt = {
|
||||
append_args = [
|
||||
"-i"
|
||||
"2"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
fzf-lua = {
|
||||
enable = true;
|
||||
};
|
||||
kitty-scrollback = {
|
||||
enable = true;
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
qmlls = {
|
||||
enable = true;
|
||||
cmd = [
|
||||
"qmlls"
|
||||
"-E"
|
||||
];
|
||||
};
|
||||
nixd.enable = true;
|
||||
};
|
||||
};
|
||||
lualine = let
|
||||
palette = pkgs.catppuccin.${config.catppuccin.flavor};
|
||||
in {
|
||||
enable = true;
|
||||
settings = {
|
||||
options = {
|
||||
theme = {
|
||||
normal = {
|
||||
a = {
|
||||
fg = palette.base;
|
||||
bg = palette.mauve;
|
||||
};
|
||||
b = {
|
||||
fg = palette.text;
|
||||
bg = palette.surface0;
|
||||
};
|
||||
c = {
|
||||
fg = palette.text;
|
||||
};
|
||||
};
|
||||
insert = {
|
||||
a = {
|
||||
fg = palette.base;
|
||||
bg = palette.blue;
|
||||
};
|
||||
};
|
||||
visual = {
|
||||
a = {
|
||||
fg = palette.base;
|
||||
bg = palette.teal;
|
||||
};
|
||||
};
|
||||
replace = {
|
||||
a = {
|
||||
fg = palette.base;
|
||||
bg = palette.red;
|
||||
};
|
||||
};
|
||||
inactive = {
|
||||
a = {
|
||||
fg = palette.text;
|
||||
bg = palette.base;
|
||||
};
|
||||
b = {
|
||||
fg = palette.text;
|
||||
bg = palette.base;
|
||||
};
|
||||
c = {
|
||||
fg = palette.text;
|
||||
};
|
||||
};
|
||||
};
|
||||
component_separators = "";
|
||||
section_separators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
};
|
||||
|
||||
sections = {
|
||||
lualine_a = [
|
||||
{
|
||||
__unkeyed-1 = "mode";
|
||||
separator = {
|
||||
left = " ";
|
||||
};
|
||||
right_padding = 2;
|
||||
}
|
||||
];
|
||||
lualine_b = [
|
||||
"filename"
|
||||
"branch"
|
||||
];
|
||||
lualine_c = ["%="];
|
||||
lualine_x = [];
|
||||
lualine_y = [
|
||||
"filetype"
|
||||
"progress"
|
||||
];
|
||||
lualine_z = [
|
||||
{
|
||||
__unkeyed-1 = "location";
|
||||
separator = {
|
||||
right = " ";
|
||||
};
|
||||
left_padding = 2;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
inactive_sections = {
|
||||
lualine_a = ["filename"];
|
||||
lualine_b = [];
|
||||
lualine_c = [];
|
||||
lualine_x = [];
|
||||
lualine_y = [];
|
||||
lualine_z = ["location"];
|
||||
};
|
||||
tabline = {};
|
||||
extensions = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue