This commit is contained in:
Evan Reichard 2025-03-28 13:52:51 -04:00
parent 23fb30893d
commit a78b85b344
63 changed files with 297 additions and 186 deletions

1
.gitignore vendored Normal file → Executable file
View File

@ -1,3 +1,4 @@
.DS_Store
_scratch
result
._*

0
README.md Normal file → Executable file
View File

31
flake.lock generated Normal file → Executable file
View File

@ -9,15 +9,16 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1742098834,
"narHash": "sha256-l98XVpNXW6hr0AsxCeQZbdf6EGT8OpHdkWBi7sdel4s=",
"lastModified": 1738646032,
"narHash": "sha256-57BdBE9anNpIpf48EiTVLGxg4mOQ04XjHCEP0gLTsFA=",
"owner": "tpwrules",
"repo": "nixos-apple-silicon",
"rev": "8457960249bcfd34c22838e20eaa7d8261428688",
"rev": "e77031211944723a38bebc043e48847c36e43668",
"type": "github"
},
"original": {
"owner": "tpwrules",
"ref": "releasep2-2024-12-25",
"repo": "nixos-apple-silicon",
"type": "github"
}
@ -27,11 +28,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1739841949,
"narHash": "sha256-lSOXdgW/1zi/SSu7xp71v+55D5Egz8ACv0STkj7fhbs=",
"lastModified": 1741786315,
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
"owner": "nix-community",
"repo": "disko",
"rev": "15dbf8cebd8e2655a883b74547108e089f051bf0",
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
"type": "github"
},
"original": {
@ -152,11 +153,11 @@
]
},
"locked": {
"lastModified": 1737057290,
"narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=",
"lastModified": 1742568034,
"narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453",
"rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11",
"type": "github"
},
"original": {
@ -167,11 +168,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1738136902,
"narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=",
"lastModified": 1741402956,
"narHash": "sha256-y2hByvBM03s9T2fpeLjW6iprbxnhV9mJMmSwCHc41ZQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c",
"rev": "ed0b1881565c1ffef490c10d663d4f542031dad3",
"type": "github"
},
"original": {
@ -183,11 +184,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1739758141,
"narHash": "sha256-uq6A2L7o1/tR6VfmYhZWoVAwb3gTy7j4Jx30MIrH0rE=",
"lastModified": 1742937945,
"narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c618e28f70257593de75a7044438efc1c1fc0791",
"rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
"type": "github"
},
"original": {

3
flake.nix Normal file → Executable file
View File

@ -13,7 +13,8 @@
inputs.nixpkgs.follows = "nixpkgs";
};
apple-silicon = {
url = "github:tpwrules/nixos-apple-silicon";
url = "github:tpwrules/nixos-apple-silicon/releasep2-2024-12-25";
# ref = "releasep2-2024-12-25";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-generators = {

View File

View File

0
homes/aarch64-darwin/evanreichard@MBP-Work/default.nix Normal file → Executable file
View File

View File

@ -0,0 +1,40 @@
# Nix Home Manager Configuration
## Upgrade
```bash
# Update System Channels
sudo nix-channel --add https://nixos.org/channels/nixpkgs-24.11-darwin nixpkgs
sudo nix-channel --update
# Update Home Manager
nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz home-manager
nix-channel --update
# Link Repo
ln -s /Users/evanreichard/Development/git/personal/nix/home-manager ~/.config/home-manager
# Build Home Manager
home-manager switch
```
## Clean Garbage
NOTE: This will remove previous generations
```bash
sudo nix-collect-garbage --delete-old
nix-collect-garbage --delete-old
```
## OS Update
`/etc/bashrc` may get overridden. To properly load Nix, prepend the following:
```bash
# Nix
if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
. '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh'
fi
# End Nix
```

View File

@ -0,0 +1,37 @@
{ pkgs, ... }:
{
reichardnix = {
programs.btop.enable = true;
programs.direnv.enable = true;
programs.ghostty.enable = true;
programs.git.enable = true;
programs.k9s.enable = true;
programs.nvim.enable = true;
programs.hyprland.enable = true;
programs.aws.enable = false;
};
# Global Packages
programs.jq.enable = true;
programs.pandoc.enable = true;
home.packages = with pkgs; [
android-tools
imagemagick
mosh
python311
texliveSmall # Pandoc PDF Dep
google-cloud-sdk
tldr
];
# SQLite Configuration
home.file.".sqliterc".text = ''
.headers on
.mode column
'';
# Enable Home Manager & Self Manage
home.stateVersion = "25.05";
programs.home-manager.enable = true;
}

View File

@ -1,103 +0,0 @@
{ config, lib, ... }:
{
# NixOS Config
options = {
hostName = lib.mkOption {
type = lib.types.str;
description = "The node hostname";
};
enableXenGuest = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Whether to enable Xen guest support";
};
network = lib.mkOption {
type = lib.types.submodule {
options = {
interface = lib.mkOption {
type = lib.types.str;
description = "Network interface name";
example = "enp0s3";
};
address = lib.mkOption {
type = lib.types.str;
description = "Static IP address";
example = "10.0.20.200";
};
defaultGateway = lib.mkOption {
type = lib.types.str;
description = "Default gateway IP";
example = "10.0.20.254";
};
nameservers = lib.mkOption {
type = lib.types.listOf lib.types.str;
description = "List of DNS servers";
example = [ "10.0.20.254" "8.8.8.8" ];
default = [ "8.8.8.8" "8.8.4.4" ];
};
};
};
default = null;
description = "Network configuration";
};
};
config = lib.mkMerge [
{
# Basic System
system.stateVersion = "24.11";
nix.settings.experimental-features = [ "nix-command" "flakes" ];
networking.hostName = config.hostName;
# Boot Loader Options
boot.loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
};
# Enable SSH
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = false;
PermitRootLogin = "prohibit-password";
};
};
# User Authorized Keys
users.users.root = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIe1n9l9pVF5+kjWJCOt3AvBVf1HOSZkEDZxCWVPSIkr evan@reichard"
];
hashedPassword = null;
};
}
# Network Configuration
(lib.mkIf (config.network != null) {
networking = {
inherit (config.network) defaultGateway nameservers;
interfaces.${config.network.interface}.ipv4.addresses = [{
inherit (config.network) address;
prefixLength = 24;
}];
};
})
# Xen Guest Configuration
(lib.mkIf config.enableXenGuest {
services.xe-guest-utilities.enable = true;
boot.initrd = {
availableKernelModules = [ "xen_blkfront" "xen_netfront" ];
kernelModules = [ "xen_netfront" "xen_blkfront" ];
supportedFilesystems = [ "ext4" "xenfs" ];
};
boot.kernelModules = [ "xen_netfront" "xen_blkfront" "xenfs" ];
})
];
}

