Files
nix-config/configuration.nix
2025-05-14 23:53:14 -04:00

229 lines
5.0 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, pkgs, lib, ... }:
{
# Bootloader.
boot.loader.systemd-boot = {
enable = true;
configurationLimit = 10;
};
boot.loader.efi.canTouchEfiVariables = true;
# Garbage collection
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
# Optimize store
nix.settings.auto-optimise-store = 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;
};
# Enable Flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Install zsh
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
# Define a user account. Don't forget to set a password with passwd.
users.users.chase = {
isNormalUser = true;
description = "Chase";
extraGroups = [ "networkmanager" "wheel" ];
};
# 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;
defaultEditor = 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. Its 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?
}