First pass at crazy

This commit is contained in:
nest 2025-12-08 20:30:22 -05:00
parent 9de7773af9
commit 59c97c9143
20 changed files with 437 additions and 182 deletions

View file

@ -1,95 +0,0 @@
{ config, lib, pkgs, ... }:
{
nix.settings.experimental-features = [ "nix-command" "flakes" ];
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelModules = [ "amdgpu" ];
networking.hostName = "crow"; # Define your hostname.
# Configure network connections interactively with nmcli or nmtui.
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "America/New_York";
users.defaultUserShell = pkgs.zsh;
users.users.nest = {
isNormalUser = true;
extraGroups = [ "wheel" "network" ]; # Enable sudo for the user.
packages = with pkgs; [
tree
];
};
programs.niri.enable = true;
programs.zsh.enable = true;
environment.systemPackages = with pkgs; [
neovim
wget
];
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Enable sound.
services.pipewire = {
enable = true;
pulse.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
services.getty.autologinUser = "nest";
services.displayManager = {
gdm.enable = true;
autoLogin = {
enable = true;
user = "nest";
};
};
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "25.11"; # Did you read the comment?
}

View file

@ -10,21 +10,72 @@
}; };
}; };
outputs = inputs@{ nixpkgs, home-manager, ... }: { outputs = { self, nixpkgs, ... }@inputs:
nixosConfigurations.crow = nixpkgs.lib.nixosSystem { let
system = "x86_64-linux"; inherit (self) outputs;
modules = [
./configuration.nix
home-manager.nixosModules.home-manager { # Set the default user. Can be overitten on a system level
home-manager = { vars.user = "nest";
useGlobalPkgs = true;
useUserPackages = true; # List of system types our hosts use
users.nest = import ./home.nix; systems = [ "x86_64-linux" ];
backupFileExtension = "backup";
# Generic NixOS config
mkNixOSConfig = {
path,
extraModules ? [],
}:
nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs vars;
}; };
}
]; modules = [
./nixos/common
path
]
++ extraModules;
}; };
# Additional modules for physical hosts
mkPhysicalNixOSConfig = path:
mkNixOSConfig {
path = path;
extraModules = [ ./hosts/physical ];
};
# Additional modules for servers
# mkServerNixOSConfig = path: serverType:
# mkNixOSConfig {
# path = path;
# extraModules = [
# ./hosts/server
# ./nixos/roles/server/${serverType}
# ./nixos/modules/backup
# ];
# };
in {
# Format our nix files using alejandra
formatter = nixpkgs.lib.genAttrs systems (system: nixpkgs.legacyPackages.${system}.alejandra);
# Collection of all of our configs
# =========== Desktops ===========
crow = mkPhysicalNixOSConfig ./hosts/physical/crow;
# nixosConfigurations.crow = nixpkgs.lib.nixosSystem {
# system = "x86_64-linux";
# modules = [
# ./configuration.nix
# home-manager.nixosModules.home-manager {
# home-manager = {
# useGlobalPkgs = true;
# useUserPackages = true;
# users.nest = import ./home.nix;
# backupFileExtension = "backup";
# };
# }
# ];
# };
}; };
} }

View file

@ -0,0 +1,25 @@
{
pkgs,
inputs,
vars,
...
}:
{
home = {
username = "${vars.user}";
homeDirectory = "/home/${vars.user}";
};
home.packages = with pkgs; [
lazygit
];
programs.zsh = {
shellAliases = {
lg = "lazygit";
};
};
home.stateVersion = "26.05";
}

View file

@ -0,0 +1,6 @@
{
imports = [
./librewolf.nix
./minecraft.nix
];
}

View file

