Giter VIP home page Giter VIP logo

breezy-desktop's Introduction

Breezy Desktop

ko-fi

Chat

What is this?

This repo contains a collection of tools to enable virtual desktop environments for gaming and productivity on Linux using supported XR glasses.

There are two installations at the moment. Note: Don't manually install either of these if you're running the Decky plugin on the same machine, as they invalidate each other's installations. This is only temporary.

  • Breezy GNOME for desktop support, primarily in GNOME Linux desktop environments
  • Breezy Vulkan primarily for gaming but would work with pretty much any application that uses Vulkan rendering.

Breezy GNOME

Breezy GNOME is a virtual workspace solution for Linux desktops that use the GNOME desktop environment (support GNOME versions 42 through 46); see non-GNOME setup if you want to try it without a GNOME desktop environment. It currently supports one widescreen virtual monitor and multiple physical monitors. See upcoming features for more improvements on the horizon.

GNOME Setup

For the best performance, ensure you have the latest graphics drivers installed for your distro. Also, double-check that your glasses are extending your workspace and not just mirroring your primary monitor by opening up the Displays settings dialog and choosing the Join option for multiple displays.

Arch Linux

Breezy GNOME is in AUR (but not pacman, yet). To install, run these commands from a terminal:

  1. If you've previously installed Breezy GNOME using the setup script, you must uninstall it first with breezy_gnome_uninstall
  2. yay -S breezy-desktop-gnome-git
  3. systemctl --user enable --now xr-driver.service

All other distros

  1. Download the Breezy GNOME setup script and set the execute flag (e.g. from the terminal: chmod +x ~/Downloads/breezy_gnome_setup)
  2. Run the setup script: ~/Downloads/breezy_gnome_setup

Steam Deck desktop mode

Steam Deck's desktop mode runs KDE Plasma, so, for now, Breezy Desktop can only be run by launching a nested GNOME shell, and requires the read-only file system to be disabled to get setup. If you're interested, and willing to accept any risks that come with disabling the read-only file system, check out the wiki entry.

Non-GNOME Setup

A workable solution (with some QoL improvements needed) is to use your preferred desktop environment with a GNOME window open in nested mode. To do this:

  1. Install gnome-shell using your distros package manager (e.g. apt-get, pacman, dnf, etc...). This will currently only work with GNOME Shell versions 42-46, so check that using gnome-shell --version
  2. Run the GNOME setup steps. You shouldn't need to log out and back in since GNOME will be running nested.
  3. Launch the nested GNOME Shell using MUTTER_DEBUG_DUMMY_MODE_SPECS="1920x1080@60" dbus-run-session -- gnome-shell --nested

Breezy GNOME Usage

After setup, you'll have an application called Breezy Desktop installed. Launch that and follow any instructions. You will need to log out and back in at least once to get the GNOME extension working. You can also configure keyboard shortcuts for the most common toggle actions. The Breezy Desktop app doesn't have to be running to use the virtual desktop or the keyboard shortcuts once you've configured everything to your liking.

For a double-wide screen, enable "widescreen mode" using the toggle in the Breezy Desktop application. Note: this can be significantly more resource intensive than non-widescreen, you may notice performance dips on older hardware.

Upcoming Features

  1. Port to KWin Effect (KDE Plasma support)
  2. Multiple virtual monitors + multiple physical monitors
  3. Supported nested or AppImage style deployment. QoL improvements:
    • clipboard support
    • snapping to proper monitor
    • hide window chrome/title bar

Breezy GNOME Pricing (Productivity Tier)

Breezy GNOME comes with 2 free trial months. After that, it requires an active Productivity Tier license. Payments are currently only accepted via Ko-fi. Here's the pricing structure:

Payment period Price Upgrade window *
Monthly $5 USD, recurring Within 7 days to upgrade to yearly
Yearly $50 USD, recurring Within 90 days to upgrade to lifetime
Lifetime $125 USD, one-time

