197 lines
4.1 KiB
Nix
Executable File
197 lines
4.1 KiB
Nix
Executable File
# Edit this configuration file to define what should be installed on
|
||
# your system. Help is available in the configuration.nix(5) man page, on
|
||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||
|
||
{
|
||
config,
|
||
outputs,
|
||
lib,
|
||
pkgs,
|
||
...
|
||
}:
|
||
let
|
||
user = "matt";
|
||
passwordFile = config.sops.secrets."desktop/matt_password".path;
|
||
in
|
||
{
|
||
imports = [
|
||
./boot.nix
|
||
./filesystems.nix
|
||
./hardware-configuration.nix
|
||
./networking.nix
|
||
./services.nix
|
||
./sops.nix
|
||
../default.nix
|
||
../../share/amd
|
||
];
|
||
|
||
chaotic.mesa-git.enable = true;
|
||
|
||
# Enable nix flakes and nix-command tools
|
||
nix = {
|
||
settings = {
|
||
substituters = [
|
||
"https://cache.mjallen.dev"
|
||
"https://nix-community.cachix.org"
|
||
"https://cache.nixos.org/"
|
||
];
|
||
trusted-public-keys = [
|
||
"cache.mjallen.dev-1:IzFmKCd8/gggI6lcCXsW65qQwiCLGFFN9t9s2iw7Lvc="
|
||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||
];
|
||
warn-dirty = lib.mkForce false;
|
||
experimental-features = lib.mkForce [
|
||
"nix-command"
|
||
"flakes"
|
||
];
|
||
trusted-users = [ user ];
|
||
};
|
||
};
|
||
|
||
share.hardware.amd = {
|
||
enable = lib.mkDefault true;
|
||
lact.enable = lib.mkDefault true;
|
||
};
|
||
|
||
share.gaming.enable = true;
|
||
|
||
# Time config
|
||
time = {
|
||
hardwareClockInLocalTime = lib.mkDefault false;
|
||
};
|
||
|
||
virtualisation.libvirtd.enable = lib.mkDefault true;
|
||
virtualisation.waydroid.enable = lib.mkDefault true;
|
||
|
||
programs = {
|
||
gamemode.enable = true;
|
||
coolercontrol.enable = true;
|
||
};
|
||
|
||
# Configure environment
|
||
environment = {
|
||
# List packages installed in system profile. To search, run:
|
||
# $ nix search wget
|
||
systemPackages = with pkgs; [
|
||
aha
|
||
aspell
|
||
aspellDicts.en
|
||
aspellDicts.en-computers
|
||
aspellDicts.en-science
|
||
borgbackup
|
||
brscan5
|
||
clinfo
|
||
direnv
|
||
efibootmgr
|
||
gparted
|
||
grsync
|
||
kmod
|
||
kdePackages.ksvg
|
||
lact
|
||
memtest86-efi
|
||
memtest86plus
|
||
nano
|
||
onlyoffice-bin
|
||
os-prober
|
||
nil
|
||
papirus-icon-theme
|
||
pciutils
|
||
stable.qemu_full
|
||
rclone
|
||
rclone-browser
|
||
restic
|
||
restic-browser
|
||
restic-integrity
|
||
rsync
|
||
sane-frontends
|
||
sbctl
|
||
smartmontools
|
||
usbutils
|
||
udisks2
|
||
vim
|
||
vulkan-tools
|
||
wget
|
||
winetricks
|
||
];
|
||
|
||
etc."lact/config.yaml".text = ''
|
||
daemon:
|
||
log_level: info
|
||
admin_groups:
|
||
- wheel
|
||
- sudo
|
||
disable_clocks_cleanup: false
|
||
apply_settings_timer: 5
|
||
gpus:
|
||
1002:73BF-1002:0E3A-0000:03:00.0:
|
||
fan_control_enabled: true
|
||
fan_control_settings:
|
||
mode: curve
|
||
static_speed: 1.0
|
||
temperature_key: edge
|
||
interval_ms: 500
|
||
curve:
|
||
30: 0.0
|
||
40: 0.2
|
||
50: 0.35
|
||
60: 0.5
|
||
70: 0.75
|
||
80: 1.0
|
||
spindown_delay_ms: 0
|
||
change_threshold: 0
|
||
pmfw_options: {}
|
||
power_cap: 293.0
|
||
performance_level: auto
|
||
voltage_offset: 0
|
||
power_states: {}
|
||
'';
|
||
|
||
variables = {
|
||
STEAM_FORCE_DESKTOPUI_SCALING = "1.0";
|
||
GDK_SCALE = "1";
|
||
EDITOR = "code --wait";
|
||
VISUAL = "code --wait";
|
||
};
|
||
};
|
||
|
||
# Configure nixpkgs
|
||
nixpkgs = {
|
||
overlays = [
|
||
outputs.overlays.nixpkgs-unstable
|
||
outputs.overlays.nixpkgs-stable
|
||
];
|
||
config.permittedInsecurePackages = [
|
||
# ...
|
||
];
|
||
};
|
||
|
||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||
users.users."${user}" = {
|
||
isNormalUser = lib.mkDefault true;
|
||
extraGroups = [
|
||
"wheel"
|
||
"keys"
|
||
"networkmanager"
|
||
"ratbagd"
|
||
"input"
|
||
"scanner"
|
||
"lp"
|
||
]; # Enable ‘sudo’ for the user.
|
||
hashedPasswordFile = passwordFile;
|
||
shell = pkgs.zsh;
|
||
};
|
||
|
||
hardware = {
|
||
keyboard = {
|
||
qmk.enable = true;
|
||
};
|
||
|
||
sane = {
|
||
enable = true;
|
||
brscan5.enable = true;
|
||
dsseries.enable = false;
|
||
extraBackends = [ pkgs.brscan5 ];
|
||
};
|
||
};
|
||
}
|