nixos-config/hosts/thinkpad/default.nix

166 lines
3.6 KiB
Nix
Raw Normal View History

2023-04-06 22:31:45 +02:00
{ config, pkgs, lib, xdph, ... }:
2022-12-18 17:01:34 +01:00
{
2022-12-29 20:48:40 +01:00
nix.settings.experimental-features = [ "nix-command" "flakes" ];
2022-12-18 17:07:40 +01:00
imports =
[
./hardware-configuration.nix
./modules/networks
2023-04-06 11:00:53 +02:00
./modules/greetd
./modules/snapper
2022-12-18 17:07:40 +01:00
];
# Use the systemd-boot EFI boot loader.
2023-01-28 14:53:23 +01:00
boot = {
loader.systemd-boot.enable = true;
2023-02-28 15:05:07 +01:00
loader.systemd-boot.editor = false;
2023-01-28 14:53:23 +01:00
loader.efi.canTouchEfiVariables = true;
2023-02-16 22:08:44 +01:00
kernelPackages = pkgs.linuxPackages_latest;
2023-04-12 09:18:28 +02:00
tmpOnTmpfs = true;
2023-01-28 14:53:23 +01:00
};
2022-12-18 17:07:40 +01:00
2023-03-16 21:46:12 +01:00
nix.settings = {
cores = 6; # don't clutter the whole system when compiling stuff
auto-optimise-store = true;
};
2022-12-18 17:07:40 +01:00
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
console = {
2023-01-20 12:23:05 +01:00
keyMap = "dvorak";
2022-12-18 17:07:40 +01:00
font = "Lat2-Terminus16";
2023-04-03 12:57:31 +02:00
colors = let colors = config.home-manager.users.rouven.colorScheme.colors; in
2023-02-12 14:56:42 +01:00
[
colors.base00
colors.base08
colors.base0A
colors.base0B
colors.base0D
colors.base0E
colors.base0C
colors.base05
colors.base03
colors.base08
colors.base0A
colors.base0B
colors.base0D
colors.base0E
colors.base0C
colors.base07
];
2022-12-18 17:07:40 +01:00
};
2023-01-20 22:12:45 +01:00
fonts.fonts = with pkgs; [
2023-02-25 16:30:02 +01:00
nerdfonts
2023-01-20 22:12:45 +01:00
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
dejavu_fonts
];
2022-12-18 17:07:40 +01:00
# Enable sound.
sound.enable = true;
2023-01-21 14:44:23 +01:00
#hardware.pulseaudio.enable = true;
2022-12-18 17:07:40 +01:00
hardware.bluetooth.enable = true;
2023-01-21 14:44:23 +01:00
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
2023-03-04 21:22:42 +01:00
xdg.portal = {
enable = true;
extraPortals = [
2023-04-06 22:31:45 +02:00
xdph.packages.x86_64-linux.default
2023-03-04 21:22:42 +01:00
];
};
2023-01-21 14:44:23 +01:00
2022-12-31 12:28:53 +01:00
programs.dconf.enable = true;
2022-12-27 18:21:33 +01:00
# control display backlight
2022-12-19 19:30:32 +01:00
programs.light.enable = true;
services = {
2022-12-27 18:21:33 +01:00
blueman.enable = true; # bluetooth
devmon.enable = true; # automount stuff
2023-03-06 18:07:49 +01:00
printing = {
enable = true;
};
2023-04-06 11:00:53 +02:00
avahi = {
# autodiscover printers
2023-03-06 18:07:49 +01:00
enable = true;
nssmdns = true;
};
2022-12-19 19:30:32 +01:00
fprintd.enable = true; # log in using fingerprint
2022-12-27 18:21:33 +01:00
openssh.enable = true; # enabled ssh to have the host keys
2023-02-16 22:08:44 +01:00
btrfs.autoScrub.enable = true; # periodically check filesystem and repair it
2023-03-04 19:56:45 +01:00
fwupd.enable = true; # firmware updates
2022-12-19 19:30:32 +01:00
};
2022-12-18 17:07:40 +01:00
2022-12-27 18:21:33 +01:00
programs.steam.enable = true; # putting steam in here cause in home manager it doesn't work
2022-12-18 17:07:40 +01:00
2023-02-14 21:50:36 +01:00
programs.ausweisapp = {
enable = true;
openFirewall = true;
};
2022-12-18 17:07:40 +01:00
virtualisation.libvirtd.enable = true;
2022-12-27 13:23:06 +01:00
virtualisation.spiceUSBRedirection.enable = true;
2023-01-21 19:03:24 +01:00
2023-01-03 18:18:09 +01:00
# fix to enable secure boot in vms
environment.etc = {
"ovmf/edk2-x86_64-secure-code.fd" = {
source = config.virtualisation.libvirtd.qemu.package + "/share/qemu/edk2-x86_64-secure-code.fd";
};
"ovmf/edk2-i386-vars.fd" = {
source = config.virtualisation.libvirtd.qemu.package + "/share/qemu/edk2-i386-vars.fd";
mode = "0644";
user = "libvirtd";
2023-01-10 11:31:33 +01:00
};
2023-01-03 18:18:09 +01:00
};
2023-03-06 15:05:35 +01:00
2023-04-06 11:00:53 +02:00
systemd.sleep.extraConfig = ''
HibernateDelaySec=2h
'';
2023-02-28 20:48:06 +01:00
services.logind = {
2023-03-06 15:05:35 +01:00
lidSwitch = "suspend-then-hibernate";
lidSwitchDocked = "suspend-then-hibernate";
lidSwitchExternalPower = "suspend";
extraConfig = ''
HandlePowerKey = ignore
'';
};
services.tlp = {
enable = true;
settings = {
START_CHARGE_THRESH_BAT0 = 70;
STOP_CHARGE_THRESH_BAT0 = 85;
};
2023-02-28 20:48:06 +01:00
};
2023-01-10 11:31:33 +01:00
2022-12-29 20:48:40 +01:00
environment.systemPackages = with pkgs; [
wget
gcc
git
2023-01-28 22:28:56 +01:00
htop-vim
2022-12-29 20:48:40 +01:00
dig
traceroute
killall
2023-01-19 22:50:54 +01:00
python3
2023-01-27 00:24:24 +01:00
zip
unzip
2023-03-09 19:15:05 +01:00
nvme-cli
intel-gpu-tools
# rust
rustc
cargo
2022-12-29 20:48:40 +01:00
];
2023-04-03 12:57:31 +02:00
programs.java.enable = true;
2022-12-29 20:48:40 +01:00
2022-12-27 18:21:33 +01:00
system.stateVersion = "22.11";
2022-12-18 17:01:34 +01:00
}