My journey with NixOS 01-28-2025, 05:38 AM
#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
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!
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:
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.
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.
(This post was last modified: 01-30-2025, 02:29 PM by Leviathan.)
![[Image: i446OyG.png]](https://i.imgur.com/i446OyG.png)



![[+]](https://sinister.ly/images/modern/collapse_collapsed.png)