-
Notifications
You must be signed in to change notification settings - Fork 1
NixOS
NixOS is configured declaratively, so OpenDS5 never runs an imperative installer there. Instead the repo ships a flake that replaces the whole installer with one import.
{
inputs.opends5.url = "github:LordVicky/OpenDS5";
# in your nixosConfigurations.<host>:
modules = [
inputs.opends5.nixosModules.default
{
services.opends5 = {
enable = true;
users = [ "YOURNAME" ]; # members of the vds group (/dev/vds* access)
};
}
];
}Then sudo nixos-rebuild switch. This is the declarative equivalent of everything the installer does elsewhere:
- builds the
vds_hcdkernel module from source against your configured kernel and autoloads it — no DKMS, no MOK signing; kernel bumps rebuild it automatically, - builds
vdsd/vdsctlfrom source (no prebuilt-glibc binaries, no nix-ld), - installs the udev rules, system-wide wireplumber config,
vdsgroup, and thevdsdservice, - enables Bluetooth and runs bluetoothd with
--noplugin=inputso vds can own the controller's HID channels. While active, other Bluetooth input devices (keyboards, mice) won't work — opt out withservices.opends5.disableBluetoothInputPlugin = false;and connect the controller over USB instead.
| Option | Default | Meaning |
|---|---|---|
services.opends5.enable |
false |
Enable the whole stack |
services.opends5.users |
[ ] |
Users added to the vds group |
services.opends5.package |
flake's vds
|
Override the userspace package |
services.opends5.disableBluetoothInputPlugin |
true |
bluetoothd --noplugin=input (required for Bluetooth play) |
NixOS can't execute AppImages natively. Enable support:
programs.appimage = {
enable = true;
binfmt = true;
};then run the release AppImage from Releases. The setup wizard detects a working system and skips installation.
The AppImage updates itself normally (Updates), but the driver is pinned by your flake lock. After an app update:
nix flake update opends5
sudo nixos-rebuild switchUntil then, the running module is whatever your lock pins — which is fine unless a release actually changed the driver.
./OpenDS5.AppImage --install-system on NixOS runs entirely unprivileged and writes two files to the current directory: opends5-vds.nix (a module building vds_hcd via boot.extraModulePackages) and opends5-vds-src/. Move both next to configuration.nix, add imports = [ ./opends5-vds.nix ];, and rebuild.
The fallback covers the kernel module only — for userspace you'd mirror the flake module by hand (group, udev rules, vdsd service built from the vds/ source). If you can use the flake, use the flake.
lsmod | grep vds_hcd
ls /dev/vds*
systemctl status vdsdReboot if the rebuild switched kernels. If the app doesn't see the controller, check the Bluetooth input plugin section in Troubleshooting and FAQ.
🏠 Home
⚙️ Setup
🎮 Using the app
- 🧪 Trigger Lab
- 🎯 Game Profiles and Library
- 🔀 Multi State Trigger Profiles
- 🔊 Audio, Haptics and Lighting
- 🎛️ Buttons, Personas and Chords
🛠️ Maintenance