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

i3wm如何实现容器布局双向循环切换?

i3wm 布局双向循环切换实现方案

实现思路

  • i3 默认未内置双向布局切换能力,可通过自定义脚本记录布局状态+快捷键绑定实现正向/反向遍历4种布局

第一步:编写布局切换脚本

创建脚本文件~/.config/i3/layout_switch.sh,内容如下:

#!/bin/bash
# 定义所有可用布局列表,可自行调整遍历顺序
LAYOUTS=("splitv" "splith" "stacked" "tabbed")
# 存储当前布局索引的临时文件
STATE_FILE="/tmp/i3_layout_state"

# 初始化状态文件如果不存在
if [ ! -f "$STATE_FILE" ]; then
    echo 0 > "$STATE_FILE"
fi

CURRENT_INDEX=$(cat "$STATE_FILE")
MAX_INDEX=$((${#LAYOUTS[@]} - 1))

# 判断是正向还是反向切换
if [ "$1" = "prev" ]; then
    NEW_INDEX=$((CURRENT_INDEX - 1))
    if [ $NEW_INDEX -lt 0 ]; then
        NEW_INDEX=$MAX_INDEX
    fi
else
    NEW_INDEX=$((CURRENT_INDEX + 1))
    if [ $NEW_INDEX -gt $MAX_INDEX ]; then
        NEW_INDEX=0
    fi
fi

# 写入新索引并切换布局
echo $NEW_INDEX > "$STATE_FILE"
i3-msg layout "${LAYOUTS[$NEW_INDEX]}"

给脚本添加执行权限:
chmod +x ~/.config/i3/layout_switch.sh

第二步:绑定i3快捷键

编辑i3配置文件~/.config/i3/config,添加以下内容:

# 正向循环切换布局,可自行替换为常用按键
bindsym $mod+space exec --no-startup-id ~/.config/i3/layout_switch.sh next
# 反向循环切换布局,可自行替换为常用按键
bindsym $mod+Shift+space exec --no-startup-id ~/.config/i3/layout_switch.sh prev

配置完成后执行Mod+Shift+C重载i3配置即可生效。

内容的提问来源于stack exchange,提问作者Maximiliano Padulo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:24:03