Settings for the Oculus Rift CV1 on Linux
Most of RiftLinux needs no settings. The ones you may want to change are listed here, with the riftlinux-setup
command that changes each one. The commands write ~/.config/riftlinux/settings.json for you, keep a copy of the
previous file next to it, and say when the change applies. The Rift tab in the headset writes its own settings to the
same file (The Rift tab); the README has every key in the file.
If you edit the file by hand and it cannot be read any more (a missing comma or brace), nothing is lost: RiftLinux
leaves the file as it is, uses the last settings it could read (kept as settings.json.last-known) and says so in its
log; the commands and the Rift tab do not write into it. riftlinux-setup check shows where the file is broken, and
for keys it can read, which value is wrong and what RiftLinux uses instead. To put the last good settings back:
riftlinux-setup fix last-known
The broken file is kept as settings.json.broken-<time>. Without a last good copy the settings start from the
defaults, and riftlinux-setup fix then checks the rest.
The commands
| Command | What it changes | Applies |
|---|---|---|
riftlinux-setup autostart on|off|status |
Steam starts SteamVR when the Rift is put on or picked up (on by default) | At once |
riftlinux-setup autostart trigger put-on|pick-up |
What starts it: putting the Rift on only, or also picking it up (default) | At once |
riftlinux-setup autostart quit-unused on|off |
A SteamVR started by picking the Rift up quits again when it is not put on (on by default) | Next start |
riftlinux-setup controller-sleep 3|5|7|off|status |
Minutes after the headset is taken off before the Touch controllers may go to sleep (5 by default; the settings file takes 1 to 60); off keeps them awake | Next start |
riftlinux-setup standby worn|pick-up|status |
When SteamVR's standby ends: the headset worn (default), or also moved, by SteamVR's own rule | Next start |
riftlinux-setup game-menu close|keep|status |
Steam's menu, which Steam opens as a game starts: closed once the game shows (default), or kept open | Next start |
riftlinux-setup wear-sensor test |
Nothing: shows what the headset's wear sensor reads while you put it on and take it off | - |
riftlinux-setup wear-sensor on|off|status |
Whether the wear sensor is used; off counts the headset as worn whenever it runs | Next start |
riftlinux-setup wear-sensor levels <worn above> <not worn below>|default |
The wear sensor's two levels (30 and 15 by default) | Next start |
riftlinux-setup wear-sensor motion high|medium|low|<seconds>|off|on|default |
Moving and turning as on a head counts as worn after 8 s (high), 20 s (medium, the default), 30 s (low) or the seconds given, for a face shield or pad the sensor cannot see through; off: the wear sensor alone | Next start |
riftlinux-setup display-off <seconds>|never|default|status |
How long after the headset is taken off its display goes black (5 s by default, at least 1 s) | Next start |
riftlinux-setup not-worn black [<minutes>|never]|off|default|status |
A headset taken off: its display kept on showing black, switched off after a while black (10 minutes by default, at least 1), or switched off at once | Next start |
riftlinux-setup direct-mode on|off|status |
SteamVR's frames through RiftLinux's compositor (Auto-HDR, motion smoothing) or SteamVR's own | Next start |
riftlinux-setup fix last-known |
A settings file that cannot be read: kept aside, and the last good one put back | Next start |
riftlinux-setup record on|off|status |
Recording SteamVR sessions for a bug report (Troubleshooting) | Next start |
"Next start" is the next start of SteamVR; the wear-sensor, display-off, not-worn and controller-sleep
settings also apply at the next start of RiftLinux's own runtime when you use it without SteamVR.
Other commands, which change no setting: riftlinux-setup check (what is wrong and why; --json for a program to
read), repair (what SteamVR updates or crashes undo), fix (the configuration RiftLinux is tested with, in one go;
Troubleshooting), pair (pairing controllers: Touch controllers and pairing),
recalibrate (the sensors measured again: Sensors), nvidia-vrr status|conceal|restore (the README's
Wayland section), register (what the package runs at each login and plug-in), install and uninstall (for a
driver folder of your own, without the package). --yes answers the one question fix, repair, install and
uninstall ask.
SteamVR starting when you put the headset on
With Steam running, SteamVR starts by itself when you put the Rift on or pick it up, as the Oculus app does on Windows. A game you then start from Steam goes straight into the headset. Steam starts SteamVR the same way as when you click it in your library. Nothing happens while SteamVR or RiftLinux's own runtime is already using the headset, and quitting SteamVR with the headset on does not start it again: take the headset off or put it down first. Picking the headset up only to put it away starts SteamVR too; it quits again by itself when the headset is not put on within two minutes and no game starts (the same for a SteamVR that Steam started again after its compositor stopped).
To have only putting the headset on start SteamVR (its wear sensor, at the levels set below), not picking it up:
riftlinux-setup autostart trigger put-on
With the wear sensor turned off, putting the headset on cannot be seen, so picking it up still starts SteamVR.
riftlinux-setup autostart trigger pick-up goes back to the default. To keep a SteamVR that picking the headset up
started running even when the headset is not put on:
riftlinux-setup autostart quit-unused off
Steam watches for this from its start until it quits.
Turn it off if you use RiftLinux's own runtime without SteamVR, or prefer to start SteamVR yourself:
riftlinux-setup autostart off
SteamVR's standby
SteamVR goes into standby while the headset is not worn and comes out of it when you put the headset on. Moving the headset where it lies does not wake it. SteamVR's own rule also wakes it when the headset moves, as with the Oculus software on Windows, where it comes out as soon as the headset is picked up. To have that:
riftlinux-setup standby pick-up
The picture still waits until the headset is worn: it stays black in your hands (held and turned for 20 seconds it
counts as worn, see the wear sensor). A headset lying on a bed
someone moves on wakes SteamVR too, which is why it is not the default. riftlinux-setup standby worn goes back to the
default.
Steam's menu when a game starts
Steam opens its menu in the headset as a game starts. RiftLinux closes it once the game shows, so the game is not behind it; the menu button opens it as usual, and a menu you open with it while the game runs stays open. To keep Steam's menu open when a game starts:
riftlinux-setup game-menu keep
riftlinux-setup game-menu close goes back to the default. SteamVR's own menu as it starts stays open, in front of
you once the headset is on.
When the controllers go to sleep
The Touch controllers stay awake while you wear the headset and for five minutes after you take it off; then they go to sleep, which saves their batteries, and a button press wakes them. To change the minutes, or keep them awake for as long as SteamVR runs (their batteries drain meanwhile):
riftlinux-setup controller-sleep 3
riftlinux-setup controller-sleep off
riftlinux-setup controller-sleep 5 goes back to the default.
The wear sensor: face shields, pads and glasses
The CV1 has a sensor between the lenses that sees whether the headset is on a face. RiftLinux switches the display off a few seconds after the headset is taken off (an OLED panel showing a still picture for long can burn in) and tells SteamVR, which pauses then. A face shield, a thicker face pad or a covered or dirty sensor window can make the sensor miss your face: the picture goes dark or SteamVR pauses while you wear the headset. RiftLinux also counts the headset as worn once it has moved and turned as a head does for 20 seconds, and for as long as it keeps moving, so with such a headset the picture comes 20 seconds after you pick it up to put it on. A headset held in the hands moves like a head too, for the seconds it takes to put it on, and is not counted before; one lying on a bed someone moves on shakes but does not turn, and is never counted. For the picture sooner (8 seconds) or later (30 seconds), or to count the wear sensor alone:
riftlinux-setup wear-sensor motion high
riftlinux-setup wear-sensor motion low
riftlinux-setup wear-sensor motion off
riftlinux-setup wear-sensor motion 30 sets the seconds; riftlinux-setup wear-sensor motion default goes back to
20 seconds (medium).
First see what the sensor reads, with SteamVR closed:
riftlinux-setup wear-sensor test
Put the headset on during the test, then take it off. Worn, the sensor should read clearly above the first level (30) and off your head below the second (15). If it reads lower on your face, for example 20 to 25, set levels between what it reads worn and what it reads off your head:
riftlinux-setup wear-sensor levels 18 8
If it reads the same on and off your face, turn it off:
riftlinux-setup wear-sensor off
The headset then counts as worn whenever SteamVR runs: the display never switches off by itself and SteamVR never
pauses. The panel stays lit while SteamVR runs, even on the desk, so quit SteamVR when you put the headset down for
longer. riftlinux-setup wear-sensor on turns it back on.
When the headset is taken off
5 seconds after the headset is taken off its display goes black, and the moment it is on your head again the picture is back. The display stays switched on, showing pure black: an OLED panel gives no light then, and nothing is lit that could burn in. After 10 minutes black it switches off. Switching the display off takes the headset off its HDMI connection, which the desktop sees as a monitor unplugged (and plugged in again when the headset is put on); GNOME 48 on NVIDIA keeps some graphics memory every time, so this is kept for longer breaks. In the first 30 seconds after SteamVR or the runtime starts, the display stays on whatever the headset reads, so that the compositor can take it.
riftlinux-setup display-off 30 # black 30 seconds after it is taken off
riftlinux-setup not-worn black 20 # switched off after 20 minutes black
riftlinux-setup not-worn off # switched off at once, as RiftLinux 0.1.2 did
display-off never keeps the picture on as long as SteamVR runs (the same burn-in risk as above); not-worn black never keeps it black instead of switching it off; default goes back to the defaults.
The settings file
The commands above write these keys; you can also edit the file by hand while SteamVR is closed. A key that is not in the file has its default.
{
"steamvr": {
"start_when_put_on": true,
"start_on_pick_up": true,
"quit_if_not_put_on": true,
"close_menu_for_games": true,
"standby": "worn"
},
"controllers": {
"sleep_after_min": 5
},
"headset": {
"wear_sensor": true,
"worn_above": 30,
"unworn_below": 15,
"worn_by_motion": true,
"worn_by_motion_after_s": 20,
"display_off_after_s": 5,
"not_worn": "black",
"black_then_off_min": 10
},
"display": {
"direct_mode": true
}
}
| Key | Default | What it does |
|---|---|---|
steamvr.start_when_put_on |
true |
Steam starts SteamVR when the Rift is put on or picked up |
steamvr.start_on_pick_up |
true |
false: only putting the Rift on starts it (with the wear sensor on) |
steamvr.quit_if_not_put_on |
true |
A SteamVR that Steam started by itself (the Rift picked up, or SteamVR started again after its compositor stopped) quits again when the headset is not worn within two minutes and no game starts |
steamvr.close_menu_for_games |
true |
Steam's menu, opened as a game starts, closes once the game shows; false keeps it |
steamvr.standby |
"worn" |
SteamVR's standby ends when the headset is worn; "pick-up": also when it moves, by SteamVR's own rule |
controllers.sleep_after_min |
5 |
Minutes (1 to 60) after the headset is taken off before the controllers may sleep; negative: kept awake while SteamVR runs |
headset.wear_sensor |
true |
false: the headset counts as worn whenever it runs |
headset.worn_above, headset.unworn_below |
30, 15 |
The wear sensor's levels: worn above the first, not worn below the second, unchanged in between |
headset.worn_by_motion |
true |
Moving as on a head counts as worn, whatever the wear sensor reads; false: the wear sensor alone |
headset.worn_by_motion_after_s |
20 |
Seconds of moving and turning as on a head before it counts as worn (1 to 60; riftlinux-setup wear-sensor motion high 8, medium 20, low 30) |
headset.display_off_after_s |
5 |
Seconds not worn before the display goes black (or off); negative: never |
headset.not_worn |
"black" |
"black": the display stays on showing black while the headset is not worn; "off": it switches off |
headset.black_then_off_min |
10 |
With "black": minutes black before the display switches off; negative: never |
display.direct_mode |
true |
SteamVR's frames through RiftLinux's compositor; false: SteamVR's own (riftlinux-setup direct-mode) |
The picture, notice, tracking and recording keys are in the README's settings table.
This page is part of the RiftLinux user guide (CC BY 4.0). Its source is on GitHub.