Files

106 lines
2.9 KiB
Nix

# /hosts/hp-laptop/configuration.nix
{
config,
pkgs,
inputs,
lib,
...
}:
{
imports = [
./hardware-configuration.nix
../../modules/core/common.nix
../../modules/desktop/gui.nix
(import ../../modules/storage/disko.nix {
inherit inputs lib config;
diskoConfigPath = ./disko-config.nix;
})
../../modules/desktop/hyprland.nix
../../modules/core/management.nix
../../modules/hardware/laptop.nix
../../modules/hardware/hp-battery-limit.nix
../../modules/core/dev.nix
];
sops.secrets = {
"users/petere-password" = {
neededForUsers = true;
};
# Nextcloud CalDAV credentials for the QuickShell calendar popup
# (vdirsyncer/khal sync). Values live in secrets.yaml under
# hp-laptop/nextcloud-cal-env; sync runs as petere so it must be readable.
"hp-laptop/nextcloud-cal-env" = {
owner = "petere";
group = "users";
mode = "0440";
};
};
home-manager.users.petere.imports = [
../../home-manager/modules/hyprland.nix
../../home-manager/modules/quickshell-cal.nix
../../home-manager/modules/quickshell-apps.nix
];
home-manager.users.petere.services.quickshell-cal.enable = true;
# Autostart app pool (toggleable from the gear quick-settings panel).
# The on/off choice is stored at runtime in
# ~/.cache/quickshell/autostart.json - adding an app here just makes it
# available as an (off by default) entry next time the panel loads.
home-manager.users.petere.services.quickshell-apps = {
enable = true;
apps = [
{
name = "Element";
cmd = "element-desktop";
}
{
name = "Nextcloud";
cmd = "nextcloud";
}
{
name = "Bitwarden";
cmd = "bitwarden";
}
];
};
networking.hostName = "hp-laptop";
# Open legacy game-streaming ports.
networking.firewall = {
enable = true;
allowedTCPPorts = [ 9756 ];
allowedUDPPorts = [ 9999 ];
};
# TeleportFling: standalone screen + audio sender for OBS Teleport.
environment.systemPackages = [
inputs.teleportfling.packages.${pkgs.system}.teleportfling-gui
inputs.teleportfling.packages.${pkgs.system}.teleportfling
];
# Laptop-specific hardware support (fingerprint reader, fwupd)
my.hardware.laptop.enable = true;
# Charging cap at 80% (protect battery longevity). Board 81AD firmware lacks
# a percentage threshold sysfs, so this runs SBCC/SBCO via acpi_call: a root
# poller inhibits charge at 80% and re-enables auto below 75%. Toggleable
# from the QuickShell gear panel (CHARGE LIMIT).
my.hardware.hpBatteryLimit.enable = true;
# Intel integrated GPU (HP consumer laptops)
hardware.graphics.enable = true;
my.users.petere = {
description = "Peter Edley";
hashedPasswordFile = config.sops.secrets."users/petere-password".path;
subUidStart = 165536;
subGidStart = 165536;
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}