Working recenter shortcut
This commit is contained in:
parent
0742eeb83a
commit
9bd034533f
|
|
@ -1,3 +1,2 @@
|
||||||
/vulkan/build/
|
/vulkan/build/
|
||||||
/build/
|
/build/
|
||||||
/gnome/setup-45.sh
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
# require a first parameter, the user home directory
|
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "Usage: $0 username [group]"
|
echo "Usage: $0 username [group]"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -30,7 +29,6 @@ $user_home/bin/xreal_driver_config -vd
|
||||||
|
|
||||||
sed -i 's/virtual_display/breezy_desktop/g' $user_home/.xreal_driver_config
|
sed -i 's/virtual_display/breezy_desktop/g' $user_home/.xreal_driver_config
|
||||||
|
|
||||||
# if breezy-desktop directory doesn't exit
|
|
||||||
if [ ! -d breezy-desktop ]; then
|
if [ ! -d breezy-desktop ]; then
|
||||||
git clone https://github.com/wheaney/breezy-desktop.git
|
git clone https://github.com/wheaney/breezy-desktop.git
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import Clutter from 'gi://Clutter';
|
import Clutter from 'gi://Clutter';
|
||||||
import GLib from 'gi://GLib';
|
|
||||||
import Meta from 'gi://Meta';
|
import Meta from 'gi://Meta';
|
||||||
import * as PointerWatcher from 'resource:///org/gnome/shell/ui/pointerWatcher.js';
|
import * as PointerWatcher from 'resource:///org/gnome/shell/ui/pointerWatcher.js';
|
||||||
import { MouseSpriteContent } from './cursor.js';
|
import { MouseSpriteContent } from './cursor.js';
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,6 @@ export default class BreezyDesktopExtension extends Extension {
|
||||||
this._effect_enable();
|
this._effect_enable();
|
||||||
return GLib.SOURCE_REMOVE;
|
return GLib.SOURCE_REMOVE;
|
||||||
} else {
|
} else {
|
||||||
console.log(`Not ready: driver_running ${is_driver_running}, target_monitor ${JSON.stringify(target_monitor)}`);
|
|
||||||
return GLib.SOURCE_CONTINUE;
|
return GLib.SOURCE_CONTINUE;
|
||||||
}
|
}
|
||||||
}).bind(this));
|
}).bind(this));
|
||||||
|
|
@ -135,6 +134,13 @@ export default class BreezyDesktopExtension extends Extension {
|
||||||
|
|
||||||
this._overlay.add_effect_with_name('xr-desktop', this._xr_effect);
|
this._overlay.add_effect_with_name('xr-desktop', this._xr_effect);
|
||||||
Meta.disable_unredirect_for_display(global.display);
|
Meta.disable_unredirect_for_display(global.display);
|
||||||
|
const action = Main.wm.addKeybinding(
|
||||||
|
'shortcut-recenter',
|
||||||
|
this.getSettings(),
|
||||||
|
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
||||||
|
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW | Shell.ActionMode.POPUP,
|
||||||
|
this._recenter_display.bind(this)
|
||||||
|
)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Error enabling XR effect', e);
|
console.error('Error enabling XR effect', e);
|
||||||
this._effect_disable();
|
this._effect_disable();
|
||||||
|
|
@ -142,6 +148,13 @@ export default class BreezyDesktopExtension extends Extension {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_recenter_display() {
|
||||||
|
const file = Gio.file_new_for_path('/dev/shm/xr_driver_control');
|
||||||
|
const stream = file.replace(null, false, Gio.FileCreateFlags.NONE, null);
|
||||||
|
stream.write('recenter_screen=true', null);
|
||||||
|
stream.close(null);
|
||||||
|
}
|
||||||
|
|
||||||
_effect_disable() {
|
_effect_disable() {
|
||||||
this._is_effect_running = false;
|
this._is_effect_running = false;
|
||||||
|
|
||||||
|
|
@ -150,8 +163,8 @@ export default class BreezyDesktopExtension extends Extension {
|
||||||
Meta.enable_unredirect_for_display(global.display);
|
Meta.enable_unredirect_for_display(global.display);
|
||||||
|
|
||||||
if (this._overlay) {
|
if (this._overlay) {
|
||||||
this._overlay.remove_effect_by_name('xr-desktop');
|
|
||||||
global.stage.remove_child(this._overlay);
|
global.stage.remove_child(this._overlay);
|
||||||
|
this._overlay.remove_effect_by_name('xr-desktop');
|
||||||
this._overlay.destroy();
|
this._overlay.destroy();
|
||||||
this._overlay = null;
|
this._overlay = null;
|
||||||
}
|
}
|
||||||
|
|
@ -164,7 +177,6 @@ export default class BreezyDesktopExtension extends Extension {
|
||||||
this._cursor_manager.disable();
|
this._cursor_manager.disable();
|
||||||
this._cursor_manager = null;
|
this._cursor_manager = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
disable() {
|
disable() {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
"uuid": "breezydesktop@org.xronlinux",
|
"uuid": "breezydesktop@org.xronlinux",
|
||||||
"name": "Breezy GNOME XR Desktop",
|
"name": "Breezy GNOME XR Desktop",
|
||||||
"description": "XR virtual desktop for GNOME.",
|
"description": "XR virtual desktop for GNOME.",
|
||||||
|
"settings-schema": "org.gnome.shell.extensions.breezy-desktop",
|
||||||
"shell-version": [
|
"shell-version": [
|
||||||
"45", "46"
|
"45", "46"
|
||||||
],
|
],
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,13 @@
|
||||||
|
<schemalist gettext-domain="breezydesktop@org.xronlinux">
|
||||||
|
<schema id="org.gnome.shell.extensions.breezy-desktop" path="/org/gnome/shell/extensions/breezy-desktop/">
|
||||||
|
<key name="shortcut-recenter" type="as">
|
||||||
|
<default>
|
||||||
|
<![CDATA[['<Control><Super>space']]]>
|
||||||
|
</default>
|
||||||
|
<summary>Re-center display</summary>
|
||||||
|
<description>
|
||||||
|
Shortcut to re-center the virtual display.
|
||||||
|
</description>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
||||||
Loading…
Reference in New Issue