躺姿笔记本看视频的硬件与系统调优
问题背景
床头挡板与墙之间存在约三指宽的缝隙,笔记本竖直卡入其中,依靠开合角支撑。躺于床尾观看视频时,屏幕法线朝向下前方,与躺姿视线方向不一致。开合角已达机械上限,微调垫片只能改变数度,属于机构层面的约束,无法通过摆放优化解决。
一、视角问题的方案评估
方案:整机倒挂配合屏幕旋转。若开合角支持一百八十度,将键盘朝上放置,屏幕反向展开,屏幕平面朝向天花板,与躺姿视线一致。系统内将内屏旋转一百八十度即可正常显示。零硬件成本,前置条件为开合角达到一百八十度,且需接受键盘与触控板镜像。
二、KWin Wayland 下的屏幕旋转
图形界面路径为系统设置,显示与监视器,选中内屏,方向选翻转。配置由 KScreen 持久化。
命令行使用 kscreen-doctor:
kscreen-doctor -o
kscreen-doctor output.eDP-1.rotation.inverted
kscreen-doctor output.eDP-1.rotation.normal
旋转由合成器按输出管理,外接鼠标光标方向不受影响。键盘键序镜像,躺姿场景通常使用外设,可忽略。触控板方向反转是已知问题,详见下节。
三、触控板反置的边界
屏幕旋转只作用于显示输出与绝对坐标设备。触摸屏通过 udev 校准矩阵自动跟随旋转,触控板作为相对坐标设备,其坐标系不随单屏旋转,方向整体反转。
libinput 对相对设备不暴露轴向配置项,KWin 亦无对应设置。X11 会话下可用 xinput 的 Coordinate Transformation Matrix 反置坐标,但 XWayland 只作用于 X 应用,对原生 Wayland 应用无效。整条链路在 Wayland 架构下没有可行的反置手段。
结论:Wayland 会话中触控板反置不可实现。可选替代为外接鼠标、空中飞鼠、或 KDE Connect 虚拟触控板。使用空中飞鼠时,建议在旋转模式下禁用内置触控板以避免误触。
四、蓝牙断连的分层诊断
症状分层
症状一,鼠标间歇断续后自动重连。指向控制器省电策略,候选机制为 USB autosuspend 对蓝牙控制器的整体休眠。
症状二,音响闲置一段时间后断连。指向音频会话挂起。PipeWire 会话管理器在 sink 空闲数秒后挂起节点,蓝牙设备挂起即释放 A2DP profile,连接随之断开。
症状三,切换音频输出至其他功放时蓝牙断开。与症状二同因,profile 释放导致。
三者相互独立,分别处理。
诊断流程
确认音频栈与控制器身份:
pactl info | grep "Server Name"
lsusb | grep -i bluetooth
bluetoothctl show
复现阶段双终端并行抓日志:
journalctl -b -f -u bluetooth
sudo btmon
断连瞬间依据 reason code 分型:
- Local User Terminated:本机协议栈主动断开,属音频侧问题。
- Connection Timeout:链路层超时,属控制器省电或射频干扰。
- Remote User Terminated:对端主动断开,属音响行为。
修复
音频侧,创建 ~/.config/pipewire/pipewire.conf.d/00-disable-suspend.conf:
context.properties = {
session.suspend-timeout-seconds = 0
}
重启生效:
systemctl --user restart pipewire wireplumber
控制器侧,通过 udev 规则将蓝牙设备 power/control 钉为 on,或在 TLP 配置中排除该设备。
另需留意 WiFi 与蓝牙的射频共存。AX 系列二合一卡中二者共用2.4GHz天线与射频前端。大流量 WiFi 传输期间蓝牙掉线概率升高、btmon 中出现大量重传,即属此类。共存问题不可通过软件参数根治,隔离手段见下节。
五、外接蓝牙适配器
外接 USB 蓝牙适配器将蓝牙链路整体迁出内置 AX 卡,WiFi 独占射频前端,同时规避共存干扰。
选型以 Realtek RTL8761B 芯片为首选,支持蓝牙五点一,固件随 linux-firmware 分发。CSR8510 免驱但仅支持蓝牙四点零。杂牌高版本型号固件来源不可靠,予以排除。预算允许时选择外置天线款。
接入与切换:
lsusb
hciconfig -a
sudo hciconfig hci0 down
sudo hciconfig hci1 up
配对信息存储于控制器侧,更换 hci 后需重新配对。永久禁用内置控制器可写 udev 规则。确认流量走向:
btmon -i hci1