我为基于 Fedora 30(即将推出 32)的“数字标牌客户端”设置了自动启动安装,现在我想在安装中添加“Gnome 屏幕共享”的启用,以便能够获得实际的视觉反馈现在屏幕上的内容。我通过 GUI 中的设置(设置 - 共享 - 屏幕共享)使其工作,并且我还可以通过 gesettings 设置“子设置”,例如
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
但我无法找到启用“屏幕共享”本身的设置。当我通过 GUI 启用它时,我可以通过以下方式查看systemctl status
:
systemctl status | grep gnome-remote | grep -v grep
│ │ ├─gnome-remote-desktop.service
│ │ │ └─5572 /usr/libexec/gnome-remote-desktop-daemon
我尝试直接使用 systemctl start 启动此服务以及“守护进程”,但它只会导致Failed to start gnome-remote-desktop-daemon.service: Unit gnome-remote-desktop-daemon.service not found.
有两个非常相似的问题,但似乎已经过时了,因为我没有模式“org.gnome.Vino”:
那么:如何通过命令行启用 Gnome 屏幕共享?
添加:
我投入了大量的时间来让它发挥作用,并且可以解决除一个问题之外的所有问题。我现在知道,我必须以用户身份启动服务,所以我的整个过程是:
# Configuration
gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
gsettings set org.gnome.settings-daemon.plugins.sharing.service:/org/gnome/settings-daemon/plugins/sharing/gnome-remote-desktop/ enabled-connections "['$( grep UUID /etc/sysconfig/network-scripts/ifcfg-enp1s0 | cut -d= -f2)']"
# Start the Remote-Desktop-Service
systemctl start --user gnome-remote-desktop
我将其设置为“密码”,以免有人点击“接受”,将“仅查看”设置为“假”,以便能够控制它并设置我的网络接口的 UUID。之后我可以启动正确配置的服务。
所以最后一个缺少的步骤是,我无法通过命令行设置密码。我尝试过像葡萄酒和秘密工具一样,但它不起作用
gsettings set org.gnome.Vino vnc-password $(echo -n "myPassword"|base64)
secret-tool store --label='Label' {attribute} {value}
秘密工具的问题可能是,Gnome 密钥环中的原始条目没有“属性”和“值”,但这些对于秘密工具来说是强制性的,所以我无法以 1:1 重现该条目。
那么:有人知道如何通过 cli 正确设置 gnome-screen-sharing 的密码吗?
答案1
所以我在研究了几个小时后做到了。
你的指示是正确的。但是,GNOME 不允许 VNC 连接如果您的屏幕被锁定。因此,使用loginctl list-sessions
you 可以列出你的会话。找到图形化的(应该有一个标识符或类似的)并使用where comes from列seat0
解锁它。为了验证,您可以而且应该拥有。完成后,尝试通过 VNC 登录。对我来说,它立即起作用了。loginctl unlock-session X
X
ID
list-sessions
loginctl show-session X
LockedHint=no
回顾一下,以下是所有步骤:
gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
echo -n 'password' | secret-tool store --label="GNOME Remote Desktop VNC password" "xdg:schema" "org.gnome.RemoteDesktop.VncPassword"
systemctl --user start gnome-remote-desktop.service
loginctl unlock-session $(loginctl --no-legend --value list-sessions | awk '/seat/ { print $1}')
不需要允许网络接口或其他任何东西
答案2
我已经清理并分叉了一个可以在禁用 Wayland 的 ubuntu 22.04 上运行的脚本。
https://gist.github.com/Pieter81/78a3a087f142d712951f8352bb9ab2ba