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 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

View File

@ -1 +1 @@
2.2.3
2.2.4

View File

@ -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);
}
}
}

View File

@ -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;
}

View File

@ -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"
}