答案1
我在 Lubuntu 上也遇到了同样的问题lxqt
。那里的Ctrl+ Alt+ Left/Right热键工作正常,但在 Ubuntu 中我曾经将其更改为另一个热键对。所以我花了很多时间寻找设置它们的方法。我最终使用了xbindkeys-config
应用程序和脚本这里。
安装xbindkeys-config
:
sudo apt install xbindkeys-config
要运行脚本,您可能需要wmctrl
安装:
sudo apt install wmctrl
脚本执行失败NUM_WORKSPACES
,NUM_COLS
变量也失败,所以我只是显式设置它们:
NUM_WORKSPACES=4
NUM_COLS=4
这是我的最终脚本版本:
#!/bin/bash
CMD="$1"
NUM_WORKSPACES=4
NUM_COLS=4
#NUM_WORKSPACES=`gconftool-2 --get /apps/metacity/general/num_workspaces`
#NUM_COLS=`gconftool-2 --get /apps/panel/applets/workspace_switcher_screen0/prefs/num_rows`
NUM_ROWS=`echo "$NUM_WORKSPACES / $NUM_COLS" | bc`
CURRENT_WS=`wmctrl -d | grep \* | cut -d " " -f 1`
MOVE_LEFT="- $NUM_ROWS"
MOVE_RIGHT="+ $NUM_ROWS"
MOVE_UP="-1"
MOVE_DOWN="+1"
case $CMD in
"Left" )
NEW_WS=`echo $CURRENT_WS "-" $NUM_ROWS | bc`
if [[ $NEW_WS -lt 0 ]]; then NEW_WS=$CURRENT_WS; fi
;;
"Right" )
NEW_WS=`echo $CURRENT_WS "+" $NUM_ROWS | bc`
if [[ $NEW_WS -ge $NUM_WORKSPACES ]]; then NEW_WS=$CURRENT_WS; fi
;;
"Up" )
WS_COL=`echo $CURRENT_WS "%" $NUM_ROWS | bc`
if [[ $WS_COL -eq 0 ]]; then
{
NEW_WS=$CURRENT_WS
}
else
{
NEW_WS=`echo $CURRENT_WS "- 1" | bc`
}; fi
;;
"Down" )
NEW_WS=`echo $CURRENT_WS "+ 1" | bc`
NEW_WS_COL=`echo $NEW_WS "%" $NUM_ROWS | bc`
if [[ $NEW_WS_COL -eq 0 ]]; then NEW_WS=$CURRENT_WS; fi
;;
* )
NEW_WS=$CMD
esac
wmctrl -s $NEW_WS