diff --git a/configuration.nix b/configuration.nix index 953d212..db53216 100644 --- a/configuration.nix +++ b/configuration.nix @@ -26,8 +26,8 @@ url = "https://triazo.net/files/combined-bsb-6-15.patch"; # url = "https://gist.githubusercontent.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch"; sha256 = "938552a278197614402d997c2a21af798ebc4771f99d0b8d99dfcdf6df10ffb7"; - }); - } + });} + { name = "amdgpu-ignore-ctx-privileges"; patch = pkgs.fetchpatch { diff --git a/home.nix b/home.nix index ac7221a..781a96d 100644 --- a/home.nix +++ b/home.nix @@ -19,6 +19,16 @@ # Let Home Manager install and manage itself. programs.home-manager.enable = true; + home.packages = with pkgs; [ + tmux + htop + ]; + + # Wayvr customization + xdg.configFile."wlxoverlay/openxr_actions.json5" = { + source = ./xdg/wlxoverlay_openxr_actions.json5; + }; + # For wayvr-dashboard/wlx integration xdg.configFile."wlxoverlay/wayvr.conf.d/dashboard.yaml".text = '' dashboard: diff --git a/xdg/wlxoverlay_openxr_actions.json5 b/xdg/wlxoverlay_openxr_actions.json5 new file mode 100644 index 0000000..bbf4fad --- /dev/null +++ b/xdg/wlxoverlay_openxr_actions.json5 @@ -0,0 +1,301 @@ +// Available bindings: +// +// -- click -- +// primary click to interact with the watch or overlays. required +// +// -- grab -- +// used to manipulate position, size, orientation of overlays in 3D space +// +// -- show_hide -- +// used to quickly hide and show your last selection of screens + keyboard +// +// -- space_drag -- +// move your stage (playspace drag) +// +// -- toggle_dashboard -- +// run or toggle visibility of a previously configured WayVR-compatible dashboard +// +// -- space_rotate -- +// rotate your stage (playspace rotate, WIP) +// +// -- space_reset -- +// reset your stage (reset the offset from playspace drag) +// +// -- click_modifier_right -- +// while this is held, your pointer will turn ORANGE and your mouse clicks will be RIGHT clicks +// +// -- click_modifier_middle -- +// while this is held, your pointer will turn PURPLE and your mouse clicks will be MIDDLE clicks +// +// -- move_mouse -- +// when using `focus_follows_mouse_mode`, you need to hold this for the mouse to move +// +// -- pose, haptic -- +// do not mess with these, unless you know what you're doing + +[ + // Fallback controller, intended for testing + { + profile: "/interaction_profiles/khr/simple_controller", + pose: { + left: "/user/hand/left/input/aim/pose", + right: "/user/hand/right/input/aim/pose" + }, + haptic: { + left: "/user/hand/left/output/haptic", + right: "/user/hand/right/output/haptic" + }, + click: { + // left trigger is click + left: "/user/hand/left/input/select/click", + }, + grab: { + // right trigger is grab + right: "/user/hand/right/input/select/click" + }, + show_hide: { + left: "/user/hand/left/input/menu/click" + } + }, + + // Oculus Touch Controller. Compatible with Quest 2, Quest 3, Quest Pro + { + profile: "/interaction_profiles/oculus/touch_controller", + pose: { + left: "/user/hand/left/input/aim/pose", + right: "/user/hand/right/input/aim/pose" + }, + haptic: { + left: "/user/hand/left/output/haptic", + right: "/user/hand/right/output/haptic" + }, + click: { + left: "/user/hand/left/input/trigger/value", + right: "/user/hand/right/input/trigger/value" + }, + grab: { + left: "/user/hand/left/input/squeeze/value", + right: "/user/hand/right/input/squeeze/value" + }, + scroll: { + left: "/user/hand/left/input/thumbstick/y", + right: "/user/hand/right/input/thumbstick/y" + }, + scroll_horizontal: { + left: "/user/hand/left/input/thumbstick/x", + right: "/user/hand/right/input/thumbstick/x" + }, + show_hide: { + double_click: true, + left: "/user/hand/left/input/y/click", + }, + space_drag: { + left: "/user/hand/left/input/menu/click", + }, + space_reset: { + double_click: true, + left: "/user/hand/left/input/menu/click", + }, + click_modifier_right: { + left: "/user/hand/left/input/y/touch", + right: "/user/hand/right/input/b/touch" + }, + click_modifier_middle: { + left: "/user/hand/left/input/x/touch", + right: "/user/hand/right/input/a/touch" + }, + move_mouse: { + // used with focus_follows_mouse_mode + left: "/user/hand/left/input/trigger/touch", + right: "/user/hand/right/input/trigger/touch" + } + }, + + // Index controller + { + profile: "/interaction_profiles/valve/index_controller", + pose: { + left: "/user/hand/left/input/aim/pose", + right: "/user/hand/right/input/aim/pose" + }, + haptic: { + left: "/user/hand/left/output/haptic", + right: "/user/hand/right/output/haptic" + }, + click: { + left: "/user/hand/left/input/trigger/value", + right: "/user/hand/right/input/trigger/value" + }, + alt_click: { + // left trackpad is space_drag + right: "/user/hand/right/input/trackpad/force", + }, + grab: { + left: "/user/hand/left/input/squeeze/force", + right: "/user/hand/right/input/squeeze/force" + }, + scroll: { + left: "/user/hand/left/input/thumbstick/y", + right: "/user/hand/right/input/thumbstick/y" + }, + scroll_horizontal: { + left: "/user/hand/left/input/thumbstick/x", + right: "/user/hand/right/input/thumbstick/x" + }, + toggle_dashboard: { + double_click: false, + right: "/user/hand/right/input/system/click", + }, + show_hide: { + double_click: true, + left: "/user/hand/left/input/a/click", + }, + space_drag: { + left: "/user/hand/left/input/trackpad/force", + // right trackpad is alt_click + }, + space_reset: { + left: "/user/hand/left/input/trackpad/force", + double_click: true, + }, + click_modifier_right: { + left: "/user/hand/left/input/b/touch", + right: "/user/hand/right/input/b/touch" + }, + click_modifier_middle: { + left: "/user/hand/left/input/a/touch", + right: "/user/hand/right/input/a/touch" + }, + move_mouse: { + // used with focus_follows_mouse_mode + left: "/user/hand/left/input/trigger/touch", + right: "/user/hand/right/input/trigger/touch" + } + }, + + // Vive controller + { + profile: "/interaction_profiles/htc/vive_controller", + pose: { + left: "/user/hand/left/input/aim/pose", + right: "/user/hand/right/input/aim/pose" + }, + click: { + left: "/user/hand/left/input/trigger/value", + right: "/user/hand/right/input/trigger/value" + }, + grab: { + left: "/user/hand/left/input/squeeze/click", + right: "/user/hand/right/input/squeeze/click" + }, + scroll: { + left: "/user/hand/left/input/trackpad/y", + right: "/user/hand/right/input/trackpad/y" + }, + scroll_horizontal: { + left: "/user/hand/left/input/trackpad/x", + right: "/user/hand/right/input/trackpad/x" + }, + show_hide: { + left: "/user/hand/left/input/menu/click", + }, + space_drag: { + right: "/user/hand/right/input/menu/click", + }, + space_reset: { + double_click: true, + right: "/user/hand/right/input/menu/click", + }, + haptic: { + left: "/user/hand/left/output/haptic", + right: "/user/hand/right/output/haptic" + } + }, + + // Windows Mixed Reality controller + { + profile: "/interaction_profiles/microsoft/motion_controller", + pose: { + left: "/user/hand/left/input/aim/pose", + right: "/user/hand/right/input/aim/pose" + }, + haptic: { + left: "/user/hand/left/output/haptic", + right: "/user/hand/right/output/haptic" + }, + click: { + left: "/user/hand/left/input/trigger/value", + right: "/user/hand/right/input/trigger/value" + }, + grab: { + left: "/user/hand/left/input/squeeze/click", + right: "/user/hand/right/input/squeeze/click" + }, + scroll: { + left: "/user/hand/left/input/thumbstick/y", + right: "/user/hand/right/input/thumbstick/y" + }, + scroll_horizontal: { + left: "/user/hand/left/input/thumbstick/x", + right: "/user/hand/right/input/thumbstick/x" + }, + show_hide: { + left: "/user/hand/left/input/system/click", + }, + space_drag: { + right: "/user/hand/right/input/system/click", + }, + space_reset: { + double_click: true, + right: "/user/hand/right/input/system/click", + }, + click_modifier_right: { + left: "/user/hand/left/input/trackpad/dpad_up", + right: "/user/hand/right/input/trackpad/dpad_up" + }, + click_modifier_middle: { + left: "/user/hand/left/input/trackpad/dpad_down", + right: "/user/hand/right/input/trackpad/dpad_down" + }, + }, + + // HP Reverb G2 controller + { + profile: "/interaction_profiles/hp/mixed_reality_controller", + pose: { + left: "/user/hand/left/input/aim/pose", + right: "/user/hand/right/input/aim/pose" + }, + haptic: { + left: "/user/hand/left/output/haptic", + right: "/user/hand/right/output/haptic" + }, + click: { + left: "/user/hand/left/input/trigger/value", + right: "/user/hand/right/input/trigger/value" + }, + grab: { + left: "/user/hand/left/input/squeeze/value", + right: "/user/hand/right/input/squeeze/value" + }, + scroll: { + left: "/user/hand/left/input/thumbstick/y", + right: "/user/hand/right/input/thumbstick/y" + }, + scroll_horizontal: { + left: "/user/hand/left/input/thumbstick/x", + right: "/user/hand/right/input/thumbstick/x" + }, + show_hide: { + left: "/user/hand/left/input/system/click", + }, + space_drag: { + right: "/user/hand/right/input/system/click", + }, + space_reset: { + double_click: true, + right: "/user/hand/right/input/system/click", + }, + }, + +]