From b4b111f5e4a836055367f01b9a4bf08297a222d6 Mon Sep 17 00:00:00 2001 From: TrudeEH Date: Sun, 25 Jan 2026 19:11:11 +0000 Subject: [PATCH] Add NixOS configuration --- nixos/configuration.nix | 131 ++++++++++++++++++++++++++++++++++++++++ scripts/rebuild | 10 +++ 2 files changed, 141 insertions(+) create mode 100644 nixos/configuration.nix create mode 100644 scripts/rebuild diff --git a/nixos/configuration.nix b/nixos/configuration.nix new file mode 100644 index 00000000..9763b62a --- /dev/null +++ b/nixos/configuration.nix @@ -0,0 +1,131 @@ +# Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: + + +{ + imports = [ ./hardware-configuration.nix ]; + + # Bootloader + boot.loader.grub.enable = true; + boot.loader.grub.device = "/dev/sda"; + boot.loader.grub.useOSProber = true; + + # Networking + networking.hostName = "TrudePC"; + #networking.wireless.enable = true; + networking.networkmanager.enable = true; + time.timeZone = "Europe/Lisbon"; + i18n.defaultLocale = "en_US.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"; + }; + + # Enable Wayland + services.xserver.enable = true; + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + + # Keymap + services.xserver.xkb = { + layout = "us"; + variant = "alt-intl"; + }; + console.keyMap = "us"; + + # 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; + #jack.enable = true; + }; + + # Define a user account. + users.users.trude = { + isNormalUser = true; + description = "TrudeEH"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; [ + # General Apps + vscode + vesktop + google-chrome + localsend + keepassxc + tailscale + #stremio + nextcloud-talk-desktop + + # VR / Games + bs-manager + steam + slimevr + wivrn + prismlauncher + + # Gnome Apps + commit + binary + ]; + }; + + # Packages + nixpkgs.config.allowUnfree = true; + environment.systemPackages = with pkgs; [ + git + ]; + # system.autoUpgrade = { + # enable = true; + # flake = inputs.self.outPath; + # flags = [ + # "--update-input" + # "nixpkgs" + # "-L" + # ]; + # dates = "09:00"; + # randomizedDelaySec = "45min"; + # }; + # Allow running executables + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + # Add missing dynamic libraries for unpackaged executables here. + ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # 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; + + system.stateVersion = "25.11"; # Don't change after initial installation. + +} diff --git a/scripts/rebuild b/scripts/rebuild new file mode 100644 index 00000000..08ab1876 --- /dev/null +++ b/scripts/rebuild @@ -0,0 +1,10 @@ +#! /bin/bash +set -e +pushd ~/dotfiles/nixos/ +code configuration.nix +git diff -U0 *.nix +echo "NixOS Rebuilding..." +sudo nixos-rebuilld switch &> ~/nixos-rebuild.log || ( cat nixos-rebuild.log | grep --color error && false ) +gen=$(nixos-rebuild list-generations | grep current) +git commit -am "$gen" +popd