Add GNOME 49 support, v2.3

This commit is contained in:
wheaney 2025-09-24 13:40:22 -07:00
parent 1a1cbc94c5
commit 091ffff822
5 changed files with 31 additions and 11 deletions

View File

@ -14,7 +14,7 @@ There are two installations available. **Note: Don't manually install either of
## Breezy Desktop ## 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. 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 #### 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: 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` 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. Run the [GNOME setup](#gnome-setup) steps. You shouldn't need to log out and back in since GNOME will be running nested. 2. On GNOME 49 and above, you'll also need to install the mutter devkit package
3. Launch the nested GNOME Shell using `MUTTER_DEBUG_DUMMY_MODE_SPECS="1920x1080@60" dbus-run-session -- gnome-shell --nested` 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 #### Breezy GNOME Usage

View File

@ -1 +1 @@
2.2.3 2.2.4

View File

@ -76,10 +76,20 @@ export class CursorManager {
} }
if (!this._cursorVisibilityChangedId) { 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', (() => { this._cursorVisibilityChangedId = this._cursorTracker.connect('visibility-changed', (() => {
if (this._cursorTracker.get_pointer_visible()) if (this._cursorTracker.get_pointer_visible()) {
this._cursorTracker.set_pointer_visible(false); if (this._cursorTracker.inhibit_cursor_visibility) {
this._cursorTracker.inhibit_cursor_visibility();
} else {
this._cursorTracker.set_pointer_visible(false);
}
}
}).bind(this)); }).bind(this));
} }
} }
@ -158,7 +168,12 @@ export class CursorManager {
this._cursorTracker.disconnect(this._cursorVisibilityChangedId); this._cursorTracker.disconnect(this._cursorVisibilityChangedId);
delete 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);
}
} }
} }

View File

@ -136,7 +136,8 @@ export default class BreezyDesktopExtension extends Extension {
Globals.logger.log_debug('BreezyDesktopExtension _find_supported_monitor - Using dummy monitor'); Globals.logger.log_debug('BreezyDesktopExtension _find_supported_monitor - Using dummy monitor');
// find the first of the physical monitors // find the first of the physical monitors
target_monitor = this._monitor_manager.getMonitorPropertiesList()?.find( 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; is_dummy = true;
} }

View File

@ -5,7 +5,7 @@
"settings-schema": "com.xronlinux.BreezyDesktop", "settings-schema": "com.xronlinux.BreezyDesktop",
"session-modes": ["user"], "session-modes": ["user"],
"shell-version": [ "shell-version": [
"46", "47", "48" "46", "47", "48", "49"
], ],
"url": "https://github.com/wheaney/breezy-desktop" "url": "https://github.com/wheaney/breezy-desktop"
} }