🥽 VR Sleeping Utilities

Overview



A collection of utilities to assist with sleeping in virtual reality

Latest Version Production Build Status Development Build Status License

This is the main repository for Oyasumi. It is an open source tool to assist with sleeping in virtual reality.

Note: Currently, Oyasumi is in its very early stages. The current functionality is likely to still contain several bugs and issues.

Getting started

Grab the latest installer over on the Releases page.

Features

  • 🔧 Turning off all trackers and/or controllers with a single click.
  • 💤 Manage your sleep state in various ways with automations:
    • Fall asleep:
      • When a controller or tracker battery percentage falls below a threshold
      • When turning off your controllers
      • On a time schedule
    • Wake up:
      • When turning on a controller or tracker
      • On a time schedule
  • 🔋 Battery automations:
    • Automatically turn off trackers and/or controllers:
      • When you go to sleep
      • When putting them on the charger
  • 🔌 GPU Automations:
    • Automatically tweak your power limits when you go to sleep and when you wake up.
  • 🗺️ Multi language support
    • English
    • Dutch

If you would like to help out with adding more languages and/or missing translations, please check out the wiki page on adding translations for instructions on how to get started!

Here is an example use case of these features combined:

I go to sleep in full body tracking. When one of my trackers reaches 50% battery, Oyasumi enables sleep mode. Because sleep mode is enabled, all my controllers and trackers are turned off and power limits are set for my graphics card to reduce the power usage. When I wake up, I turn on my controllers, so Oyasumi disables sleep mode. This restores the default power limits for my video card, giving me full performance again. My trackers and controllers still have plenty of the battery left to continue playing!

Built With

Oyasumi has been built with Angular and Tauri.

Supported Devices

Battery Automations

Currently Oyasumi supports battery automations for all SteamVR devices that:

  1. Support reporting for battery levels and charging status
  2. Support being turned off via SteamVR.

This includes, but is not limited to the following devices:

  • HTC Vive Controllers/Wands
  • Index Controllers/Knuckles
  • Vive Trackers (1.0/2.0/3.0)
  • Tundra Trackers*

This means that any Oculus controller is unlikely to work, and SlimeVR trackers are unsupported unless they implement this functionality in their OpenVR driver.

