diff --git a/README.md b/README.md index 6fcdfb5..b22b783 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ There are two installations available. **Note: Don't manually install either of ## Breezy Desktop -Breezy Desktop is a virtual workspace solution for Linux desktops that use the KDE Plasma 6 or GNOME desktop environments (versions 42 through 48). It supports launching multiple virtual monitors alongside multiple physical monitors. For Linux users not running GNOME or KDE, you can play around with a [nested GNOME setup](#nested-gnome-setup). +Breezy Desktop is a virtual workspace solution for Linux desktops that use the KDE Plasma 6 or GNOME desktop environments (versions 42 through 49). It supports launching multiple virtual monitors alongside multiple physical monitors. For Linux users not running GNOME or KDE, you can play around with a [nested GNOME setup](#nested-gnome-setup). For the best performance, ensure you have the latest graphics drivers installed for your distro. @@ -61,9 +61,13 @@ Breezy GNOME is in AUR (but not pacman, yet). To install, run these commands fro #### Nested-GNOME Setup A workable demo -- but not a great long-term solutions -- 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-47, so check that using `gnome-shell --version` -2. Run the [GNOME setup](#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` +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-49, so check that using `gnome-shell --version` +2. On GNOME 49 and above, you'll also need to install the mutter devkit package +3. Run the [GNOME setup](#gnome-setup) steps. You shouldn't need to log out and back in since GNOME will be running nested. +4. Launch the nested GNOME Shell using: + * GNOME 49 and newer: `MUTTER_DEBUG_DUMMY_MODE_SPECS="1920x1080@60" dbus-run-session -- gnome-shell --devkit` + * Older GNOME versions: `MUTTER_DEBUG_DUMMY_MODE_SPECS="1920x1080@60" dbus-run-session -- gnome-shell --nested` +5. You may have to set developer mode: `gsettings set com.xronlinux.BreezyDesktop developer-mode true` #### Breezy GNOME Usage diff --git a/VERSION b/VERSION index 6b4d157..0476155 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.3 \ No newline at end of file +2.2.4 \ No newline at end of file diff --git a/gnome/src/cursormanager.js b/gnome/src/cursormanager.js index 5a682b3..8c978d9 100644 --- a/gnome/src/cursormanager.js +++ b/gnome/src/cursormanager.js @@ -76,10 +76,20 @@ export class CursorManager { } if (!this._cursorVisibilityChangedId) { - this._cursorTracker.set_pointer_visible(false); + if (this._cursorTracker.inhibit_cursor_visibility) { + this._cursorTracker.inhibit_cursor_visibility(); + } else { + this._cursorTracker.set_pointer_visible(false); + } + this._cursorVisibilityChangedId = this._cursorTracker.connect('visibility-changed', (() => { - if (this._cursorTracker.get_pointer_visible()) - this._cursorTracker.set_pointer_visible(false); + if (this._cursorTracker.get_pointer_visible()) { + if (this._cursorTracker.inhibit_cursor_visibility) { + this._cursorTracker.inhibit_cursor_visibility(); + } else { + this._cursorTracker.set_pointer_visible(false); + } + } }).bind(this)); } } @@ -157,8 +167,13 @@ export class CursorManager { if (this._cursorVisibilityChangedId) { this._cursorTracker.disconnect(this._cursorVisibilityChangedId); delete this._cursorVisibilityChangedId; + - this._cursorTracker.set_pointer_visible(true); + if (this._cursorTracker.uninhibit_cursor_visibility) { + this._cursorTracker.uninhibit_cursor_visibility(); + } else { + this._cursorTracker.set_pointer_visible(true); + } } } diff --git a/gnome/src/extension.js b/gnome/src/extension.js index 6e5fb88..b993221 100644 --- a/gnome/src/extension.js +++ b/gnome/src/extension.js @@ -136,7 +136,8 @@ export default class BreezyDesktopExtension extends Extension { Globals.logger.log_debug('BreezyDesktopExtension _find_supported_monitor - Using dummy monitor'); // find the first of the physical monitors target_monitor = this._monitor_manager.getMonitorPropertiesList()?.find( - monitor => monitor && monitor.product !== VIRTUAL_MONITOR_PRODUCT); + monitor => monitor && monitor.product !== VIRTUAL_MONITOR_PRODUCT) || + this._monitor_manager.getMonitorPropertiesList()?.[0]; is_dummy = true; } diff --git a/gnome/src/metadata.json b/gnome/src/metadata.json index f3064c8..87403d2 100644 --- a/gnome/src/metadata.json +++ b/gnome/src/metadata.json @@ -5,7 +5,7 @@ "settings-schema": "com.xronlinux.BreezyDesktop", "session-modes": ["user"], "shell-version": [ - "46", "47", "48" + "46", "47", "48", "49" ], "url": "https://github.com/wheaney/breezy-desktop" } \ No newline at end of file