Login Register






Thread Rating:
  • 0 Vote(s) - 0 Average


My journey with NixOS filter_list
Author
Message
My journey with NixOS #1
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;
to the programs.steam part (see https://nixos.wiki/wiki/Steam)
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 '';
So far the whole setup took me around a week or two, there is probably much more I need to learn but that will be something for the next time.

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.
(This post was last modified: 01-30-2025, 02:29 PM by Leviathan.)
[Image: i446OyG.png]

Reply





Messages In This Thread
My journey with NixOS - by Leviathan - 01-28-2025, 05:38 AM
RE: My journey with NixOS - by Drako - 02-03-2025, 08:08 AM
RE: My journey with NixOS - by laininthewired - 02-04-2025, 08:53 AM
RE: My journey with NixOS - by Leviathan - 02-04-2025, 01:36 PM
RE: My journey with NixOS - by Drako - 02-08-2025, 11:53 PM



Users browsing this thread: 1 Guest(s)