@ -0,0 +1,80 @@
{ pkgs, vars, ... }:
{
programs.librewolf = {
enable = true;
policies = {
OfferToSaveLogins = false;
PasswordManagerEnabled = false;
DisplayBookmarksToolbar = true;
NoDefaultBookmarks = true;
};
profiles."${vars.user}" = {
search = {
force = true;
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages?channel=unstable";
params = [
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@np"];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options?channel=unstable";
params = [
{
name = "sort";
value = "alpha_asc";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@no"];
};
"NixOS Wiki" = {
urls = [
{
template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
}
];
icon = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@nw"];
};
"Home Manager Options" = {
urls = [{template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master";}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@hm"];
};
"wikipedia".metaData.alias = "@wiki";
"google".metaData.hidden = true;
"amazondotcom-us".metaData.hidden = true;
"bing".metaData.hidden = true;
"ebay".metaData.hidden = true;
};
};
};
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
prismlauncher
];
}

View file

@ -0,0 +1,10 @@
{
imports = [
./apps
];
# Setup user profile pic
home.file.".face" = {
source = ./nest.webp;
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
imports = [
../common/apps
];
programs.niri.enable = true;
programs.zsh = {
profileExtra = ''
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
exec gdm
fi
'';
};
home.package = with pkgs; [
swaybg
mako
];
}

View file

@ -0,0 +1,15 @@
{
pkgs,
...
}:
{
programs.git = {
enable = true;
userName = "KnightArtorias";
userEmail = "booksandpi@gmail.com";
extraConfig = {
init.defaultBranch = "main";
};
};
}

View file

@ -1,72 +0,0 @@
{ config, pkgs, ... }:
{
# ============ Home-Manager =============
home.username = "nest";
home.homeDirectory = "/home/nest";
home.stateVersion = "26.05";
# =======================================
# ================ Programs =============
programs.git = {
enable = true;
settings = {
user = {
name = "nest";
email = "booksandpi@gmail.com";
};
};
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
history.size = 10000;
shellAliases = {
ll = "ls -la";
update = "sudo nixos-rebuild --flake $HOME/.nix#crow";
};
profileExtra = ''
if [-z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
exec gdm
fi
'';
oh-my-zsh = {
enable = true;
plugins = [ "git" ];
};
};
programs.alacritty.enable = true;
programs.rofi.enable = true;
programs.swaylock.enable = true;
programs.quickshell.enable = true;
programs.librewolf.enable = true;
# ======================================
# ============== Services ==============
services.swayidle.enable = true;
services.polkit-gnome.enable = true;
# ======================================
# ============ Packages ================
home.packages = with pkgs; [
swaybg
mako
];
# ======================================
}

View file

@ -0,0 +1,25 @@
{
vars,
inputs,
...
}:
{
imports = [
./hardware-configuration.nix
./system-configuration.nix
../default.nix
../../../nixos/roles/physical/desktop/niri
];
home-manager = {
users.${vars.user}.imports = [
../../../home-manager/common
../../../home-manager/roles/personal
../../../home-manager/roles/desktop/niri
];
};
networking.hostName = "crow";
}

View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
{
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.timeout = 1;
# Use latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelModules = [ "amdgpu" ];
system.stateVersion = "26.05";
}

View file

@ -0,0 +1,56 @@
{
pkgs,
inputs,
vars,
...
}:
{
imports = [
inputs.home-manager.nixosModules.home-manager
../../nixos/modules/home-manager.nix
];
# Enable networking
networking.networkmanager.enable = true;
environment.systemPackages = with pkgs; [
neovim
wget
];
services.openssh.enable = true;
services.getty.autologinUser = "${vars.user}";
boot = {
# Fun boot spinny!
plymouth = {
enable = true;
theme = "circle_flow";
themePackages = with pkgs; [
(adi1090x-plymouth-themese.override {
selected_themes = [
"cirlce_flow"
"colorful"
"colorful_slices"
"double"
"polaroid"
];
})
];
};
# "Silent" boot
console.LogLevel = 0;
initrd.verbose = false;
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
];
};
}

23
nixos/common/default.nix Normal file
View file

@ -0,0 +1,23 @@
{
inputs,
pkgs,
vars,
...
}:
{
imports= [
../../users/${vars.user}.nix
../modules/zsh.nix
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
enviroment.systemPackages = with pkgs; [
tree
htop
dig
traceroute
];
}

View file

@ -0,0 +1,22 @@
{
inputs,
vars,
...
}:
{
home-manager = {
backupFileExtension = "backup";
extraSpecialArgs = {
inherit inputs vars;
};
useGlobalPackages = true;
useUserPackages = true;
# Common home-manager imports
users.${vars.user}.imports = [
../../home-manager/common
];
};
}

40
nixos/modules/zsh.nix Normal file
View file

@ -0,0 +1,40 @@
{
pgks,
...
}:
{
environment.systemPackage = with pkgs; [
zsh
oh-my-zsh
];
enviroment.variables = {
NIX_FLAKE_PATH = "/etc/nixos";
};
programs.zsh = {
enable = true;
enableBashCompletion = true;
enableConpletion = true;
autosuggestions.enable = true;
history.append = true;
history.size = 10000;
ohMyZsh = {
enable = true;
theme = "bira";
plugins = [
sudo
git
];
};
shellAliases = {
ll = "ls -la";
update = "sudo nixos-rebuild switch --flake $NIX_FLAKE_PATH";
};
};
users.defaultUserShell = pkgs.zsh;
}

View file

@ -0,0 +1,11 @@
{ vars, pkgs, ... }: {
security.polkit.enable = true;
services.displayManager = {
gdm.enable = true;
autoLogin = {
enable = true;
user = "${vars.user}";
};
};
}

14
users/nest.nix Normal file
View file

@ -0,0 +1,14 @@
{
config,
lib,
...
}:
{
users.users.nest = {
description = "nest";
isNormalUser = true;
extraGroups = [ "wheel" "network" ];
};
}