1
0
Fork 0
mirror of https://git.sr.ht/~roxwize/.dotfiles synced 2025-06-07 12:39:29 +00:00
.dotfiles/nixos/hosts/ioides/configuration.nix
2025-06-02 22:50:45 -04:00

246 lines
5 KiB
Nix

{ inputs, config, pkgs, ... }: {
imports = [
inputs.nix-flatpak.nixosModules.nix-flatpak
./hardware-configuration.nix
./packages.nix
../base.nix
../../modules/system
];
r5e.system = {
graphics = {
display.x11 = {
enable = true;
windowManagers = [ "twm" "openbox" ];
displayManager.autologin = {
enable = true;
session = "none+openbox";
};
};
hardwareAcceleration = {
enable = true;
intel = {
# TODO: change these when you get to your desktop pc
videoPlayback = {
enable = true;
package = pkgs.intel-vaapi-driver;
};
qsv = {
enable = true;
package = pkgs.intel-media-sdk;
};
};
nvidia = {
enable = true;
# TODO: this also needs to be changed back to default on your desktop
package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
};
};
};
};
# TODO: when you get home
# + try to make a configuration for your desktop host specifically maybe
# r5e.system = {
# graphics = {
# display.x11 = {
# enable = true;
# windowManagers = {
# twm.enable = true;
# openbox.enable = true;
# };
# displayManager.autologin = {
# enable = true;
# session = "none+openbox";
# };
# };
# };
#
# hardwareAcceleration = {
# enable = true;
# intel = {
# videoPlayback.enable = true;
# qsv.enable = true;
# };
# nvidia.enable = true;
# };
# };
boot = {
binfmt.emulatedSystems = [ "aarch64-linux" ];
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
loader = {
efi = {
canTouchEfiVariables = false;
efiSysMountPoint = "/efi";
};
grub = {
enable = true;
efiSupport = true;
efiInstallAsRemovable = true;
devices = [ "nodev" ];
};
};
supportedFilesystems = [ "ntfs" ];
};
# # Music pendrive
# fileSystems."/mnt/world" = {
# device = "/dev/disk/by-uuid/639bae80-0f5d-481c-ae4e-d2c70f754a1c";
# fsType = "ext4";
# neededForBoot = false;
# };
# # Big fucking thing
# fileSystems."/mnt/rae2" = {
# device = "/dev/disk/by-uuid/fbbcc72f-34af-425c-9151-ef8919a6ae07";
# fsType = "ext4";
# neededForBoot = false;
# };
networking = {
firewall.allowedTCPPorts = [ 80 443 8080 19132 25565 ];
hosts = {
"10.0.0.2" = [ "near" "near.local" ];
};
networkmanager.enable = true;
};
hardware = {
bluetooth = {
enable = true;
powerOnBoot = true;
};
# graphics = {
# enable = true;
# extraPackages = with pkgs; [
# intel-media-sdk
# ];
# };
# nvidia = {
# modesetting.enable = true;
# powerManagement = {
# enable = false;
# finegrained = false;
# };
# open = false;
# nvidiaSettings = true;
# package = config.boot.kernelPackages.nvidiaPackages.stable;
# # temp
# package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
# };
opentabletdriver.enable = true;
};
fonts = {
enableDefaultPackages = true;
fontconfig = {
enable = true;
defaultFonts = {
emoji = [ "Twitter Color Emoji" "Noto Color Emoji" ];
monospace = [ "Fira Code Light" ];
};
subpixel.rgba = "rgb";
};
packages = with pkgs; [
fira-code
gohufont
nasin-nanpa
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
twemoji-color-font
];
};
programs = {
dconf.enable = true;
firefox.enable = true;
fish.enable = true;
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
thunderbird = {
enable = true;
policies.DisableTelemetry = true;
};
};
services = {
# Xorg
# xserver = {
# enable = true;
# xkb.layout = "us";
#?TODO maybe put all nvidia settings into its own module (i.e. r5e.hardware.nvidia.enable) + x11 with xdg config
# videoDrivers = [ "nvidia" ];
# windowManager = {
# cwm.enable = true;
# openbox.enable = true;
# twm.enable = true;
# };
# };
# displayManager = {
# sddm = {
# enable = true;
# settings = {
# Autologin = {
# User = "rae";
# Session = "none+openbox";
# };
# };
# theme = "catppuccin-mocha";
# };
# };
# Touchpad support
libinput.enable = true;
# Sound
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
# CUPS printing
# Can be configured at http://127.0.0.1:631/
# Local printers are host-specific (see `hardware.printers`)
# Avahi enables IPP Everywhere
printing.enable = true;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
# misc
blueman.enable = true;
flatpak.enable = true;
};
security.polkit.enable = true;
xdg.portal = {
enable = true;
config = {
common = {
default = [ "gtk" ];
};
};
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
};
users.users.rae.shell = pkgs.fish;
virtualisation.docker.enable = true;
time.timeZone = "America/New_York";
system.stateVersion = "24.11";
}