我喜欢linux用来写代码。
但是linux面临的最大的问题在疫情期间被无限地放大了。那就是软件。
因为项目需要用到演示的内容,但是linux上没有几款可以提供演示的客户端,反正我能想到的几乎最完美的就是通过obs直播串流的方式。但是实在是太卡了,延迟3s,受不了。
teamview那款软件虽然arch有,但是是AUR的。我不放心看了看评论,果然底下一堆人说这个不好用。
于是怎么办呢?我今天下午折腾VNC。觉得可以满足要求了。
VNC是什么呢?说白了和ssh差不多,只不过vnc支持视频罢了。
我想达到的效果是:[前提是在局域网内,互联网不安全。。。]
windows作为服务器,arch可以访问。arch作为服务器,windows可以访问。
好吧,我就不卖关子了,我开始说了。

windows作为服务器,arch可以访问

windows TightVNC下载 程序包括服务器和客户端,都有。
这个软件免费的,风评也不错。
安装后就是打开一下服务器端进行配置一下就可以了。
然后arch访问ip:5900。(ip地址:5900,5900是VNC的端口)
然后就会写一个脚本,需要连windows了就执行一下:

#!/usr/bin/env bash
vncviewer 192.168.3.8:5900

arch作为服务器,windows可以访问

sudo pacman -S tigervncvncserver

vncserver命令用于第一次设置密码。问答式的,然后到.vnc下面。介绍几个配置文件。–和配置服务器一样的。

cd ~/.vnc

archlinux nvim怎么配置Java archlinux安装vnc_客户端

## Supported server options to pass to vncserver upon invocation can be listed
## in this file. See the following manpages for more: vncserver(1) Xvnc(1).
## Several common ones are shown below. Uncomment and modify to your liking.
##
#securitytypes=vncauth,tlsvnc
securitytypes=tlsvnc
desktop=sandbox
geometry=1920x1080
#geometry=1440x900
dpi=96
localhost
alwaysshared

config就是调分辨率,连接方式,连接参数的,照着我的填就ok了。
然后cp xstartup xstartup.bak 备份一下。
直接放我的xstartup文件内容:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
exec dwm

解释一下,我用的是窗口管理器dwm。因此我最后一行填exec dwm。那么你用的其他桌面环境就填对应的就ok了。
然后export XKL_XMODMAP_DISABLE=1是为了解决一些VNC传递过程中可能出现的按键错乱的问题。
然后编写启动arch上vnc服务的脚本。
vim vnc.sh

x0vncserver  -display :0 -passwordfile ~/.vnc/passwd &

chmod u+x vnc.sh
./vnc.sh
然后就可以在windows上的客户端访问了。
输入arch的ip:5900就可以访问了。全屏,就和用arch一样了。
注意,不用的时候可以运行这个脚本:

#!/usr/bin/env bash
killall x0vncserver