tmoe icon indicating copy to clipboard operation
tmoe copied to clipboard

添加AVNC支持

Open Blackwood416 opened this issue 2 years ago • 4 comments

Related problem

RealVNC的vnc viewer在画面显示方面有点问题,而且不是开源的。

Describe the solution you'd like

我找到个叫AVNC的vnc安卓客户端,是开源的,仓库链接 https://github.com/gujjwal00/avnc ,显示效果比vnc viewer要好点,可配置选项也很多,我想兴许可以把它加入tmoe的支持中,就是容器的选项可以加个选择vnc客户端,要是选择AVNC,快捷启动容器vnc的时候就使用am start -n com.gaurav.avnc/com.gaurav.avnc.StartupActivity 跳转到vnc客户端界面

Describe alternatives you've considered

No response

Additional context and details

No response

Blackwood416 avatar Jan 24 '23 03:01 Blackwood416

暂时先这样子改,我之后会加入相关支持的。

sed -i '[email protected]/com.realvnc.viewer.android.app.ConnectionChooserActivity@com.gaurav.avnc/com.gaurav.avnc.StartupActivity@' $(command -v tmoe)

2moe avatar Jan 24 '23 21:01 2moe

想到了一个问题,对于 windows 上的 android 上的 ubuntu (i.e. ubuntu on wsa), 以及 wsl(ubuntu) 上的 alpine, 我们应该启动哪个平台的 vnc app?

我觉得默认应该启动最外层 host 的 app。 比如 wsa(android) 上的 ubuntu, 优先用 windows 上的 vnc app,如果启动失败,再用 android 的 vnc app。 在 wsl 里可以直接启动/调用 windows app, 不过我还没研究过 wsa 能否这样做。

那么问题来了?为什么不直接用 wsl, 而要在 wsa 里用容器?
呜,想到了之前的 issues, 其实我也想知道为什么。

新版会使用配置文件来配置 “连携启动的 vnc”。 下面的配置怎么样?会不会很难看?欢迎提一些改进的意见。

[vnc]
# clients = ["wsa", "android"]
clients = ["$cfg:host.os.type", "$cfg:host.os.name"]

[vnc.server]
# cmd = ["startvnc"]
cmd = ["tigervnc"]

[vnc.client.android]
# cmd = ["open", "vnc://127.0.0.1:5902"]
cmd = ["am", "start", "-n", "$var:avnc"]

[vnc.client.android.var]
avnc = "com.gaurav.avnc/com.gaurav.avnc.StartupActivity"
bvnc_free = "com.iiordanov.freebVNC/com.undatech.opaque.ConnectionGridActivity"
realvnc = "com.realvnc.viewer.android/com.realvnc.viewer.android.app.ConnectionChooserActivity"

[vnc.client.wsl]
workdir = ["/", "mnt", "c", "Users"]
cmd = ["?"]

[vnc.client.windows]
# cmd = ["$var:app", "--xx", "yy"]
cmd = ["$path:app"]

[vnc.client.windows.var]
app = "C:\\Users\\Public\\AppData\\Roaming\\tmm\\bin\\vncviewer.exe"

[vnc.client.windows.path]
app = ["C:", "\\", "Users", "Public", "AppData", "Roaming", "tmm", "bin", "vncviewer.exe"]
# %LOCALAPPDATA%
local_app = ["$env:localappdata", "tmm", "bin", "vncviewer.exe"]
custom_path = ["$env:userprofile", "Downloads", "vncviewer.exe"]

我又想了想,如果让配置文件支持自定义 key 的话,那反序列化会变得有点麻烦。

2moe avatar Jan 24 '23 23:01 2moe

想到了一个问题,对于 windows 上的 android 上的 ubuntu (i.e. ubuntu on wsa), 以及 wsl(ubuntu) 上的 alpine, 我们应该启动哪个平台的 vnc app?

我觉得默认应该启动最上层 host 的 app。 比如 wsa(android) 上的 ubuntu, 优先用 windows 上的 vnc app,如果启动失败,再用 android 的 vnc app。 在 wsl 里可以直接启动/调用 windows app, 不过我还没研究过 wsa 能否这样做。

那么问题来了?为什么不直接用 wsl, 而要在 wsa 里用容器? 呜,想到了之前的 issues, 其实我也想知道为什么。

新版会使用配置文件来配置 “连携启动的 vnc”。 下面的配置怎么样?会不会很难看?欢迎提一些改进的意见。

[vnc]
# clients = ["wsa", "android"]
clients = ["$cfg:host.os.type", "$cfg:host.os.name"]

[vnc.server]
# cmd = ["startvnc"]
cmd = ["tigervnc"]

[vnc.client.android]
# cmd = ["open", "vnc://127.0.0.1:5902"]
cmd = ["am", "start", "-n", "$var:avnc"]

[vnc.client.android.var]
avnc = "com.gaurav.avnc/com.gaurav.avnc.StartupActivity"
bvnc_free = "com.iiordanov.freebVNC/com.undatech.opaque.ConnectionGridActivity"
realvnc = "com.realvnc.viewer.android/com.realvnc.viewer.android.app.ConnectionChooserActivity"

[vnc.client.wsl]
workdir = ["/", "mnt", "c", "Users"]
cmd = ["?"]

[vnc.client.windows]
# cmd = ["$var:app", "--xx", "yy"]
cmd = ["$path:app"]

[vnc.client.windows.var]
app = "C:\\Users\\Public\\AppData\\Roaming\\tmm\\bin\\vncviewer.exe"

[vnc.client.windows.path]
app = ["C:", "Users", "Public", "AppData", "Roaming", "tmm", "bin", "vncviewer.exe"]
# %LOCALAPPDATA%
local_app = ["$env:localappdata", "tmm", "bin", "vncviewer.exe"]
custom_path = ["$env:userprofile", "Downloads", "vncviewer.exe"]

我又想了想,如果让配置文件支持自定义 key 的话,那反序列化会变得有点麻烦。

我觉得调用最上层系统的vnc客户端这个思路是没问题的,毕竟本地连接,性能最重要嘛,一般情况下套娃还是最外层的性能最好。

其实我觉得你这个配置文件这样也还行吧,简单易懂。不过可自定义的配置文件要做反序列化也确实有点麻烦,毕竟换个格式,比如json,好像也没啥区别?

还有如果大佬你觉得麻烦的话慢慢来或者不做都可以的,我提的这种issue解决方案我自己是有的,只是我自己无法做到把仓库folk下来改。大佬你不加这些功能我也只是麻烦了点而已,但是总比我自己改要强。所以你不做也没有关系的哈。

Blackwood416 avatar Jan 25 '23 14:01 Blackwood416

这几天写了个,用来解决跨平台路径的问题。 新版的配置可能要提上日程了,不过不会有上面的变量(var)功能了。

2moe avatar Mar 18 '23 15:03 2moe