View File

@ -1,43 +0,0 @@
{ config, lib, ... }: {
options = {
mainDiskID = lib.mkOption {
type = lib.types.str;
description = "Device path for the main disk";
example = "/dev/disk/by-id/ata-VBOX_HARDDISK_VBcd9425b8-d666f9b8";
};
};
config = {
disko.devices = {
disk = {
main = {
type = "disk";
device = config.mainDiskID;
content = {
type = "gpt";
partitions = {
boot = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
};
}

0
modules/home/programs/aws/default.nix Normal file → Executable file
View File

0
modules/home/programs/btop/config/btop.conf Normal file → Executable file
View File

View File

0
modules/home/programs/btop/default.nix Normal file → Executable file
View File

0
modules/home/programs/direnv/default.nix Normal file → Executable file
View File

0
modules/home/programs/ghostty/config/fastfetch.jsonc Normal file → Executable file
View File

0
modules/home/programs/ghostty/config/ghostty.conf Normal file → Executable file
View File

0
modules/home/programs/ghostty/default.nix Normal file → Executable file
View File

0
modules/home/programs/git/config/.gitignore vendored Normal file → Executable file
View File

0
modules/home/programs/git/config/personal Normal file → Executable file
View File

0
modules/home/programs/git/config/work Normal file → Executable file
View File

0
modules/home/programs/git/default.nix Normal file → Executable file
View File

27
modules/home/programs/hyprland/config/hyprland.conf Normal file → Executable file
View File

@ -22,7 +22,7 @@
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,1.0
monitor=,highres,auto,1.5
# monitor=HDMI-A-1,1920x1080,0x0,1
@ -90,7 +90,6 @@ general {
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
@ -101,21 +100,19 @@ decoration {
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
#https://wiki.hyprland.org/Configuring/Animations/
animations {
enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
@ -186,21 +183,25 @@ input {
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
disable_while_typing = true
natural_scroll = true
clickfinger_behavior = true
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
workspace_swipe = true
workspace_swipe_fingers = 4
workspace_swipe_invert = true
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# device {
# name = epic-mouse-v1
# sensitivity = -0.5
# }
###################
@ -212,11 +213,11 @@ $mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, W, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, SPACE, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle

0
modules/home/programs/hyprland/config/waybar-style.css Normal file → Executable file
View File

View File

@ -0,0 +1,127 @@
window {
font-family: "Hack Nerd Font";
background: transparent;
}
#outer-box {
padding: 10px;
border-radius: 8px;
background: #2e3440;
}
#scroll {
/* The Nordic gtk theme adds an outline to show scroll areas... */
outline-color: transparent;
}
#input {
color: #e5e9f0;
caret-color: #e5e9f0;
background: #3b4252;
border-top-color: #3b4252;
border-left-color: #3b4252;
border-right-color: #3b4252;
border-bottom-color: #3b4252;
box-shadow: 0 0 0 1px transparent inset;
outline-color: transparent !important;
}
#input:focus {
background: #3b4252;
border-color: #3b4252 !important;
box-shadow: 0 0 0 1px transparent inset;
border-top-color: #3b4252 !important;
border-left-color: #3b4252 !important;
border-right-color: #3b4252 !important;
border-bottom-color: #3b4252 !important;
box-shadow: none !important;
outline-color: transparent !important;
}
#input image.left {
color: #d8dee9;
}
#input:focus image.left {
color: #e5e9f0;
}
#input image.right {
color: #d8dee9;
}
#input:focus image.right {
color: #e5e9f0;
}
label {
/* We set backgrounds on the block level. */
background: transparent;
}
#scroll {
padding-top: 6px;
}
#entry {
color: #4c566a;
padding: 8px 8px;
border-radius: 4px;
background: transparent;
}
#entry:selected {
color: #eceff4;
background: #8fbcbb;
font-weight: bold;
}
expander arrow {
margin-right: 8px;
}
#entry #selected #text {
color: #eceff4;
}
expander list {
margin-top: 8px;
/* background: #8fbcbb; */
background: transparent;
padding-left: 16px;
}
expander list #entry {
transition: none;
background: transparent;
}
expander list #entry:hover,
expander list #entry:active {
/* color: #8fbcbb;
background: #e5e9f0; */
}
expander list #entry #selected {
background: #8fbcbb;
}
expander list #entry #selected label {
color: #eceff4;
font-weight: bold;
}
expander list #entry:hover,
expander list #entry:active {
background: #8fbcbb;
}
expander list #entry:hover label,
expander list #entry:active label {
color: #eceff4;
font-weight: bold;
}
expander list label {
color: #d8dee9;
}

