refactor: make hosts declarative and consolidate shared config
- add my.username / my.gaming.enable / my.ai.local.enable options and gate optional app modules on them instead of per-host import lists - move vendor-neutral hardware.graphics into modules/graphical, leaving only NVIDIA-specific drivers and env vars in modules/hardware/nvidia - derive the primary user everywhere from my.username (users, getty, home-manager, tmpfiles) - de-duplicate Hyprland autostart down to a single system loginShellInit using the start-hyprland wrapper - consolidate all nixpkgs overlays into modules/core/nix.nix and use final.stdenv.hostPlatform.system - make the zsh rebuild helper target $(hostname) instead of hardcoded hades - add nixpkgs follows for nixos-hardware, pi and comfy-ui (single nixpkgs) - add .gitignore and a nixfmt flake formatter; format all nix files - remove empty browser.nix/display-configuration.nix and rename local_ai.nix -> local-ai.nix - document the my.* toggles in the README
This commit is contained in:
@@ -1,41 +1,58 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
services.getty.autologinUser = "anish";
|
||||
services.getty.autologinUser = config.my.username;
|
||||
|
||||
# Boot straight into Hyprland from the first virtual console on any machine.
|
||||
# No display manager required; tty2-6 remain available as plain shells.
|
||||
environment.loginShellInit = ''
|
||||
if [ "$(tty)" = "/dev/tty1" ]; then
|
||||
exec ${pkgs.hyprland}/bin/Hyprland
|
||||
fi
|
||||
'';
|
||||
# Boot straight into Hyprland from the first virtual console on any machine.
|
||||
# No display manager required; tty2-6 remain available as plain shells.
|
||||
# The start-hyprland wrapper ships with programs.hyprland and sets up the
|
||||
# session environment correctly.
|
||||
environment.loginShellInit = ''
|
||||
if [ "$(tty)" = "/dev/tty1" ]; then
|
||||
exec start-hyprland
|
||||
fi
|
||||
'';
|
||||
|
||||
# Machine-agnostic Wayland session variables.
|
||||
# GPU/vendor specific variables live with their hardware module (e.g. modules/hardware/nvidia.nix).
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
HYPRCURSOR_ENABLED = "1";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
GDK_BACKEND = "wayland,x11,*";
|
||||
};
|
||||
# Vendor-neutral graphics stack. Vendor modules (e.g. modules/hardware/nvidia.nix)
|
||||
# only add drivers and vendor-specific environment variables.
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
# Fonts used across the desktop shell (Silicon Volt theme):
|
||||
# JetBrains Mono for terminal/UI mono, IBM Plex Sans for UI sans,
|
||||
# Instrument Serif for display italics, Nanum Gothic Coding as mono fallback.
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.fira-code
|
||||
font-awesome
|
||||
ibm-plex
|
||||
nanum-gothic-coding
|
||||
] ++ lib.optional (lib.hasAttr "instrument-serif" pkgs) pkgs.instrument-serif;
|
||||
# Machine-agnostic Wayland session variables.
|
||||
# GPU/vendor specific variables live with their hardware module (e.g. modules/hardware/nvidia.nix).
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
HYPRCURSOR_ENABLED = "1";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
GDK_BACKEND = "wayland,x11,*";
|
||||
};
|
||||
|
||||
# Fonts used across the desktop shell (Silicon Volt theme):
|
||||
# JetBrains Mono for terminal/UI mono, IBM Plex Sans for UI sans,
|
||||
# Instrument Serif for display italics, Nanum Gothic Coding as mono fallback.
|
||||
fonts.packages =
|
||||
with pkgs;
|
||||
[
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.fira-code
|
||||
font-awesome
|
||||
ibm-plex
|
||||
nanum-gothic-coding
|
||||
]
|
||||
++ lib.optional (lib.hasAttr "instrument-serif" pkgs) pkgs.instrument-serif;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user