如何绑定一个键来在工作区之间循环?

如何绑定一个键来在工作区之间循环?

我现在正在使用 2 个工作区,我希望能够使用一个快捷键循环切换它们。目前,我可以按Ctrl+ Alt+Right切换到工作区 2,然后Left切换到 1,但我希望使用一个键(或组合键)切换到我现在不在的工作区。这样,我就只需要那个快捷键,而不需要两个。

wmctrl我在一台旧机器上运行 Ubuntu,这使我根本无法启用 compiz。我尝试使用和编写脚本xdotool,但都无法正常工作(无论我做什么,它们都只会切换到工作区 1,而不会切换到 2)。

有什么建议么?

答案1

这是一个切换到下一个工作区的脚本,在最后一个工作区之后返回到第一个工作区。请注意,工作区从 0 开始编号,也许这就是您在尝试编写脚本时遇到的问题。

#!/bin/sh
total=$(wmctrl -d | wc -l)
current=$(wmctrl -d | sed -n 's/^\([0-9]\+\) *\*.*/\1/p')
if [ -z "$total" ] || [ -z "$current" ]; then
  echo 1>&2 "$0: Could not obtain workspace information!"
  exit 2
fi
target=$(($current+1))
if [ $target = $total ]; then
  target=0
fi
wmctrl -s $target

答案2

我知道这已经很旧了,但这是我的版本:

对于多个工作区(如Gilles的回答):

wmctrl -s `wmctrl -d | awk '$2=="*"{cur=NR} END{print cur % NR}'`

对于多个视口:

wmctrl -o `wmctrl -d | awk '{gsub(/[^0-9]/," ",$0);x = ($4 + $6 + $8) % $2; if( 
x == 0 ) y = ($5 + $7 + $9) % $3; else y = $5; print x","y}'`

相关内容