Merge branch 'main' into gnome-44-max
This commit is contained in:
commit
d9cdf1aa6a
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/de.po
112
ui/po/de.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/es.po
112
ui/po/es.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/fr.po
112
ui/po/fr.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/it.po
112
ui/po/it.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/ja.po
112
ui/po/ja.po
|
|
@ -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 ""
|
||||
|
|
|
|||
110
ui/po/pl.po
110
ui/po/pl.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/pt_BR.po
112
ui/po/pt_BR.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/ru.po
112
ui/po/ru.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/sv.po
112
ui/po/sv.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/uk_UA.po
112
ui/po/uk_UA.po
|
|
@ -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 ""
|
||||
|
|
|
|||
112
ui/po/zh_CN.po
112
ui/po/zh_CN.po
|
|
@ -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 ""
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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, _):
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue