{ config, pkgs, lib, self, ... }: { imports = [ ./hardware-configuration.nix ../../services/suspend.nix ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.kernelPackages = pkgs.linuxPackages_latest; boot.blacklistedKernelModules = [ "nouveau" ]; boot.kernelParams = [ # "i915.modeset=0" # "intel_pstate=disable" ]; networking = { hostName = "myrtle"; wireless = { iwd.enable = true; interfaces = [ "wlan0" ]; }; }; i18n.defaultLocale = "en_US.UTF-8"; time.timeZone = "Asia/Kolkata"; nixpkgs.config = { "2bwm".patches = [ ../../patches/2bwm/nerd-patch.diff ]; st = { conf = builtins.readFile ../../programs/st/config.h; extraLibs = with pkgs; [ harfbuzz ]; patches = [ ../../patches/st/xres.diff ../../patches/st/bright.diff ../../patches/st/ligatures.diff ]; }; # for zoom-us, nvidia allowUnfree = true; }; nixpkgs.overlays = with self.overlays; [ # statix prompt better-text-objs vim-colors-plain ]; environment = { variables = { MOZ_USE_XINPUT2 = "1"; }; systemPackages = with pkgs; [ _2bwm man-pages man-pages-posix (lib.hiPrio pkgs.bashInteractive_5) # turbo config.boot.kernelPackages.turbostat config.boot.kernelPackages.nvidia_x11 xdotool ]; }; documentation = { dev.enable = true; man.generateCaches = true; }; users.motd = with config; '' Host ${networking.hostName} OS NixOS ${system.nixos.release} (${system.nixos.codeName}) Version ${system.nixos.version} Kernel ${boot.kernelPackages.kernel.version} ''; programs = { light.enable = true; adb.enable = true; }; sound.enable = true; hardware = { opengl.driSupport = true; pulseaudio = { enable = true; package = pkgs.pulseaudioFull; }; bluetooth = { enable = true; powerOnBoot = true; }; nvidia = { prime = { offload.enable = true; intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; }; package = config.boot.kernelPackages.nvidiaPackages.latest; powerManagement = { enable = true; finegrained = true; }; }; sensor.iio.enable = true; # enable screen autorotate }; powerManagement = { enable = true; powertop.enable = true; }; console = { font = "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz"; keyMap = "us"; }; services = { xserver = { enable = true; layout = "us"; videoDrivers = [ "nvidia" ]; displayManager.startx.enable = true; libinput.enable = true; dpi = 192; screenSection = '' Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}" Option "AllowIndirectGLXProtocol" "off" Option "TripleBuffer" "on" ''; }; openssh = { enable = true; forwardX11 = true; allowSFTP = true; }; asusd = { enable = true; enableUserService = true; }; supergfxd.enable = false; logind.extraConfig = '' HandlePowerKey=suspend HandlePowerKeyLongPress=poweroff ''; batteryNotifier = { enable = true; notifyCapacity = 20; suspendCapacity = 5; }; touchegg.enable = true; signald = { enable = true; group = "signald"; }; }; systemd.sleep.extraConfig = '' HibernateMode=shutdown ''; virtualisation.docker.enable = true; users.users.np = { isNormalUser = true; home = "/home/np"; extraGroups = [ "wheel" "users" "tty" "audio" "video" "input" "adbusers" "docker" "signald" ]; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrmh1vEWwKm8gpOk9j3DkZsiJCojpBdxuWU4M8rFeV/U9isRB+3pSJvF3Sncc6Yd+hSDohpzQF/Q5urubjkrGDniAKFjZnUHWZEzJmfQLHLIHXBkHjY8UMYF/WZprcplBKAZ7S9tS0YGa6NOQe2KEFtNG6XtBnrI3lswAHPOlqKJBG47MxfjIi9aUhczlzPxtGC9AfdwaNQYgLoJ91I6jkKuyKjbYt8KDDL+6PJ63TZc18LKKct1rf+ejRJKR9+jHTkEXhltUSQkieOJiEOdVcYWbYBxSoWutrnrksnhi9dLABOvueG6mAORU5g1yrMnX80RbK8DauwG4WI9qIGvHNPpQqP0vjj4mr8YkOUmzyeTW3KlOsQJZ7279WruBYV96/a7YoHKj9fGzV4McvVpvLMYa47hqyCBRK/qz0BSLFEhSNZzqseXCk91qZ0EhROBQEckqlKVip75YWFhqjVrgSPnVYWHxceNMttKmfGgIGXI8Bc8TKRZd+7quJNG7cWIE= np@olive" ]; }; nix = { package = pkgs.nixUnstable; extraOptions = '' experimental-features = nix-command flakes warn-dirty = false keep-outputs = false keep-derivations = false ''; settings = { trusted-users = [ "root" "np" ]; }; }; # Copy the NixOS configuration file and link it from the resulting system # (/run/current-system/configuration.nix). This is useful in case you # accidentally delete configuration.nix. # system.copySystemConfiguration = true; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.05"; # Did you read the comment? }