194 lines
3.3 KiB
Nix
194 lines
3.3 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
lib,
|
|
homeDirectory,
|
|
config,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
./progs/fish.nix
|
|
./progs/helix.nix
|
|
];
|
|
|
|
home.stateVersion = "24.11";
|
|
home.enableNixpkgsReleaseCheck = false;
|
|
|
|
home.packages = with pkgs; [
|
|
# hex viewer
|
|
hexyl
|
|
|
|
# rust stuff
|
|
(rust-bin.stable.latest.default.override ({
|
|
extensions = [
|
|
"rust-src"
|
|
"rust-analyzer"
|
|
"clippy"
|
|
"rustfmt"
|
|
"rust-std"
|
|
"cargo"
|
|
];
|
|
# thumbv7m-none-eabi target for stm32
|
|
targets = [ "thumbv7m-none-eabi" ];
|
|
}))
|
|
cargo-expand
|
|
rust-script
|
|
|
|
# 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
|
|
|
|
mypy # type checking
|
|
|
|
pyserial
|
|
|
|
numpy
|
|
matplotlib
|
|
notebook
|
|
]
|
|
))
|
|
|
|
binwalk
|
|
|
|
smartmontools
|
|
|
|
nil # nix lsp
|
|
yaml-language-server # yaml lsp
|
|
marksman # markdown lsp
|
|
typescript-language-server # typescript lsp
|
|
cmake-language-server # cmake lsp
|
|
|
|
# clang-format and clang-tidy
|
|
clang-tools
|
|
clang
|
|
lldb
|
|
|
|
fio
|
|
|
|
age
|
|
git-crypt
|
|
|
|
imagemagick
|
|
|
|
nixpkgs-review
|
|
|
|
nmap
|
|
];
|
|
|
|
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;
|
|
|
|
lfs.enable = true;
|
|
|
|
extraConfig = {
|
|
init = {
|
|
# master -> main
|
|
defaultBranch = "main";
|
|
};
|
|
push.autoSetupRemote = true;
|
|
};
|
|
|
|
# gpg signing keys
|
|
signing = {
|
|
key = "9AB28AC10ECE533D";
|
|
signByDefault = true;
|
|
};
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
}
|