Merge branch 'main' into gnome-44-max

This commit is contained in:
wheaney 2025-03-07 20:43:21 -08:00
commit d9cdf1aa6a
26 changed files with 1304 additions and 534 deletions

View File

@ -1 +1 @@
2.0.1
2.0.6

View File

@ -101,7 +101,7 @@ index aae3706..d2e96c0 100644
'breezy-desktop-running': GObject.ParamSpec.boolean(
'breezy-desktop-running',
diff --git a/gnome-44-max/src/extension.js b/gnome-44-max/src/extension.js
index ea30261..814f170 100644
index fcf860f..1f12ec1 100644
--- a/gnome-44-max/src/extension.js
+++ b/gnome-44-max/src/extension.js
@@ -1,28 +1,32 @@
@ -431,7 +431,7 @@ index 7fb013b..bb12660 100644
'monitor-index': GObject.ParamSpec.int(
'monitor-index',
diff --git a/gnome-44-max/src/virtualdisplaysactor.js b/gnome-44-max/src/virtualdisplaysactor.js
index cab3c47..f69eef6 100644
index a4b6a83..a3a4550 100644
--- a/gnome-44-max/src/virtualdisplaysactor.js
+++ b/gnome-44-max/src/virtualdisplaysactor.js
@@ -1,18 +1,19 @@
@ -475,33 +475,3 @@ index cab3c47..f69eef6 100644
Properties: {
'target-monitor': GObject.ParamSpec.jsobject(
'target-monitor',
@@ -538,26 +539,19 @@ export const VirtualDisplaysActor = GObject.registerClass({
this._all_monitors = [
this.target_monitor,
...this.virtual_monitors
- ]
-
- const bannerTextureClippingRect = new Mtk.Rectangle({
- x: 0,
- y: 0,
- width: 800,
- height: 200
- });
+ ];
const calibratingBanner = GdkPixbuf.Pixbuf.new_from_file(`${Globals.extension_dir}/textures/calibrating.png`);
const calibratingImage = new Clutter.Image();
calibratingImage.set_data(calibratingBanner.get_pixels(), Cogl.PixelFormat.RGB_888,
calibratingBanner.width, calibratingBanner.height, calibratingBanner.rowstride);
- this.bannerContent = Clutter.TextureContent.new_from_texture(calibratingImage.get_texture(), bannerTextureClippingRect);
+ this.bannerContent = Clutter.TextureContent.new_from_texture(calibratingImage.get_texture(), null);
const customBanner = GdkPixbuf.Pixbuf.new_from_file(`${Globals.extension_dir}/textures/custom_banner.png`);
const customBannerImage = new Clutter.Image();
customBannerImage.set_data(customBanner.get_pixels(), Cogl.PixelFormat.RGB_888,
customBanner.width, customBanner.height, customBanner.rowstride);
- this.customBannerContent = Clutter.TextureContent.new_from_texture(customBannerImage.get_texture(), bannerTextureClippingRect);
+ this.customBannerContent = Clutter.TextureContent.new_from_texture(customBannerImage.get_texture(), null);
this.bannerActor = new Clutter.Actor({
width: calibratingBanner.width,

View File

@ -121,6 +121,13 @@ var DeviceDataStream = GObject.registerClass({
GObject.ParamFlags.READWRITE,
false
),
'legacy-follow-mode': GObject.ParamSpec.boolean(
'legacy-follow-mode',
'Legacy follow mode',
'Whether the legacy follow mode is enabled',
GObject.ParamFlags.READWRITE,
false
),
'debug-no-device': GObject.ParamSpec.boolean(
'debug-no-device',
'Debug without device',
@ -164,6 +171,12 @@ var DeviceDataStream = GObject.registerClass({
}
}
_ipc_file_exists() {
if (!this._ipc_file_exists_cached) this._ipc_file_exists_cached = this._ipc_file.query_exists(null);
return this._ipc_file_exists_cached;
}
// Refresh the data from the IPC file. if keepalive_only is true, we'll only check and update breezy_desktop_running if it
// hasn't been checked within KEEPALIVE_REFRESH_INTERVAL_SEC.
refresh_data(keepalive_only = false) {
@ -177,13 +190,20 @@ var DeviceDataStream = GObject.registerClass({
}
}
if (this._ipc_file.query_exists(null) && (
if (this._ipc_file_exists() && (
!this.device_data?.imuData ||
!keepalive_only ||
getEpochSec() - toSec(this.device_data?.imuDateMs ?? 0) > KEEPALIVE_REFRESH_INTERVAL_SEC
)) {
let data = this._ipc_file.load_contents(null);
if (data[0]) {
let data;
let data_success = false;
try {
data = this._ipc_file.load_contents(null);
data_success = data[0];
} catch (e) {
Globals.logger.log_debug(`Error loading contents from IPC file: ${e.message}\n${e.stack}`);
}
if (data_success) {
let buffer = new Uint8Array(data[1]).buffer;
let dataView = new DataView(buffer);
if (dataView.byteLength === DATA_VIEW_LENGTH) {
@ -194,7 +214,7 @@ var DeviceDataStream = GObject.registerClass({
const version = dataViewUint8(dataView, VERSION);
const enabled = dataViewUint8(dataView, ENABLED) !== 0 && version === DATA_LAYOUT_VERSION && validData;
let imuData = dataViewFloatArray(dataView, IMU_QUAT_DATA);
let smoothFollowEnabled = dataViewUint8(dataView, SMOOTH_FOLLOW_ENABLED) !== 0;
let smoothFollowEnabled = !this.legacy_follow_mode && dataViewUint8(dataView, SMOOTH_FOLLOW_ENABLED) !== 0;
let smoothFollowOrigin = dataViewFloatArray(dataView, SMOOTH_FOLLOW_ORIGIN_DATA);
const imuResetState = enabled && validData && imuData[0] === 0.0 && imuData[1] === 0.0 && imuData[2] === 0.0 && imuData[3] === 1.0;
const customBannerEnabled = dataViewUint8(dataView, CUSTOM_BANNER_ENABLED) !== 0;
@ -271,6 +291,7 @@ var DeviceDataStream = GObject.registerClass({
this.breezy_desktop_actually_running = false;
}
} else {
this._ipc_file_exists_cached = false;
this.breezy_desktop_actually_running = false;
}
}

View File

@ -80,6 +80,7 @@ class BreezyDesktopExtension {
this.settings.bind('use-optimal-monitor-config',this._monitor_manager, 'use-optimal-monitor-config', Gio.SettingsBindFlags.DEFAULT);
this.settings.bind('headset-as-primary', this._monitor_manager, 'headset-as-primary', Gio.SettingsBindFlags.DEFAULT);
this.settings.bind('disable-physical-displays', this._monitor_manager, 'disable-physical-displays', Gio.SettingsBindFlags.DEFAULT);
this.settings.bind('legacy-follow-mode', Globals.data_stream, 'legacy-follow-mode', Gio.SettingsBindFlags.DEFAULT);
this.settings.bind('debug-no-device', Globals.data_stream, 'debug-no-device', Gio.SettingsBindFlags.DEFAULT);
this._breezy_desktop_running_connection = Globals.data_stream.connect('notify::breezy-desktop-running',
@ -233,6 +234,7 @@ class BreezyDesktopExtension {
virtual_monitors: virtualMonitors,
monitor_wrapping_scheme: this.settings.get_string('monitor-wrapping-scheme'),
monitor_spacing: this.settings.get_int('monitor-spacing'),
headset_display_as_viewport_center: this.settings.get_boolean('headset-display-as-viewport-center'),
viewport_offset_x: this.settings.get_double('viewport-offset-x'),
viewport_offset_y: this.settings.get_double('viewport-offset-y'),
display_distance: this.settings.get_double('display-distance'),
@ -276,6 +278,7 @@ class BreezyDesktopExtension {
this._effect_settings_bindings = [
'monitor-wrapping-scheme',
'headset-display-as-viewport-center',
'viewport-offset-x',
'viewport-offset-y',
'monitor-spacing',
@ -586,11 +589,23 @@ class BreezyDesktopExtension {
Globals.logger.log('Disabling SBS mode due to disabling effect');
this._write_control('sbs_mode', 'disable');
}
if (!for_setup && this.settings.get_boolean('remove-virtual-displays-on-disable')) {
this._remove_virtual_displays();
}
} catch (e) {
Globals.logger.log(`[ERROR] BreezyDesktopExtension _effect_disable ${e.message}\n${e.stack}`);
}
}
_remove_virtual_displays() {
try {
GLib.spawn_command_line_sync(`pkill -f "/virtualdisplay( |$)"`);
} catch (e) {
Globals.logger.log(`[ERROR] BreezyDesktopExtension _remove_virtual_displays ${e.message}\n${e.stack}`);
}
}
disable() {
try {
Globals.logger.log_debug('BreezyDesktopExtension disable');

View File

@ -471,7 +471,7 @@ var VirtualDisplayEffect = GObject.registerClass({
cogl_tex_coord_out[0] = cogl_tex_coord_in;
`
this.add_glsl_snippet(Shell.SnippetHook.VERTEX, declarations, main, false);
this.add_glsl_snippet(Cogl.SnippetHook?.VERTEX ?? Shell.SnippetHook.VERTEX, declarations, main, false);
}
vfunc_paint_target(node, paintContext) {

View File

@ -182,6 +182,7 @@ function monitorWrap(cachedMonitorRadians, radiusPixels, monitorSpacingPixels, m
* and distance to the center of the screen
* @param {Object[]} monitorDetailsList - contains x, y, width, height (coordinates from top-left)
* @param {string} monitorWrappingScheme - horizontal, vertical, none
* @param {number} monitorSpacing - visual spacing between monitors, as a percentage of the viewport width
* @returns {Object[]} - contains NWU vectors pointing to `topLeftNoRotate` and `center` of each monitor
* and a `rotation` angle for the given wrapping scheme
*/
@ -199,7 +200,7 @@ function monitorsToPlacements(fovDetails, monitorDetailsList, monitorWrappingSch
const monitorSpacingPixels = monitorSpacing * fovDetails.widthPixels;
cachedMonitorRadians[0] = -fovDetails.defaultDistanceHorizontalRadians / 2;
monitorDetailsList.forEach(monitorDetails => {
horizontalMonitorSort(monitorDetailsList).forEach(({monitorDetails, originalIndex}) => {
const monitorWrapDetails = monitorWrap(cachedMonitorRadians, sideEdgeRadius, monitorSpacingPixels, monitorDetails.x, monitorDetails.width);
const monitorCenterRadius = Math.sqrt(Math.pow(sideEdgeRadius, 2) - Math.pow(monitorDetails.width / 2, 2));
const upTopPixels = monitorDetails.y + (monitorDetails.y / fovDetails.heightPixels) * monitorSpacingPixels;
@ -211,6 +212,7 @@ function monitorsToPlacements(fovDetails, monitorDetailsList, monitorWrappingSch
const upCenterPixels = upTopPixels + upCenterOriginPixels;
monitorPlacements.push({
originalIndex,
topLeftNoRotate: [
monitorCenterRadius,
@ -258,7 +260,7 @@ function monitorsToPlacements(fovDetails, monitorDetailsList, monitorWrappingSch
const monitorSpacingPixels = monitorSpacing * fovDetails.heightPixels;
cachedMonitorRadians[0] = -fovDetails.defaultDistanceVerticalRadians / 2;
monitorDetailsList.forEach(monitorDetails => {
verticalMonitorSort(monitorDetailsList).forEach(({monitorDetails, originalIndex}) => {
const monitorWrapDetails = monitorWrap(cachedMonitorRadians, topEdgeRadius, monitorSpacingPixels, monitorDetails.y, monitorDetails.height);
const monitorCenterRadius = Math.sqrt(Math.pow(topEdgeRadius, 2) - Math.pow(monitorDetails.height / 2, 2));
const westPixels = monitorDetails.x + (monitorDetails.x / fovDetails.widthPixels) * monitorSpacingPixels;
@ -270,6 +272,7 @@ function monitorsToPlacements(fovDetails, monitorDetailsList, monitorWrappingSch
const westCenterPixels = westPixels + westCenterOriginPixels;
monitorPlacements.push({
originalIndex,
topLeftNoRotate: [
monitorCenterRadius,
@ -313,7 +316,7 @@ function monitorsToPlacements(fovDetails, monitorDetailsList, monitorWrappingSch
const monitorSpacingPixels = monitorSpacing * fovDetails.widthPixels;
// monitors make a flat wall in front of us, no wrapping
monitorDetailsList.forEach(monitorDetails => {
monitorDetailsList.forEach((monitorDetails, index) => {
const upPixels = monitorDetails.y + (monitorDetails.y / fovDetails.heightPixels) * monitorSpacingPixels;
const westPixels = monitorDetails.x + (monitorDetails.x / fovDetails.widthPixels) * monitorSpacingPixels;
@ -325,6 +328,7 @@ function monitorsToPlacements(fovDetails, monitorDetailsList, monitorWrappingSch
const upCenterPixels = upPixels + upCenterOriginPixels;
monitorPlacements.push({
originalIndex: index,
topLeftNoRotate: [
fovDetails.completeScreenDistancePixels,
westPixels,
@ -353,11 +357,44 @@ function monitorsToPlacements(fovDetails, monitorDetailsList, monitorWrappingSch
});
}
// put them back in the original monitor order before returning
monitorPlacements.sort((a, b) => a.originalIndex - b.originalIndex);
Globals.logger.log_debug(`\t\t\tMonitor placements: ${JSON.stringify(monitorPlacements)}, cached values: ${JSON.stringify(cachedMonitorRadians)}`);
return monitorPlacements;
}
// sort monitors based on wrapping scheme before determining their placements to avoid odd gaps
function horizontalMonitorSort(monitors) {
return monitors.map((monitor, index) => ({originalIndex: index, monitorDetails: monitor})).sort((a, b) => {
const aMon = a.monitorDetails;
const bMon = b.monitorDetails;
// First compare by y-coordinate to form rows (top to bottom)
if (aMon.y !== bMon.y) {
return aMon.y - bMon.y;
}
// Then compare by x-coordinate within the same row (left to right)
return aMon.x - bMon.x;
});
}
// sort monitors based on wrapping scheme before determining their placements to avoid odd gaps
function verticalMonitorSort(monitors) {
return monitors.map((monitor, index) => ({originalIndex: index, monitorDetails: monitor})).sort((a, b) => {
const aMon = a.monitorDetails;
const bMon = b.monitorDetails;
// First compare by x-coordinate to form columns (left to right)
if (aMon.x !== bMon.x) {
return aMon.x - bMon.x;
}
// Then compare by y-coordinate within the same column (top to bottom)
return aMon.y - bMon.y;
});
}
var VirtualDisplaysActor = GObject.registerClass({
Properties: {
'target-monitor': GObject.ParamSpec.jsobject(
@ -484,6 +521,13 @@ var VirtualDisplaysActor = GObject.registerClass({
2.5,
1.05
),
'headset-display-as-viewport-center': GObject.ParamSpec.boolean(
'headset-display-as-viewport-center',
'Headset display as viewport center',
'Whether to use the headset display as the reference point for the center of the viewport',
GObject.ParamFlags.READWRITE,
false
),
'lens-vector': GObject.ParamSpec.jsobject(
'lens-vector',
'Lens Vector',
@ -587,6 +631,7 @@ var VirtualDisplaysActor = GObject.registerClass({
notifyToFunction('display-distance', this._handle_display_distance_properties_change);
notifyToFunction('monitor-wrapping-scheme', this._update_monitor_placements);
notifyToFunction('monitor-spacing', this._update_monitor_placements);
notifyToFunction('headset-display-as-viewport-center', this._update_monitor_placements);
notifyToFunction('viewport-offset-x', this._update_monitor_placements);
notifyToFunction('viewport-offset-y', this._update_monitor_placements);
notifyToFunction('show-banner', this._handle_banner_update);
@ -611,7 +656,7 @@ var VirtualDisplaysActor = GObject.registerClass({
Globals.logger.log_debug(`\t\t\tActor to display ratios: ${actorToDisplayRatios}, offsets: ${actorToDisplayOffsets}`);
this._sorted_monitors.forEach(((monitor, index) => {
this._all_monitors.forEach(((monitor, index) => {
Globals.logger.log_debug(`\t\t\tMonitor ${index}: ${monitor.x}, ${monitor.y}, ${monitor.width}, ${monitor.height}`);
const containerActor = new Clutter.Actor({
@ -721,13 +766,13 @@ var VirtualDisplaysActor = GObject.registerClass({
this.display_distance / this._display_distance_default(),
this.smooth_follow_enabled,
this._fov_details(),
this._sorted_monitors
this._all_monitors
);
if (this.focused_monitor_index !== focusedMonitorIndex) {
Globals.logger.log_debug(`Switching to monitor ${focusedMonitorIndex}`);
this.focused_monitor_index = focusedMonitorIndex;
this.focused_monitor_details = this._sorted_monitors[focusedMonitorIndex];
this.focused_monitor_details = this._all_monitors[focusedMonitorIndex];
}
}
@ -776,72 +821,55 @@ var VirtualDisplaysActor = GObject.registerClass({
};
}
_horizontal_monitor_sort() {
return [...this._all_monitors].sort((a, b) => {
// First compare by y-coordinate to form rows (top to bottom)
if (a.y !== b.y) {
return a.y - b.y;
}
// Then compare by x-coordinate within the same row (left to right)
return a.x - b.x;
});
}
_vertical_monitor_sort() {
return [...this._all_monitors].sort((a, b) => {
// First compare by x-coordinate to form columns (left to right)
if (a.x !== b.x) {
return a.x - b.x;
}
// Then compare by y-coordinate within the same column (top to bottom)
return a.y - b.y;
});
}
_update_monitor_placements() {
// collect minimum and maximum x and y values of monitors
let actualWrapScheme = this.monitor_wrapping_scheme;
if (actualWrapScheme === 'automatic') {
try {
const minX = Math.min(...this._all_monitors.map(monitor => monitor.x));
const minY = Math.min(...this._all_monitors.map(monitor => monitor.y));
const maxX = Math.max(...this._all_monitors.map(monitor => monitor.x + monitor.width));
const minY = Math.min(...this._all_monitors.map(monitor => monitor.y));
const maxY = Math.max(...this._all_monitors.map(monitor => monitor.y + monitor.height));
// check if there are more monitors in the horizontal or vertical direction, prefer horizontal if equal
if ((maxX - minX) / this.target_monitor.width >= (maxY - minY) / this.target_monitor.height) {
actualWrapScheme = 'horizontal';
} else {
actualWrapScheme = 'vertical';
// the beginning edges of the viewport if it's centered on all displays
const allDisplaysCenterXBegin = (minX + maxX) / 2 - this.target_monitor.width / 2;
const allDisplaysCenterYBegin = (minY + maxY) / 2 - this.target_monitor.height / 2;
const viewportXBegin = this.headset_display_as_viewport_center ? this.target_monitor.x : allDisplaysCenterXBegin;
const viewportYBegin = this.headset_display_as_viewport_center ? this.target_monitor.y : allDisplaysCenterYBegin;
// collect minimum and maximum x and y values of monitors
let actualWrapScheme = this.monitor_wrapping_scheme;
if (actualWrapScheme === 'automatic') {
// check if there are more monitors in the horizontal or vertical direction, prefer horizontal if equal
if ((maxX - minX) / this.target_monitor.width >= (maxY - minY) / this.target_monitor.height) {
actualWrapScheme = 'horizontal';
} else {
actualWrapScheme = 'vertical';
}
}
const fovDetails = this._fov_details();
this.lens_vector = [0.0, 0.0, -fovDetails.lensDistancePixels];
this.monitor_placements = monitorsToPlacements(
fovDetails,
// shift all monitors so they center around the viewport center, then adjusted by the offsets
this._all_monitors.map(monitor => ({
x: monitor.x - viewportXBegin - this.viewport_offset_x * this.target_monitor.width,
y: monitor.y - viewportYBegin + this.viewport_offset_y * this.target_monitor.height,
width: monitor.width,
height: monitor.height
})),
actualWrapScheme,
this.monitor_spacing / 1000.0
);
// normalize the center vectors
this._monitorsAsNormalizedVectors = this.monitor_placements.map(monitorVectors => {
const vector = monitorVectors.centerLook;
const length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1] + vector[2] * vector[2]);
return [vector[0] / length, vector[1] / length, vector[2] / length];
});
} catch (e) {
Globals.logger.log(`ERROR: virtualdisplaysactor.js _update_monitor_placements ${e.message}\n${e.stack}`);
}
// use horizontal in all cases but vertical wrapping
this._sorted_monitors = actualWrapScheme === 'vertical' ?
this._vertical_monitor_sort() :
this._horizontal_monitor_sort();
const fovDetails = this._fov_details();
this.lens_vector = [0.0, 0.0, -fovDetails.lensDistancePixels];
this.monitor_placements = monitorsToPlacements(
fovDetails,
// shift all monitors so they center around the target monitor, then adjusted by the offsets
this._sorted_monitors.map(monitor => ({
x: monitor.x - this.target_monitor.x - this.viewport_offset_x * this.target_monitor.width,
y: monitor.y - this.target_monitor.y + this.viewport_offset_y * this.target_monitor.height,
width: monitor.width,
height: monitor.height
})),
actualWrapScheme,
this.monitor_spacing / 1000.0
);
// normalize the center vectors
this._monitorsAsNormalizedVectors = this.monitor_placements.map(monitorVectors => {
const vector = monitorVectors.centerLook;
const length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1] + vector[2] * vector[2]);
return [vector[0] / length, vector[1] / length, vector[2] / length];
});
}
_handle_display_distance_properties_change() {

@ -1 +1 @@
Subproject commit a66c9aee82989ea7e98da5a05fde621ffb47af83
Subproject commit 1cc7520d725df7f568ac78d9d19eb6f0881f1680

View File

@ -163,6 +163,15 @@
Automatically set the headset as the primary display upon connection
</description>
</key>
<key name="headset-display-as-viewport-center" type="b">
<default>
false
</default>
<summary>Headset display as viewport center</summary>
<description>
Use the headset display as the reference point for the center of the viewport
</description>
</key>
<key name="use-highest-refresh-rate" type="b">
<default>
true
@ -199,6 +208,24 @@
Disable physical displays when XR effect is enabled
</description>
</key>
<key name="remove-virtual-displays-on-disable" type="b">
<default>
true
</default>
<summary>Remove virtual displays on disable</summary>
<description>
Remove virtual displays when XR effect is disabled
</description>
</key>
<key name="legacy-follow-mode" type="b">
<default>
false
</default>
<summary>Legacy follow mode</summary>
<description>
Enable legacy follow mode
</description>
</key>
<key name="developer-mode" type="b">
<default>
false

@ -1 +1 @@
Subproject commit 5ae87f35970486f12d3896fb6582a0b2d5ab15b2
Subproject commit cfe4c918e2d23b56bf77de62d0d469cc4e5a7c2c

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,33 +27,33 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr ""
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
msgid "Set Focused Display Distance"
msgstr ""
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
msgid "Set All Displays Distance"
msgstr ""
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
msgid "Focused display"
msgstr ""
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
msgid "All displays"
msgstr ""
@ -308,9 +308,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -318,9 +316,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -366,67 +362,113 @@ msgstr ""
msgid "Quickly toggle follow mode."
msgstr ""
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr ""
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr ""
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
msgstr ""
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr ""
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr ""
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
msgid "Remove virtual displays on disable"
msgstr ""
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
msgid "All displays follow mode"
msgstr ""
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr ""
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
"movements, jumps ahead, or is very shaky."
msgstr ""
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr ""
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr ""
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-02 20:54-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@ -29,36 +29,36 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr "Diese Funktion wird von Ihrem Gerät derzeit nicht unterstützt."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Display-Entfernung"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Display-Entfernung"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Display-Entfernung"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Gebogenes Display"
@ -320,9 +320,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -330,9 +328,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -383,15 +379,15 @@ msgstr "Folgemodus-Tastenkombination umschalten"
msgid "Quickly toggle follow mode."
msgstr "Schnell den Folgemodus wechseln."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Erweiterte Einstellungen"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Optimale Display-Konfiguration finden"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -399,31 +395,87 @@ msgstr ""
"Ändern Sie die Display-Konfiguration der Brille automatisch zur maximalen "
"Auflösung und besten Skalierung, wenn sie angeschlossen ist."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Höchste Bildwiederholrate verwenden"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"Die Bildwiederholrate kann die Leistung beeinflussen, deaktivieren Sie dies, "
"um sie manuell festzulegen."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Immer primäres Display"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
"Setzen Sie die Brille automatisch als primäres Display, wenn sie "
"angeschlossen ist."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Gebogenes Display"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Gebogenes Display"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Bewegungsvorausschau"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -434,26 +486,18 @@ msgstr ""
"es sei denn, das virtuelle Display hängt hinter Ihren Kopfbewegungen "
"hinterher, springt vor oder ist sehr wackelig."
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "Standard"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "Textskalierung"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr "Text unter 1.0 skalieren simuliert ein höher aufgelöstes Display"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-02 20:55-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
@ -28,36 +28,36 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr "Esta función no es compatible con tu dispositivo en este momento."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Distancia de la pantalla"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Distancia de la pantalla"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Distancia de la pantalla"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Pantalla curvada"
@ -319,9 +319,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -329,9 +327,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -381,15 +377,15 @@ msgstr "Atajo para alternar el modo de seguimiento"
msgid "Quickly toggle follow mode."
msgstr "Activar el modo de seguimiento."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Configuración Avanzada"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Encuentre la configuración de pantalla óptima"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -398,30 +394,86 @@ msgstr ""
"obtener la máxima resolución y la mejor escalabilidad cuando estén "
"enchufadas."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Utilizar la frecuencia de actualización más alta"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"La frecuencia de actualización puede afectar el rendimiento, deshabilite "
"esto para configurarlo manualmente."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Siempre como pantalla principal"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
"Automáticamente configurar las gafas como pantalla principal al enchufarse."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Pantalla curvada"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Pantalla curvada"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Anticipación de movimiento"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -432,28 +484,20 @@ msgstr ""
"predeterminado a menos que la pantalla virtual se retrase detrás de los "
"movimientos de la cabeza, se adelante o sea muy inestable."
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "Predeterminado"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "Escalado de Texto"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
"Escalando el texto por debajo de 1.0 simulará una pantalla de mayor "
"resolución"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-02 20:54-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: French <traduc@traduc.org>\n"
@ -31,36 +31,36 @@ msgstr ""
"Cette fonctionnalité n'est actuellement pas prise en charge par votre "
"appareil."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Distance d'affichage"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Distance d'affichage"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Distance d'affichage"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Affichage incurvé"
@ -322,9 +322,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -332,9 +330,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -384,15 +380,15 @@ msgstr "Raccourci de basculement du mode de suivi"
msgid "Quickly toggle follow mode."
msgstr "Basculer rapidement le mode de suivi."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Paramètres avancés"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Trouver la configuration d'affichage optimale"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -401,31 +397,87 @@ msgstr ""
"résolution maximale et une meilleure mise à l'échelle lorsque elles sont "
"branchées."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Utiliser le taux de rafraîchissement le plus élevé"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"Un taux de rafraîchissement élevé peut affecter les performances, désactivez-"
"le pour le définir manuellement."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Affichage principal en permanence"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
"Définissez automatiquement les lunettes comme affichage principal "
"lorsqu'elles sont branchées."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Affichage incurvé"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Affichage incurvé"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Prédiction de mouvement"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -435,28 +487,20 @@ msgstr ""
"le temps de rendu. Restez sur la valeur par défaut à moins que l'affichage "
"virtuel ne soit lent, ne saute pas ou ne soit très instable."
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "Par défaut"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "Mise à l'échelle du texte"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
"Une mise à l'échelle du texte en dessous de 1.0 simulera un affichage de "
"plus haute résolution"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-02 21:14-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@ -29,36 +29,36 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr "Questa funzione non è attualmente supportata sul tuo dispositivo."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Distanza del display"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Distanza del display"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Distanza del display"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Display curvo"
@ -320,9 +320,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -330,9 +328,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -383,15 +379,15 @@ msgstr "Scorciatoia per attivare/disattivare la modalità di inseguimento"
msgid "Quickly toggle follow mode."
msgstr "Attivazione/disattivazione rapida della modalità di inseguimento."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Impostazioni avanzate"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Trova la configurazione ottimale del display"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -399,31 +395,87 @@ msgstr ""
"Modifica automaticamente la configurazione del display degli occhiali per "
"ottenere la massima risoluzione e la migliore scalabilità quando collegati."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Usa la frequenza di aggiornamento più elevata"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"La frequenza di aggiornamento potrebbe influire sulle prestazioni, "
"disabilitala per impostarla manualmente."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Imposta sempre come display primario"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
"Imposta automaticamente gli occhiali come display primario quando sono "
"collegati."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Display curvo"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Display curvo"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Anticipo del movimento"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -434,28 +486,20 @@ msgstr ""
"che il display virtuale non rimanga indietro rispetto ai tuoi movimenti, non "
"salti in avanti o sia molto tremolante."
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "Predefinito"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "Ridimensionamento del testo"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
"Ridimensionando il testo sotto a 1.0 si simula una maggiore risoluzione del "
"display"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-02 20:55-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@ -31,36 +31,36 @@ msgstr "メガネを3Dモードに切り替え、表示の幅を2倍にします
msgid "This feature is not currently supported for your device."
msgstr "現在接続されているデバイスはこの機能に対応していません。"
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "ディスプレイ距離"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "ディスプレイ距離"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "ディスプレイ距離"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "曲面ディスプレイ"
@ -322,9 +322,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -332,9 +330,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -384,15 +380,15 @@ msgstr "フォローモードの切り替え"
msgid "Quickly toggle follow mode."
msgstr "フォローモードのオン/オフをすばやく切り替えます。"
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "詳細設定"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "ディスプレイ設定を最適化する"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -400,29 +396,85 @@ msgstr ""
"メガネ接続時、最大解像度と最適なスケーリングのためにディスプレイ設定を自動的"
"に変更します。"
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "最大のリフレッシュレートを使用する"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"リフレッシュレートはパフォーマンスに影響を与える可能性があります。手動で設定"
"する場合は無効にしてください。"
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "常にプライマリディスプレイにする"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr "メガネ接続時、自動的にプライマリディスプレイにします。"
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "曲面ディスプレイ"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "曲面ディスプレイ"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "動きの先読み"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -432,28 +484,20 @@ msgstr ""
"ます。仮想ディスプレイが頭の動きに遅れたり、先に進んだり、非常に揺れたりする"
"場合を除き、デフォルトのままで問題ありません。"
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "デフォルト"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "テキストスケーリング"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
"テキストを1.0未満にスケーリングすると、高解像度ディスプレイをシミュレートしま"
"す。"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-16 10:26-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@ -28,33 +28,33 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr ""
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
msgid "Set Focused Display Distance"
msgstr ""
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
msgid "Set All Displays Distance"
msgstr ""
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
msgid "Focused display"
msgstr ""
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
msgid "All displays"
msgstr ""
@ -309,9 +309,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -319,9 +317,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -367,67 +363,113 @@ msgstr ""
msgid "Quickly toggle follow mode."
msgstr ""
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr ""
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr ""
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
msgstr ""
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr ""
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr ""
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
msgid "Remove virtual displays on disable"
msgstr ""
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
msgid "All displays follow mode"
msgstr ""
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr ""
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
"movements, jumps ahead, or is very shaky."
msgstr ""
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr ""
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr ""
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-19 09:39-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-"
@ -30,36 +30,36 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr "Este recurso não é atualmente suportado para o seu dispositivo."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Distância da tela"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Distância da tela"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Distância da tela"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Tela curva"
@ -321,9 +321,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -331,9 +329,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -381,15 +377,15 @@ msgstr "Atalho para alternar o modo de acompanhamento"
msgid "Quickly toggle follow mode."
msgstr "Alterne rapidamente o modo de acompanhamento."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Configurações Avançadas"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Encontre a configuração de tela ideal"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -397,30 +393,86 @@ msgstr ""
"Modifique automaticamente a configuração de exibição dos óculos para máxima "
"resolução e melhor dimensionamento quando conectado."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Use a taxa de atualização mais alta"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"A taxa de atualização pode afetar o desempenho, desative-a para defini-la "
"manualmente."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Sempre tela principal"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
"Defina automaticamente os óculos como a tela primária quando conectados."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Tela curva"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Tela curva"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Antecipação de movimento"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -431,27 +483,19 @@ msgstr ""
"virtual tenha atrasos, avance ou seja muito instável em relação aos "
"movimentos da cabeça "
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "Padrão"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "Redimensionamento de Texto"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
"Redimensionar o texto abaixo de 1.0 simulará uma tela de resolução mais alta"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-17 09:39-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
@ -29,36 +29,36 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr "Эта функция в настоящее время не поддерживается для вашего устройства."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Расстояние дисплея"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Расстояние дисплея"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Расстояние дисплея"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Изогнутый дисплей"
@ -321,9 +321,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -331,9 +329,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -381,15 +377,15 @@ msgstr "Сочетание клавиш для переключения режи
msgid "Quickly toggle follow mode."
msgstr "Быстро переключать режим следования."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Дополнительные настройки"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Найти оптимальную конфигурацию дисплея"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -397,31 +393,87 @@ msgstr ""
"Автоматически изменять конфигурацию дисплея очков для максимального "
"разрешения и лучшей масштабирования при подключении."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Использовать высшую частоту обновления"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"Частота обновления может повлиять на производительность, отключите это, "
"чтобы установить ее вручную."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Всегда основной дисплей"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr ""
"Автоматически устанавливать очки в качестве основного дисплея при "
"подключении."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Изогнутый дисплей"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Изогнутый дисплей"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Прогнозирование движения"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -432,26 +484,18 @@ msgstr ""
"виртуальный дисплей не отстает от движений вашей головы, не опережает или не "
"очень трясётся."
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "По умолчанию"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr ""
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-16 10:31-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@ -29,36 +29,36 @@ msgstr ""
msgid "This feature is not currently supported for your device."
msgstr "Din enhet stöder inte den här funktionen för tillfället."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Avstånd till skärmen"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Avstånd till skärmen"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Avstånd till skärmen"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Böjd skärm"
@ -320,9 +320,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -330,9 +328,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -382,15 +378,15 @@ msgstr "Växla följ läge kort"
msgid "Quickly toggle follow mode."
msgstr "Växla snabbt följ läge."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Avancerade inställningar"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Hitta optimal konfiguration till skärmen"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -398,29 +394,85 @@ msgstr ""
"Ändrar automatisk glasögonens skärmkonfiguration för maximal upplösning och "
"bästa skälning när den är ansluten."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Använd högsta uppdateringsfrekvens"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"Uppdateringsfrekvens kan påverka prestanda, inaktivera detta för att ställa "
"in det manuellt."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Alltid primär skärm"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr "Ställer automatisk glasögon som primär skärm när den är ansluten."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Böjd skärm"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Böjd skärm"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Rörs förväntning"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -429,26 +481,18 @@ msgstr ""
"Motverkar ingångsfördröjning genom förutsägelse av huvudrörelser.Behåll "
"standardinställningen om inte skärmen skakar mycket eller rörsig konstigt."
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "Standard"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "Textskalning"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr "Textskalning under 1.0 kommer att simulera en högre skärmupplösning"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-17 10:08-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@ -28,36 +28,36 @@ msgstr "Переключає окуляри в режим «бок о бок»
msgid "This feature is not currently supported for your device."
msgstr "Ця функція наразі не підтримується на вашому пристрої."
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "Відстань дисплея"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "Відстань дисплея"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "Відстань дисплея"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "Викривлений дисплей"
@ -321,9 +321,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -331,9 +329,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -381,15 +377,15 @@ msgstr "Сполучення клавіш для перемикання режи
msgid "Quickly toggle follow mode."
msgstr "Швидко перемикати режим слідування."
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "Додаткові налаштування"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "Знайти оптимальну конфігурацію дисплея"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
@ -397,29 +393,85 @@ msgstr ""
"Автоматично змінює конфігурацію дисплея окулярів для максимальної роздільної "
"здатності і найкращого масштабування при підключенні."
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "Використовувати найвищу частоту оновлення"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr ""
"Частота оновлення може вплинути на продуктивність, вимкніть це, щоб "
"встановити її вручну."
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "Завжди основний дисплей"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr "Автоматично встановлює окуляри як основний дисплей при підключенні."
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "Викривлений дисплей"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "Викривлений дисплей"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "Прогнозування руху"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -430,26 +482,18 @@ msgstr ""
"віртуальний дисплей відстає від рухів вашої голови, випереджає або дуже "
"тремтить."
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "За замовчуванням"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr ""
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr ""
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-06 15:32-0800\n"
"POT-Creation-Date: 2025-03-07 20:36-0800\n"
"PO-Revision-Date: 2024-08-02 20:55-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@ -26,36 +26,36 @@ msgstr "切换到并排模式,并将显示宽度翻倍。"
msgid "This feature is not currently supported for your device."
msgstr "您的设备目前不支援此功能。"
#: src/connecteddevice.py:125
#: src/connecteddevice.py:134
#, fuzzy
msgid "Set Focused Display Distance"
msgstr "显示距离"
#: src/connecteddevice.py:126
#: src/connecteddevice.py:135
msgid "Use a closer value so the display zooms in when you look at it."
msgstr ""
#: src/connecteddevice.py:133
#: src/connecteddevice.py:142
#, fuzzy
msgid "Set All Displays Distance"
msgstr "显示距离"
#: src/connecteddevice.py:134
#: src/connecteddevice.py:143
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:232
#: src/connecteddevice.py:248
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr ""
#: src/connecteddevice.py:266
#: src/connecteddevice.py:282
#, fuzzy
msgid "Focused display"
msgstr "显示距离"
#: src/connecteddevice.py:272
#: src/connecteddevice.py:288
#, fuzzy
msgid "All displays"
msgstr "曲面显示"
@ -317,9 +317,7 @@ msgid "Viewport horizontal offset"
msgstr ""
#: src/gtk/connected-device.ui:293
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport to the left or right."
msgid "Move the viewport to the left or right of its default position."
msgstr ""
#: src/gtk/connected-device.ui:322
@ -327,9 +325,7 @@ msgid "Viewport vertical offset"
msgstr ""
#: src/gtk/connected-device.ui:323
msgid ""
"By default, the viewport will center on the primary display. Use this slider "
"to move the viewport up or down."
msgid "Move the viewport up or down from its default position."
msgstr ""
#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365
@ -377,41 +373,97 @@ msgstr "切换跟随模式快捷键"
msgid "Quickly toggle follow mode."
msgstr "快速切换跟随模式。"
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497
#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501
msgid "Advanced Settings"
msgstr "高级设定"
#: src/gtk/connected-device.ui:500
#: src/gtk/connected-device.ui:505
msgid "Find optimal display config"
msgstr "寻找最佳显示设定"
#: src/gtk/connected-device.ui:501
#: src/gtk/connected-device.ui:506
msgid ""
"Automatically modify the glasses display configuration for maximum "
"resolution and best scaling when plugged in."
msgstr "连接时,可以自动修改眼镜显示设定以表现出最大解析度和最佳的对比。"
#: src/gtk/connected-device.ui:511
#: src/gtk/connected-device.ui:516
msgid "Use highest refresh rate"
msgstr "使用最高刷新率"
#: src/gtk/connected-device.ui:512
#: src/gtk/connected-device.ui:517
msgid "Refresh rate may affect performance, disable this to set it manually."
msgstr "刷新率可能会影响性能,禁用此功能即可手动设置。"
#: src/gtk/connected-device.ui:522
#: src/gtk/connected-device.ui:527
msgid "Center on glasses' display"
msgstr ""
#: src/gtk/connected-device.ui:528
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr ""
#: src/gtk/connected-device.ui:538
msgid "Always primary display"
msgstr "每次设置为主要显示"
#: src/gtk/connected-device.ui:523
#: src/gtk/connected-device.ui:539
msgid "Automatically set the glasses as the primary display when plugged in."
msgstr "连接时,自动将眼镜设置为主要显示。"
#: src/gtk/connected-device.ui:533
#: src/gtk/connected-device.ui:549
#, fuzzy
msgid "Remove virtual displays on disable"
msgstr "曲面显示"
#: src/gtk/connected-device.ui:550
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr ""
#: src/gtk/connected-device.ui:560
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:561
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/connected-device.ui:571
#, fuzzy
msgid "All displays follow mode"
msgstr "曲面显示"
#: src/gtk/connected-device.ui:572
msgid "Follow mode moves all displays, not just the focused one."
msgstr ""
#: src/gtk/connected-device.ui:588
msgid "Follow mode movement tracking"
msgstr ""
#: src/gtk/connected-device.ui:589
msgid "Choose which movements should be tracked in follow mode."
msgstr ""
#: src/gtk/connected-device.ui:604
msgid "Horizontal"
msgstr ""
#: src/gtk/connected-device.ui:624
msgid "Vertical"
msgstr ""
#: src/gtk/connected-device.ui:644
msgid "Tilt/roll"
msgstr ""
#: src/gtk/connected-device.ui:662
msgid "Movement look-ahead"
msgstr "移动预测"
#: src/gtk/connected-device.ui:534
#: src/gtk/connected-device.ui:663
msgid ""
"Counteracts input lag by predicting head-tracking position ahead of render "
"time. Stick with default unless virtual display drags behind your head "
@ -420,26 +472,18 @@ msgstr ""
"透过预测头部追踪位置,提前于渲染时间进行预测来抵消输入延迟。除非虚拟显示滞后"
"于头部,提前跳动或非常抖动,请尽量使用默认设置。"
#: src/gtk/connected-device.ui:552
#: src/gtk/connected-device.ui:681
msgid "Default"
msgstr "默认"
#: src/gtk/connected-device.ui:564
#: src/gtk/connected-device.ui:693
msgid "Text Scaling"
msgstr "字体大小比例"
#: src/gtk/connected-device.ui:565
#: src/gtk/connected-device.ui:694
msgid "Scaling text below 1.0 will simulate a higher resolution display"
msgstr "字体缩放小于1.0,将模拟解析度更高的显示效果"
#: src/gtk/connected-device.ui:595
msgid "Enable multi-tap detection"
msgstr ""
#: src/gtk/connected-device.ui:596
msgid "Enables double-tap to recenter and triple-tap to recalibrate."
msgstr ""
#: src/gtk/display-distance-dialog.ui:9
msgid "Show full range"
msgstr ""

View File

@ -7,6 +7,9 @@ class ConfigManager(GObject.GObject):
__gproperties__ = {
'breezy-desktop-enabled': (bool, 'Breezy Desktop Enabled', 'Whether Breezy Desktop is enabled', False, GObject.ParamFlags.READWRITE),
'multi-tap-enabled': (bool, 'Multi-Tap Enabled', 'Whether Multi-Tap is enabled', False, GObject.ParamFlags.READWRITE),
'follow-track-roll': (bool, 'Follow Track Roll', 'Whether to follow on the roll axis', False, GObject.ParamFlags.READWRITE),
'follow-track-pitch': (bool, 'Follow Track Pitch', 'Whether to follow on the pitch axis', True, GObject.ParamFlags.READWRITE),
'follow-track-yaw': (bool, 'Follow Track Yaw', 'Whether to follow on the yaw axis', True, GObject.ParamFlags.READWRITE)
}
_instance = None
@ -29,6 +32,9 @@ class ConfigManager(GObject.GObject):
self.ipc = XRDriverIPC.get_instance()
self.breezy_desktop_enabled = None
self.multi_tap_enabled = None
self.follow_track_roll = None
self.follow_track_pitch = None
self.follow_track_yaw = None
self._running = True
self._refresh_config()
@ -43,6 +49,15 @@ class ConfigManager(GObject.GObject):
if self.config['multi_tap_enabled'] != self.multi_tap_enabled:
self.set_property('multi-tap-enabled', self.config['multi_tap_enabled'])
if self.config['smooth_follow_track_roll'] != self.follow_track_roll:
self.set_property('follow-track-roll', self.config['smooth_follow_track_roll'])
if self.config['smooth_follow_track_pitch'] != self.follow_track_pitch:
self.set_property('follow-track-pitch', self.config['smooth_follow_track_pitch'])
if self.config['smooth_follow_track_yaw'] != self.follow_track_yaw:
self.set_property('follow-track-yaw', self.config['smooth_follow_track_yaw'])
if self._running: threading.Timer(1.0, self._refresh_config).start()
def _is_breezy_desktop_enabled(self):
@ -65,14 +80,44 @@ class ConfigManager(GObject.GObject):
self.ipc.write_config(self.config)
self.multi_tap_enabled = value
def _set_follow_track_roll(self, value):
if self.follow_track_roll != value:
self.config['smooth_follow_track_roll'] = value
self.ipc.write_config(self.config)
self.follow_track_roll = value
def _set_follow_track_pitch(self, value):
if self.follow_track_pitch != value:
self.config['smooth_follow_track_pitch'] = value
self.ipc.write_config(self.config)
self.follow_track_pitch = value
def _set_follow_track_yaw(self, value):
if self.follow_track_yaw != value:
self.config['smooth_follow_track_yaw'] = value
self.ipc.write_config(self.config)
self.follow_track_yaw = value
def do_set_property(self, prop, value):
if prop.name == 'breezy-desktop-enabled':
self._set_breezy_desktop_enabled(value)
elif prop.name == 'multi-tap-enabled':
self._set_multi_tap_enabled(value)
elif prop.name == 'follow-track-roll':
self._set_follow_track_roll(value)
elif prop.name == 'follow-track-pitch':
self._set_follow_track_pitch(value)
elif prop.name == 'follow-track-yaw':
self._set_follow_track_yaw(value)
def do_get_property(self, prop):
if prop.name == 'breezy-desktop-enabled':
return self.breezy_desktop_enabled
elif prop.name == 'multi-tap-enabled':
return self.multi_tap_enabled
return self.multi_tap_enabled
elif prop.name == 'follow-track-roll':
return self.follow_track_roll
elif prop.name == 'follow-track-pitch':
return self.follow_track_pitch
elif prop.name == 'follow-track-yaw':
return self.follow_track_yaw

View File

@ -48,7 +48,9 @@ class ConnectedDevice(Gtk.Box):
toggle_display_distance_shortcut_label = Gtk.Template.Child()
reassign_toggle_follow_shortcut_button = Gtk.Template.Child()
toggle_follow_shortcut_label = Gtk.Template.Child()
headset_display_as_viewport_center_switch = Gtk.Template.Child()
headset_as_primary_switch = Gtk.Template.Child()
remove_virtual_displays_on_disable_switch = Gtk.Template.Child()
use_optimal_monitor_config_switch = Gtk.Template.Child()
use_highest_refresh_rate_switch = Gtk.Template.Child()
movement_look_ahead_scale = Gtk.Template.Child()
@ -56,6 +58,10 @@ class ConnectedDevice(Gtk.Box):
text_scaling_scale = Gtk.Template.Child()
text_scaling_adjustment = Gtk.Template.Child()
enable_multi_tap_switch = Gtk.Template.Child()
legacy_follow_mode_switch = Gtk.Template.Child()
follow_track_yaw_switch = Gtk.Template.Child()
follow_track_pitch_switch = Gtk.Template.Child()
follow_track_roll_switch = Gtk.Template.Child()
monitor_wrapping_scheme_menu = Gtk.Template.Child()
monitor_spacing_scale = Gtk.Template.Child()
monitor_spacing_adjustment = Gtk.Template.Child()
@ -97,11 +103,14 @@ class ConnectedDevice(Gtk.Box):
self.settings.bind('follow-threshold', self.follow_threshold_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT)
# self.settings.bind('widescreen-mode', self.widescreen_mode_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
# self.settings.bind('curved-display', self.curved_display_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('headset-display-as-viewport-center', self.headset_display_as_viewport_center_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('headset-as-primary', self.headset_as_primary_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('remove-virtual-displays-on-disable', self.remove_virtual_displays_on_disable_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('use-optimal-monitor-config', self.use_optimal_monitor_config_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('use-highest-refresh-rate', self.use_highest_refresh_rate_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
# self.settings.bind('fast-sbs-mode-switching', self.fast_sbs_mode_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('look-ahead-override', self.movement_look_ahead_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('legacy-follow-mode', self.legacy_follow_mode_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('monitor-spacing', self.monitor_spacing_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('viewport-offset-x', self.viewport_offset_x_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('viewport-offset-y', self.viewport_offset_y_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT)
@ -152,8 +161,10 @@ class ConnectedDevice(Gtk.Box):
self.config_manager = ConfigManager.get_instance()
self.config_manager.connect('notify::breezy-desktop-enabled', self._handle_enabled_config)
self.config_manager.bind_property('multi-tap-enabled', self.enable_multi_tap_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
self.enable_multi_tap_switch.connect('notify::active', lambda widget, param: self.config_manager.set_property('multi-tap-enabled', widget.get_active()))
self._bind_switch_to_config(self.enable_multi_tap_switch, 'multi-tap-enabled')
self._bind_switch_to_config(self.follow_track_roll_switch, 'follow-track-roll')
self._bind_switch_to_config(self.follow_track_pitch_switch, 'follow-track-pitch')
self._bind_switch_to_config(self.follow_track_yaw_switch, 'follow-track-yaw')
self.use_optimal_monitor_config_switch.connect('notify::active', self._refresh_use_optimal_monitor_config)
@ -176,6 +187,11 @@ class ConnectedDevice(Gtk.Box):
if appinfo.get_id() == 'gnome-display-panel.desktop':
self._settings_displays_app_info = appinfo
break
def _bind_switch_to_config(self, switch, config_key):
self.config_manager.bind_property(config_key, switch, 'active', Gio.SettingsBindFlags.DEFAULT)
switch.set_active(self.config_manager.get_property(config_key))
switch.connect('notify::active', lambda widget, param: self.config_manager.set_property(config_key, widget.get_active()))
def _handle_zoom_on_focus_switch_changed(self, widget, param):
display_distance = self.settings.get_double('display-distance')
@ -316,9 +332,6 @@ class ConnectedDevice(Gtk.Box):
def _on_virtual_displays_update_gui(self, virtual_display_manager):
effect_enabled = self.effect_enable_switch.get_active()
virtual_displays_present = len(virtual_display_manager.displays) > 0
self.launch_display_settings_button.set_visible(
self._settings_displays_app_info is not None and virtual_displays_present
)
self.monitor_wrapping_scheme_menu.set_sensitive(effect_enabled and virtual_displays_present)
self.monitor_spacing_scale.set_sensitive(effect_enabled and virtual_displays_present)
@ -335,7 +348,9 @@ class ConnectedDevice(Gtk.Box):
new_displays_by_pid[display['pid']] = child
self.top_features_group.add(self.launch_display_settings_row)
self.launch_display_settings_row.set_visible(len(virtual_display_manager.displays) > 0)
self.launch_display_settings_row.set_visible(
self._settings_displays_app_info is not None and virtual_displays_present
)
self.virtual_displays_by_pid = new_displays_by_pid

View File

@ -290,7 +290,7 @@
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes"><!-- adjustment slider -->Viewport horizontal offset</property>
<property name="subtitle" translatable="yes">By default, the viewport will center on the primary display. Use this slider to move the viewport to the left or right.</property>
<property name="subtitle" translatable="yes">Move the viewport to the left or right of its default position.</property>
<child>
<object class="GtkScale" id="viewport_offset_x_scale">
<property name="valign">3</property>
@ -320,7 +320,7 @@
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes"><!-- adjustment slider -->Viewport vertical offset</property>
<property name="subtitle" translatable="yes">By default, the viewport will center on the primary display. Use this slider to move the viewport up or down.</property>
<property name="subtitle" translatable="yes">Move the viewport up or down from its default position.</property>
<child>
<object class="GtkScale" id="viewport_offset_y_scale">
<property name="valign">3</property>
@ -492,9 +492,14 @@
<property name="icon-name">applications-system-symbolic</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">2</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">20</property>
<child>
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes"><!-- section heading for the advanced settings -->Advanced Settings</property>
<property name="width-request">450</property>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes"><!-- feature that tries to the find best-fit monitor config -->Find optimal display config</property>
@ -517,6 +522,17 @@
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Center on glasses' display</property>
<property name="subtitle" translatable="yes">Center the viewport on the glasses' display, even if the display is not in the middle.</property>
<child>
<object class="GtkSwitch" id="headset_display_as_viewport_center_switch">
<property name="valign">3</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Always primary display</property>
@ -528,6 +544,119 @@
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Remove virtual displays on disable</property>
<property name="subtitle" translatable="yes">Automatically remove virtual displays when the XR effect is disabled.</property>
<child>
<object class="GtkSwitch" id="remove_virtual_displays_on_disable_switch">
<property name="valign">3</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Enable multi-tap detection</property>
<property name="subtitle" translatable="yes">Enables double-tap to recenter and triple-tap to recalibrate.</property>
<child>
<object class="GtkSwitch" id="enable_multi_tap_switch">
<property name="valign">3</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">All displays follow mode</property>
<property name="subtitle" translatable="yes">Follow mode moves all displays, not just the focused one.</property>
<child>
<object class="GtkSwitch" id="legacy_follow_mode_switch">
<property name="valign">3</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<property name="title"> </property>
<property name="width-request">700</property>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Follow mode movement tracking</property>
<property name="subtitle" translatable="yes">Choose which movements should be tracked in follow mode.</property>
<child>
<object class="GtkBox">
<property name="spacing">30</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="halign">start</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<property name="halign">center</property>
<property name="width-request">80</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Horizontal</property>
<property name="valign">3</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="follow_track_yaw_switch">
<property name="valign">3</property>
<property name="halign">center</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<property name="halign">center</property>
<property name="width-request">80</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Vertical</property>
<property name="valign">3</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="follow_track_pitch_switch">
<property name="valign">3</property>
<property name="halign">center</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<property name="halign">center</property>
<property name="width-request">80</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Tilt/roll</property>
<property name="valign">3</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="follow_track_roll_switch">
<property name="valign">3</property>
<property name="halign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Movement look-ahead</property>
@ -590,17 +719,6 @@
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Enable multi-tap detection</property>
<property name="subtitle" translatable="yes">Enables double-tap to recenter and triple-tap to recalibrate.</property>
<child>
<object class="GtkSwitch" id="enable_multi_tap_switch">
<property name="valign">3</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>

View File

@ -111,7 +111,9 @@ class BreezydesktopApplication(Adw.Application):
logo_icon_name='com.xronlinux.BreezyDesktop',
version=self.version,
authors=['Wayne Heaney'],
copyright='© 2024 Wayne Heaney')
copyright='© 2025 Wayne Heaney',
license_type=Gtk.License.GPL_3_0,
wrap_license=True)
about.present()
def on_license_action(self, widget, _):

View File

@ -101,6 +101,11 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
else:
self.main_content.append(self.connected_device)
self.connected_device.set_device_name(state_manager.connected_device_name)
self.set_resizable(True)
self.set_default_size(1, 1)
return False
def _on_license_button_clicked(self, widget):
dialog = LicenseDialog()