{ config, pkgs, ... }: { # [HARDWARE] imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; programs.gamemode.enable = true; # [BOOT] boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # [NETWORKING] networking.hostName = "computational"; networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. # [NFS] fileSystems."/home/rachel/music" = { device = "rachel.cafe:/srv/music"; fsType = "nfs"; options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=60" ]; }; # [LOCALE] time.timeZone = "Europe/Stockholm"; i18n.defaultLocale = "en_GB.UTF-8"; i18n.supportedLocales = [ "en_US.UTF-8/UTF-8" "sv_SE.UTF-8/UTF-8" "en_GB.UTF-8/UTF-8" ]; # [NIX] nix = { settings = { bash-prompt = "\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\\n❄\\040"; experimental-features = [ "nix-command" "flakes" ]; auto-optimise-store = true; }; gc = { automatic = true; dates = "monthly"; options = "--delete-older-than 30d"; }; }; nixpkgs.config.allowUnfree = true; # [DESKTOP / XORG / WAYLAND] services.xserver = { enable = true; desktopManager.plasma5.enable = true; displayManager.startx.enable = true; layout = "fox,sus"; extraLayouts.sus = { description = "Swedish US"; languages = [ "se" ]; symbolsFile = ../shared/sus.xkb; }; extraLayouts.fox = { description = "Layout suitable to be used by a fox"; languages = [ "se" ]; symbolsFile = ../shared/fox.xkb; }; }; # [SOUND] sound.enable = false; services.pipewire = { enable = true; alsa = { enable = true; support32Bit = true; }; pulse.enable = true; wireplumber.enable = true; }; # [PACKAGES] environment.systemPackages = with pkgs; [ git neovim ]; programs.steam.enable = true; # [SERVICES] services.printing.enable = true; # [SECURITY / FIREWALL] networking.firewall.enable = true; networking.firewall.allowedTCPPorts = [ ]; networking.firewall.allowedUDPPorts = [ ]; programs.gnupg.agent = { enable = true; pinentryFlavor = "qt"; }; security.doas = { enable = true; extraRules = [{ runAs = "root"; groups = [ "wheel" ]; noPass = false; keepEnv = true; }]; }; # [USER / HOME MANAGER] users.users.rachel = { isNormalUser = true; extraGroups = [ "wheel" "networkmanager" "video" "input" "audio" ]; }; # 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 = "23.05"; # Did you read the comment? }