{ inputs, outputs, suiteModules, lib, config, pkgs, ... }: { imports = [ ./lauretta-hardware-configuration.nix inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t480 inputs.musnix.nixosModules.musnix inputs.home-manager.nixosModules.home-manager suiteModules.nixos.base suiteModules.nixos.exwm suiteModules.nixos.desktop suiteModules.nixos.dev suiteModules.nixos.steam suiteModules.nixos.attic suiteModules.nixos.printing suiteModules.nixos.hardware-auth ]; boot.loader.grub = { enable = true; efiSupport = true; device = "nodev"; configurationLimit = 5; }; boot.loader.efi.canTouchEfiVariables = true; nixpkgs = { overlays = [ outputs.overlays.addpkgs outputs.overlays.qutebrowserdrm outputs.overlays.modifications outputs.overlays.unstable-packages ]; config = { allowUnfree = true; }; }; nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); nix.nixPath = ["/etc/nix/path"]; networking.hostName = "lauretta"; networking.networkmanager.enable = true; time.timeZone = "Asia/Jerusalem"; i18n.defaultLocale = "en_IL"; i18n.extraLocaleSettings = { LC_ADDRESS = "he_IL.UTF-8"; LC_IDENTIFICATION = "he_IL.UTF-8"; LC_MEASUREMENT = "he_IL.UTF-8"; LC_MONETARY = "he_IL.UTF-8"; LC_NAME = "he_IL.UTF-8"; LC_NUMERIC = "he_IL.UTF-8"; LC_PAPER = "he_IL.UTF-8"; LC_TELEPHONE = "he_IL.UTF-8"; LC_TIME = "he_IL.UTF-8"; }; services.xserver = { xkb = { layout = "us,il"; variant = ""; }; xkb.options = "grp:alt_shift_toggle"; }; console.keyMap = "il"; users.users.aner = { isNormalUser = true; description = "Aner Zakobar"; extraGroups = ["networkmanager" "wheel" "audio" "video" "seat" "input"]; packages = with pkgs; []; }; nix.settings = { experimental-features = ["nix-command" "flakes"]; auto-optimise-store = true; substituters = [ "https://cache.nixos.org" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ]; }; azos.suites.exwm.enable = true; azos.attic.enable = true; azos.printing.enable = true; azos.hardware-auth.enable = true; # Needed for unprivileged FUSE mounts (e.g. rclone mount) -- without this, # fusermount3 has no setuid wrapper and mounting fails with # "Operation not permitted" even though /dev/fuse itself is world-writable. programs.fuse.enable = true; home-manager = { extraSpecialArgs = {inherit inputs outputs suiteModules pkgs;}; users = { aner = import ../home-manager/home.nix; }; }; specialisation = { steam-big-picture = { configuration = { environment.systemPackages = [pkgs.sway]; environment.etc."sway-steam.conf".text = '' output * bg #000000 solid_color default_border none default_floating_border none exec ${pkgs.dbus}/bin/dbus-run-session -- ${pkgs.bash}/bin/bash -c "steam -tenfoot; ${pkgs.sway}/bin/swaymsg exit" ''; services.seatd.enable = true; services.greetd.settings = lib.mkForce { terminal.vt = 1; default_session = { command = "${pkgs.tuigreet}/bin/tuigreet --time --user-menu --user-menu-min-uid 1000 --user-menu-max-uid 29999 --cmd '/home/aner/.login.sh'"; user = "greeter"; }; initial_session = { command = "${pkgs.sway}/bin/sway --config /etc/sway-steam.conf"; user = "aner"; }; }; home-manager.users.aner = {lib, ...}: { azos.suites.exwm.enable = lib.mkForce false; }; }; }; }; boot.supportedFilesystems = ["exfat"]; boot.kernelModules = ["exfat"]; environment.systemPackages = with pkgs; [ vim git tmux killall brightnessctl exfatprogs gamescope ]; fonts.enableDefaultPackages = true; services.upower.enable = true; systemd.targets.sleep.enable = false; systemd.targets.suspend.enable = false; systemd.targets.hibernate.enable = false; systemd.targets.hybrid-sleep.enable = false; system.stateVersion = "25.11"; }