* If you pay for a plan and decide to upgrade to a longer-term plan, you may pay the difference within this window.

If you have enough funds, your license will renew automatically within 7 days of expiration so you never experience an unexpected outage. Your device is never required to be online to continue using Productivity Tier features when enabled, but if your access expires while offline (even if you have enough funds), the features will be disabled until the next time your device goes online and the license can be refreshed. Be sure to check for expiration warnings prior to travel.

Free Productivity Tier

To make Breezy widely accessible, Productivity Tier is currently free of charge for qualified individuals using it for non-commercial purposes. Eligible groups include:

  • Students
  • Public school educators
  • Active duty service members and veterans of the U.S. Armed Forces
  • Individuals experiencing financial hardship or special circumstances that make electronic payments prohibitive
  • Individuals affected by active war zones or humanitarian crises (e.g. Ukrainian citizens)

If you believe you qualify, please email [email protected]. You may be asked to provide documentation to verify your eligibility.

Unlocking Productivity Tier

After your first payment, you should immediately receive an email (to your Ko-fi email address) with a verification token. Once you receive that, enter it in the License Details view of the Breezy Desktop application, available from the menu in the top window bar.

If you don't receive a token, you can request one in the License Details view by entering your email address.

Breezy Vulkan

Setup

Steam Deck via Decky Loader

For Steam Deck users, the driver is now available via the Decky plugin loader. Just search "xr" in the Decky store to install and use without leaving Gaming Mode. You can now enable or disable the driver and manage other driver settings via the Decky sidebar menu.

You may still opt to do a manual installation using the instructions below if you enter Desktop Mode.

Manual installation

  1. Download the setup script and set the execute flag (e.g. from the terminal: chmod +x ~/Downloads/breezy_vulkan_setup)
  2. Run the setup script as root (e.g. sudo ~/Downloads/breezy_vulkan_setup)
  3. If you're not on Steam Deck, you'll need to set the ENABLE_VKBASALT environment variable to 1. You'll either need to set this globally to enable it for all games, or set it as a launch option for individual games (e.g. in Steam's Launch Options field ENABLE_VKBASALT=1 %command%).

Supported Devices

See XRLinuxDriver's supported devices.

Usage

