Add linting, formatting, and CI with fixes for all warnings

Infrastructure:
- Add deadnix, nixfmt, and statix to flake inputs
- Add formatter output to flake for nix fmt support
- Add deadnix, nixfmt, statix to Home Manager packages
- Add GitHub Actions workflow for CI validation
- Add .pre-commit-config.yaml with hooks for nixfmt, deadnix, and statix
- Support x86_64-darwin in formatter

Statix fixes (W10/W20 warnings):
- Remove unused lambda argument from nixpkgs-settings.nix
- Merge repeated keys in hardware-configuration.nix files (boot.initrd, boot, fileSystems)
- Merge repeated keys in nixnuc/default.nix (services, virtualisation)
- Merge repeated keys in rainbow-planet/default.nix (desktopManager)
- Merge repeated keys in home/general/default.nix (home)

Deadnix fixes (unused declarations):
- Remove unused pkgs/lib/username/http_port arguments from various files
- Fix unused final parameter in overlay functions (final -> _final)

CI/pre-commit fixes:
- Fix pre-commit statix config: add pass_filenames: false
- Fix CI workflow: use nix run nixpkgs# prefix and --ci flag for nixfmt
This commit is contained in:
Gene Liverman 2026-03-20 22:11:58 -04:00
parent 5047d93b86
commit 9b3c078319
No known key found for this signature in database
78 changed files with 1662 additions and 955 deletions

View file

@ -1,4 +1,5 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
esptool
];

View file

