mirror of
https://codeberg.org/muon/home.git
synced 2025-12-05 23:57:46 +00:00
208 lines
4.9 KiB
Nix
208 lines
4.9 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
inputs,
|
|
...
|
|
}: {
|
|
options.mods.terminal.development.enable =
|
|
lib.mkEnableOption "enables cli editor";
|
|
|
|
imports = [inputs.nvf.homeManagerModules.default];
|
|
|
|
config = lib.mkIf config.mods.terminal.development.enable {
|
|
home.packages = with pkgs; [
|
|
# Nix
|
|
nil
|
|
|
|
# Rust
|
|
rust-analyzer
|
|
lldb_18
|
|
|
|
# Shaders
|
|
glsl_analyzer
|
|
wgsl-analyzer
|
|
|
|
# Python
|
|
black
|
|
];
|
|
|
|
programs.direnv = {
|
|
enable = true;
|
|
nix-direnv.enable = true;
|
|
enableZshIntegration = lib.mkIf config.mods.terminal.zsh.enable true;
|
|
};
|
|
|
|
home.sessionVariables.EDITOR = "hx";
|
|
programs.zsh.sessionVariables.EDITOR = "hx";
|
|
|
|
programs.helix = {
|
|
enable = true;
|
|
package = pkgs.evil-helix;
|
|
|
|
settings = {
|
|
keys.normal = {
|
|
"esc" = ["collapse_selection" "keep_primary_selection"];
|
|
"Z" = {
|
|
"Q" = ":quit!";
|
|
"Z" = ":write-quit!";
|
|
};
|
|
"V" = ["select_mode" "extend_to_line_bounds"];
|
|
};
|
|
editor = {
|
|
line-number = "relative";
|
|
completion-replace = true;
|
|
bufferline = "always";
|
|
rulers = [80];
|
|
soft-wrap.enable = true;
|
|
indent-guides.render = true;
|
|
cursor-shape = {
|
|
normal = "block";
|
|
insert = "bar";
|
|
select = "underline";
|
|
};
|
|
};
|
|
};
|
|
|
|
languages.language-server = {
|
|
glsl.command = "${pkgs.glsl_analyzer}/bin/glsl_analyzer";
|
|
wgsl.command = "${pkgs.wgsl-analyzer}/bin/wgsl-analyzer";
|
|
};
|
|
|
|
languages.language = [
|
|
{
|
|
name = "nix";
|
|
auto-format = true;
|
|
formatter.command = "${pkgs.nixfmt-classic}/bin/nixfmt";
|
|
}
|
|
{
|
|
name = "rust";
|
|
auto-format = true;
|
|
formatter.command = "rustfmt";
|
|
}
|
|
{
|
|
name = "glsl";
|
|
language-servers = ["glsl"];
|
|
}
|
|
{
|
|
name = "wgsl";
|
|
language-servers = ["wgsl"];
|
|
}
|
|
{
|
|
name = "python";
|
|
auto-format = true;
|
|
formatter = {
|
|
command = "${pkgs.black}/bin/black";
|
|
args = ["-" "--quiet" "--line-length=79"];
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
programs.nvf = {
|
|
enable = true;
|
|
settings = {
|
|
vim = {
|
|
viAlias = false;
|
|
vimAlias = true;
|
|
lsp = {
|
|
enable = true;
|
|
formatOnSave = true;
|
|
};
|
|
|
|
languages = {
|
|
enableFormat = true;
|
|
enableTreesitter = true;
|
|
enableExtraDiagnostics = true;
|
|
|
|
nix.enable = true;
|
|
nix.lsp.server = "nixd";
|
|
|
|
markdown.enable = true;
|
|
bash.enable = true;
|
|
rust.enable = true;
|
|
rust.crates.enable = true;
|
|
python.enable = true;
|
|
python.format.type = "ruff";
|
|
|
|
clang = {
|
|
enable = true;
|
|
cHeader = true;
|
|
};
|
|
};
|
|
|
|
statusline.lualine.enable = true;
|
|
telescope.enable = true;
|
|
autocomplete.nvim-cmp.enable = true;
|
|
autopairs.nvim-autopairs.enable = true;
|
|
tabline.nvimBufferline.enable = true;
|
|
treesitter.context.enable = true;
|
|
dashboard.alpha.enable = true;
|
|
comments.comment-nvim.enable = true;
|
|
|
|
options = {
|
|
tabstop = 2;
|
|
shiftwidth = 0;
|
|
};
|
|
|
|
notes = {
|
|
# orgmode.enable = true;
|
|
todo-comments.enable = true;
|
|
};
|
|
|
|
spellcheck = {enable = true;};
|
|
|
|
binds = {
|
|
whichKey.enable = true;
|
|
cheatsheet.enable = true;
|
|
};
|
|
|
|
git = {
|
|
enable = true;
|
|
gitsigns.enable = true;
|
|
gitsigns.codeActions.enable =
|
|
false; # throws an annoying debug message
|
|
};
|
|
|
|
terminal = {
|
|
toggleterm = {
|
|
enable = true;
|
|
lazygit.enable = true;
|
|
};
|
|
};
|
|
|
|
utility = {
|
|
diffview-nvim.enable = true;
|
|
surround.enable = true;
|
|
# multicursors.enable = true;
|
|
undotree.enable = true;
|
|
|
|
motion = {
|
|
hop.enable = true;
|
|
leap.enable = true;
|
|
};
|
|
};
|
|
|
|
visuals = {
|
|
nvim-web-devicons.enable = true;
|
|
nvim-cursorline.enable = true;
|
|
cinnamon-nvim.enable = true;
|
|
fidget-nvim.enable = true;
|
|
|
|
highlight-undo.enable = true;
|
|
indent-blankline.enable = true;
|
|
};
|
|
|
|
ui = {
|
|
borders.enable = true;
|
|
noice.enable = true;
|
|
colorizer.enable = true;
|
|
illuminate.enable = true;
|
|
smartcolumn.enable = true;
|
|
fastaction.enable = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|