(*) Tundra trackers have very delayed reporting of battery levels and charging status. This means that while automations will still work, they will be very delayed (minutes in the double digits), unless Tundra fixes this in their tracker firmware. (https://forum.tundra-labs.com/t/firmware-issues/746)

GPU Automations

Currently, only NVIDIA cards are supported for setting power limits. AMD and Intel cards are not yet supported.

For AMD support, please see the following issue.

Development

To start development on Oyasumi, start by following Tauri's prerequisites (Installing Rust). Make sure to grab the nightly, as Oyasumi uses some functionality that is not yet available in the current stable release of Rust.

After you have followed the guide and installed Rust, install NodeJS.

It could be helpful to install the Angular CLI globally.

Once you have set up these dependencies, you can continue as follows:

  1. Check out Oyasumi on your machine.
  2. Run npm run install or yarn, depending on whether you prefer using npm or yarn.
  3. Run npm run build or yarn build at least once.

From here, you can run npm run tauri dev or yarn tauri dev to run the application locally.

License

Oyasumi is available under the MIT license.

Comments
  • Add initial support for Korean

    Add initial support for Korean

    To make this application accessible for even more people, I would really like to add Korean translations.

    If you speak both English and Korean and you would like to help out, I would really appreciate it!

    Please read the wiki page on adding translations for instructions on how to get started: https://github.com/Raphiiko/Oyasumi/wiki/Adding-Translations

    help wanted good first issue 
    opened by Raphiiko 6
  • Auto limit GPU after certain time

    Auto limit GPU after certain time

    Hi - This is a really awesome project. I've wanted something like this for a while and i'm glad someone with the right experience is working on it. Thank you for your contributions!

    I think GPU limiting functionality would be really beneficial. It would save a lot of energy consumption when asleep since most peoples GPU's are running at almost full load while sleeping in VRC. Its unnefficient and has other downsides like increased heat and worst case scenario, lower hardware life span. There is another tool that is able to do this, but it isnt in English which makes it difficult to use for me and others:

    https://github.com/njm2360/VRChatGPUTool

    Also being able to auto limit the game resolution when sleeping would be great, but I'm not sure if its even possible to override SteamVR's resolution with an external app. Worth mentioning but I understand if it cant be done.

    I hope you consider this, thank you once again :)

    enhancement 
    opened by SouljaVR 5
  • Toggle Sleep State using OSC

    Toggle Sleep State using OSC

    I think it would be a nice feature if you could enable and disable sleep mode using a bool parameter and OSC. That would make it possible to add a toggle to the expression menu or use a contact or something on the avatar without having to resort to overlays to show the desktop and the application.

    enhancement 
    opened by Okabintaro 2
  • Running Oyasumi as admin disables interaction via SteamVR overlay

    Running Oyasumi as admin disables interaction via SteamVR overlay

    In order to access GPU Automations, Oyasumi must be run with elevated permissions. This functions correctly but doing so disables the ability to interact with the program via the default SteamVR overlay. (like task manager and other elevated tasks) Running SteamVR as admin could potentially be a solution for this but if there's a workaround besides that it would be appreciated.

    A optional native SteamVR overlay app like advanced settings could solve this issue. Alternativly the GPU automation settings could be handed off from the standard UI to an elevated sub program, this would also remove the need to reboot the program if you forgot to initiate it as admin.

    enhancement 
    opened by ZenithVal 2
  • The sleeping animations preset for GoGoLoco 1.7.1+ does not work when VRCFury was used to install GoGoLoco on the avatar.

    The sleeping animations preset for GoGoLoco 1.7.1+ does not work when VRCFury was used to install GoGoLoco on the avatar.

    Currently, the sleeping animations preset for GoGoLoco 1.7.1+ does not work when VRCFury was used to install GoGoLoco on the avatar. The cause for this is that VRCFury renames the GoGoLoco parameters to include a prefix.

    ~~A separate preset should probably be made for people who choose this installation method.~~ ~~However, at this point I'm not 100% sure if the prefix will always be the same in every case.~~ EDIT: It's not, so I can't make any assumptions about the parameter names in a preset.

    As it looks right now, the easiest solution would be to fix this on GoGoLoco's side by defining (some of) its menu paramaters as global parameters in VRCFury, so they don't get renamed.

    In the meantime, a workaround is available to get the preset to work again: (Assuming GGL is the only/first module you have installed with VRCFury) Discord_tTwXHzMZ89

    bug 
    opened by Raphiiko 1
  • Logging in with VRChat accounts without 2FA enabled causes various issues

    Logging in with VRChat accounts without 2FA enabled causes various issues

    The following issues were noted based on a user report:

    When logging in with a VRChat account that does not have 2FA enabled:

    • The login window does not close when the login is successful
    • Friends will not load in friend selection dialog
    • (Possibly) websocket refuses to connect or stay connected

    Workaround: You can temporarily get around these issues by:

    1. Enabling 2FA on your VRChat account
    2. Logging out on Oyasumi and logging back in
    3. Clearing your Oyasumi cache in Settings -> Debug -> Clear Cache.

    Users without 2FA enabled on their account are recommended to log out from Oyasumi until this bug has been resolved in the next update.

    bug 
    opened by Raphiiko 1
  • Linux Support

    Linux Support

    This issue exists for tracking Linux support.

    The only change that should be necessary is the way in which Oyasumi interacts with SteamVR's Lighthouse Console.

    • Users should be allowed to pick something other than a .exe executable for the lighthouse console.
    • The way the binary gets called might possibly have to change.

    If this is updated, I can set up a Linux build for Oyasumi that should theoretically work out of the box.

    I don't currently have a Linux machine set up to work on this, but let me know if there is any interest and I'll see what I can do.

    enhancement 
    opened by Raphiiko 1
  • Add initial support for Japanese

    Add initial support for Japanese

    To make this application accessible for even more people, I would really like to add Japanese translations.

    If you speak both English and Japanese and you would like to help out, I would really appreciate it!

    Please read the wiki page on adding translations for instructions on how to get started: https://github.com/Raphiiko/Oyasumi/wiki/Adding-Translations

    help wanted good first issue 
    opened by Raphiiko 1
  • Add support for AMD cards with GPU automations

    Add support for AMD cards with GPU automations

    Currently, GPU automations only support NVIDIA cards through NVIDIA's NVML library.

    I would like to also support AMD cards, but I did not find a way to set power limits for them programatically on Windows.

    If anyone knows of some AMD equivalent for NVIDIA SMI or NVML, that works on Windows, that would allow me to add support for AMD cards to Oyasumi, any hint would be greatly appreciated!

    help wanted 
    opened by Raphiiko 0
  • Add initial support for Chinese

    Add initial support for Chinese

    To make this application accessible for even more people, I would really like to add Chinese translations.

    If you speak both English and Chinese and you would like to help out, I would really appreciate it!

    Please read the wiki page on adding translations for instructions on how to get started: https://github.com/Raphiiko/Oyasumi/wiki/Adding-Translations

    help wanted good first issue 
    opened by Raphiiko 0
Releases(oyasumi-v1.3.1)
Owner
Raphii
Developing software by day‚ simulating a virtual human being by night.
Raphii
This plugin add a new utilities classes so you can use from 0% to 100%!

