nix/modules/nixos/common.nix

157 lines
4.1 KiB
Nix
Raw Normal View History

2023-09-22 12:56:48 -05:00
{
2024-06-28 09:51:25 -05:00
overlays,
2023-10-03 11:52:44 -05:00
config,
lib,
2023-10-06 01:11:27 -05:00
pkgs,
2024-06-28 09:51:25 -05:00
colors,
sops-nix,
home-manager,
disko,
2024-01-04 17:20:02 -06:00
modulesPath,
2023-10-03 11:52:44 -05:00
...
}: let
inherit (pkgs) system;
in {
2024-06-10 09:56:13 -05:00
users.groups.valerie = {};
2023-10-18 09:14:19 -05:00
users.groups.daniel = {};
2023-09-05 22:39:17 -05:00
users.users = {
daniel = {
isNormalUser = true;
home = "/home/daniel/.home";
2023-12-04 09:15:37 -06:00
createHome = true;
2023-09-05 22:39:17 -05:00
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAPLXOjupz3ScYjgrF+ehrbp9OvGAWQLI6fplX6w9Ijb daniel@lyte.dev"
];
2023-09-06 00:57:08 -05:00
group = "daniel";
2023-10-27 21:46:38 -05:00
extraGroups = ["users" "wheel" "video" "dialout" "uucp"];
2023-10-03 11:52:44 -05:00
packages = [];
2023-09-05 22:39:17 -05:00
};
2024-06-10 09:56:13 -05:00
valerie = {
isNormalUser = true;
home = "/home/valerie";
createHome = true;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAPLXOjupz3ScYjgrF+ehrbp9OvGAWQLI6fplX6w9Ijb daniel@lyte.dev"
];
group = "valerie";
extraGroups = ["users" "video"];
packages = [];
};
2023-09-05 22:39:17 -05:00
};
2023-09-05 23:51:32 -05:00
programs = {
fish = {
enable = true;
};
tmux = {
enable = true;
clock24 = true;
};
traceroute.enable = true;
git = {
enable = true;
2023-11-07 17:09:05 -06:00
package = pkgs.gitFull;
2023-09-05 23:51:32 -05:00
lfs = {
2023-09-05 22:39:17 -05:00
enable = true;
};
};
2023-09-28 12:29:21 -05:00
# https://github.com/nix-community/home-manager/issues/3113
dconf.enable = true;
2023-09-05 23:51:32 -05:00
};
2023-09-05 22:39:17 -05:00
time = {
timeZone = "America/Chicago";
};
users = {
defaultUserShell = pkgs.fish;
};
2023-10-27 21:46:38 -05:00
2024-01-02 18:54:46 -06:00
# TODO: should not be in common?
# services.udev.extraRules = ''
# # https://betaflight.com/docs/wiki/archive/Installing-Betaflight#step-1
# # ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="uucp"
# # ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="uucp"'
# '';
2024-01-04 17:20:02 -06:00
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
2024-06-28 09:51:25 -05:00
overlays.additions
overlays.modifications
overlays.unstable-packages
2024-01-04 17:20:02 -06:00
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
};
};
nix = {
# This will additionally add your inputs to the system's legacy channels
# Making legacy nix commands consistent as well, awesome!
# Not sure why I would need this...
# nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
2024-01-04 17:20:02 -06:00
# This will add each flake input as a registry
# To make nix3 commands consistent with your flake
# registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
2024-01-04 17:20:02 -06:00
settings = {
trusted-users = ["root" "daniel"];
2024-01-04 17:20:02 -06:00
experimental-features = lib.mkDefault ["nix-command" "flakes"];
2024-01-04 17:20:02 -06:00
substituters = [
"https://cache.nixos.org/"
"https://helix.cachix.org"
"https://nix-community.cachix.org"
2024-06-14 09:30:11 -05:00
"https://nix.h.lyte.dev"
2024-01-04 17:20:02 -06:00
];
2024-01-04 17:20:02 -06:00
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"h.lyte.dev:HeVWtne31ZG8iMf+c15VY3/Mky/4ufXlfTpT8+4Xbs0="
];
auto-optimise-store = false;
};
2024-01-04 17:20:02 -06:00
};
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness"
'';
2024-02-21 20:33:50 -06:00
# # TODO: regular cron or something?
# programs.nix-index = {
# enable = true;
# # enableFishIntegration = true;
# };
2024-02-21 20:10:10 -06:00
2024-01-24 20:25:19 -06:00
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
2024-01-04 17:20:02 -06:00
system.stateVersion = lib.mkDefault "23.11";
2023-09-05 22:39:17 -05:00
}