window-managers - i3 - 将容器移动到下一个/上一个 ws(如果不存在的话)

标签 window-managers i3

我正在运行 i3 版本 4.16

我想绑定(bind)一个快捷方式以将当前容器移动到下一个/上一个工作空间,无论是否存在。

this 的帮助下使用 jq 发布,我有一个“某种”工作解决方案,但它非常不稳定(有时它切换到工作区而不移动容器,有时它在切换 ws 之前将容器从下一个 ws 移动到当前 ws)

谁能想出更好的解决方案???

我的 i3 配置:

set $ws-right "$(( $( i3-msg -t get_workspaces | jq '.[] | select(.focused).num' ) + 1))";
set $ws-left "$(( $( i3-msg -t get_workspaces | jq '.[] | select(.focused).num' ) - 1))";

bindsym shift+control+$mod+Left exec i3-msg move container to workspace $ws-left; exec i3-msg workspace $ws-left
bindsym shift+control+$mod+Right exec i3-msg move container to workspace $ws-right; exec i3-msg workspace $ws-right

谢谢你的时间;)

最佳答案

仅供引用

我最终使用 shell 脚本来避免异步运行这两个命令

.i3MoveNext.sh:

wsNext=$(( $( i3-msg -t get_workspaces | jq '.[] | select(.focused).num' ) + $1))
i3-msg move container to workspace $wsNext
i3-msg workspace $wsNext

然后像这样绑定(bind)首选组合键:

bindsym shift+control+$mod+Left exec ~/.i3MoveNext.sh -1
bindsym shift+control+$mod+Right exec ~/.i3MoveNext.sh 1

关于window-managers - i3 - 将容器移动到下一个/上一个 ws(如果不存在的话),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54637049/

相关文章:

window-managers - Windows 的窗口管理器的名称

linux - 直接打开到 Xserver 的套接字

android - requestFocus() 返回 false

python - 要求窗口管理器放置 matplotlib 绘图窗口 "always on top"?

c++ - XWindow 不听自己的属性/窗口管理器

linux - M4 未展开 .m4 文件中的所有宏

linux - 绑定(bind)到快捷键的 xdotool 命令不起作用

i3/sway - 如何绑定(bind)sym减号和等号