Initial Commit
This commit is contained in:
parent
30188c5707
commit
d458e14da7
|
@ -0,0 +1,203 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
## 'configuration.nix' is primarily where you'll install packages and manage system configurations.
|
||||
|
||||
let
|
||||
secrets = import ./secrets.nix;
|
||||
|
||||
# Needed for installing unstable channel packages.
|
||||
unstableTarball =
|
||||
fetchTarball
|
||||
https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz;
|
||||
in
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
nixpkgs.config =
|
||||
{
|
||||
# Enable unfree packages.
|
||||
allowUnfree = true;
|
||||
|
||||
# Needed for installing unstable channel packages.
|
||||
packageOverrides = pkgs:
|
||||
{
|
||||
unstable = import unstableTarball
|
||||
{
|
||||
config = config.nixpkgs.config;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
nix = {
|
||||
# Specifying the Nix daemon is allowed by anyone with sudo privileges.
|
||||
settings.allowed-users = [ "@wheel" ];
|
||||
|
||||
# Enable flakes.
|
||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Edmonton";
|
||||
|
||||
|
||||
boot =
|
||||
{
|
||||
supportedFilesystems = ["vfat" "btrfs"];
|
||||
|
||||
loader =
|
||||
{
|
||||
timeout = 5;
|
||||
|
||||
efi =
|
||||
{
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot";
|
||||
};
|
||||
|
||||
# Use the GRUB boot loader.
|
||||
# Uses GRUB 2 by default.
|
||||
grub = {
|
||||
enable = true;
|
||||
# "nodev" for efi only
|
||||
device = "nodev";
|
||||
efiSupport = true;
|
||||
|
||||
# Set grub resolution to 1920x1080px.
|
||||
gfxmodeEfi = "1920x1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
users =
|
||||
{
|
||||
mutableUsers = false;
|
||||
|
||||
users =
|
||||
{
|
||||
root.hashedPassword = "!";
|
||||
|
||||
${secrets.systemUsername} =
|
||||
{
|
||||
hashedPassword = "${secrets.hashedPassword}";
|
||||
isNormalUser = true;
|
||||
# description = "Your User";
|
||||
extraGroups = ["wheel" "storage" "networkmanager"];
|
||||
|
||||
packages = with pkgs;
|
||||
[
|
||||
## Browsers
|
||||
firefox
|
||||
librewolf
|
||||
|
||||
## Coding/programming.
|
||||
git
|
||||
|
||||
(vscode-with-extensions.override
|
||||
{
|
||||
vscode = vscodium;
|
||||
vscodeExtensions = with vscode-extensions;
|
||||
[
|
||||
## Extension examples:
|
||||
# dracula-theme.theme-dracula
|
||||
# ms-python.python
|
||||
# rust-lang.rust-analyzer
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
environment =
|
||||
{
|
||||
systemPackages = with pkgs;
|
||||
[
|
||||
# nano
|
||||
];
|
||||
|
||||
## Hyprland required environment variables.
|
||||
sessionVariables =
|
||||
{
|
||||
## If your cursor becomes invisible
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
|
||||
## Hint electron apps to use wayland.
|
||||
## Required to run VSCodium with wayland.
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
};
|
||||
|
||||
security = {
|
||||
## require a password for all sudo usage
|
||||
sudo.wheelNeedsPassword = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
## Set your hostname.
|
||||
hostName = "${secrets.hostName}";
|
||||
|
||||
## Enable networking
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
programs =
|
||||
{
|
||||
## Fixes GTK theming in Wayland applications.
|
||||
dconf.enable = true;
|
||||
|
||||
# network diagnostics tool.
|
||||
# mtr.enable = true;
|
||||
# gnupg.agent =
|
||||
# {
|
||||
# enable = true;
|
||||
# };
|
||||
};
|
||||
|
||||
|
||||
services =
|
||||
{
|
||||
## Disable CUPS print dameon.
|
||||
printing.enable = false;
|
||||
|
||||
## xserver configurations.
|
||||
xserver =
|
||||
{
|
||||
## Enable the X11 windowing system.
|
||||
enable = true;
|
||||
|
||||
## Enable the KDE Plasma Desktop Environment.
|
||||
desktopManager.plasma5.enable = true;
|
||||
|
||||
## Uncomment to enable touchpad support.
|
||||
# libinput.enable = true;
|
||||
|
||||
## Configure keymap in X11.
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
|
||||
displayManager =
|
||||
{
|
||||
## Uncomment to set default session as plasma wayland during login.
|
||||
# defaultSession = "plasmawayland";
|
||||
|
||||
sddm =
|
||||
{
|
||||
## Enable SDDM.
|
||||
enable = true;
|
||||
|
||||
## Enable numlock at login.
|
||||
autoNumlock = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "23.11";
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
## `flake.nix` is used to pin the version of your chosen package and helps your system become reproducible.
|
||||
|
||||
inputs =
|
||||
{
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixos-hardware }:
|
||||
{
|
||||
# NOTE: 'nixos' is the default hostname set by the installer.
|
||||
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem
|
||||
{
|
||||
# system = "x86_64-linux";
|
||||
system = "x86_64-linux";
|
||||
|
||||
modules =
|
||||
[
|
||||
./configuration.nix
|
||||
|
||||
# nixos-hardware.nixosModules.framework-13-inch-7040-amd
|
||||
# nixos-hardware.nixosModules.system76-darp6
|
||||
# nixos-hardware.nixosModules.tuxedo-infinitybook-pro14-gen7
|
||||
## additional hardware options can be found: [nixos-hardware](https://github.com/NixOS/nixos-hardware).
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
## This file passes in your secrets/passwords into your system's `configuration.nix` file.
|
||||
## Add "secrets.nix" to your `.gitignore` file and hash all passwords and secrets for best practices.
|
||||
|
||||
## Replace with your system username.
|
||||
systemUsername = "sarracenia_purpurea";
|
||||
|
||||
## Replace with your domain name.
|
||||
## hostName = "mydomain.tld";
|
||||
hostName = "spaghetticode";
|
||||
|
||||
## Manually hash password with `mkpasswd` then replace below.
|
||||
##
|
||||
## For example after hashing your password: "correcthorsebatterystaple" with `mkpasswd`
|
||||
## it becomes something like: hashedPassword = "$y$j9T$JiToouWQ2LIo3Pz1/b1S8.$tpNSJnokDfyfsdVgSboVk/STNnIf7R42HJToIFr1Gq7".
|
||||
##
|
||||
hashedPassword = "replace_this_with_your_hashed_password";
|
||||
}
|
Loading…
Reference in New Issue