nix-config/modules/nixos-common.nix

166 lines
3.5 KiB
Nix
Raw Normal View History

2024-01-25 20:39:50 +00:00
{pkgs, ...}: {
# ------------ System ------------
users.users.tacocat = {
isNormalUser = true;
2024-01-22 20:28:29 +00:00
extraGroups = ["wheel" "networkmanager" "audio" "video" "bluetooth" "kvm" "docker"];
home = "/home/tacocat";
description = "Aria Nolan";
};
boot.loader = {
efi.canTouchEfiVariables = false;
grub = {
efiSupport = true;
configurationLimit = 10;
device = "nodev";
};
};
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
networking.networkmanager.enable = true;
networking.resolvconf.extraConfig = ''
name_servers="1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001"
name_server_blacklist="129.21.3.17 129.21.4.18 2620:8d:8000:0:aba:ca:daba:ec"
'';
# Sound
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
# Services/Hardware
hardware.opentabletdriver.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true;
services.printing.enable = true;
services.geoclue2.enable = true;
services.mullvad-vpn.enable = true;
services.mullvad-vpn.enableExcludeWrapper = false;
services.fwupd.enable = true;
security.rtkit.enable = true;
services.resolved.enable = true;
services.udisks2.enable = true;
2024-01-11 02:05:37 +00:00
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
};
2024-01-22 20:28:29 +00:00
virtualisation.docker.enable = true;
2024-01-23 02:17:53 +00:00
services.syncthing = {
enable = true;
2024-01-26 19:14:46 +00:00
user = "tacocat";
dataDir = "/home/tacocat";
configDir = "/home/tacocat/.config/syncthing";
2024-01-25 20:39:50 +00:00
settings = {
devices = {
bicep = {
id = "6MQCKOZ-DR3J5I5-NW5Y4DG-62Q3HDM-GRVWC6K-3VKXOLO-C7EP63B-IKGQZQO";
autoAcceptFolders = true;
};
jwst = {
id = "5PEHBUX-BS3S4YE-GKY573X-ZYVDAMB-2T4HEX6-X5PNNCR-IHX32UZ-WI7X2QQ";
autoAcceptFolders = true;
};
2024-01-23 02:17:53 +00:00
};
2024-01-25 20:39:50 +00:00
folders = {
"/data/homework" = {
id = "homework";
devices = ["bicep" "jwst"];
};
2024-01-23 02:57:50 +00:00
};
2024-01-23 02:17:53 +00:00
};
};
# ------------ Nix ------------
nix.settings = {
experimental-features = ["nix-command" "flakes"];
auto-optimise-store = true;
trusted-users = ["root" "tacocat"];
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
2024-01-09 23:00:58 +00:00
nixpkgs.config.allowUnfree = true;
programs.nix-index.enable = true;
programs.command-not-found.enable = false;
2023-12-21 06:37:09 +00:00
# ------------ Software ------------
environment = {
systemPackages = with pkgs; [
screen
2024-01-22 20:28:29 +00:00
distrobox
udiskie
pyocd
vim
exfat
encfs
ntfs3g
2024-01-11 01:46:31 +00:00
gnutls
];
# remove nano
defaultPackages = with pkgs; [
perl
rsync
strace
];
};
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
extraPackages = with pkgs; [
swaylock
swayidle
brightnessctl
wl-mirror
];
};
programs.waybar.enable = true;
programs.steam.enable = true;
programs.steam.remotePlay.openFirewall = true;
# programs.steam.gamescopeSession = {
2023-12-21 06:37:09 +00:00
# enable = true;
# args = [
# "-f"
# "--expose-wayland"
# ];
# };
programs.gamemode.enable = true;
# programs.gamescope.enable = true;
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
gtk.iconCache.enable = true;
# ------------ Graphics ------------
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
}