{ config, pkgs, inputs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix inputs.home-manager.nixosModules.default ../../modules/options.nix ]; specialisation = { cosmic = { inheritParentConfig = true; configuration = { imports = [ ../../modules/nixos/cosmic.nix ]; environment.etc."active-specialisation".text = "cosmic"; }; }; wm = { inheritParentConfig = true; configuration = { services.displayManager.ly = { x11Support = false; enable = true; }; myOptions.niri.enable = true; environment.etc."active-specialisation".text = "wm"; programs.niri.enable = true; environment.systemPackages = with pkgs; [ ghostty fuzzel ]; services.gnome.gnome-keyring.enable = true; security.pam.services.swaylock = {}; }; }; }; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "framework"; # Define your hostname. nix.settings.experimental-features = ["nix-command" "flakes"]; # Enable networking networking.networkmanager.enable = true; # Set your time zone. time.timeZone = "Europe/Stockholm"; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "sv_SE.UTF-8"; LC_IDENTIFICATION = "sv_SE.UTF-8"; LC_MEASUREMENT = "sv_SE.UTF-8"; LC_MONETARY = "sv_SE.UTF-8"; LC_NAME = "sv_SE.UTF-8"; LC_NUMERIC = "sv_SE.UTF-8"; LC_PAPER = "sv_SE.UTF-8"; LC_TELEPHONE = "sv_SE.UTF-8"; LC_TIME = "sv_SE.UTF-8"; }; # Configure keymap in X11 services.xserver.xkb = { layout = "se"; variant = ""; }; # Configure console keymap console.keyMap = "sv-latin1"; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.bruhng = { isNormalUser = true; description = "Gustav Bruhn"; extraGroups = ["networkmanager" "wheel" "wireshark"]; }; programs.zsh.enable = true; users.defaultUserShell = pkgs.zsh; home-manager = { extraSpecialArgs = { inherit inputs pkgs; myOptions = config.myOptions; }; users."bruhng" = import ./home.nix; }; # Allow unfree packages nixpkgs.config.allowUnfree = true; environment.systemPackages = with pkgs; [ nil discord alejandra inputs.zen-browser.packages.${pkgs.system}.default tmux fastfetch spotify evince loupe ]; programs.steam.enable = true; # List services that you want to enable: services.fwupd.enable = true; security.polkit.enable = true; # fonts fonts.packages = with pkgs; [ nerd-fonts.jetbrains-mono ]; system.stateVersion = "25.05"; # Do not channge }