This plugin add new utilities classes so you can use from 0% to 100%!

Ehsan Akbarzadeh 2 Apr 3, 2022
A suite of utilities to add more features to the details element

A suite of utilities to add more features to the details element

Zach Leatherman 206 Dec 22, 2022
Manually curated collection of resources, plugins, utilities, and other assortments for the Sapphire Community projects.

Awesome Sapphire Manually curated collection of resources, plugins, utilities, and other assortments for the Sapphire Community projects. Has your pro

Sapphire 20 Dec 17, 2022
Basic types & utilities for Strapi v4 and plugin creators

Strapi v4 - Types & utilities Basic set of types and utilities for Strapi v4 and plugins creators A developers goodie for Strapi Headless CMS which pr

 VirtusLab Open-Source 7 Oct 14, 2022
logseq custom.js and custom.css utilities : resize query table columns, hide namespaces...

logseq-custom-files custom.js and custom.css utilities for Logseq. current version v20220331 query table view : add handles on the query table headers

null 44 Dec 7, 2022
A bunch of utilities for ProTanki.

ProTanki Utilities A bunch of utilities for ProTanki. packet-log.patch.txt Patch (manual applying via JPEXS Free Flash Decompiler) to log incoming and

Daniil Pryima 6 Nov 23, 2022
A Tailwind plugin that allows to create multiple groups utilities such as group-card or group-1 and works with Tailwind 3 features and all variations.

Tailwind Labeled Groups A plugin that allows to create multiple groups utilities such as group-card or group-1 and works with Tailwind 3 features and

Max 18 Nov 21, 2022
🪐 Ultralight Cosmos utilities for JS and TS

Essential Cosmos Ultralight Cosmos utilities for JS and TS ?? The TINIEST code size possible ʦ Fully typed with TypeScript (also works with JavaScript

Earnifi 7 Oct 24, 2022
Utilities for meta-level interactions with the Prisma toolkit in Node.js.

@prisma-spectrum/reflector Utilities for meta-level interactions with the Prisma toolkit in Node.js. ⚠️ Warning: This is not a formal Prisma product l

Prisma 12 Dec 16, 2022
Extended magic-string with extra utilities

DEPRECATED. It has been ported back to magic-string >= 0.26.0 magic-string-extra Extended Rich-Harris/magic-string with extra utilities. Install npm i

Anthony Fu 130 Sep 8, 2022
A plugin that provides utilities for animation property.

tailwindcss-animation-property A plugin that provides utilities for animation property. Not only does the plugin provide the usual animation propertie

ZXT 12 Sep 23, 2022
Collection of SEO utilities like sitemap, robots.txt, etc. for a Remix Application

Remix SEO Collection of SEO utilities like sitemap, robots.txt, etc. for a Remix Features Generate Sitemap Generate Robots.txt Installation To use it,

Balavishnu V J 128 Dec 21, 2022
A suite of utilities to add more features to the details element.

A suite of utilities to add more features to the details element.

Zach Leatherman 206 Dec 22, 2022
🗜️ AstroJS compression utilities. Compress CSS, HTML, JavaScript and more.

astro-compress ??️ This Astro integration brings compression utilities to your Astro project. csso html-minifier-terser terser Installation There are

Nikola Hristov 144 Jan 8, 2023
Small utilities for big decimal numbers.

dnum dnum (Decimal Numbers) is a library that allows to operate on large numbers represented as a pair composed of a BigInt for the value, and a Numbe

Pierre Bertet 45 Dec 21, 2022
🤠 Functional utilities using object property paths with wildcards and regexps 🌵

?? Functional utilities using object property paths with wildcards and regexps. ?? Available functional methods include: ??️ Mapping: map() ?? Merging

ehmicky 29 Dec 15, 2022
Utilities for auto-translating the Tera DataCenter based on XML files

xml-dc-translator Requires latest version of node.js, download here: https://nodejs.org/. Utility for auto-translating the Tera DataCenter based on XM

JKQ 6 Sep 6, 2022
Utilities for parsing and manipulating LaTeX ASTs with the Unified.js framework

unified-latex Monorepo for @unified-latex packages. These packages provide a JS/TypeScript interface for creating, manipulating, and printing LaTeX Ab

Jason Siefken 29 Dec 27, 2022
HanAssist - Utilities to ease Chinese variant handling in user scripts and gadgets.

HanAssist 代码文档 HanAssist 是帮助中文维基百科及其他 MediaWiki 网站上的用户脚本和小工具更优雅地处理中文变体消息的实用程序。 本程序的目标是取代wgULS()和wgUVS()小工具。 HanAssist.localize( { hans: '一天一苹果,医生远离我。'

Diskdance 3 Oct 29, 2022