os/nixos.nix
2024-12-11 22:54:03 +01:00

144 lines
3.2 KiB
Nix

{ config, pkgs, inputs, ... }:
{
imports =
[
];
nix = {
package = pkgs.nixVersions.stable;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
networking.networkmanager.enable = true;
services.wg-netmanager.enable = true;
time.timeZone = "Europe/Amsterdam";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "nl_NL.UTF-8";
LC_IDENTIFICATION = "nl_NL.UTF-8";
LC_MEASUREMENT = "nl_NL.UTF-8";
LC_MONETARY = "nl_NL.UTF-8";
LC_NAME = "nl_NL.UTF-8";
LC_NUMERIC = "nl_NL.UTF-8";
LC_PAPER = "nl_NL.UTF-8";
LC_TELEPHONE = "nl_NL.UTF-8";
LC_TIME = "nl_NL.UTF-8";
};
networking.firewall.allowedTCPPorts = [ 8000 ];
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.logind.lidSwitchExternalPower = "ignore";
services.fwupd.enable = true;
services.xserver = {
xkb.layout = "us";
xkb.variant = "euro";
};
services.printing.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
nixpkgs.config.packageOverrides = pkgs: {
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
};
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
vaapiVdpau
libvdpau-va-gl
];
};
users.users.steph = {
isNormalUser = true;
description = "Steph";
extraGroups = [ "networkmanager" "wheel" "dialout" "podman" "docker" ];
packages = with pkgs; [
# Use home-manager doofus
];
};
services.avahi.enable = false;
virtualisation.podman.enable = true;
virtualisation.docker.enable = true;
environment.systemPackages = with pkgs; [
fprintd
libfprint-2-tod1-vfs0090
udev
usbutils
gnome-tweaks
gnomeExtensions.tray-icons-reloaded
gnomeExtensions.clipboard-history
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.caffeine
aspell
aspellDicts.en
aspellDicts.nl
networkmanager-openvpn
];
services.udev.packages = with pkgs; [
gnome-settings-daemon
android-udev-rules
];
services.fprintd.enable = true;
services.power-profiles-daemon.enable = true;
services.tlp.enable = false;
system.stateVersion = "22.05"; # Did you read the comment?
systemd.services."99setbacklight" = let set-backlight-script = (pkgs.writeShellApplication {
name = "set-backlight-script";
text = ''
for d in /sys/class/backlight/*; do
cd "$d"
echo $(( $(cat max_brightness) / 2)) > brightness
done
'';
});
in {
enable = true;
after = ["systemd-backlight@.service"];
description = "bar";
unitConfig = {
Type = "simple";
};
serviceConfig = {
ExecStart = "${set-backlight-script}/bin/set-backlight-script";
};
wantedBy = [ "multi-user.target" ];
};
}