You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

bspwm多显示器桌面焦点切换异常问题求助

问题描述
  • 需求:笔记本屏幕分配桌面1-4,第二屏幕分配桌面5-8
  • 异常现象:
    • 在笔记本屏按下Super+1-4可正常切换桌面,但按下Super+5-8时焦点停留在桌面4,无法切换到第二屏幕
    • 鼠标移至第二屏幕后,按下Super+1-4会切换该屏幕的5-8桌面
    • 在第二屏幕终端执行bspc desktop --focus 2可正常切换到笔记本屏的桌面2

配置文件

bspwmrc

#! /bin/bash

pgrep -x sxhkd >/dev/null || sxhkd &
... other startup commands

start_from=1
monitors_connected=$(bspc query -M | wc -l)
per_monitor=$(( 8 / monitors_connected ))
for monitor in $(bspc query -M); do
   bspc monitor $monitor -d $(seq $start_from $(( start_from + per_monitor - 1)))
   start_from=$(( start_from + per_monitor ))
done

sxhkdrc

super + {_,shift + }{1-8}
    bspc {desktop --focus,node --to-desktop} 'focused:^{1-8}'

疑问

  1. 为何Super+5-8无效?
  2. 第二屏幕按Super+1-4会切换5-8桌面?

问题分析与解决

核心原因

你当前sxhkdrc里的focused:^{1-8}匹配规则,是基于当前焦点所在显示器的本地桌面索引,而非全局桌面编号:

  • 笔记本屏的全局桌面是1-4,它的本地桌面索引也是1-4,所以focused:^5在这个显示器上不存在,导致Super+5-8无反应
  • 第二屏幕的全局桌面是5-8,但它的本地桌面索引是1-4(每个显示器的桌面都会从1开始编号),所以focused:^1对应这个显示器的第一个桌面,也就是全局的5号桌面,这就出现了按Super+1切到5号桌面的情况

修复方案

修改sxhkdrc的规则,去掉focused:前缀,直接匹配全局桌面编号:

super + {_,shift + }{1-8}
    bspc {desktop --focus,node --to-desktop} ^{1-8}

修改后:

  • 在笔记本屏按Super+5-8会直接切换到第二屏幕的对应全局编号桌面
  • 在第二屏幕按Super+1-4会直接切换到笔记本屏的对应全局编号桌面

另外你的bspwmrc桌面分配逻辑是正常的,两个显示器连接时会自动给笔记本屏分配1-4、第二屏分配5-8,无需调整。

内容的提问来源于stack exchange,提问作者Jan van Veldhuizen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:55:18