mirror of
https://codeberg.org/muon/home.git
synced 2025-12-06 08:07:45 +00:00
105 lines
2.5 KiB
Nix
105 lines
2.5 KiB
Nix
{ pkgs, lib, config, ... }:
|
|
let
|
|
wgsl_analyzer = with pkgs;
|
|
stdenv.mkDerivation rec {
|
|
pname = "wgsl_analyzer";
|
|
version = "0.8.1";
|
|
|
|
src = fetchurl {
|
|
url =
|
|
"https://github.com/wgsl-analyzer/wgsl-analyzer/releases/download/v${version}/${pname}-linux-x64";
|
|
hash = "sha256-WRc9fHUw9/KHD5BzUX3nd+0sRkc7i8axsXhHUZFOUeY=";
|
|
};
|
|
|
|
nativeBuildInputs = [ autoPatchelfHook ];
|
|
|
|
buildInputs = [ openssl zlib ];
|
|
|
|
sourceRoot = ".";
|
|
phases = [ "installPhase" "patchPhase" ];
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cp $src $out/bin/${pname}
|
|
chmod +x $out/bin/${pname}
|
|
'';
|
|
};
|
|
in {
|
|
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
|
|
|
|
];
|
|
|
|
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" ];
|
|
"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 = "${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" ];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|