top level config
This commit is contained in:
@@ -1,26 +1,28 @@
|
|||||||
{ config, lib, pkgs, ... }: {
|
{ config, lib, pkgs, ... }: {
|
||||||
|
|
||||||
home-manager = {
|
config = {
|
||||||
backupFileExtension = ".backup";
|
home-manager = {
|
||||||
config = { config, lib, pkgs, inputs }: {
|
backupFileExtension = ".backup";
|
||||||
imports = [
|
config = { config, lib, pkgs, inputs }: {
|
||||||
inputs.nix-on-droid-home-manager
|
imports = [
|
||||||
];
|
inputs.nix-on-droid-home-manager
|
||||||
config.homeconfig = {
|
];
|
||||||
wal.enable = true;
|
config.homeconfig = {
|
||||||
calcurse.enable = true;
|
wal.enable = true;
|
||||||
|
calcurse.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
terminal.font = "${pkgs.fira-code}/share/fonts/truetype/FiraCode-VF.ttf";
|
terminal.font = "${pkgs.fira-code}/share/fonts/truetype/FiraCode-VF.ttf";
|
||||||
|
|
||||||
user.shell = "${pkgs.zsh}/bin/zsh";
|
user.shell = "${pkgs.zsh}/bin/zsh";
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
etcBackupExtension = ".backup";
|
etcBackupExtension = ".backup";
|
||||||
motd = "";
|
motd = "";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,194 +15,197 @@
|
|||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
config = {
|
||||||
kernelPackages = pkgs.linuxKernel.packages.linux_6_16;
|
boot = {
|
||||||
loader = {
|
kernelPackages = pkgs.linuxKernel.packages.linux_6_16;
|
||||||
systemd-boot.enable = true;
|
loader = {
|
||||||
efi.canTouchEfiVariables = true;
|
systemd-boot.enable = true;
|
||||||
};
|
efi.canTouchEfiVariables = true;
|
||||||
binfmt.emulatedSystems = lib.mkIf config.sysconfig.remoteBuildHost [ "aarch64-linux" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings.trusted-users = lib.mkIf config.sysconfig.remoteBuildHost [ "remote-builder" ];
|
|
||||||
|
|
||||||
users.users."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost {
|
|
||||||
isNormalUser = true;
|
|
||||||
createHome = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.templates."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost {
|
|
||||||
content = builtins.concatStringsSep ''''\n'' (builtins.map
|
|
||||||
(y: config.sops.placeholder.${y})
|
|
||||||
(builtins.partition
|
|
||||||
(x: (builtins.match "^remoteBuildClientKeys/.+" x) != null)
|
|
||||||
(builtins.attrNames config.sops.secrets)
|
|
||||||
).right
|
|
||||||
);
|
|
||||||
path = "/etc/ssh/authorized_keys.d/remote-builder";
|
|
||||||
owner = "remote-builder";
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
|
|
||||||
graphics.enable = true;
|
|
||||||
|
|
||||||
nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
open = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
};
|
|
||||||
|
|
||||||
bluetooth.enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
xserver = {
|
|
||||||
#enable = true;
|
|
||||||
videoDrivers = ["nvidia"];
|
|
||||||
};
|
|
||||||
displayManager = {
|
|
||||||
enable = true;
|
|
||||||
defaultSession = "hyprland";
|
|
||||||
autoLogin = {
|
|
||||||
enable = true;
|
|
||||||
user = "nathan";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pulseaudio.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
WLR_BACKENDS = "headless";
|
|
||||||
WLR_LIBINPUT_NO_DEVICES = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
environment.shells = with pkgs; [ zsh bashInteractive ];
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
services.displayManager.sddm.settings.AutoLogin = {
|
|
||||||
User = "nathan";
|
|
||||||
Session = "hyprland";
|
|
||||||
Relogin = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
nameservers = lib.mkDefault [ "1.1.1.1" "1.0.0.1" ];
|
|
||||||
networkmanager = {
|
|
||||||
enable = true;
|
|
||||||
dns = "none";
|
|
||||||
};
|
|
||||||
|
|
||||||
nftables = {};
|
|
||||||
nat = {
|
|
||||||
enable = true;
|
|
||||||
internalInterfaces = [ "ve-+" ];
|
|
||||||
externalInterface = "enp6s0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "23.05"; # Did you read the comment?
|
|
||||||
|
|
||||||
sops = {
|
|
||||||
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
|
|
||||||
defaultSopsFile = ./secrets.yaml;
|
|
||||||
defaultSopsFormat = "yaml";
|
|
||||||
|
|
||||||
secrets = {
|
|
||||||
"nathan/pass" = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
};
|
||||||
|
binfmt.emulatedSystems = lib.mkIf config.sysconfig.remoteBuildHost [ "aarch64-linux" ];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
sysconfig = {
|
nix.settings.trusted-users = lib.mkIf config.sysconfig.remoteBuildHost [ "remote-builder" ];
|
||||||
remoteBuildHost = true;
|
|
||||||
host = "homebox";
|
|
||||||
graphical = true;
|
|
||||||
users = {
|
|
||||||
nathan = {
|
|
||||||
extraGroups = [ "wheel" "networkmanager" ];
|
|
||||||
sshKeys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsU69CxfQk58CvItPN426h5Alnpb60SH37wet97Vb57 nathan@laptop"
|
|
||||||
];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
|
||||||
home-manager = {
|
|
||||||
enable = true;
|
|
||||||
extraModules = [
|
|
||||||
{
|
|
||||||
homeconfig = {
|
|
||||||
minimal = false;
|
|
||||||
wayvnc.enable = false;
|
|
||||||
hyprland.enable = true;
|
|
||||||
swaylock.enable = true;
|
|
||||||
wal.enable = true;
|
|
||||||
mpd.enable = true;
|
|
||||||
ags.enable = true;
|
|
||||||
calcurse.enable = true;
|
|
||||||
rofi.enable = true;
|
|
||||||
firefox.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
nh.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = [
|
users.users."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost {
|
||||||
pkgs.wayvnc
|
isNormalUser = true;
|
||||||
];
|
createHome = false;
|
||||||
}
|
};
|
||||||
];
|
|
||||||
};
|
sops.templates."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost {
|
||||||
|
content = builtins.concatStringsSep ''''\n'' (builtins.map
|
||||||
|
(y: config.sops.placeholder.${y})
|
||||||
|
(builtins.partition
|
||||||
|
(x: (builtins.match "^remoteBuildClientKeys/.+" x) != null)
|
||||||
|
(builtins.attrNames config.sops.secrets)
|
||||||
|
).right
|
||||||
|
);
|
||||||
|
path = "/etc/ssh/authorized_keys.d/remote-builder";
|
||||||
|
owner = "remote-builder";
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
|
||||||
|
graphics.enable = true;
|
||||||
|
|
||||||
|
nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bluetooth.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
sddm.enable = true;
|
xserver = {
|
||||||
openssh.enable = true;
|
#enable = true;
|
||||||
pipewire.enable = true;
|
videoDrivers = ["nvidia"];
|
||||||
netbird.enable = true;
|
|
||||||
minecraft.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
hyprland.enable = true;
|
|
||||||
ags.enable = true;
|
|
||||||
steam.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualization = {
|
|
||||||
traefik.enable = true;
|
|
||||||
jellyfin.enable = true;
|
|
||||||
"blunkall.us".enable = true;
|
|
||||||
nextcloud.enable = true;
|
|
||||||
ntfy.enable = false;
|
|
||||||
gitea.enable = true;
|
|
||||||
n8n.enable = true;
|
|
||||||
keycloak.enable = true;
|
|
||||||
netbird.enable = true;
|
|
||||||
ollama.enable = true;
|
|
||||||
homeassistant.enable = true;
|
|
||||||
wyoming = {
|
|
||||||
enable = true;
|
|
||||||
piper = true;
|
|
||||||
openwakeword = true;
|
|
||||||
faster-whisper = true;
|
|
||||||
};
|
};
|
||||||
rustdesk.enable = false; #broken
|
displayManager = {
|
||||||
pihole.enable = false; #broken
|
enable = true;
|
||||||
code-server.enable = false;
|
defaultSession = "hyprland";
|
||||||
novnc.enable = true;
|
autoLogin = {
|
||||||
minecraft.enable = true;
|
enable = true;
|
||||||
|
user = "nathan";
|
||||||
sandbox.enable = false;
|
};
|
||||||
|
};
|
||||||
|
pulseaudio.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
WLR_BACKENDS = "headless";
|
||||||
|
WLR_LIBINPUT_NO_DEVICES = "1";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
environment.shells = with pkgs; [ zsh bashInteractive ];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
services.displayManager.sddm.settings.AutoLogin = {
|
||||||
|
User = "nathan";
|
||||||
|
Session = "hyprland";
|
||||||
|
Relogin = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
nameservers = lib.mkDefault [ "1.1.1.1" "1.0.0.1" ];
|
||||||
|
networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
dns = "none";
|
||||||
|
};
|
||||||
|
|
||||||
|
nftables = {};
|
||||||
|
nat = {
|
||||||
|
enable = true;
|
||||||
|
internalInterfaces = [ "ve-+" ];
|
||||||
|
externalInterface = "enp6s0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
defaultSopsFormat = "yaml";
|
||||||
|
|
||||||
|
secrets = {
|
||||||
|
"nathan/pass" = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sysconfig = {
|
||||||
|
remoteBuildHost = true;
|
||||||
|
host = "homebox";
|
||||||
|
graphical = true;
|
||||||
|
users = {
|
||||||
|
nathan = {
|
||||||
|
extraGroups = [ "wheel" "networkmanager" ];
|
||||||
|
sshKeys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsU69CxfQk58CvItPN426h5Alnpb60SH37wet97Vb57 nathan@laptop"
|
||||||
|
];
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
||||||
|
home-manager = {
|
||||||
|
enable = true;
|
||||||
|
extraModules = [
|
||||||
|
{
|
||||||
|
homeconfig = {
|
||||||
|
minimal = false;
|
||||||
|
wayvnc.enable = false;
|
||||||
|
hyprland.enable = true;
|
||||||
|
swaylock.enable = true;
|
||||||
|
wal.enable = true;
|
||||||
|
mpd.enable = true;
|
||||||
|
ags.enable = true;
|
||||||
|
calcurse.enable = true;
|
||||||
|
rofi.enable = true;
|
||||||
|
firefox.enable = true;
|
||||||
|
git.enable = true;
|
||||||
|
nh.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
pkgs.wayvnc
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
sddm.enable = true;
|
||||||
|
openssh.enable = true;
|
||||||
|
pipewire.enable = true;
|
||||||
|
netbird.enable = true;
|
||||||
|
minecraft.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
hyprland.enable = true;
|
||||||
|
ags.enable = true;
|
||||||
|
steam.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualization = {
|
||||||
|
traefik.enable = true;
|
||||||
|
jellyfin.enable = true;
|
||||||
|
"blunkall.us".enable = true;
|
||||||
|
nextcloud.enable = true;
|
||||||
|
ntfy.enable = false;
|
||||||
|
gitea.enable = true;
|
||||||
|
n8n.enable = true;
|
||||||
|
keycloak.enable = true;
|
||||||
|
netbird.enable = true;
|
||||||
|
ollama.enable = true;
|
||||||
|
homeassistant.enable = true;
|
||||||
|
wyoming = {
|
||||||
|
enable = true;
|
||||||
|
piper = true;
|
||||||
|
openwakeword = true;
|
||||||
|
faster-whisper = true;
|
||||||
|
};
|
||||||
|
rustdesk.enable = false; #broken
|
||||||
|
pihole.enable = false; #broken
|
||||||
|
code-server.enable = false;
|
||||||
|
novnc.enable = true;
|
||||||
|
minecraft.enable = true;
|
||||||
|
|
||||||
|
sandbox.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,131 +10,133 @@
|
|||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot = {
|
boot = {
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
|
||||||
|
|
||||||
hardware = {
|
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
||||||
graphics.enable = true;
|
|
||||||
|
hardware = {
|
||||||
|
graphics.enable = true;
|
||||||
|
|
||||||
#enable bluetooth
|
#enable bluetooth
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.pulseaudio.enable = false;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
services.pulseaudio.enable = false;
|
||||||
alsa-utils
|
|
||||||
];
|
|
||||||
|
|
||||||
sysconfig.opts = {
|
environment.systemPackages = with pkgs; [
|
||||||
sddm.enable = true;
|
alsa-utils
|
||||||
openssh.enable = false;
|
];
|
||||||
steam.enable = true;
|
|
||||||
pipewire.enable = true;
|
sysconfig.opts = {
|
||||||
ags.enable = false;
|
sddm.enable = true;
|
||||||
hyprland.enable = false;
|
openssh.enable = false;
|
||||||
git.enable = false;
|
steam.enable = true;
|
||||||
nh.enable = true;
|
pipewire.enable = true;
|
||||||
|
ags.enable = false;
|
||||||
|
hyprland.enable = false;
|
||||||
|
git.enable = false;
|
||||||
|
nh.enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
desktopManager.enlightenment.enable = true;
|
desktopManager.enlightenment.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.acpid.enable = true;
|
services.acpid.enable = true;
|
||||||
|
|
||||||
services.displayManager.enable = true;
|
services.displayManager.enable = true;
|
||||||
|
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
ipv4 = true;
|
ipv4 = true;
|
||||||
ipv6 = true;
|
ipv6 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
wideArea = true;
|
wideArea = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
||||||
system.stateVersion = "23.05"; # Did you read the comment?
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "America/Chicago";
|
time.timeZone = "America/Chicago";
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
LC_NAME = "en_US.UTF-8";
|
LC_NAME = "en_US.UTF-8";
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
LC_PAPER = "en_US.UTF-8";
|
LC_PAPER = "en_US.UTF-8";
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
LC_TIME = "en_US.UTF-8";
|
LC_TIME = "en_US.UTF-8";
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostName = "jesstop";
|
|
||||||
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
|
||||||
networkmanager.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
users.users."nickelback" = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "Thomas Jefferson";
|
|
||||||
initialPassword = "89453712";
|
|
||||||
#hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"networkmanager"
|
|
||||||
]; # Enable ‘sudo’ for the user.
|
|
||||||
openssh.authorizedKeys.keys = [];
|
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
(writeShellScriptBin "beets" ''
|
|
||||||
bluetoothctl connect A4:16:C0:74:1F:55
|
|
||||||
'')
|
|
||||||
|
|
||||||
spotify
|
|
||||||
gnome-network-displays
|
|
||||||
discord
|
|
||||||
krita
|
|
||||||
rpcs3
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
|
||||||
settings = {
|
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "jesstop";
|
||||||
|
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
||||||
|
networkmanager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
users.users."nickelback" = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Thomas Jefferson";
|
||||||
|
initialPassword = "89453712";
|
||||||
|
#hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
|
]; # Enable ‘sudo’ for the user.
|
||||||
|
openssh.authorizedKeys.keys = [];
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
(writeShellScriptBin "beets" ''
|
||||||
|
bluetoothctl connect A4:16:C0:74:1F:55
|
||||||
|
'')
|
||||||
|
|
||||||
|
spotify
|
||||||
|
gnome-network-displays
|
||||||
|
discord
|
||||||
|
krita
|
||||||
|
rpcs3
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
||||||
|
settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,165 +10,167 @@
|
|||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxKernel.packages.linux_6_16;
|
kernelPackages = pkgs.linuxKernel.packages.linux_6_16;
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ];
|
||||||
};
|
};
|
||||||
kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
|
||||||
|
|
||||||
hardware = {
|
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
||||||
graphics.enable = true;
|
|
||||||
|
|
||||||
nvidia = {
|
hardware = {
|
||||||
modesetting.enable = true;
|
graphics.enable = true;
|
||||||
powerManagement.enable = true;
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
open = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
|
|
||||||
prime = {
|
nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = true;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
|
||||||
|
prime = {
|
||||||
# Make sure to use the correct Bus ID values for your system!
|
# Make sure to use the correct Bus ID values for your system!
|
||||||
intelBusId = "PCI:0:2:0";
|
intelBusId = "PCI:0:2:0";
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
# WARNING: sync and offload are mutually exclusive.
|
# WARNING: sync and offload are mutually exclusive.
|
||||||
# You can only pick one!!
|
# You can only pick one!!
|
||||||
#sync.enable = true;
|
#sync.enable = true;
|
||||||
offload = {
|
offload = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableOffloadCmd = true;
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
#enable bluetooth
|
#enable bluetooth
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.pulseaudio.enable = false;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
services.pulseaudio.enable = false;
|
||||||
alsa-utils
|
|
||||||
];
|
|
||||||
|
|
||||||
sysconfig = {
|
environment.systemPackages = with pkgs; [
|
||||||
remoteBuildClient = true;
|
alsa-utils
|
||||||
host = "laptop";
|
];
|
||||||
graphical = true;
|
|
||||||
users = {
|
sysconfig = {
|
||||||
nathan = {
|
remoteBuildClient = true;
|
||||||
extraGroups = [ "wheel" "networkmanager" ];
|
host = "laptop";
|
||||||
hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
graphical = true;
|
||||||
shell = pkgs.zsh;
|
users = {
|
||||||
home-manager = {
|
nathan = {
|
||||||
enable = true;
|
extraGroups = [ "wheel" "networkmanager" ];
|
||||||
standalone = false;
|
hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
||||||
extraModules = [
|
shell = pkgs.zsh;
|
||||||
{
|
home-manager = {
|
||||||
homeconfig = {
|
enable = true;
|
||||||
minimal = false;
|
standalone = false;
|
||||||
wayvnc.enable = false;
|
extraModules = [
|
||||||
hyprland.enable = true;
|
{
|
||||||
swaylock.enable = true;
|
homeconfig = {
|
||||||
wal.enable = true;
|
minimal = false;
|
||||||
mpd.enable = true;
|
wayvnc.enable = false;
|
||||||
ags.enable = true;
|
hyprland.enable = true;
|
||||||
calcurse.enable = true;
|
swaylock.enable = true;
|
||||||
rofi.enable = true;
|
wal.enable = true;
|
||||||
firefox.enable = true;
|
mpd.enable = true;
|
||||||
git.enable = true;
|
ags.enable = true;
|
||||||
nh.enable = true;
|
calcurse.enable = true;
|
||||||
};
|
rofi.enable = true;
|
||||||
}
|
firefox.enable = true;
|
||||||
];
|
git.enable = true;
|
||||||
|
nh.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
sddm.enable = true;
|
||||||
|
openssh.enable = false;
|
||||||
|
pipewire.enable = true;
|
||||||
|
kdePlasma6.enable = true;
|
||||||
|
netbird.enable = true;
|
||||||
|
ollama.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
steam.enable = true;
|
||||||
|
ags.enable = true;
|
||||||
|
hyprland.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
virtualization = {
|
||||||
|
|
||||||
|
wyoming = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
homeassistant = {
|
||||||
|
enable = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
|
||||||
sddm.enable = true;
|
|
||||||
openssh.enable = false;
|
|
||||||
pipewire.enable = true;
|
|
||||||
kdePlasma6.enable = true;
|
|
||||||
netbird.enable = true;
|
|
||||||
ollama.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
steam.enable = true;
|
|
||||||
ags.enable = true;
|
|
||||||
hyprland.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
virtualization = {
|
|
||||||
|
|
||||||
wyoming = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
homeassistant = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
videoDrivers = ["nvidia"];
|
videoDrivers = ["nvidia"];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.displayManager.enable = true;
|
services.displayManager.enable = true;
|
||||||
|
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
ipv4 = true;
|
ipv4 = true;
|
||||||
ipv6 = true;
|
ipv6 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
wideArea = true;
|
wideArea = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
environment.shells = with pkgs; [ zsh bashInteractive ];
|
environment.shells = with pkgs; [ zsh bashInteractive ];
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
system.stateVersion = "23.05"; # Did you read the comment?
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
||||||
|
networkmanager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
defaultSopsFormat = "yaml";
|
||||||
|
secrets."nathan/pass".neededForUsers = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
||||||
|
|
||||||
networking = {
|
|
||||||
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
|
||||||
networkmanager.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sops = {
|
|
||||||
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
|
|
||||||
defaultSopsFile = ./secrets.yaml;
|
|
||||||
defaultSopsFormat = "yaml";
|
|
||||||
secrets."nathan/pass".neededForUsers = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,149 +8,151 @@
|
|||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.nvidia.open = true;
|
config = {
|
||||||
|
hardware.nvidia.open = true;
|
||||||
|
|
||||||
boot.isContainer = true;
|
boot.isContainer = true;
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver = {
|
||||||
#enable = true;
|
#enable = true;
|
||||||
videoDrivers = ["nvidia"];
|
videoDrivers = ["nvidia"];
|
||||||
};
|
};
|
||||||
displayManager = {
|
displayManager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultSession = "plasma";
|
defaultSession = "plasma";
|
||||||
autoLogin = {
|
autoLogin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "nathan";
|
user = "nathan";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
pulseaudio.enable = false;
|
pulseaudio.enable = false;
|
||||||
};
|
|
||||||
|
|
||||||
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
|
||||||
/*
|
|
||||||
environment.sessionVariables = {
|
|
||||||
WLR_BACKENDS = "headless";
|
|
||||||
WLR_LIBINPUT_NO_DEVICES = "1";
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
environment.shells = with pkgs; [ zsh ];
|
|
||||||
users.defaultUserShell = pkgs.zsh;
|
|
||||||
|
|
||||||
nixpkgs = {
|
|
||||||
config.allowUnfree = true;
|
|
||||||
hostPlatform = "x86_64-linux";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Chicago";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
|
||||||
LC_PAPER = "en_US.UTF-8";
|
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
|
||||||
LC_TIME = "en_US.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.displayManager.sddm.settings.AutoLogin = {
|
|
||||||
User = "nathan";
|
|
||||||
Session = "plasmawayland.desktop";
|
|
||||||
Relogin = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
|
||||||
networkmanager.enable = true;
|
|
||||||
firewall.allowedTCPPorts = [ 80 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
|
||||||
|
|
||||||
users.users."nathan" = {
|
|
||||||
isNormalUser = true;
|
|
||||||
|
|
||||||
initialPassword = "7567";
|
|
||||||
|
|
||||||
#hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
|
||||||
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
]; # Enable ‘sudo’ for the user.
|
|
||||||
|
|
||||||
/*openssh.authorizedKeys.keys = [
|
|
||||||
];*/
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nix = {
|
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
||||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
/*
|
||||||
settings = {
|
environment.sessionVariables = {
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
WLR_BACKENDS = "headless";
|
||||||
|
WLR_LIBINPUT_NO_DEVICES = "1";
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
environment.shells = with pkgs; [ zsh ];
|
||||||
|
users.defaultUserShell = pkgs.zsh;
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config.allowUnfree = true;
|
||||||
|
hostPlatform = "x86_64-linux";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
/*sops = {
|
# Set your time zone.
|
||||||
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
|
time.timeZone = "America/Chicago";
|
||||||
defaultSopsFile = ./secrets.yaml;
|
|
||||||
defaultSopsFormat = "yaml";
|
|
||||||
|
|
||||||
secrets = {
|
# Select internationalisation properties.
|
||||||
"nathan/pass" = {
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
neededForUsers = true;
|
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.displayManager.sddm.settings.AutoLogin = {
|
||||||
|
User = "nathan";
|
||||||
|
Session = "plasmawayland.desktop";
|
||||||
|
Relogin = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
||||||
|
networkmanager.enable = true;
|
||||||
|
firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "25.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
users.users."nathan" = {
|
||||||
|
isNormalUser = true;
|
||||||
|
|
||||||
|
initialPassword = "7567";
|
||||||
|
|
||||||
|
#hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
||||||
|
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
]; # Enable ‘sudo’ for the user.
|
||||||
|
|
||||||
|
/*openssh.authorizedKeys.keys = [
|
||||||
|
];*/
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
||||||
|
settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};*/
|
|
||||||
|
|
||||||
programs.fuse.userAllowOther = true;
|
/*sops = {
|
||||||
|
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
defaultSopsFormat = "yaml";
|
||||||
|
|
||||||
home-manager = {
|
secrets = {
|
||||||
backupFileExtension = "backup";
|
"nathan/pass" = {
|
||||||
extraSpecialArgs = {inherit inputs;};
|
neededForUsers = true;
|
||||||
users = {
|
};
|
||||||
"nathan" = lib.mkMerge [
|
};
|
||||||
inputs.nathan-home-manager
|
};*/
|
||||||
{
|
|
||||||
config.homeconfig = {
|
|
||||||
minimal = false;
|
|
||||||
wayvnc.enable = true;
|
|
||||||
hyprland.enable = false;
|
|
||||||
wal.enable = false;
|
|
||||||
ags.enable = false;
|
|
||||||
swaylock.enable = true;
|
|
||||||
mpd.enable = true;
|
|
||||||
calcurse.enable = true;
|
|
||||||
rofi.enable = true;
|
|
||||||
firefox.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sysconfig = {
|
programs.fuse.userAllowOther = true;
|
||||||
opts = {
|
|
||||||
novnc.enable = true;
|
|
||||||
sddm.enable = true;
|
|
||||||
openssh.enable = true;
|
|
||||||
pipewire.enable = true;
|
|
||||||
ags.enable = false;
|
|
||||||
hyprland.enable = false;
|
|
||||||
kdePlasma6.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
nh.enable = true;
|
|
||||||
netbird.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
home-manager = {
|
||||||
|
backupFileExtension = "backup";
|
||||||
|
extraSpecialArgs = {inherit inputs;};
|
||||||
|
users = {
|
||||||
|
"nathan" = lib.mkMerge [
|
||||||
|
inputs.nathan-home-manager
|
||||||
|
{
|
||||||
|
config.homeconfig = {
|
||||||
|
minimal = false;
|
||||||
|
wayvnc.enable = true;
|
||||||
|
hyprland.enable = false;
|
||||||
|
wal.enable = false;
|
||||||
|
ags.enable = false;
|
||||||
|
swaylock.enable = true;
|
||||||
|
mpd.enable = true;
|
||||||
|
calcurse.enable = true;
|
||||||
|
rofi.enable = true;
|
||||||
|
firefox.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sysconfig = {
|
||||||
|
opts = {
|
||||||
|
novnc.enable = true;
|
||||||
|
sddm.enable = true;
|
||||||
|
openssh.enable = true;
|
||||||
|
pipewire.enable = true;
|
||||||
|
ags.enable = false;
|
||||||
|
hyprland.enable = false;
|
||||||
|
kdePlasma6.enable = true;
|
||||||
|
git.enable = true;
|
||||||
|
nh.enable = true;
|
||||||
|
netbird.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
||||||
|
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
then (import ./configuration/${z} {
|
then (import ./configuration/${z} {
|
||||||
config = {};
|
config = {};
|
||||||
inherit lib pkgs inputs modulesPath;
|
inherit lib pkgs inputs modulesPath;
|
||||||
})
|
}).config
|
||||||
else null;
|
else null;
|
||||||
test = if cfg == null then false
|
test = if cfg == null then false
|
||||||
else if !(cfg ? sysconfig) then false
|
else if !(cfg ? sysconfig) then false
|
||||||
|
|||||||
Reference in New Issue
Block a user