{ pkgs, inputs, lib, homeDirectory, config, ... }: { imports = [ ./progs/fish.nix ./progs/helix.nix ]; home.stateVersion = "24.11"; home.packages = with pkgs; [ #hex viewer hexyl #rust stuff (rust-bin.selectLatestNightlyWith ( toolchain: toolchain.default.override { extensions = [ "rust-src" "rust-analyzer" "clippy" "rustfmt" "rust-std" "cargo" ]; #thumbv7m-none-eabi target for stm32 targets = [ "thumbv7m-none-eabi" ]; } )) cargo-expand #find typos in code typos #python formatter ruff #for website generation hugo #java development google-java-format # formatter jdk # java jdt-language-server # lsp server #for benchmaking stuff hyperfine #replacements for common posix tools eza # ls replacement bat # pretty `cat` clone delta # viewer for `git` and `diff` output dust # pretty `du` version duf # better `df` clone gping # `ping`... but with a graph!! tldr # `man` but more straight-forward and simpler ripgrep # grep, but written in rust, respects .gitignore, and very very fast, command is `rg` #adds `sensors` command lm_sensors #rssfeed newsboat #HTML/CSS/JSON/ESLint language servers vscode-langservers-extracted just pfetch-rs waypipe htop bottom wget unzip compsize killall sshfs #nix formatter nixfmt-rfc-style #serial viewer minicom #"~~matt's~~ my trace route" mtr file b3sum ffmpeg-full #microcontroller tooling probe-rs (python312.withPackages ( ps: with ps; [ python-lsp-server # lsp python-lsp-ruff # ruff integration ] )) binwalk smartmontools nil # nix lsp yaml-language-server # yaml lsp marksman # markdown lsp #clang-format and clang-tidy clang-tools # inputs.binsider.packages.${pkgs.system}.binsider lldb fio age git-crypt clang ]; home.file.".cargo/config.toml".text = '' [target.${lib.strings.removeSuffix "-linux" pkgs.system}-unknown-linux-gnu] linker = "${pkgs.clang}/bin/clang" rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"] ''; #default applications home.sessionVariables = { EDITOR = "hx"; }; #feed reader programs.newsboat = { enable = true; #store rss feeds in a separate file because it's *a lot* urls = import ./progs/rss.nix; }; #git (self explanatory) programs.git = { enable = true; package = pkgs.git; userName = "Simon Gardling"; userEmail = "titaniumtown@proton.me"; #better way to view diffs delta.enable = true; #master -> main extraConfig = { init = { defaultBranch = "main"; }; push.autoSetupRemote = true; }; #gpg signing keys signing = { key = "9AB28AC10ECE533D"; signByDefault = true; }; }; age.secrets.gnupg = { file = ./secrets/my-gpg.age; path = "${homeDirectory}/.secrets/my-gpg.asc"; }; home.activation.extractGnuPG = '' ${pkgs.gnupg}/bin/gpg --import ${config.age.secrets.gnupg.path} ''; # Let Home Manager install and manage itself. programs.home-manager.enable = true; }