在i3wm中实现四象限各启动一个vifm实例的脚本问题
解决i3wm下在四个象限启动vifm的脚本方案
你的两个脚本都存在逻辑问题,导致无法生成四象限布局:
问题分析
- 第一个脚本:先执行分割命令,但首次循环时无活动窗口,分割操作无效;后续分割都是针对刚创建的窗口,最终所有窗口全水平排列。
- 第二个脚本:使用
&&意味着只有vifm退出后才会执行分割命令,而vifm是持续运行的,分割命令永远不会触发;后台运行的方式也无法保证窗口创建后再执行分割。
正确脚本
#!/bin/bash # 启动第一个vifm实例 kitty -e vifm & sleep 0.2 # 等待窗口初始化,确保i3能识别 # 垂直分割当前窗口,启动第二个vifm i3-msg splitv kitty -e vifm & sleep 0.2 # 切回第一个窗口,水平分割后启动第三个vifm i3-msg focus left i3-msg splith kitty -e vifm & sleep 0.2 # 切回第二个窗口,水平分割后启动第四个vifm i3-msg focus right i3-msg splith kitty -e vifm & sleep 0.2
说明
sleep 0.2是为了给窗口创建留足时间,避免i3未识别到新窗口就执行后续操作,可根据系统响应速度调整时长。- 脚本通过手动控制焦点切换和分割顺序,确保每个分割操作都作用于正确的窗口,最终生成四象限布局。
内容的提问来源于stack exchange,提问作者ablrbls072
相关产品推荐
相关产品推荐

