nix: use nixfmt-rfc-style

This commit is contained in:
2025-12-05 15:48:11 +00:00
parent ef681a3ba8
commit 7c56f42779
17 changed files with 299 additions and 177 deletions
+4 -1
View File
@@ -1 +1,4 @@
{pkgs, ...}: {home.packages = with pkgs; [awscli2];}
{ pkgs, ... }:
{
home.packages = with pkgs; [ awscli2 ];
}
+18 -14
View File
@@ -1,23 +1,25 @@
{
pkgs,
...
}: let
packages = pkgs.callPackage ./packages.nix {};
in {
}:
let
packages = pkgs.callPackage ./packages.nix { };
in
{
home.packages = packages.all;
home.sessionVariables = {
EDITOR = "vim"; # is overriden to nvim in vim.nix if needed
EDITOR = "vim"; # is overriden to nvim in vim.nix if needed
WORDCHARS = "\${WORDCHARS//[\\/.=]/}"; # ctrl-w on paths without make angery
};
/*
# For some reason this doesn't play nice when using home manager config from inside
# a nixos configuration.
nix = {
enable = true;
package = pkgs.nix;
settings.experimental-features = "nix-command flakes";
settings.max-jobs = "auto"; # Gotta go fast (build derivations in parallel)
};
# For some reason this doesn't play nice when using home manager config from inside
# a nixos configuration.
nix = {
enable = true;
package = pkgs.nix;
settings.experimental-features = "nix-command flakes";
settings.max-jobs = "auto"; # Gotta go fast (build derivations in parallel)
};
*/
programs = {
home-manager.enable = true;
@@ -77,7 +79,9 @@ in {
format = "$username$hostname$shlvl$directory$git_branch$git_commit$git_state$git_metrics$git_status$hg_branch$docker_context$golang$kotlin$nodejs$python$rust$terraform$nix_shell$memory_usage$aws$gcloud$openstack$azure$env_var$crystal$custom$sudo$cmd_duration$line_break$jobs$status$shell$character";
username.format = "[$user]($style) ";
hostname.format = "[$hostname]($style) ";
directory = {truncation_length = -1;};
directory = {
truncation_length = -1;
};
git_branch.format = "[$symbol$branch]($style) ";
python.format = "[py \${pyenv_prefix}(\${version} )(\\($virtualenv\\) )]($style)";
nodejs.format = "[js ($version )]($style)";
@@ -98,7 +102,7 @@ in {
ssh = {
enable = true;
includes = ["~/.ssh/config.local"];
includes = [ "~/.ssh/config.local" ];
matchBlocks."*" = {
user = "samw";
serverAliveInterval = 30;
+7 -1
View File
@@ -1 +1,7 @@
{pkgs, ...}: {home.packages = with pkgs; [docker colima];}
{ pkgs, ... }:
{
home.packages = with pkgs; [
docker
colima
];
}
+10 -5
View File
@@ -1,5 +1,9 @@
{pkgs, ...}: {
home.packages = with pkgs; [ git-open tea ];
{ pkgs, ... }:
{
home.packages = with pkgs; [
git-open
tea
];
programs.git = {
enable = true;
lfs.enable = true;
@@ -9,7 +13,9 @@
delta = {
# Better diffs
enable = true;
options = {line-numbers = true;};
options = {
line-numbers = true;
};
};
aliases = {
@@ -36,8 +42,7 @@
sw = "switch";
swc = "switch --create";
gone = ''
! git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' │ awk '$2 == "[gone]" {print $1}' | xargs -r git branch -D'';
gone = ''! git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' │ awk '$2 == "[gone]" {print $1}' | xargs -r git branch -D'';
};
extraConfig = {
branch.sort = "-committerdate";
+3 -2
View File
@@ -1,4 +1,5 @@
{pkgs, lib, ...}: {
{ pkgs, lib, ... }:
{
programs.gpg = {
enable = true;
mutableKeys = false;
@@ -19,7 +20,7 @@
];
# make yubikey work on macos? lolgpg
# https://github.com/NixOS/nixpkgs/issues/155629
scdaemonSettings = (lib.optionalAttrs pkgs.stdenv.isDarwin {disable-ccid = true;});
scdaemonSettings = (lib.optionalAttrs pkgs.stdenv.isDarwin { disable-ccid = true; });
};
# Shouldn't have an effect on macos, on linux we need to specify a pinentry
+19 -14
View File
@@ -1,4 +1,5 @@
{ ... }: {
{ ... }:
{
programs.helix = {
enable = true;
settings = {
@@ -8,20 +9,24 @@
languages = {
language-server.basedpyright = {
command = "basedpyright-langserver";
args = ["--stdio"];
args = [ "--stdio" ];
};
language = [{
name = "python";
roots = [
"pyproject.toml"
"setup.py"
"poetry.lock"
".git"
];
language-servers = [{
name = "basedpyright";
}];
}];
language = [
{
name = "python";
roots = [
"pyproject.toml"
"setup.py"
"poetry.lock"
".git"
];
language-servers = [
{
name = "basedpyright";
}
];
}
];
};
};
}
+8 -3
View File
@@ -2,14 +2,19 @@
pkgs,
lib,
...
}: {
}:
{
# Mac specific packages.
# TODO: have this in a central packages place rather than here
home.packages = with pkgs; [pngpaste mypkgs.qrclip];
home.packages = with pkgs; [
pngpaste
mypkgs.qrclip
];
# Use secretive for SSH agent
programs.ssh.matchBlocks.all = lib.mkIf pkgs.stdenv.isDarwin {
host = "*";
extraOptions."IdentityAgent" = "~/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
extraOptions."IdentityAgent" =
"~/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
};
programs.zsh.initContent = "eval $(/opt/homebrew/bin/brew shellenv)";
}
+18 -4
View File
@@ -1,5 +1,6 @@
{pkgs}:
with pkgs; rec {
{ pkgs }:
with pkgs;
rec {
# The stuff you want installed everywhere. The necessities.
base = [
bat # cat replacement, aliased to cat in home-manager
@@ -15,10 +16,23 @@ with pkgs; rec {
];
# Networking shit
net = [dig iperf3 nmap socat tcpdump whois];
net = [
dig
iperf3
nmap
socat
tcpdump
whois
];
# development tools
dev = [jq nixfmt-rfc-style gh glab hexyl ];
dev = [
jq
nixfmt-rfc-style
gh
glab
hexyl
];
all = base ++ net ++ dev;
}
+7 -4
View File
@@ -1,9 +1,12 @@
{pkgs, ...}: {
home.packages = with pkgs; [yubikey-manager];
{ pkgs, ... }:
{
home.packages = with pkgs; [ yubikey-manager ];
programs.password-store = {
enable = true;
settings = {PASSWORD_STORE_DIR = "$HOME/.password-store";};
package = pkgs.pass.withExtensions (exts: [exts.pass-otp]);
settings = {
PASSWORD_STORE_DIR = "$HOME/.password-store";
};
package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]);
};
programs.zsh.shellAliases = {
p = "pass";
+32 -13
View File
@@ -2,22 +2,33 @@
# The basics that you'll want everywhere
default = ./default.nix;
# A machine for development
dev = {...}: {
imports = [./git.nix ./vim.nix ./vim-dev ./helix.nix];
};
dev =
{ ... }:
{
imports = [
./git.nix
./vim.nix
./vim-dev
./helix.nix
];
};
# A machine for dev with a GUI
# TODO: detect this automatically somehow?
dev-gui = {...}: {
imports = [./vscode.nix];
};
dev-gui =
{ ... }:
{
imports = [ ./vscode.nix ];
};
tpmssh = ./tpmssh.nix;
# Sensitive stuff
sensitive = {...}: {
imports = [
./passwords.nix
./gpg.nix
];
};
sensitive =
{ ... }:
{
imports = [
./passwords.nix
./gpg.nix
];
};
# A MacOS machine
mac = ./macs.nix;
# A machine you want to do docker stuff on
@@ -25,5 +36,13 @@
# A machine you want to do aws stuff on
aws = ./aws.nix;
# A server
server = {...}: {imports = [./default.nix ./git.nix ./vim.nix];};
server =
{ ... }:
{
imports = [
./default.nix
./git.nix
./vim.nix
];
};
}
+14 -6
View File
@@ -1,5 +1,6 @@
# Enable tpm-ssh-agent in a systemd user service
{pkgs, config, ...}: {
{ pkgs, config, ... }:
{
home.packages = [ pkgs.ssh-tpm-agent ];
home.sessionVariables = {
SSH_AUTH_SOCK = "$(${pkgs.ssh-tpm-agent}/bin/ssh-tpm-agent --print-socket)";
@@ -22,11 +23,18 @@
Environment = ''
SSH_AUTH_SOCK="%t/ssh-tpm-agent.sock"
'';
ExecStart = "${pkgs.writeShellScriptBin "start-ssh-tpm-agent" (if config.services.gpg-agent.enableSshSupport then ''
${pkgs.ssh-tpm-agent}/bin/ssh-tpm-agent -A $(${config.programs.gpg.package}/bin/gpgconf --list-dirs agent-ssh-socket)
'' else ''
${pkgs.ssh-tpm-agent}/bin/ssh-tpm-agent
'')}/bin/start-ssh-tpm-agent";
ExecStart = "${
pkgs.writeShellScriptBin "start-ssh-tpm-agent" (
if config.services.gpg-agent.enableSshSupport then
''
${pkgs.ssh-tpm-agent}/bin/ssh-tpm-agent -A $(${config.programs.gpg.package}/bin/gpgconf --list-dirs agent-ssh-socket)
''
else
''
${pkgs.ssh-tpm-agent}/bin/ssh-tpm-agent
''
)
}/bin/start-ssh-tpm-agent";
PassEnvironment = "SSH_AGENT_PID";
SuccessExitStatus = 2;
Type = "simple";
+7 -5
View File
@@ -3,14 +3,16 @@
lib,
system,
...
}: {
home.packages = with pkgs; [nil];
programs.neovim.plugins = with pkgs.vimPlugins;
}:
{
home.packages = with pkgs; [ nil ];
programs.neovim.plugins =
with pkgs.vimPlugins;
[
# More fancy shit
nvim-treesitter
trouble-nvim
# Language server/completions
# Language server/completions
nvim-lspconfig
nvim-cmp
cmp-nvim-lsp
@@ -32,7 +34,7 @@
]
# delve is unsupported on aarch64-linux and golangci-lint is broken on darwin
# (see https://github.com/NixOS/nixpkgs/issues/168984).
++ lib.optionals (system != "aarch64-linux" && !pkgs.stdenv.isDarwin) [vim-go];
++ lib.optionals (system != "aarch64-linux" && !pkgs.stdenv.isDarwin) [ vim-go ];
programs.neovim.extraConfig = ''
lua <<EOF
${builtins.readFile ./dev.lua}
+4 -3
View File
@@ -4,9 +4,10 @@
pkgs,
lib,
...
}: {
}:
{
home.sessionVariables.EDITOR = lib.mkForce "nvim";
home.packages = with pkgs; [ripgrep];
home.packages = with pkgs; [ ripgrep ];
programs.neovim = {
enable = true;
viAlias = true;
@@ -26,7 +27,7 @@
vim-gitgutter
# More stuff idk
emmet-vim
vim-sleuth # guess whitespace settings from file
vim-sleuth # guess whitespace settings from file
];
extraConfig = ''
lua <<EOF
+2 -1
View File
@@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.vscode = {
enable = true;
package = pkgs.vscodium;