add curve, clone kuro
This commit is contained in:
parent
e8cd6f02d4
commit
8eef2f4549
79
hosts/curve/configuration.nix
Executable file
79
hosts/curve/configuration.nix
Executable file
|
@ -0,0 +1,79 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.version = 2;
|
||||
# Define on which hard drive you want to install Grub.
|
||||
boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
|
||||
|
||||
# Minimal list of modules to use the EFI system partition and the YubiKey
|
||||
boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
|
||||
|
||||
# Enable support for the YubiKey PBA
|
||||
boot.initrd.luks.yubikeySupport = true;
|
||||
|
||||
# Configuration to use your Luks device
|
||||
boot.initrd.luks.devices = {
|
||||
"crypthome" = {
|
||||
device = "/dev/sda2";
|
||||
preLVM = true; # You may want to set this to false if you need to start a network service first
|
||||
yubikey = {
|
||||
slot = 2;
|
||||
twoFactor = true; # Set to false if you did not set up a user password.
|
||||
storage = {
|
||||
device = "/dev/sda1";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# nix = {
|
||||
# package = pkgs.nixUnstable;
|
||||
# extraOptions = "experimental-features = nix-command flakes";
|
||||
# };
|
||||
|
||||
networking.hostName = "curve"; # Define your hostname.
|
||||
networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
time.timeZone = "Australia/Brisbane";
|
||||
|
||||
networking.useDHCP = false;
|
||||
networking.interfaces.enp0s31f6.useDHCP = true;
|
||||
networking.interfaces.wlp3s0.useDHCP = true;
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
# console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
# };
|
||||
|
||||
services.xserver.layout = "us,dvorak";
|
||||
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = true;
|
||||
|
||||
services.xserver.libinput.enable = true;
|
||||
|
||||
users.users.anish = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "21.05"; # Did you read the comment?
|
||||
}
|
||||
|
128
hosts/curve/default.nix
Normal file
128
hosts/curve/default.nix
Normal file
|
@ -0,0 +1,128 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../home.nix
|
||||
./hardware-configuration.nix
|
||||
./configuration.nix
|
||||
];
|
||||
|
||||
## Modules
|
||||
modules = {
|
||||
desktop = {
|
||||
bspwm.enable = true;
|
||||
apps = {
|
||||
discord.enable = true;
|
||||
rofi.enable = true;
|
||||
# godot.enable = true;
|
||||
signal.enable = true;
|
||||
};
|
||||
browsers = {
|
||||
default = "brave";
|
||||
brave.enable = true;
|
||||
firefox.enable = true;
|
||||
qutebrowser.enable = true;
|
||||
};
|
||||
gaming = {
|
||||
steam.enable = true;
|
||||
# emulators.enable = true;
|
||||
# emulators.psx.enable = true;
|
||||
};
|
||||
media = {
|
||||
daw.enable = true;
|
||||
documents.enable = true;
|
||||
graphics.enable = true;
|
||||
mpv.enable = true;
|
||||
recording.enable = true;
|
||||
spotify.enable = true;
|
||||
};
|
||||
term = {
|
||||
default = "xst";
|
||||
st.enable = true;
|
||||
};
|
||||
vm = {
|
||||
qemu.enable = true;
|
||||
};
|
||||
};
|
||||
dev = {
|
||||
node.enable = true;
|
||||
rust.enable = true;
|
||||
python.enable = true;
|
||||
};
|
||||
editors = {
|
||||
default = "nvim";
|
||||
emacs.enable = true;
|
||||
vim.enable = true;
|
||||
};
|
||||
shell = {
|
||||
adl.enable = true;
|
||||
vaultwarden.enable = true;
|
||||
direnv.enable = true;
|
||||
git.enable = true;
|
||||
gnupg.enable = true;
|
||||
tmux.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
services = {
|
||||
ssh.enable = true;
|
||||
docker.enable = true;
|
||||
# Needed occasionally to help the parental units with PC problems
|
||||
# teamviewer.enable = true;
|
||||
};
|
||||
theme.active = "alucard";
|
||||
};
|
||||
|
||||
|
||||
## Local config
|
||||
programs.ssh.startAgent = true;
|
||||
services.openssh.startWhenNeeded = true;
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
# The global useDHCP flag is deprecated, therefore explicitly set to false
|
||||
# here. Per-interface useDHCP will be mandatory in the future, so this
|
||||
# generated config replicates the default behaviour.
|
||||
networking.useDHCP = false;
|
||||
|
||||
|
||||
## Personal backups
|
||||
# Syncthing is a bit heavy handed for my needs, so rsync to my NAS instead.
|
||||
systemd = {
|
||||
services.backups = {
|
||||
description = "Backup /usr/store to NAS";
|
||||
wants = [ "usr-drive.mount" ];
|
||||
path = [ pkgs.rsync ];
|
||||
environment = {
|
||||
SRC_DIR = "/usr/store";
|
||||
DEST_DIR = "/usr/drive";
|
||||
};
|
||||
script = ''
|
||||
rcp() {
|
||||
if [[ -d "$1" && -d "$2" ]]; then
|
||||
echo "---- BACKUPING UP $1 TO $2 ----"
|
||||
rsync -rlptPJ --chmod=go= --delete --delete-after \
|
||||
--exclude=lost+found/ \
|
||||
--exclude=@eaDir/ \
|
||||
--include=.git/ \
|
||||
--filter=':- .gitignore' \
|
||||
--filter=':- $XDG_CONFIG_HOME/git/ignore' \
|
||||
"$1" "$2"
|
||||
fi
|
||||
}
|
||||
rcp "$HOME/projects/" "$DEST_DIR/projects"
|
||||
rcp "$SRC_DIR/" "$DEST_DIR"
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Nice = 19;
|
||||
IOSchedulingClass = "idle";
|
||||
User = config.user.name;
|
||||
Group = config.user.group;
|
||||
};
|
||||
};
|
||||
timers.backups = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
partOf = [ "backups.service" ];
|
||||
timerConfig.OnCalendar = "*-*-* 00,12:00:00";
|
||||
timerConfig.Persistent = true;
|
||||
};
|
||||
};
|
||||
}
|
38
hosts/curve/hardware-configuration.nix
Normal file
38
hosts/curve/hardware-configuration.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
# 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 = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/6ee9d430-1b1b-4e39-bced-606145570a78";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/6ee9d430-1b1b-4e39-bced-606145570a78";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/AD0C-92EF";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/5486bd9f-6826-4ac7-b09b-8768a35c331f"; }
|
||||
];
|
||||
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
}
|
Loading…
Reference in a new issue