# 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, lib, ... }: let home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/master.tar.gz; in { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix (import "${home-manager}/nixos") ]; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Use latest stable kernel boot.kernelPackages = pkgs.linuxPackages_latest; # Allow power management powerManagement.enable = true; # Firmware updates services.fwupd.enable = true; # Enable networking networking.networkmanager.enable = true; # Enable Bluetooth hardware.bluetooth.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"; }; # Enable the KDE Plasma Desktop Environment. services.xserver.enable = true; services.displayManager.sddm = { wayland.enable = true; enableHidpi = true; }; services.desktopManager.plasma6.enable = true; # Enable graphics acceleration and AMDVLK hardware.graphics = { enable = true; enable32Bit = true; extraPackages = with pkgs; [ amdvlk ]; extraPackages32 = with pkgs; [ driversi686Linux.amdvlk ]; }; # Configure keymap console.keyMap = "jp106"; services.xserver.xkb = { layout = "jp"; variant = ""; }; i18n.inputMethod = { type = "fcitx5"; enable = true; fcitx5.addons = with pkgs; [ fcitx5-mozc kdePackages.fcitx5-qt ]; fcitx5.waylandFrontend = true; }; # 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; }; # Allow unfree packages nixpkgs.config.allowUnfree = true; # Enable NUR nixpkgs.config.packageOverrides = pkgs: { nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/main.tar.gz") { inherit pkgs; }; }; # Home Manager home-manager.useGlobalPkgs = true; home-manager.backupFileExtension = "backup"; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.chase = { isNormalUser = true; description = "Chase"; extraGroups = [ "networkmanager" "wheel" ]; }; home-manager.users.chase = { pkgs, ... }: { imports = [ /etc/nixos/home.nix ]; # Original install home.stateVersion = "24.11"; }; # Install firefox. programs.firefox = { enable = true; nativeMessagingHosts.packages = [ pkgs.firefoxpwa ]; policies = { DisableTelemetry = true; DisableFirefoxAccounts = true; DisableFirefoxStudies = true; DisablePocket = true; }; }; # Install Neovim programs.neovim = { enable = true; configure = { customRC = '' set autoindent set number relativenumber set tabstop=4 colorscheme catppuccin-mocha ''; packages.myVimPackage = with pkgs.vimPlugins; { start = [ catppuccin-nvim ]; }; }; viAlias = true; vimAlias = true; }; # Install Steam programs.steam = { enable = true; remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; localNetworkGameTransfers.openFirewall = true; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ alacritty audacity bitwarden emacs-pgtk fastfetch ffmpeg firefoxpwa gcc gimp git ibm-plex imagemagick kdePackages.kdenlive libreoffice mpd mpv ncmpcpp # nerd-fonts.blex-mono nut obs-studio pciutils python3 qemu ranger rustup strawberry texliveBasic thunderbird ungoogled-chromium usbutils wget ]; # ssh agent programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # List services that you want to enable: services.fprintd.enable = true; security.polkit.enable = true; # Enable the OpenSSH daemon. # services.openssh.enable = true; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; # 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 = "24.11"; # Did you read the comment? }