diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 0c6466e..f35c198 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -1,16 +1,58 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - { config, pkgs, inputs, ... }: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - nix.settings.experimental-features = ["nix-command" "flakes"]; + imports = [ ./hardware-configuration.nix ]; + nixpkgs.config.allowUnfree = true; + system.autoUpgrade.enable = true; + time.timeZone = "America/New_York"; + security.rtkit.enable = true; + powerManagement.enable = true; + + nix = { + settings.experimental-features = [ "nix-command" "flakes" ]; + gc.automatic = true; + }; + + networking = { + hostName = "laptop"; + networkmanager.enable = true; + firewall.enable = true; + }; + + i18n = { + defaultLocale = "en_US.UTF-8"; + extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + }; + + services = { + xserver = { + enable = true; + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + }; + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + fwupd.enable = true; + printing.enable = true; + fprintd.enable = true; + thermald.enable = true; + }; stylix = { enable = true; @@ -24,133 +66,69 @@ }; }; - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - # Enable networking - networking.networkmanager.enable = true; - - # Set your time zone. - time.timeZone = "America/New_York"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; + hardware = { + sensor.iio.enable = true; + pulseaudio.enable = false; + graphics.enable32Bit = true; }; - services.xserver.enable = true; - services.xserver.displayManager.gdm.enable = true; - services.xserver.desktopManager.gnome.enable = true; - environment.gnome.excludePackages = (with pkgs; [ - gnome-photos - gnome-tour - xterm - cheese # webcam tool - gnome-music - gnome-weather - gnome-calendar - gnome-contacts - gnome-clocks - gnome-maps - epiphany # web browser - geary # email reader - evince # document viewer - gnome-characters - totem # video player - tali # poker game - iagno # go game - hitori # sudoku game - atomix # puzzle game - - ]); - - - hardware.sensor.iio.enable = true; - - networking.hostName = "laptop"; # Define your hostname. - services.fwupd.enable = true; - - # Enable CUPS to print documents. - services.printing.enable = true; - services.fprintd.enable = true; - services.thermald.enable = true; - powerManagement.powertop.enable = true; - powerManagement.enable = true; - virtualisation.podman = { enable = true; dockerCompat = true; }; - # Enable sound with pipewire. - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; + programs = { + nix-ld.enable = true; + nix-ld.libraries = with pkgs; [ glibc glib ]; + zsh.enable = true; + steam.enable = true; + steam.gamescopeSession.enable = true; + gamemode.enable = true; }; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; [glibc glib]; - programs.zsh.enable = true; users.users.k = { isNormalUser = true; description = "k"; extraGroups = [ "networkmanager" "wheel" ]; - packages = with pkgs; [zsh]; + packages = with pkgs; [ zsh ]; shell = pkgs.zsh; }; + home-manager = { - users = { - "k" = import ./home.nix; - }; - }; - programs.steam.enable = true; - programs.steam.gamescopeSession.enable = true; - programs.gamemode.enable = true; - environment.sessionVariables = { - MOZ_USE_XINPUT2 = "1"; + users = { "k" = import ./home.nix; }; }; - - system.autoUpgrade.enable = true; - nix.gc.automatic = true; - - - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - intel-vaapi-driver - intel-compute-runtime - intel-media-driver - microcodeIntel - neovim - gtk2 - gtk3 - gtk4 - ]; - networking.firewall.enable = true; - hardware.graphics.enable32Bit = true; + environment = { + sessionVariables = { MOZ_USE_XINPUT2 = "1"; }; + gnome.excludePackages = (with pkgs; [ + gnome-photos + gnome-tour + xterm + cheese # webcam tool + gnome-music + gnome-weather + gnome-calendar + gnome-contacts + gnome-clocks + gnome-maps + epiphany # web browser + geary # email reader + evince # document viewer + gnome-characters + totem # video player + tali # poker game + iagno # go game + hitori # sudoku game + atomix # puzzle game + ]); + systemPackages = with pkgs; [ + intel-vaapi-driver + intel-compute-runtime + intel-media-driver + microcodeIntel + neovim + ]; + }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 4f64534..3af688b 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -1,46 +1,47 @@ { config, pkgs, inputs, ... }: { - home.enableNixpkgsReleaseCheck = false; nixpkgs.config.allowUnfree = true; - home.username = "k"; - home.homeDirectory = "/home/k"; - home.stateVersion = "23.11"; + home = { + username = "k"; + homeDirectory = "/home/k"; + stateVersion = "23.11"; + enableNixpkgsReleaseCheck = false; + packages = [ + pkgs.nerdfonts + pkgs.firefox + pkgs.keepassxc + pkgs.syncthing + pkgs.thunderbird + pkgs.blender + pkgs.vesktop + pkgs.btop + pkgs.zip + pkgs.spotify + pkgs.distrobox - home.packages = [ - pkgs.nerdfonts - pkgs.firefox - pkgs.keepassxc - pkgs.syncthing - pkgs.thunderbird - pkgs.blender - pkgs.vesktop - pkgs.btop - pkgs.zip - pkgs.spotify - pkgs.distrobox - - pkgs.modrinth-app - pkgs.emacs - pkgs.direnv - ]; - - programs.git = { - enable = true; - userName = "k"; - userEmail = "markers711@gmail.com"; + pkgs.modrinth-app + pkgs.emacs + pkgs.direnv + ]; }; - programs.starship.enable = true; - programs.zsh = { - enable = true; - autosuggestion.enable = true; - enableCompletion = true; - syntaxHighlighting.enable = true; - autocd = true; - plugins = [ - { + programs = { + git = { + enable = true; + userName = "k"; + userEmail = "markers711@gmail.com"; + }; + + starship.enable = true; + zsh = { + enable = true; + autosuggestion.enable = true; + enableCompletion = true; + syntaxHighlighting.enable = true; + autocd = true; + plugins = [{ name = "zsh-nix-shell"; file = "nix-shell.plugin.zsh"; src = pkgs.fetchFromGitHub { @@ -49,9 +50,9 @@ rev = "v0.8.0"; sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; }; - } - ]; + }]; + }; }; - services.syncthing.enable = true; + services = { syncthing.enable = true; }; }