{ config, pkgs, ... }: { home.packages = with pkgs; [ shellcheck shfmt dockerfile-language-server yaml-language-server lua-language-server taplo # toml marksman tokei just just-lsp remake (pkgs.xh.overrideAttrs ( finalAttrs: previousAttrs: { env.RUSTFLAGS = "--cfg reqwest_unstable"; cargoBuildFeatures = previousAttrs.cargoBuildFeatures ++ [ "http3" ]; } )) htmlq fx # interactive JSON filter/view tool remarshal watchexec entr personal.projectdo litecli docker-credential-helpers ]; home.sessionVariables = { FLY_NO_UPDATE_CHECK = "1"; }; programs.emacs.extraPackages = epkgs: (with epkgs; [ (treesit-grammars.with-grammars ( grammars: with grammars; [ tree-sitter-bash tree-sitter-fish tree-sitter-just tree-sitter-make tree-sitter-dockerfile tree-sitter-sql ] )) jinja2-mode ]); programs.nixvim.plugins = { direnv.enable = true; lsp = { enable = true; keymaps = { lspBuf = { gD = "references"; gd = "definition"; gi = "implementation"; gt = "type_definition"; }; }; servers = { bashls.enable = true; fish_lsp.enable = true; taplo.enable = true; docker_compose_language_service.enable = true; dockerls.enable = true; jinja_lsp = { enable = true; package = pkgs.jinja-lsp; cmd = [ "jinja-lsp" ]; }; }; }; telescope = { enable = true; keymaps = { "ff" = "find_files"; "fg" = "live_grep"; "bb" = "buffers"; "pf" = "git_files"; "fh" = "help_tags"; }; settings = { mappings = { i = { "" = "which_key"; }; }; }; extensions = { fzf-native.enable = true; }; }; }; programs.zed-editor.extensions = [ "toml" "jinja2" "git-firefly" "dockerfile" "make" "sql" "nix" "basher" "env" "ini" "fish" "just" "elisp" "ssh-config" "caddyfile" "awk" ]; editorconfig = { enable = true; settings = { "*" = { charset = "utf-8"; end_of_line = "lf"; trim_trailing_whitespace = true; insert_final_newline = true; indent_style = "space"; indent_size = 2; tab_width = 2; }; "*.fish" = { indent_size = 4; }; "*.md" = { trim_trailing_whitespace = false; }; justfile = { indent_style = "tab"; }; Makefile = { indent_style = "tab"; tab_width = 4; }; }; }; programs.fish.shellAbbrs = { b = { function = "projectdo_build"; }; r = { function = "projectdo_run"; }; t = { function = "projectdo_test"; }; p = { function = "projectdo_tool"; }; }; home.shellAliases = { j = "just"; make = "remake"; er = "direnv reload"; ea = "direnv allow"; ex = "direnv exec"; es = "direnv status"; laminarc = "ssh smrk laminarc"; }; programs.direnv = { enable = true; nix-direnv = { enable = true; }; config = { global = { disable_stdin = true; load_dotenv = true; strict_env = false; hide_env_diff = true; }; whitelist = { prefix = with config.home; [ "${homeDirectory}/projects/alin.ovh" "${homeDirectory}/projects/github.com/alinnow" "${homeDirectory}/projects/codeberg.org/alinnow" ]; }; }; }; services.lorri = { enable = pkgs.stdenv.isLinux; }; }