使用环境与故障现象

两台电脑共用一套键鼠,键盘和鼠标实际连接在 Windows 上。Windows 运行 Deskflow 服务端,Ubuntu 运行客户端,通过局域网接收键鼠操作。

本次配置环境:

项目 版本或状态
Linux Ubuntu 26.04.1 LTS
桌面 GNOME Shell 50.1、Wayland
Linux Deskflow Flatpak 版 1.27.0
Windows Deskflow 系统服务已运行,启动类型为自动
锁屏扩展 Allow Locked Remote Desktop 17

桌面正常使用时,键鼠可以跨电脑操作,但遇到了两个问题:

  • Ubuntu 锁屏后,无法通过 Deskflow 输入密码,必须在 Linux 本机解锁才能恢复控制。
  • Ubuntu 重启后停在首次登录界面,登录后自启动的 Deskflow 尚未运行。

这两种情况分别通过允许锁屏远程控制、自动登录后启动 Deskflow 处理。配置完成后的日常使用测试正常。

锁屏时远程输入被 GNOME 阻止

检查用户会话日志:

1
2
journalctl --user --since '1 hour ago' --no-pager \
-g 'remote desktop session|Session creation inhibited'

故障期间反复出现:

1
2
Failed to create remote desktop session:
GDBus.Error:org.freedesktop.DBus.Error.Failed: Session creation inhibited

Deskflow 在当前 Wayland 环境中通过桌面的远程控制接口接收输入。GNOME 锁屏时会限制远程访问,导致键鼠控制中断。Deskflow 项目记录了相同现象,参见锁屏后无法控制客户端的问题记录。

安装允许锁屏远程控制的扩展

Allow Locked Remote Desktop 用于允许 GNOME 在锁屏期间继续接受远程连接。本次安装的是支持 GNOME 50 的 17 版。

扩展调整的是 GNOME 的远程访问限制,影响范围包括使用相关接口的其他远程控制程序。锁屏仍然保留,解锁仍需输入系统密码。实现可查看扩展源码。

安装与启用

在 Ubuntu 已登录且未锁屏时,以当前桌面用户运行,不加 sudo:

1
2
3
4
5
gdbus call --session \
--dest org.gnome.Shell.Extensions \
--object-path /org/gnome/Shell/Extensions \
--method org.gnome.Shell.Extensions.InstallRemoteExtension \
'allowlockedremotedesktop@kamens.us'

桌面出现安装确认后完成安装。检查扩展状态:

1
gnome-extensions info allowlockedremotedesktop@kamens.us

本次安装后显示:

1
2
3
Version: 17
Enabled: Yes
State: ACTIVE

若已安装但尚未启用,执行:

1
gnome-extensions enable allowlockedremotedesktop@kamens.us

安装调用本次返回过 NoReply,但扩展实际已安装并启用。遇到此提示时,先检查扩展状态,再判断安装结果。

日志中可检查启用记录:

1
2
journalctl --user --since '10 minutes ago' --no-pager \
-g 'Remote desktop connections while screen is locked'

启用成功时出现:

1
Remote desktop connections while screen is locked are now ENABLED

测试锁屏控制

在 Linux 桌面中触发锁屏,再从 Windows 将鼠标移入 Linux 屏幕,唤出密码框并输入 Linux 登录密码。Linux 的锁屏快捷键为 Super+L,普通 Windows 键盘上的 Super 对应 Win 键;若 Windows 截获 Win+L,可以从 Linux 桌面菜单锁屏。

首次测试应保留本机解锁手段,例如必要时临时接入现有键盘。扩展启用后的功能以实际输入密码测试为准。

配置重启后的自动连接

首次登录界面由 GDM 管理,GDM 是显示登录页面、启动用户桌面的程序。登录后的锁屏仍运行在用户桌面中,因此 Deskflow 和扩展可以继续工作;重启后的 GDM 登录界面尚未加载这些用户程序。

本次采用以下启动流程:

1
2
3
4
5
6
Ubuntu 开机
→ GDM 自动登录指定账户
→ 进入 GNOME 桌面
→ 自动启动 Deskflow 客户端
→ 连接 Windows 服务端
→ 接收键鼠操作

自动登录会让开机后的桌面直接可用,适用于能够接受这一访问方式的环境。本次未配置“自动登录后立即锁屏”脚本,也未修改既有锁屏策略。若磁盘加密要求在开机时输入解密密码,这套设置不能跳过磁盘解密。

启用 GDM 自动登录

先备份配置:

1
2
sudo cp -a /etc/gdm3/custom.conf \
"/etc/gdm3/custom.conf.backup-$(date +%Y%m%d-%H%M%S)"

编辑文件:

1
sudoedit /etc/gdm3/custom.conf

在已有的 [daemon] 段中设置以下两项,将 your_username 替换为实际登录用户名,可用 whoami 查询:

1
2
3
[daemon]
AutomaticLoginEnable = true
AutomaticLogin = your_username

已有同名配置时修改原项,保留其他内容,避免重复添加 [daemon] 段或同名键。

保存后在下次启动生效。当前正在工作时无需重启 GDM;重启显示管理器会中断桌面会话。

确认 Deskflow 登录后自启动

本次使用 Flatpak 版,先确认安装信息:

1
flatpak info org.deskflow.deskflow

在 Deskflow 中选择客户端模式,填写 Windows 服务端地址,并启用随图形界面启动核心进程的设置。先确认手动启动时能够连接,再配置登录自启动。

用户自启动文件位于:

1
~/.config/autostart/deskflow.desktop

本次使用的内容:

1
2
3
4
5
6
[Desktop Entry]
Type=Application
Name=Deskflow
Exec=/usr/bin/flatpak run org.deskflow.deskflow
Terminal=false
X-GNOME-Autostart-enabled=true

目录不存在时先创建,然后使用文本编辑器保存上述文件:

1
mkdir -p ~/.config/autostart

已有自启动项时检查并沿用,避免另建第二个启动相同程序的条目。本次检查确认已有条目有效,没有重复新增。

核查 Windows 服务

在 Windows PowerShell 中执行:

1
2
Get-Service -Name Deskflow |
Select-Object Name, Status, StartType

本次 Windows 端核查结果为运行中、自动启动,系统服务程序为 deskflow-daemon.exe。Windows 服务机制说明参见 Deskflow 官方文档。

Windows 服务端运行和网络可达是 Linux 自动连接的前提。两台电脑同时冷启动、Windows 保持锁屏时的跨屏操作,需要按实际环境另外验证;本次结果不作这些场景的保证。

验证结果与适用范围

配置检查已确认:

  • GNOME 扩展为 17 版,已启用且状态为 ACTIVE。
  • GDM 自动登录已开启,账户设置正确。
  • Linux Deskflow 登录自启动项已启用,使用现有客户端连接配置。
  • Windows Deskflow 服务正在运行,启动类型为自动。

配置后的实际使用反馈为测试正常。此次方案覆盖登录后锁屏的远程解锁,以及自动进入桌面后启动 Deskflow 的流程。断电恢复还取决于电脑是否自动开机;磁盘解密、网络尚未建立等阶段不在这套桌面配置的控制范围内。

当前环境的空闲超时为 0,不会因闲置自动触发锁屏。可以通过以下命令检查本机值,按需要在系统设置中调整:

1
2
gsettings get org.gnome.desktop.session idle-delay
gsettings get org.gnome.desktop.screensaver lock-enabled

自动登录与自动锁屏是独立设置。开启自动登录后,应确认实际的锁屏行为符合使用要求。

恢复原设置

停止允许锁屏远程控制:

1
gnome-extensions disable allowlockedremotedesktop@kamens.us

关闭自动登录时,在 /etc/gdm3/custom.conf 的 [daemon] 段中设置:

1
AutomaticLoginEnable = false

也可根据备份恢复原配置,恢复前核对备份之后是否还有其他需要保留的改动。关闭自动登录后,重启将重新停留在 GDM 登录界面,Deskflow 仍需进入用户桌面后启动。