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.li/images/modern/collapse_collapsed.png)