Add always use virtual display option for clients

This commit is contained in:
Yukino Song
2025-06-05 16:32:13 +08:00
parent 3e0cbaf2c2
commit f262852838
7 changed files with 50 additions and 11 deletions

View File

@@ -114,6 +114,15 @@
default="true"
></Checkbox>
<!-- Always Use Virtual Display -->
<Checkbox class="mb-3"
id="always_use_virtual_display"
label="pin.always_use_virtual_display"
desc="pin.always_use_virtual_display_desc"
v-model="client.editAlwaysUseVirtualDisplay"
default="false"
v-if="platform === 'windows'"
></Checkbox>
<!-- Display Mode Override -->
<div class="mb-3 mt-2">
<label for="display_mode_override" class="form-label">{{ $t('pin.display_mode_override') }}</label>
@@ -522,6 +531,7 @@
client.editName = client.name;
client.editAllowClientCommands = client.allow_client_commands;
client.editEnableLegacyOrdering = client.enable_legacy_ordering;
client.editAlwaysUseVirtualDisplay = client.always_use_virtual_display;
client.editDisplayMode = client.display_mode;
client.edit_do = JSON.parse(JSON.stringify(client.do || []));
client.edit_undo = JSON.parse(JSON.stringify(client.undo || []));
@@ -537,6 +547,7 @@
client.editDisplayMode = client.display_mode;
client.editAllowClientCommands = client.allow_client_commands;
client.editEnableLegacyOrdering = client.enable_legacy_ordering;
client.editAlwaysUseVirtualDisplay = client.always_use_virtual_display;
},
saveClient(client) {
client.editing = false;
@@ -547,6 +558,7 @@
display_mode: client.editDisplayMode.trim(),
allow_client_commands: client.editAllowClientCommands,
enable_legacy_ordering: client.editEnableLegacyOrdering,
always_use_virtual_display: client.editAlwaysUseVirtualDisplay,
perm: client.editPerm & permissionMapping._all,
do: client.edit_do.reduce((filtered, {cmd: _cmd, elevated}) => {
const cmd = _cmd.trim()
@@ -577,6 +589,14 @@
method: 'POST',
body: JSON.stringify(editedClient)
})
.then(resp => resp.json())
.then(resp => {
if (resp.status) {
this.refreshClients();
} else {
throw new Error(resp.message);
}
})
.catch(err => {
alert(this.i18n.t('pin.save_client_error') + err);
})
@@ -678,6 +698,7 @@
do: _do,
undo,
allow_client_commands,
always_use_virtual_display,
enable_legacy_ordering
}) => {
const permInt = parseInt(perm, 10);
@@ -691,7 +712,8 @@
do: _do,
undo,
allow_client_commands,
enable_legacy_ordering
enable_legacy_ordering,
always_use_virtual_display
}
})
currentEditingClient = null;

View File

@@ -114,8 +114,8 @@
"terminate_on_pause_desc": "Terminate the app when all clients are disconnected.",
"use_app_identity": "Use App Identity",
"use_app_identity_desc": "Use the app's own identity while creating virtual displays instead of client's. This is useful when you want display configuration for each APP separately.",
"virtual_display": "Always use Virtual Display",
"virtual_display_desc": "Always use virtual display on this app, overriding client request. Please make sure the SudoVDA driver is installed and enabled.",
"virtual_display": "Always create Virtual Display",
"virtual_display_desc": "Always create a virtual display when starting this app, overriding client request. Please make sure the SudoVDA driver is installed and enabled.",
"virtual_display_primary": "Enforce Virtual Display Primary",
"virtual_display_primary_desc": "Automatically set the virtual display as primary display when the app starts. Virtual display will always be set to primary when client requests to use virtual display. (Recommended to keep on) [Broken on Windows 11 24H2]",
"wait_all": "Continue streaming until all app processes exit",
@@ -508,6 +508,8 @@
"pin": {
"allow_client_commands": "Allow client commands",
"allow_client_commands_desc": "Allow client commands to be executed when connecting to this device.",
"always_use_virtual_display": "Always create virtual display",
"always_use_virtual_display_desc": "Always create a virtual display when connecting from this device.",
"client_do_cmd": "Client connect commands",
"client_do_cmd_desc": "Commands to be executed when client connects. All of the commands are executed detached.",
"client_undo_cmd": "Client disconnect commands",

View File

@@ -115,8 +115,8 @@
"terminate_on_pause_desc": "当所有客户端断开连接时终止此 APP。",
"use_app_identity": "使用 App 身份",
"use_app_identity_desc": "在创建虚拟显示器时使用 App 自身的身份,而非客户端的。这样可以针对 APP 进行单独的显示器组合配置。",
"virtual_display": "总是使用虚拟显示器",
"virtual_display_desc": "在使用这个 App 的时候总是使用虚拟显示器,覆盖客户端请求。请确保 SudoVDA 虚拟显示器驱动已安装并启用。",
"virtual_display": "总是创建虚拟显示器",
"virtual_display_desc": "在启动这个 App 的时候总是创建虚拟显示器,覆盖客户端请求。请确保 SudoVDA 虚拟显示器驱动已安装并启用。",
"wait_all": "继续串流直到所有应用进程退出",
"wait_all_desc": "这将继续串流直到应用程序启动的所有进程终止。 当未选中时,串流将在初始应用进程终止时停止,即使其他应用进程仍在运行。",
"working_dir": "工作目录",
@@ -501,6 +501,8 @@
"pin": {
"allow_client_commands": "允许客户端命令",
"allow_client_commands_desc": "允许客户端命令在运行此应用时执行。",
"always_use_virtual_display": "总是创建虚拟显示器",
"always_use_virtual_display_desc": "此设备连接时总是创建虚拟显示器。",
"client_do_cmd": "客户端连入命令",
"client_do_cmd_desc": "当此客户端连接时执行的命令。所有命令都以后台模式允许。",
"client_undo_cmd": "客户端断开命令",