Kieran's opinionated (and probably slightly dumb) nix config

feat: update to 25.05

dunkirk.sh 34953b26 6e68facc

verified
Changed files
+100 -91
home-manager
app
dots
machines
moonlark
moonlark
+8 -8
flake.lock
···
]
},
"locked": {
-
"lastModified": 1747020534,
-
"narHash": "sha256-D/6rkiC6w2p+4SwRiVKrWIeYzun8FBg7NlMKMwQMxO0=",
"owner": "nix-community",
"repo": "home-manager",
-
"rev": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca",
"type": "github"
},
"original": {
"owner": "nix-community",
-
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
···
},
"nixpkgs_6": {
"locked": {
-
"lastModified": 1746957726,
-
"narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "a39ed32a651fdee6842ec930761e31d1f242cb94",
"type": "github"
},
"original": {
"owner": "nixos",
-
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
···
]
},
"locked": {
+
"lastModified": 1747556831,
+
"narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
"owner": "nix-community",
"repo": "home-manager",
+
"rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
"type": "github"
},
"original": {
"owner": "nix-community",
+
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
···
},
"nixpkgs_6": {
"locked": {
+
"lastModified": 1747610100,
+
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
"owner": "nixos",
"repo": "nixpkgs",
+
"rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
"type": "github"
},
"original": {
"owner": "nixos",
+
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
+2 -2
flake.nix
···
inputs = {
# Nixpkgs
-
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Lix
···
hardware.url = "github:NixOS/nixos-hardware/master";
# Home manager
-
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
disko.url = "github:nix-community/disko";
···
inputs = {
# Nixpkgs
+
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Lix
···
hardware.url = "github:NixOS/nixos-hardware/master";
# Home manager
+
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
disko.url = "github:nix-community/disko";
+1 -1
home-manager/app/shell.nix
···
vi = "nvim";
vim = "nvim";
};
-
initExtra = ''
#ssh auto reconnect
assh() {
local host=$1
···
vi = "nvim";
vim = "nvim";
};
+
initContent = ''
#ssh auto reconnect
assh() {
local host=$1
+70 -68
home-manager/app/vscode.nix
···
programs.vscode = {
enable = true;
package = pkgs.unstable.vscode;
-
extensions = with pkgs.vscode-marketplace; [
-
ms-vscode.live-server
-
formulahendry.auto-rename-tag
-
edwinkofler.vscode-assorted-languages
-
golang.go
-
catppuccin.catppuccin-vsc-icons
-
eamodio.gitlens
-
yzhang.markdown-all-in-one
-
github.vscode-github-actions
-
yoavbls.pretty-ts-errors
-
esbenp.prettier-vscode
-
ms-vscode.vscode-serial-monitor
-
prisma.prisma
-
ms-azuretools.vscode-docker
-
astro-build.astro-vscode
-
github.copilot
-
github.copilot-chat
-
dotjoshjohnson.xml
-
mikestead.dotenv
-
bradlc.vscode-tailwindcss
-
mechatroner.rainbow-csv
-
wakatime.vscode-wakatime
-
paulober.pico-w-go
-
ms-python.python
-
karunamurti.tera
-
biomejs.biome
-
bschulte.love
-
yinfei.luahelper
-
tamasfe.even-better-toml
-
fill-labs.dependi
-
rust-lang.rust-analyzer
-
dustypomerleau.rust-syntax
-
# Add catppuccin theme
-
catppuccin.catppuccin-vsc
-
inputs.frc-nix.packages.${pkgs.system}.vscode-wpilib
-
];
-
userSettings = {
-
"editor.semanticHighlighting.enabled" = true;
-
"terminal.integrated.minimumContrastRatio" = 1;
-
"window.titleBarStyle" = "custom";
-
"gopls" = {
-
"ui.semanticTokens" = true;
-
};
-
"workbench.colorTheme" = "Catppuccin Macchiato";
-
"workbench.iconTheme" = "catppuccin-macchiato";
-
"catppuccin.accentColor" = lib.mkForce "blue";
-
"editor.fontFamily" = "'FiraCode Nerd Font', 'monospace', monospace";
-
"git.autofetch" = true;
-
"git.confirmSync" = false;
-
"github.copilot.editor.enableAutoCompletions" = false;
-
"editor.formatOnSave" = true;
-
"editor.defaultFormatter" = "biomejs.biome";
-
"[go]" = {
-
"editor.defaultFormatter" = "golang.go";
-
};
-
"[yaml]" = {
-
"editor.defaultFormatter" = "esbenp.prettier-vscode";
-
};
-
"[lua]" = {
-
"editor.defaultFormatter" = "yinfei.luahelper";
-
};
-
"[html]" = {
-
"editor.defaultFormatter" = "esbenp.prettier-vscode";
-
};
-
"[java]" = {
-
"editor.defaultFormatter" = "esbenp.prettier-vscode";
-
};
-
"editor.linkedEditing" = true;
};
};
}
···
programs.vscode = {
enable = true;
package = pkgs.unstable.vscode;
+
profiles.default = {
+
extensions = with pkgs.vscode-marketplace; [
+
ms-vscode.live-server
+
formulahendry.auto-rename-tag
+
edwinkofler.vscode-assorted-languages
+
golang.go
+
catppuccin.catppuccin-vsc-icons
+
eamodio.gitlens
+
yzhang.markdown-all-in-one
+
github.vscode-github-actions
+
yoavbls.pretty-ts-errors
+
esbenp.prettier-vscode
+
ms-vscode.vscode-serial-monitor
+
prisma.prisma
+
ms-azuretools.vscode-docker
+
astro-build.astro-vscode
+
github.copilot
+
github.copilot-chat
+
dotjoshjohnson.xml
+
mikestead.dotenv
+
bradlc.vscode-tailwindcss
+
mechatroner.rainbow-csv
+
wakatime.vscode-wakatime
+
paulober.pico-w-go
+
ms-python.python
+
karunamurti.tera
+
biomejs.biome
+
bschulte.love
+
yinfei.luahelper
+
tamasfe.even-better-toml
+
fill-labs.dependi
+
rust-lang.rust-analyzer
+
dustypomerleau.rust-syntax
+
# Add catppuccin theme
+
catppuccin.catppuccin-vsc
+
inputs.frc-nix.packages.${pkgs.system}.vscode-wpilib
+
];
+
userSettings = {
+
"editor.semanticHighlighting.enabled" = true;
+
"terminal.integrated.minimumContrastRatio" = 1;
+
"window.titleBarStyle" = "custom";
+
"gopls" = {
+
"ui.semanticTokens" = true;
+
};
+
"workbench.colorTheme" = "Catppuccin Macchiato";
+
"workbench.iconTheme" = "catppuccin-macchiato";
+
"catppuccin.accentColor" = lib.mkForce "blue";
+
"editor.fontFamily" = "'FiraCode Nerd Font', 'monospace', monospace";
+
"git.autofetch" = true;
+
"git.confirmSync" = false;
+
"github.copilot.editor.enableAutoCompletions" = false;
+
"editor.formatOnSave" = true;
+
"editor.defaultFormatter" = "biomejs.biome";
+
"[go]" = {
+
"editor.defaultFormatter" = "golang.go";
+
};
+
"[yaml]" = {
+
"editor.defaultFormatter" = "esbenp.prettier-vscode";
+
};
+
"[lua]" = {
+
"editor.defaultFormatter" = "yinfei.luahelper";
+
};
+
"[html]" = {
+
"editor.defaultFormatter" = "esbenp.prettier-vscode";
+
};
+
"[java]" = {
+
"editor.defaultFormatter" = "esbenp.prettier-vscode";
+
};
+
"editor.linkedEditing" = true;
+
};
};
};
}
+12 -6
home-manager/dots/hyprland.conf
···
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 7
shadow {
enabled = true
···
}
}
-
windowrule = opacity 0.88 override 0.8 override 0.88 override, ghostty # set opacity to 0.88 active, 0.8 inactive and 0.88 fullscreen for ghostty
-
windowrulev2 = opacity 0.88 override 0.8 override 0.88 override, initialClass: (dev.zed.Zed|spotify|Slack|org.gnome.Nautilus)
-
windowrulev2 = opacity 1.0 override, fullscreen:1
animations {
enabled = true
···
}
# Floating Windows
-
windowrulev2 = float, title:(Picture-in-Picture|Open Files)
-
windowrulev2 = float, initialClass:(zenity)
-
windowrulev2 = tile, initialClass:(Aseprite|System Identification)
# Layer Rules
layerrule = animation fade,waybar
···
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 7
+
rounding_power = 4
shadow {
enabled = true
···
}
}
+
windowrule = opacity 0.88 override 0.8 override 0.88 override, class:^(com\.mitchellh\.ghostty)$ # set opacity to 0.88 active, 0.8 inactive and 0.88 fullscreen for ghostty
+
windowrule = opacity 0.88 override 0.8 override 0.88 override, initialClass:^(dev\.zed\.Zed)$
+
windowrule = opacity 0.88 override 0.8 override 0.88 override, initialClass:^(spotify)$
+
windowrule = opacity 0.88 override 0.8 override 0.88 override, initialClass:^(Slack)$
+
windowrule = opacity 0.88 override 0.8 override 0.88 override, initialClass:^(org\.gnome\.Nautilus)$
+
windowrule = opacity 1.0 override, fullscreen:1
animations {
enabled = true
···
}
# Floating Windows
+
windowrule = float, title:^(Picture-in-Picture)$
+
windowrule = float, title:^(Open Files)$
+
windowrule = float, initialClass:^(zenity)$
+
windowrule = tile, initialClass:^(Aseprite)$
+
windowrule = tile, initialClass:^(System Identification)$
# Layer Rules
layerrule = animation fade,waybar
+6 -4
home-manager/machines/moonlark/default.nix
···
# notifications
services.mako = {
enable = true;
-
defaultTimeout = 4000;
-
margin = "58,6";
-
font = "Fira Sans 12";
-
borderRadius = 5;
};
}
···
# notifications
services.mako = {
enable = true;
+
settings = {
+
default-timeout = 4000;
+
margin = "58,6";
+
font = "Fira Sans 12";
+
border-radius = 5;
+
};
};
}
+1 -2
moonlark/configuration.nix
···
};
fonts.packages = with pkgs; [
-
nerdfonts
fira
comic-neue
-
];
# import the secret
age.identityPaths = [
···
};
fonts.packages = with pkgs; [
fira
comic-neue
+
] ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
# import the secret
age.identityPaths = [