![]() |
|
My journey with NixOS - Printable Version +- Sinisterly (https://sinister.ly) +-- Forum: Computers (https://sinister.ly/Forum-Computers) +--- Forum: Operating Systems (https://sinister.ly/Forum-Operating-Systems) +--- Thread: My journey with NixOS (/Thread-My-journey-with-NixOS) |
My journey with NixOS - Leviathan - 01-28-2025 Heyo, before we talk about NixOS, I should probably talk about my background with linux. I've been using linux since ~2014, been using Ubuntu, Arch and a tiny bit of Fedora so I'd say I know my way around linux. My NixOS journey started around 2 months ago. Why? Well mostly because I love the idea of having a fully declarative system that I can just nuke whenever I feel like I need to. I started with watching some videos from Vimjoyer to get the basic grasp of it including flakes and home-manager. Which was not as confusing as people made it out to be. Slowly but surely I started building my own proper system. Did I run into issues? Yes I did! A few of them actually, starting with steam... I didn't know I had to add Code: remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;Afterwards I was trying to get VR working on steam with SteamVR and my HTC Vive (also I'm using an AMD GPU & CPU) which was a WHOLE different issue. I can't pinpoint what actually made it work but my whole steam.nix (using flake + home-manager) is in the spoiler. So if you got struggles using VR with nix, that's for you! Spoiler:Code: { pkgs, ... }:
{
hardware.steam-hardware.enable = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
};
# OpenGL and Vulkan configuration
hardware.graphics.enable = true;
hardware.graphics.extraPackages = with pkgs; [
vulkan-loader
vulkan-tools
];
# Add system packages for VR support
environment.systemPackages = with pkgs; [
openvr # Required for SteamVR
libusb1 # Used for VR devices
usbutils
pkgs.libsndfile
pkgs.xwayland
];
# Udev rules for VR devices
services.udev.packages = with pkgs; [
openvr
];
services.udev.extraRules = ''
# HTC Vive
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="2c87", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="28de", ATTR{idProduct}=="2101", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="28de", ATTR{idProduct}=="2000", MODE="0666", GROUP="plugdev"
'';
}After that, I started transfering my waybar, swaync and some other configs into .nix files... which was much much easier than I thought. It's as simple as: Code: home.file.".path/to/file".text = '' config here '';Not sure if it will help anyone but I'd gladly help if anyone got any questions! //Update I just recieved my quest 3 yesterday and I'm happy to say that also quest 3 works perfectly fine using ALVR. |