{ inputs, self, ... }: { flake.nixosConfigurations.nixos = inputs.nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ inputs.dms.nixosModules.dank-material-shell self.nixosModules.nixos self.nixosModules.desktop-ui ]; }; flake.nixosModules.nixos = {pkgs, ...}: { imports = [ ../hardware-configuration.nix ]; # Bootloader boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Use latest kernel boot.kernelPackages = pkgs.linuxPackages_latest; # Hostname networking.hostName = "nixos"; # Networking networking.networkmanager.enable = true; # Time zone time.timeZone = "Europe/Lisbon"; # Locale i18n.defaultLocale = "en_GB.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "pt_PT.UTF-8"; LC_IDENTIFICATION = "pt_PT.UTF-8"; LC_MEASUREMENT = "pt_PT.UTF-8"; LC_MONETARY = "pt_PT.UTF-8"; LC_NAME = "pt_PT.UTF-8"; LC_NUMERIC = "pt_PT.UTF-8"; LC_PAPER = "pt_PT.UTF-8"; LC_TELEPHONE = "pt_PT.UTF-8"; LC_TIME = "pt_PT.UTF-8"; }; # Desktop environment services.xserver.enable = true; services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; services.xserver.xkb = { layout = "us"; variant = ""; }; # Printing services.printing.enable = true; # Audio services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # User account users.users.thomasgl = { isNormalUser = true; description = "Thomas Gouveia Lopes"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ neovim nodejs_24 pnpm fd ripgrep fish go nerdfetch git alacritty zellij fzf autojump ]; }; # Fonts fonts.packages = with pkgs; [ nerd-fonts.iosevka-term-slab ]; # Programs programs.firefox.enable = true; # Allow unfree nixpkgs.config.allowUnfree = true; # Enable flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; # DankMaterialShell programs.dank-material-shell = { enable = true; enableSystemMonitoring = true; enableDynamicTheming = true; }; # System packages environment.systemPackages = with pkgs; [ # Add system-wide packages here ]; # State version system.stateVersion = "25.11"; }; }