@ -1,62 +1,92 @@
{ config, inputs, pkgs, ... }: let
sqlite_lib = if builtins.elem pkgs.stdenv.hostPlatform.system [
"aarch64-darwin"
"x86_64-darwin"
]
then "libsqlite3.dylib"
else "libsqlite3.so";
in {
home.packages = with pkgs; [
btop
bundix
cargo
cheat
colordiff
dogdns
dos2unix
duf
dust
fd
f2
git-filter-repo
glab
glow
gomuks
gotop
htop
httpie
hub
inputs.nix-auth.packages.${stdenv.hostPlatform.system}.default
jq
lazydocker
lazygit
lua-language-server
minicom
mtr
nil
nix-search
nix-zsh-completions
nodejs
nurl
nvd
onefetch
powershell
pre-commit
puppet-lint
rename
ruby
subversion
tldr
tree
trippy
vimv
watch
wget
yq-go
];
home.sessionVariables = {
CLICLOLOR = 1;
PAGER = "less";
{
config,
inputs,
pkgs,
...
}:
let
sqlite_lib =
if
builtins.elem pkgs.stdenv.hostPlatform.system [
"aarch64-darwin"
"x86_64-darwin"
]
then
"libsqlite3.dylib"
else
"libsqlite3.so";
in
{
home = {
packages = with pkgs; [
btop
bundix
cargo
cheat
colordiff
deadnix
dogdns
dos2unix
duf
dust
fd
f2
git-filter-repo
glab
glow
gomuks
gotop
htop
httpie
hub
inputs.nix-auth.packages.${stdenv.hostPlatform.system}.default
jq
lazydocker
lazygit
lua-language-server
minicom
mtr
nil
nix-search
nix-zsh-completions
nodejs
nurl
nvd
nixfmt-tree
onefetch
powershell
pre-commit
puppet-lint
rename
ruby
subversion
statix
tldr
tree
trippy
vimv
watch
wget
yq-go
];
sessionVariables = {
CLICLOLOR = 1;
PAGER = "less";
};
file = {
".config/nvim/lua/config" = {
source = ../../files/nvim/lua/config;
recursive = true;
};
".config/nvim/lua/plugins" = {
source = ../../files/nvim/lua/plugins;
recursive = true;
};
".config/powershell/Microsoft.PowerShell_profile.ps1".source =
../../files/Microsoft.PowerShell_profile.ps1;
".config/powershell/Microsoft.VSCode_profile.ps1".source =
../../files/Microsoft.PowerShell_profile.ps1;
};
};
programs = {
atuin = {
@ -111,7 +141,7 @@ in {
"*.swp"
".DS_Store"
];
includes = [ { path = "~/.gitconfig-local"; }];
includes = [ { path = "~/.gitconfig-local"; } ];
lfs.enable = true;
package = pkgs.gitFull;
settings = {
@ -159,7 +189,7 @@ in {
'';
extraPackages = with pkgs; [
gcc # needed so treesitter can do compiling
gcc # needed so treesitter can do compiling
sqlite # needed by sqlite.lua used by telescope-cheat
];
plugins = [ pkgs.vimPlugins.lazy-nvim ]; # let lazy.nvim manage every other plugin
@ -171,7 +201,11 @@ in {
oh-my-posh = {
enable = true;
enableZshIntegration = true;
settings = builtins.fromJSON (builtins.unsafeDiscardStringContext (builtins.readFile (inputs.genebean-omp-themes + "/beanbag.omp.json")));
settings = builtins.fromJSON (
builtins.unsafeDiscardStringContext (
builtins.readFile (inputs.genebean-omp-themes + "/beanbag.omp.json")
)
);
#useTheme = "amro";
#useTheme = "montys";
};
@ -189,7 +223,7 @@ in {
set -g @dracula-show-battery false
set -g @dracula-show-powerline true
set -g @dracula-refresh-rate 10
'';
'';
}
];
extraConfig = ''
@ -350,17 +384,4 @@ in {
};
}; # end zsh
}; # end programs
home.file = {
".config/nvim/lua/config" = {
source = ../../files/nvim/lua/config;
recursive = true;
};
".config/nvim/lua/plugins" = {
source = ../../files/nvim/lua/plugins;
recursive = true;
};
".config/powershell/Microsoft.PowerShell_profile.ps1".source = ../../files/Microsoft.PowerShell_profile.ps1;
".config/powershell/Microsoft.VSCode_profile.ps1".source = ../../files/Microsoft.PowerShell_profile.ps1;
};
}

View file

@ -1,3 +1,3 @@
{ ... }: {
{
programs.hexchat.enable = true;
}

View file

@ -1,3 +1,3 @@
{ ... }: {
{
programs.pidgin.enable = true;
}

View file

@ -1,4 +1,6 @@
{ lib, pkgs, ... }: with lib.hm.gvariant; {
{ lib, pkgs, ... }:
with lib.hm.gvariant;
{
dconf.settings = {
"com/gexperts/Tilix/profiles/2b7c4080-0ddd-46c5-8f23-563fd3ba789d" = {
@ -10,7 +12,24 @@
font = "Hack Nerd Font Mono 12";
foreground-color = "#F8F8F2";
highlight-colors-set = false;
palette = [ "#272822" "#F92672" "#A6E22E" "#F4BF75" "#66D9EF" "#AE81FF" "#A1EFE4" "#F8F8F2" "#75715E" "#F92672" "#A6E22E" "#F4BF75" "#66D9EF" "#AE81FF" "#A1EFE4" "#F9F8F5" ];
palette = [
"#272822"
"#F92672"
"#A6E22E"
"#F4BF75"
"#66D9EF"
"#AE81FF"
"#A1EFE4"
"#F8F8F2"
"#75715E"
"#F92672"
"#A6E22E"
"#F4BF75"
"#66D9EF"
"#AE81FF"
"#A1EFE4"
"#F9F8F5"
];
use-system-font = false;
use-theme-colors = false;
visible-name = "Default";
@ -20,11 +39,13 @@
home.file = {
".config/tilix/schemes/Beanbag-Mathias.json".source = ../../../files/tilix/Beanbag-Mathias.json;
".config/tilix/schemes/Catppuccin-Frappe.json".source = (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "tilix";
rev = "3fd05e03419321f2f2a6aad6da733b28be1765ef";
hash = "sha256-SI7QxQ+WBHzeuXbTye+s8pi4tDVZOV4Aa33mRYO276k=";
} + "/src/Catppuccin-Frappe.json");
".config/tilix/schemes/Catppuccin-Frappe.json".source =
pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "tilix";
rev = "3fd05e03419321f2f2a6aad6da733b28be1765ef";
hash = "sha256-SI7QxQ+WBHzeuXbTye+s8pi4tDVZOV4Aa33mRYO276k=";
}
+ "/src/Catppuccin-Frappe.json";
};
}
}

View file

@ -1,17 +1,20 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
home.file = {
".config/waybar/config".source = ../../../files/waybar/config;
".config/waybar/frappe.css".source = (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "waybar";
rev = "f74ab1eecf2dcaf22569b396eed53b2b2fbe8aff";
hash = "sha256-WLJMA2X20E5PCPg0ZPtSop0bfmu+pLImP9t8A8V4QK8=";
} + "/themes/frappe.css");
".config/waybar/frappe.css".source =
pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "waybar";
rev = "f74ab1eecf2dcaf22569b396eed53b2b2fbe8aff";
hash = "sha256-WLJMA2X20E5PCPg0ZPtSop0bfmu+pLImP9t8A8V4QK8=";
}
+ "/themes/frappe.css";
".config/waybar/style.css".source = ../../../files/waybar/style.css;
};
programs = {
programs = {
# Using file in ../../files/waybar/ to configure waybar
waybar.enable = true;
};
}
}

View file

@ -1,4 +1,4 @@
{ ... }: {
{
home.file = {
".config/xfce4/terminal/accels.scm".source = ../../../files/xfce4/terminal/accels.scm;
};
@ -11,7 +11,8 @@
"color-background" = "#08052b";
"color-cursor" = "#ff7f7f";
"color-cursor-use-default" = false;
"color-palette" = "#000000;#e52222;#a6e32d;#fc951e;#c48dff;#fa2573;#67d9f0;#f2f2f2;#555555;#ff5555;#55ff55;#ffff55;#5555ff;#ff55ff;#55ffff;#ffffff";
"color-palette" =
"#000000;#e52222;#a6e32d;#fc951e;#c48dff;#fa2573;#67d9f0;#f2f2f2;#555555;#ff5555;#55ff55;#ffff55;#5555ff;#ff55ff;#55ffff;#ffffff";
"font-name" = "Hack Nerd Font Mono 12";
"misc-always-show-tabs" = false;
"misc-bell" = false;
@ -43,4 +44,4 @@
"title-initial" = "xfce4-terminal";
};
};
}
}

View file

@ -1,4 +1,5 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
fastfetch
];