configuration.nix

Branches > main > 5e80be6 > files / nixos / machines / chromebook / configuration.nix

{ config, lib, pkgs, callPackage, ... }:

{
  imports = [
    ./hardware-configuration.nix
    (import ../../modules/base.nix {inherit pkgs;})
    (import ../../modules/i3.nix {inherit pkgs;})
    (import ../../modules/bluetooth.nix {inherit pkgs;})
  ];

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  home-manager.backupFileExtension = "backup-home";

  networking.hostName = "chromebook";

  services.tlp.enable = true;
  services.logind.settings.Login.HandleLidSwitch = "suspend";

  powerManagement.cpuFreqGovernor = "schedutil";

  ## Only 4GB RAM: compressed swap in RAM, and kill the hog early instead of freezing
  zramSwap = {
    enable = true;
    memoryPercent = 100;
  };
  boot.kernel.sysctl."vm.swappiness" = 180;

  services.earlyoom = {
    enable = true;
    freeMemThreshold = 5;
    enableNotifications = true;
  };
  systemd.oomd.enable = false;

  services.xserver.videoDrivers = ["amdgpu"];

  services.usbmuxd = {
    enable = true;
    package = pkgs.usbmuxd2;
  };

  hardware.graphics.enable = true;

  ## Disable SSH gui popup thing?
  programs.ssh.askPassword = "";
  programs.ssh.startAgent = true;

  services.udev.extraRules = ''
    SUBSYSTEM=="hidraw", ATTRS{idVendor}=="feed", ATTRS{idProduct}=="400d", MODE="0666"
  '';

  programs.nix-ld.enable = true;
  services.printing.enable = true;
  services.blueman.enable = true;
  hardware.bluetooth.powerOnBoot = lib.mkForce false; # save battery; turn on in blueman when needed

  services.avahi = {
    enable = true;
    nssmdns4 = true;
    openFirewall = true;
  };

  users.users.grahp = {
    isNormalUser = true;
    description = "Grahp";
    extraGroups = ["networkmanager" "wheel" "dialout"];
    shell = pkgs.fish;
  };

  services.openssh = {
    enable = true;
  };

  programs.fish.enable = true;
  environment.shells = [pkgs.fish];

  ## No touchy says the comment!
  system.stateVersion = "24.11";
}