{ pkgs, config, ... }: { # TODO Maybe should be per-directory dotenv # Or not, for neovim config = { # Always on home.packages = with pkgs; [ # Common perf-tools jq yq universal-ctags cloc # Network socat dig whois nmap tcpdump mtr traceroute # nix lix nixpkgs-fmt # Always on (graphical) ] ++ lib.optionals config.frogeye.desktop.xorg [ # Common # zeal-qt6 # Offline documentation sqlitebrowser # Network wireshark-qt # Ansible ] ++ lib.optionals config.frogeye.dev.ansible [ ansible ansible-lint # Docker ] ++ lib.optionals config.frogeye.dev.docker [ docker docker-compose # FPGA ] ++ lib.optionals config.frogeye.dev.fpga [ verilog ] ++ lib.optionals (config.frogeye.dev.fpga && pkgs.stdenv.isx86_64) [ ghdl # FPGA (graphical) ] ++ lib.optionals (config.frogeye.desktop.xorg && config.frogeye.dev.fpga) [ yosys gtkwave # VM (graphical) ] ++ lib.optionals (config.frogeye.desktop.xorg && config.frogeye.dev.vm) [ virt-manager ]; programs.nixvim.plugins.lsp.servers = { ansiblels.enable = config.frogeye.dev.ansible; # Ansible bashls.enable = true; # Bash jsonls.enable = true; # JSON lua_ls.enable = true; # Lua (for Neovim debugging) perlpls.enable = config.frogeye.dev.perl; # Perl phpactor.enable = config.frogeye.dev.php; # PHP # Nix nil_ls = { enable = true; settings = { formatting.command = [ "nixpkgs-fmt" ]; nix.flake = { autoArchive = true; autoEvalInputs = true; }; }; }; # TODO Something for SQL. sqls is deprecated, sqlls is not in Nixpkgs. Probably needs a DB connection configured anyways? yamlls.enable = true; # YAML # TODO Check out none-ls }; }; }