1 line
6.5 KiB
JavaScript
1 line
6.5 KiB
JavaScript
"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[949],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=u(n),y=i,g=p["".concat(s,".").concat(y)]||p[y]||c[y]||a;return n?r.createElement(g,l(l({ref:t},d),{},{components:n})):r.createElement(g,l({ref:t},d))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=y;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:i,l[1]=o;for(var u=2;u<a;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},2328:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var r=n(8168),i=(n(6540),n(5680));const a={sidebar_position:1},l="Tutorial",o={unversionedId:"getting-started/tutorial",id:"getting-started/tutorial",title:"Tutorial",description:"Setup OpenXR",source:"@site/docs/02-getting-started/01-tutorial.md",sourceDirName:"02-getting-started",slug:"/getting-started/tutorial",permalink:"/docs/getting-started/tutorial",draft:!1,editUrl:"https://github.com/StardustXR/website/edit/main/docs/02-getting-started/01-tutorial.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/docs/overview"},next:{title:"Technical Overview",permalink:"/docs/getting-started/tech-overview"}},s={},u=[{value:"Setup OpenXR",id:"setup-openxr",level:2},{value:"SteamVR",id:"steamvr",level:3},{value:"Archlinux",id:"archlinux",level:4},{value:"NixOS",id:"nixos",level:4},{value:"Others",id:"others",level:4},{value:"Monado",id:"monado",level:3},{value:"Archlinux",id:"archlinux-1",level:4},{value:"NixOS",id:"nixos-1",level:4},{value:"Others",id:"others-1",level:4},{value:"Install nix",id:"install-nix",level:2},{value:"Archlinux",id:"archlinux-2",level:4},{value:"NixOS",id:"nixos-2",level:4},{value:"Others",id:"others-2",level:4},{value:"Run Demo",id:"run-demo",level:2},{value:"Run wayland client",id:"run-wayland-client",level:2}],d={toc:u},p="wrapper";function c(e){let{components:t,...n}=e;return(0,i.yg)(p,(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"tutorial"},"Tutorial"),(0,i.yg)("h2",{id:"setup-openxr"},"Setup OpenXR"),(0,i.yg)("admonition",{type:"note"},(0,i.yg)("p",{parentName:"admonition"},"if you have no headset or other OpenXR device, you can skip this step and start with ",(0,i.yg)("a",{parentName:"p",href:"#install-nix"},"installing nix"),".")),(0,i.yg)("h3",{id:"steamvr"},"SteamVR"),(0,i.yg)("h4",{id:"archlinux"},"Archlinux"),(0,i.yg)("p",null,"TODO"),(0,i.yg)("h4",{id:"nixos"},"NixOS"),(0,i.yg)("p",null,"TODO"),(0,i.yg)("h4",{id:"others"},"Others"),(0,i.yg)("p",null,"TODO: collect links for setup on different distrons"),(0,i.yg)("h3",{id:"monado"},(0,i.yg)("a",{parentName:"h3",href:"https://monado.dev/"},"Monado")),(0,i.yg)("h4",{id:"archlinux-1"},"Archlinux"),(0,i.yg)("p",null,"TODO"),(0,i.yg)("h4",{id:"nixos-1"},"NixOS"),(0,i.yg)("p",null,"TODO"),(0,i.yg)("h4",{id:"others-1"},"Others"),(0,i.yg)("p",null,"TODO: collect links for setup on different distrons"),(0,i.yg)("h2",{id:"install-nix"},"Install nix"),(0,i.yg)("p",null,"For easy development and distribution this project uses the ",(0,i.yg)("a",{parentName:"p",href:"https://nix.dev/"},"nix package manager"),".",(0,i.yg)("br",null),"\nThis allows to ensure all dependency requirements are met."),(0,i.yg)("admonition",{type:"info"},(0,i.yg)("p",{parentName:"admonition"},"Make sure to have ",(0,i.yg)("a",{parentName:"p",href:"https://nixos.wiki/wiki/flakes"},"flakes enabled"),".")),(0,i.yg)("p",null,"You can install nix on all common linux systems:"),(0,i.yg)("h4",{id:"archlinux-2"},"Archlinux"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-shell"},"# install git and nix\nsudo pacman -Sy git nix\n# enable flakes\necho 'experimental-features = nix-command flakes' | sudo tee -a /etc/nix/nix.conf\n# enable nix daemon service\nsudo systemctl enable nix-daemon.service\n# add the current user to nix-users group\nsudo usermod -aG nix-users $(id -un)\n# reboot to apply user and service changes\nsudo systemctl reboot\n")),(0,i.yg)("h4",{id:"nixos-2"},"NixOS"),(0,i.yg)("p",null,"TODO"),(0,i.yg)("h4",{id:"others-2"},"Others"),(0,i.yg)("p",null,"TODO: collect links for setup on different distrons"),(0,i.yg)("h2",{id:"run-demo"},"Run Demo"),(0,i.yg)("ol",null,(0,i.yg)("li",{parentName:"ol"},"clone ",(0,i.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/telescope"},"https://github.com/StardustXR/telescope")),(0,i.yg)("li",{parentName:"ol"},"make sure your OpenXR device works (if 2D mode is not used)"),(0,i.yg)("li",{parentName:"ol"},"run ",(0,i.yg)("inlineCode",{parentName:"li"},"nix run ."))),(0,i.yg)("h2",{id:"run-wayland-client"},"Run wayland client"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-shell"},"# run demo.mp4 video in a loop within Stardust\nWAYLAND_DISPLAY=wayland-0 DISPLAY= mpv Downloads/demo.mp4 --loop\n")))}c.isMDXComponent=!0}}]); |