mirror of
https://codeberg.org/muon/home.git
synced 2025-12-06 08:07:45 +00:00
94 lines
2.2 KiB
Nix
94 lines
2.2 KiB
Nix
{ pkgs, lib, config, ... }: {
|
|
options.mods.terminal.development.enable =
|
|
lib.mkEnableOption "enables cli editor";
|
|
|
|
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" ];
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|