View File

@ -0,0 +1,3 @@
stylesheet=./style.css
term=foot
insensitive=true

14
modules/home/programs/hyprland/default.nix Normal file → Executable file
View File

@ -1,4 +1,4 @@
{ lib, config, namespace, ... }:
{ lib, pkgs, config, namespace, ... }:
let
inherit (lib) mkIf;
cfg = config.${namespace}.programs.hyprland;
@ -125,5 +125,17 @@ in
};
}];
};
home.packages = with pkgs; [
hyprshot
wofi
wofi-emoji
brightnessctl
];
xdg.configFile = {
"wofi/config".source = ./config/wofi.conf;
"wofi/style.css".source = ./config/wofi-style.css;
};
};
}

0
modules/home/programs/k9s/default.nix Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/.luarc.json Normal file → Executable file
View File

View File

View File

0
modules/home/programs/nvim/config/lua/base.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/cmp-config.lua Normal file → Executable file
View File

View File

0
modules/home/programs/nvim/config/lua/dap-config.lua Normal file → Executable file
View File

View File

0
modules/home/programs/nvim/config/lua/git-ref.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/git-signs.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/init.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/leap-config.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/llm.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/lsp-config.lua Normal file → Executable file
View File

View File

View File

View File

0
modules/home/programs/nvim/config/lua/noice-config.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/numb-config.lua Normal file → Executable file
View File

View File

View File

View File

0
modules/home/programs/nvim/config/lua/ts-config.lua Normal file → Executable file
View File

0
modules/home/programs/nvim/config/lua/weird-chars.lua Normal file → Executable file
View File

View File

0
modules/home/programs/nvim/default.nix Normal file → Executable file
View File

1
systems/aarch64-linux/mbp-nixos/.gitignore vendored Executable file
View File

@ -0,0 +1 @@
firmware

16
systems/aarch64-linux/mbp-nixos/default.nix Normal file → Executable file
View File

@ -19,7 +19,6 @@
# Networking Config
networking = {
firewall.enable = true;
hostName = "mpb-nixos";
networkmanager.enable = true;
networkmanager.wifi.backend = "iwd";
useDHCP = lib.mkDefault true;
@ -33,11 +32,7 @@
useExperimentalGPUDriver = true;
};
# graphics = {
# enable = true;
# enable32Bit = true;
# };
graphics.enable = true;
bluetooth.enable = true;
bluetooth.powerOnBoot = true;
};
@ -50,17 +45,16 @@
# shell = pkgs.bash;
# };
# # Home Manager Config
# Home Manager Config
# home-manager = {
# useGlobalPkgs = true;
# useUserPackages = true;
# users.evanreichard = import ../home-manager/home.nix;
# # users.evanreichard = import ../home-manager/home.nix;
# };
# HyprLand Config
programs.hyprland.enable = true;
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
# environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";
# environment.sessionVariables.WLR_DRM_DEVICES = "/dev/dri/card0";
# System Packages
environment.systemPackages = with pkgs; [
@ -71,6 +65,8 @@
vim
wget
# mesa-asahi-edge
# mesa
# hyprlock
# hypridle
];

View File

@ -0,0 +1,37 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "usb_storage" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/6dce11fa-5075-44d4-b502-14d0a1b36e7f";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/2254-0F1E";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}

0
systems/x86_64-linux/nixos-builder/default.nix Normal file → Executable file
View File

0
systems/x86_64-linux/office-server/default.nix Normal file → Executable file
View File

0
systems/x86_64-linux/utility-desktop/default.nix Normal file → Executable file
View File

0
systems/x86_64-virtual/rke2-image.nix Normal file → Executable file
View File

0
systems/x86_64-virtual/usb-image.nix Normal file → Executable file
View File