some cleanup, back to wpa_supplicant, about to branch for refactor

This commit is contained in:
Matt Nish-Lapidus 2025-02-03 17:09:12 -05:00
parent 29f9ba670f
commit 7b061e6cd8
33 changed files with 2225 additions and 449 deletions

View file

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ nixos-hardware, config, pkgs, musnix, lib, inputs, outputs, ... }:
{ config, pkgs, lib, inputs, musnix, outputs, ... }:
{
imports =
@ -30,20 +30,12 @@
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in {
# gc = {
# automatic = true;
# dates = "daily";
# options = "--delete-older-than +3";
# };
settings = {
# Enable flakes and new 'nix' command
experimental-features = "nix-command flakes";
# Workaround for https://github.com/NixOS/nix/issues/9574
nix-path = config.nix.nixPath;
};
# Opinionated: disable channels
# channel.enable = false;
# Opinionated: make flake registry and nix path match flake inputs
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
@ -72,7 +64,9 @@
egl-wayland
glfw-wayland
openssl
appimage-run
xwayland-satellite
xwayland-run
];
# Bootloader.
@ -83,11 +77,15 @@
efi.canTouchEfiVariables = true;
};
kernelPackages = pkgs.unstable.linuxPackages_latest;
initrd.systemd.enable = true;
initrd.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "snd-virmidi" ];
kernelParams = [ "nvidia_drm.fbdev=1" "nvidia_drm.modeset=1" ];
};
systemd.services.tailscaled.after = ["NetworkManager-wait-online.service"];
systemd.sleep.extraConfig = ''
HibernateDelaySec=2h
'';
documentation = {
dev.enable = true;
@ -120,8 +118,8 @@
];
nvidia = {
# Modesetting is required.
open = true;
# Modesetting is required.
modesetting.enable = true;
powerManagement.enable = true;
powerManagement.finegrained = true;
@ -163,35 +161,93 @@
rtcqs.enable = true;
};
services.udev.extraRules = ''
DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660"
'';
services.fstrim.enable = true;
services.samba = {
enable = true;
package = pkgs.sambaFull;
};
services.logind = {
extraConfig = ''
IdleAction=lock
IdleActionSec=5m
'';
};
services.udev = {
extraRules = ''
DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660"
'';
packages = [
pkgs.via
pkgs.vial
(pkgs.writeTextFile {
name = "on-battery";
text = ''
# Rule for when switching to battery
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set balanced"
'';
destination = "/etc/udev/rules.d/60-onbattery.rules";
})
(pkgs.writeTextFile {
name = "on-power";
text = ''
# Rule for when switching to ac
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set performance"
'';
destination = "/etc/udev/rules.d/61-onpower.rules";
})
(pkgs.writeTextFile {
name = "hibernate-low-battery";
text = ''
# Suspend the system when battery level drops to 5% or lower
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="${pkgs.systemd}/bin/systemctl hibernate"
'';
destination = "/etc/udev/rules.d/99-hibernate-low-battery.rules";
})
(pkgs.writeTextFile {
name = "on-battery-power-saver";
text = ''
# Switch to power-saver when battery below 50%
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5][0-9]", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set power-saver"
'';
destination = "/etc/udev/rules.d/62-power-save-battery.rules";
})
];
};
security.polkit.enable = true;
security.rtkit.enable = true;
security.pam.services.swaylock = {};
security.pam.services.hyprlock = {};
services.xserver.videoDrivers = [ "nvidia" "modesetting" ];
programs.nm-applet.enable = true;
networking = {
hostName = "eddie";
domain = "local";
nameservers = [ "1.1.1.1" "1.0.0.1" ];
networkmanager = {
enable = true;
wifi.powersave = true;
# wifi.backend = "iwd";
};
# wireless = {
# iwd = {
# enable = true;
# package = pkgs.unstable.iwd;
# settings = {
# IPv6 = {
# enabled = true;
# };
# Settings = {
# AutoConnect = true;
# };
# };
# };
# };
networkmanager = {
enable = true;
wifi.powersave = true;
# wifi.backend = "iwd";
};
};
services.resolved = {
@ -226,7 +282,7 @@
programs.niri = {
enable = true;
package = inputs.niri.packages.x86_64-linux.default;
package = inputs.niri.packages.x86_64-linux.niri;
};
# programs.waybar.enable = true;
@ -384,7 +440,6 @@
services.kmonad = {
enable = true;
package = pkgs.unstable.kmonad;
keyboards = {
sinc = {
device = "/dev/input/by-id/usb-Keebio_Sinc_Rev._4-event-kbd";
@ -457,11 +512,6 @@
libudev-zero.out
];
services.udev.packages = with pkgs; [
via
vial
];
fonts.fontconfig = {
enable = true;
useEmbeddedBitmaps = true;
@ -471,13 +521,19 @@
enable = true;
};
services.power-profiles-daemon.enable = true;
services.power-profiles-daemon = {
enable = true;
package = pkgs.unstable.power-profiles-daemon;
};
# enable the OpenSSH daemon.
services.openssh.enable = true;
services.avahi = {
enable = true;
publish.enable = true;
publish.userServices = true;
openFirewall = true;
nssmdns4 = true;
};
@ -485,7 +541,7 @@
users.users.emenel = {
isNormalUser = true;
description = "emenel";
extraGroups = [ "networkmanager" "wheel" "uinput" "uucp" "dialout" "input" "audio" "video" "libvirtd" "nvidia" "cups" "openrazer" "plugdev" ];
extraGroups = [ "networkmanager" "network" "wheel" "uinput" "uucp" "dialout" "input" "audio" "video" "libvirtd" "nvidia" "cups" "openrazer" "plugdev" ];
packages = with pkgs; [
git
];