Once installed, you'll want to make sure you've enabled the driver (xr_driver_cli -e) and then you can go into whichever output mode you'd like using (xr_driver_cli -m) where -m is for mouse mode, -j for joystick, -vd for virtual display, and -sv for sideview; note that these two commands can't be combined, they have to be done separately. From there, you should be able to launch any Vulkan game, plug in your glasses (at any point, not just after launching), and see a floating virtual display or a sideview screen (depending on which mode you've chosen).

There's a wait period of 15 seconds after plugging in XREAL glasses where the screen will stay static to allow for the glasses to calibrate. Once ready, the screen will anchor to the space where you are looking.

Configurations

To see all the configuration options available to you, type xr_driver_cli with no parameters to get the usage statement. There are some things you can't trigger from the script, like re-centering the virtual display or entering SBS mode; you can achieve these things through multi-tap or through the physical buttons on the glasses, respectively.

Multi-tap to re-center or re-calibrate

I've implemented an experimental multi-tap detection feature for screen re-centering (2 taps) and re-calibrating the device (3 taps). To perform a multi-tap, you'll want to give decent taps on the top of the glasses. I tend to do this on the corner, right on top of the hinge. It should be a firm, sharp tap, and wait just a split second to do the second tap, as it needs to detect a slight pause in between (but it also shouldn't take more than a half a second between taps so don't wait too long).

Supporter Tier

Breezy Vulkan's Supporter Tier features are enhancments to core functionality, offered as a way to reward those who have supported the project. Core features -- like Virtual Display mode, VR-Lite mouse/joystick modes, and Follow mode's display positioning/resizing settings -- will always remain available to everyone regardless of supporter status. Here's the pricing structure:

Payment period Price Upgrade window *
Yearly $10 USD, recurring Within 90 days to upgrade to lifetime
Lifetime $25 USD, one-time

* If you pay for a plan and decide to upgrade to a longer-term plan, you may pay the difference within this window.

If you have enough funds, your access will renew automatically within 7 days of expiration so you never experience an unexpected outage. Your device is never required to be online to continue using Supporter Tier features when enabled, but if your access expires while offline (even if you have enough funds), the features will be disabled until the next time your device goes online and the license can be refreshed. Be sure to check for expiration warnings prior to travel.

Features currently offered:

  • Smooth Follow (in Follow mode)
  • Automatic Recentering (in Virtual Display mode)
  • Side-by-side support (in Virtual Display mode)

Unlocking Supporter Tier

If you donate at least $10, you should immediately receive an email (to your Ko-fi email address) with a verification token. If you don't, request it using the config script:

xr_driver_cli --request-token [emailAddress]

Once you have a token, verify it using:

xr_driver_cli --verify-token [token]
xr_driver_cli --refresh-license

Disabling

To disable the floating screen effect, either disable the driver (xr_driver_cli -d), unplug the glasses, or hit the Home key (you'll need to bind this to your controller, if on Steam Deck).

Updating

Rerun the breezy_vulkan_setup script. No need to re-download this script, as it will automatically download the latest installation binary for you.

Uninstalling

If you wish to completely remove the installation:

  • For Breezy GNOME:
    • If you installed via the setup script run the following: ~/.local/bin/breezy_gnome_uninstall
    • If you installed via yay run the following: pacman -R breezy-desktop-gnome-git, you may also want to uninstall the base driver with pacman -R xr-driver-breezy-gnome-git
  • For Breezy Vulkan run the following: ~/.local/bin/breezy_vulkan_uninstall. This won't uninstall the base driver package, follow the instructions at the end of the uninstallation to do this manually.

Data Privacy Notice

Your right to privacy and the protection of your personal data are baked into every decision around how your personal data is collected, handled and stored. Your personal data will never be shared, sold, or distributed in any form.

Data Collected

In order to provide you with Supporter Tier features, this application and its backend services have to collect the following pieces of personal information:

  • Your email address is sent to this application's backend server from either the payment vendor (Ko-fi) or from your device (at your request). Your email address may be used immediately upon receipt in its unaltered form to send you a transactional email, but it is then hashed prior to storage. The unaltered form of your email address is never stored and can no longer be referenced. The hashed value is stored for later reference.
    • Other personal data may be sent from the payment vendor, but is never utilized nor stored.
  • Your device's MAC address is hashed on your device. It never leaves your device in its original, unaltered form. The hashed value is sent to this application's backend server and stored for later reference, and -- up to version 0.8.7 -- to Google Analytics.

Hashing functions are a one-way process that serve to anonymize your personal data by irreversibly changing them. Once hashed, they can never be unhashed or traced back to their original values.

Contact

For inquires about data privacy or any related concerns, please contact:

Wayne Heaney - [email protected]

breezy-desktop's People

Contributors

8796n avatar andrecruzmendes avatar chriceberg avatar hodasemi avatar jedhamzawi avatar kaliv1400 avatar kianbrose avatar kodomari avatar pleite avatar vnmarcel avatar wheaney avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

breezy-desktop's Issues

Screen keeps moving to the right

I love the breezy - desktop; the widescreen is a killer feature for me.

However, I keep having this weird problem, unsure if it's the same for everyone, where I reset the screen to be on the centre (not follow mode), and the screen slowly drifts to the right, and I have to reset it every few minutes. I thought it could be the room I'm in or something, but it seems to do it when it's dark/light/different rooms.

Specs:

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy

Configuration:

  • widescreen ON
  • follow mode off
  • curved display on
  • distance: 1.7
  • display size: 1.65
  • all advanced ticked but the (use highest refresh rate) - as I read somewhere that it helps with flaky start-up on a wide screen (which it has made it much better).

gnome-shell+air2 pro

The switch for turning the feature ON keeps turned right back off. Why?

Running gnome-shell on xfce/Linux Mint. I already have a popup from before, allowing me to extend the glasses as a 2nd monitor, but not lock it in place or zoom. And I tried all settings before trying to turn it on.

Having xreal-air-driver.service running causes monado-service to fail

even with "xreal_driver_config -d" the only way to get monado to successfully run with the xreal airs connected is to run "systemctl stop xreal-air-driver.service"

I have been troubleshooting this over here https://gitlab.freedesktop.org/monado/monado/-/issues/313

the main problem, it seems, when the service is running the Airs do not enumerate all of its interfaces.
according to Tobias Frisch "The Nreal Air should always enumerate three entries with interface being: 3, 4 and 5."
however, with the service running the Airs only list interface number 5, which causes monado to fail.

Move windows to virtual screens

I noticed that moving windows to virtual screen does also not work with the extension enabled. I'm using the AUR package.

My setup:

  • Gnome 46
  • Wayland
  • Viture One

Error starting systemd

Hello,
I'm having issues installing XR Gaming. I've tried installing the plugin through Decky but the install fails and when trying to install manually it runs smoothly until I get this error:

Setting up the systemd service
systemd startup failed

Any idea what I'm doing wrong here?
(using a steam deck btw)

Thanks in advance

Xreal Air 2 Pro do not work on mint (with steamvr)

I tried the driver with my xreal air 2 pro and it doesn't work. I'm on linux mint 21

When I connect them, I get a second screen and the mouse starts to follow the xreal movements. So it seems it is somehow workng but not fully. I have steam with steamvr as openxr server. I also tried monado, but monado not yet supports the xreal 2 pro.

[Feature Request] Port GNOME extension to KWin Effect

KWin supports scripted effects that are backed by GLSL fragment shader, and the ability to set uniform variables for the shader:

  • The original PR that got merged to include such effects
  • The ScriptedEffect implementation

Questions still remain:

  • Can an effect be applied to a whole monitor view?
  • Can run for long periods? not just short-lived visual effects
  • Can we stream uniform variable updates to it continuously?

We'll also want to make sure it can have a dconf integration to watch settings that come from the Breezy Desktop app. I've seen mentions of keyboard shortcuts, so I think it'll be able to handle that.

Need a non root version of setup

I am sure I am missing something but As far as I can tell there is really no need to require root to install this.
isn't everything being installed into users home dir anyway?

Is this GDPR complient?

I notice that this sends metrics information to Google Analytics. However, I don't see anything about that in either the README or LICENSE files. This 'might' be a GDPR violation. (If nothing else please post a notice about it in the readme.)

[FR] Breezy GNOME multi-monitor support

Here is my tentative plan for supporting this:

  1. Put an Add another virtual monitor button in the UI that triggers a script like this RecordVirtual implementation. This approach is a bit of a hack because RecordVirtual is intended for remotely streaming video capture of the virtual display, but it's really the only way through any GNOME API I could find to create a virtual display. In practice I don't want to have it continue streaming (esp since the user may want to have a bunch of these open), so I was able to work around this in my own experimentation by setting the Gst state to PAUSED in on_pipewire_stream_added after letting it start. This Gstreamer pipeline's width/height is how you set the resolution of the virtual display.
  2. MonitorManager's getMonitorConfig function would need to be updated to call GetCurrentStateRemote instead of (or maybe in addition to) GetResourcesRemote, as that will allow us to find logical_monitors that are associated with MetaMonitor monitors. Any such monitors would want to be rendered by the XR effect.
  3. We would need to update how the extension's _find_supported_monitor logic works and what information is stored, or store information about all such monitors found.
  4. Update how this overlay is created such that it uses coordinates that cover all virtual displays. The XR effect is applies across that whole overlay, so if the overlay is properly positioned, anything underneath it is rendered without having to update the effect logic at all. This gives us less flexibility in terms of how the monitors are allowed to be placed (e.g. we wouldn't want people positioning their "real" monitor in the space that would need to be covered by this overlay), but the alternative is a much larger rewrite that allows us to place multiple overlays and somehow piece them all into an effect that manages multiple monitor placements and multiple desktop textures.

XReal Ultra: Stuck "Calibrating"

Hello,
I am having trouble with Breezy starting properly unless I reboot. Logging out does not seem to help.
When I look at the driver log I see that it stuck on centering screen.

tail -f ~/.local/state/xr_driver/driver.log
Found device with vendor ID 0x3318 and product ID 0x0426
Driver detached sucessfully from kernel.0
Waiting on device calibration
Feature smooth_follow granted.
Feature sbs granted.
Feature productivity_basic granted.
Device connected, redirecting input to external_only...
Device calibration complete
Centering screen

cat ~/.local/state/breezy_gnome/logs/gjs/2024-08-04.log
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver not running, starting poller
breezydesktop: DEBUG - BreezyDesktopExtension _poll_for_ready
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [13,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: Reset triggered, disabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver not running, starting poller
breezydesktop: DEBUG - BreezyDesktopExtension _poll_for_ready
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [15,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: Gnome-Shell 43.9 / gjs 1.74.2 (17402) / wayland
breezydesktop: DEBUG - _logVersion(): gnome-shell version major=43, minor=9, patch=0, system_version=17402, XDG_SESSION_TYPE=wayland
breezydesktop: DEBUG - _logVersion(): onWayland=true
breezydesktop: DEBUG - BreezyDesktopExtension enable
breezydesktop: DEBUG - MonitorManager enable
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver running but async monitor action needed
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [1,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - BreezyDesktopExtension disable
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - MonitorManager disable
breezydesktop: DEBUG - BreezyDesktopExtension enable
breezydesktop: DEBUG - MonitorManager enable
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver running but async monitor action needed
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [1,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - BreezyDesktopExtension disable
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - MonitorManager disable
breezydesktop: Gnome-Shell 43.9 / gjs 1.74.2 (17402) / wayland
breezydesktop: DEBUG - _logVersion(): gnome-shell version major=43, minor=9, patch=0, system_version=17402, XDG_SESSION_TYPE=wayland
breezydesktop: DEBUG - _logVersion(): onWayland=true
breezydesktop: DEBUG - BreezyDesktopExtension enable
breezydesktop: DEBUG - MonitorManager enable
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver running but async monitor action needed
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [1,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: Reset triggered, disabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver not running, starting poller
breezydesktop: DEBUG - BreezyDesktopExtension _poll_for_ready
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [3,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: Gnome-Shell 43.9 / gjs 1.74.2 (17402) / wayland
breezydesktop: DEBUG - _logVersion(): gnome-shell version major=43, minor=9, patch=0, system_version=17402, XDG_SESSION_TYPE=wayland
breezydesktop: DEBUG - _logVersion(): onWayland=true
breezydesktop: DEBUG - BreezyDesktopExtension enable
breezydesktop: DEBUG - MonitorManager enable
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver running but async monitor action needed
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [1,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _needs_widescreen_monitor_update
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - BreezyDesktopExtension disable
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - MonitorManager disable
breezydesktop: DEBUG - BreezyDesktopExtension enable
breezydesktop: DEBUG - MonitorManager enable
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver running but async monitor action needed
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [1,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _update_widescreen_mode_from_settings false
breezydesktop: DEBUG - effect.widescreen_mode_state already matched setting
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - BreezyDesktopExtension disable
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - MonitorManager disable
breezydesktop: DEBUG - BreezyDesktopExtension enable
breezydesktop: DEBUG - MonitorManager enable
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver running but async monitor action needed
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [1,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _update_widescreen_mode_from_settings false
breezydesktop: DEBUG - effect.widescreen_mode_state already matched setting
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: Reset triggered, disabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver not running, starting poller
breezydesktop: DEBUG - BreezyDesktopExtension _poll_for_ready
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [3,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _update_widescreen_mode_from_settings false
breezydesktop: DEBUG - effect.widescreen_mode_state already matched setting
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index 0
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: Reset triggered, disabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_disable
breezydesktop: DEBUG - CursorManager disable
breezydesktop: DEBUG - CursorManager _disableCloningMouse
breezydesktop: DEBUG - CursorManager _stopCloningMouse
breezydesktop: DEBUG - uninhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor - No supported monitor found
breezydesktop: DEBUG - BreezyDesktopExtension _setup - Doing nothing, no supported monitor found
breezydesktop: DEBUG - MonitorManager _on_monitors_change
breezydesktop: DEBUG - Found monitor DP-1, vendor MRG, product Air 2 Ultra, serial 0x88888800, connector DP-1, index 0
breezydesktop: DEBUG - Found monitor eDP-1, vendor AUO, product 0x106c, serial 0x00000000, connector eDP-1, index -1
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - BreezyDesktopExtension _setup - driver not running, starting poller
breezydesktop: DEBUG - BreezyDesktopExtension _poll_for_ready
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck for DP-1
breezydesktop: DEBUG - monitormanager.js performOptimalModeCheck GetCurrentState result: [5,[[["DP-1","MRG","Air 2 Ultra","0x88888800"],[["[email protected]",1920,1080,120,1,[1,2],{"is-current":{}}],["[email protected]",1920,1080,90,1,[1,2],{}],["[email protected]",1920,1080,60,1,[1,2],{"is-preferred":{}}]],{"is-builtin":{},"display-name":{}}],[["eDP-1","AUO","0x106c","0x00000000"],[["[email protected]",1366,768,60.15888595581055,1,[1],{"is-preferred":{}}],["[email protected]",1366,768,48.12710952758789,1,[1],{}],["[email protected]",1280,720,59.855125427246094,1,[1],{}],["[email protected]",1024,768,59.92013168334961,1,[1],{}],["[email protected]",800,600,59.86140441894531,1,[1],{}]],{"is-builtin":{},"display-name":{}}]],[[0,0,1,0,true,[["DP-1","MRG","Air 2 Ultra","0x88888800"]],{}]],{"layout-mode":{},"legacy-ui-scaling-factor":{}}]
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: no config change
breezydesktop: Monitor change detected
breezydesktop: DEBUG - BreezyDesktopExtension _setup
breezydesktop: DEBUG - BreezyDesktopExtension _find_supported_monitor
breezydesktop: Identified supported monitor: Air 2 Ultra on DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: DP-1
breezydesktop: DEBUG - MonitorManager needsOptimalModeCheck: skipping config check
breezydesktop: Ready, enabling XR effect
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable
breezydesktop: DEBUG - CursorManager enable
breezydesktop: DEBUG - CursorManager _enableCloningMouse
breezydesktop: DEBUG - CursorManager startCloning
breezydesktop: DEBUG - CursorManager _startCloningMouse
breezydesktop: DEBUG - inhibit_unfocus
breezydesktop: DEBUG - BreezyDesktopExtension _effect_enable overlay size: 1920x1080 at 0,0
breezydesktop: DEBUG - BreezyDesktopExtension _update_follow_threshold 10
breezydesktop: DEBUG - BreezyDesktopExtension _update_widescreen_mode_from_settings false
breezydesktop: DEBUG - effect.widescreen_mode_state already matched setting
breezydesktop: DEBUG - BreezyDesktopExtension _handle_supported_device_change true

Moving head around makes image to become blurry

I noticed that when moving my head around, text become blurry, a little bit similar when motion blur is applied on games

I guess it's something related to shader, I'd love helping you by opening a PR, but I don't understand that much of shaders and gnome as of now to give you a hand

Anyways, amazing work!!!
For xreal glasses the experience is already better than on Windows 🙌

does it work with kde?

I have the gnome libraries loaded and run gnome apps in kde all the time, so would this work?
don't have problem getting a life time license if it works with kde at least mostly.

Add GNOME 44/43 support

Hi,

I was wondering if there is a way to enable 3dof for viture when connected to a linux gnome computer? If not is it in the roadmap?

No errors - but screen is static.

Hello!
Thank you for creating and maintaining such amazing piece of software!

I've just get the Xreal Air (first model).
Nebula works on windows (but low FPS).

On linux i can set up this glasses as mirrored or duplicated screen.

I have used installation setup script - no errors
Then:

~/bin/xreal_driver_config -e
~/bin/xreal_driver_config -vd

returns no error.
-m option is moving my mouse cursor, so i know that connection works fine.

I'm using Lenovo ThinkPad X270
Intel® HD Graphics 620 (KBL GT2)
Newest Manjaro Linux (Linux 6.6.26-1-MANJARO)
GNOME 45.5
Wayland and X11 - i have tried both.

Please, help

Choppy experience with XReal Air 2 Pro in widescreen

I'm running Fedora 40 on Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz which of course isn't an actual dream machine.
And haven't yet checked in how far the GPU in the package is really used.
Non widescreen mode is definitely a lot smoother while I have 60Hz at FHD and 90Hz at Widescreen. Guessing that points definitely to a performance issue.
Of course getting smoother rendering would be desirable but I guess another viable way to get a useful environment could be introduction of a certain threshold below which a movement wouldn't lead to re-rendering. Like hold your head still if you want to read some small text. Haven't checked if there are controls for that under the hood already.
Did you already experiment with such an approach?

Regards,
Klaus

[Feature] Helper visualization when your virtual screen is fully "offscreen".

It's possible to get into a situation where your virtual display is fully "offscreen" in space. Since this just renders "nothing" in the glasses, it feels like something is just broken. It would be helpful to have some sort of indicator that you do indeed have a floating screen, it's just elsewhere in space. Some ideas might be:

  • Lighting up the edge of the screen that is in the direction of the virtual screen.
  • Drawing a symbol in the middle of the viewport.

Cant seem to get Breezy to work on ubuntu

Hello, just received a pair of viture one xr glasses and I was testing them out. I tried installing breezy, but even though the install seems to have worked, playing with the options does not change anything.

I'm running ubuntu 23.10 and gnome 45.2 and my displays are joined.

breezy_gnome_verify reports that the installation is fine, xreal_driver_config -s says it's enabled and the breezy app says that viture one is connected but when I toggle options on and off, they dont seem to do anything.

What's the next step for figuring out what's happening ?

Can't open Breezy Desktop on Arch (with gnome 46)

Screen extension works great and the Viture device is detected in displays and the displays can be rearranged. I'm interested in pinning virtual windows in space and ultrawide etc. though, which seems like it would require the Breezy Desktop app, but I'm having trouble opening the app.

Pressing Super to open the search bar and typing "Breezy Desktop" shows and selects the penguin with sunglasses icon, but pressing Enter just causes my cursor to turn into a loading wheel and then turn back to normal after a while.

Opening a terminal and running

gnome-terminal -- breezydesktop

Produces the error

# Couldn't connect to accessibility bus: Failed to connect to socket /run/user/1000/at-spi/bus_0: Connection refused

Btw I installed via AUR with yay and on first attempt I got an error saying no module named yaml so I opened a conda environment with pyyaml and reran the install command and it worked.

Thanks!

Add a UI for Linux users, parity with Decky UI

Right now the only way to modify configs is through the ~/bin/xreal_driver_config script, and I'm finding it a bit tedious to manage and use that script as I add features, especially more complex ones like a calibration workflow. The Decky UI makes it possible for Decky users to configure things on-the-fly using checkboxes/buttons/sliders/etc... and I'd like to have the same UI available for general Linux users. Since breezy is always running in the background, this task would be to build a UI that someone could launch whenever they wanted to use it, but opening or closing it has no effect on the operations of breezy itself.

[FR]: Respect XDG_CONFIG_HOME

Right now the xreal config files seem to go directly into the user's home directory. While its not the end of the world, a nicer solution would be to have it follow the $XDG_CONFIG_HOME location), this way, the user can:

  1. Have their config files in the place they expect config files to go, and
  2. Not add an extra dot file to their home (unless that's what they wanted).

According to the spec https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html :

$XDG_CONFIG_HOME defines the base directory relative to which user-specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.

[FR]: Improved zoom capabilities of virtual display

I have very poor vision, and I was hoping to use the this tool to help me see my screen.

Right now, when I increase the values of: sideview_display_size (and display_zoom) to values greater than 1, the edges of the screen get cut off. This makes sense when smooth follow is turned off, but when its turned on I would expect to be able to see the edges of the display momentarily before the display catches up.

Side note, it would be useful if sideview_smooth_follow_enabled (and virtual_display_smooth_follow_enabled) could contain numerical values rather than just true/false. That way we can set the speed in which the 'virtual follow' works. That way more time could be spent looking at the edges of the screen before it shifts back to the center.

Either way though, thanks for the work done so far, its pretty amazing.

Adding double click support in mouse mode

Steps to reproduce:
1 start driver service
2. Enable driver
3. Put driver into mouse mode
4. Plug in headset
5. [Headset and driver configure and calibrate]
6. Look to an icon (I.e. web browser)
7. <== here is where a double click is needed
8. The web browser opens

Expected results:

  1. There could be a tap pattern that triggers a mouse double-click
  2. There could be a configurable option in the driver or desktop that allows for configuring recalibration tap pattern, mouse mode double click tap pattern, etc.

Actual result:

  1. This feature does not exist.
  2. This is a new feature that would be implemented.

Quick settings in gnome menu

Add quick settings in upper right gnome menu. Similar to Koffein or GSConnect to quick enable/disable the extension and maybe add some quick settings in the dropdown arrow.

grafik

xreal air 2 ultra support

Hi, thanks a lot for your extraordinary work.
I have some trouble to get my setup running.
My XR-Glasses are the xreal air ultras.
My machine is running on Linux Mint 21.3 x86_64 with GNOME 42.9
The setup skript runs throug without any issues.
The verify scripts too. When I'm startting breezy-desktop it says that there is no XR-Device.
systemctl --user enable --now xr-driver.service gives:
Failed to enable unit: Unit file xr-driver.service does not exist.

cat ~/.local/state/xr_driver/driver.log gives:
Driver is disabled
Using hardware id 0958e768d2364df43fc4cb122f1bd53b1fbf3167d1a89c9fbadb2db951a6a655
Feature productivity_basic granted.
Starting up XR driver

the logfile in ~/.local/state/breezy_gnome/logs/ui/breezy_desktop.log is empty
do you have any advice for me to get the things done?

Missing mouse pointer update - gnome wayland

The mouse isn't updated when entering a XWayland window.

How to reproduce

  1. start gnome-wayland session
  2. open a x11 application that it is executed in XWayland (e.g. discord)
  3. hover over elements where the cursor should change (textfields, icons, ...)

Add some way to verify installation

Something as simple as updating the breezy and driver package scripts to build a manifest with checksums for the various installation files. Then we can have a script that verifies the installation by comparing the binary checksums against the manifest, for any files where we do replacements, just verify the presence of those files.

The decky plugin could ultimately call this script and reinstall if the check fails. This would prevent weird cases where a manual breezy install gets the decky plugin out of sync with the underlying driver and shader, or a manual vkbasalt install manages to mess up our vkbasalt install.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.