nix-config-v2/modules/machine/cloud/configuration.nix

180 lines
3.7 KiB
Nix

{
config,
lib,
pkgs,
userName,
...
}: let
flatpakPackages = [
"com.github.tchx84.Flatseal"
"com.slack.Slack"
"info.beyondallreason.bar"
"io.dbeaver.DBeaverCommunity"
"io.openrct2.OpenRCT2"
"md.obsidian.Obsidian"
"org.prismlauncher.PrismLauncher"
"sh.cider.Cider"
];
in {
imports = [
(import ../../apps/flatpak.nix {
inherit lib pkgs flatpakPackages;
})
../../apps/gaming.nix
../../graphics
../../pwrMgmt
../../networking/core.nix
../../sound/pipewire.nix
../../sound/shairport.nix
../../virtualization/podman.nix
../../virtualization/hardware.nix
];
# Enable flakes for NixOS
nix.settings.experimental-features = ["nix-command" "flakes"];
# Custom kernel/boot stuff
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Enable Bluetooth if present
hardware.bluetooth.enable = true;
# Set your timezone
time.timeZone = "America/Detroit";
# Install packages to be installed system-wide
environment.systemPackages = with pkgs; [
vim
neovim
git
wireguard-tools
grim
slurp
playerctl
light
brightnessctl
firefox
wttrbar
cliphist
patchelf
];
# Set the EDITOR global environment variable to neovim
environment.variables.EDITOR = "nvim";
# Enable OpenSSH
services.openssh.enable = true;
# Enable keyring
services.gnome.gnome-keyring.enable = true;
# Enable GnuPG
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Enable SUID wrappers (some programs need them)
programs.mtr.enable = true;
# Enable Polkit
security.polkit.enable = true;
# Graphics module (../../graphics/default.nix)
graphics = {
enable = true;
gpuVendor = "nvidia"; # or "amd" or "intel"
wayland.enable = true;
vulkan.enable = true;
};
# Gaming module (see ../../apps/gaming.nix)
gaming = {
steam = {
enable = true;
firewall = {
remotePlay = true;
localNetworkGameTransfers = true;
};
};
gamemode.enable = true;
gamescope.enable = true;
lutris = {
enable = true;
wine = {
enable = true;
package = pkgs.wine-staging;
};
compatibility = {
protonSupport = true;
};
extraPackages = with pkgs; [
gamemode
mangohud
];
};
ffxiv.enable = true;
minecraft.enable = true;
};
# Power management (see ../../pwrMgmt/default.nix)
pwrMgmt = {
enable = true;
cpuFreqGovernor = "performance";
powertop.enable = false;
};
# Podman module (see ../../virtualization/podman.nix)
podman = {
enable = true;
extraPackages = with pkgs; [
docker-credential-helpers
toolbox
cosign
crane
podman-tui
podman-desktop
];
};
# Core networking module (see ../../networking/core.nix)
network = {
firewall.enable = true;
networkmanager.enable = true;
};
# Enable dconf
programs.dconf.enable = true;
# Add username to groups "wheel" and "video" - more may be added here later
users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
# Flatpak packages (see ../../apps/flatpak.nix)
services.flatpak.packages = flatpakPackages;
# XDG stuff
xdg = {
portal = {
enable = true;
wlr.enable = true;
config = {
common = {
default = [
"wlr"
];
};
};
xdgOpenUsePortal = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
];
};
};
system.stateVersion = "24.11";
}