Not an answer, but as a dity workaround, I'm using this:
- I create a process with custom name,
- start a container,
- keep the sleeper as first.
The hack is based on the fact that i3 uses process name--not window title--as item in the list.
For example, when working on a bug 123:
- I call my script below as
mkprocn BUG123
, which creates "sleeper" process called
BUG123 (just as if the executable was called that way), - I create a sub-container, keeping the sleeper as first child
- I move all relevant windows there.
I end up with something like i3: T[BUG123 title1 title2 ...]
.
Disadvantage is that I have to keep the process running, but with tabbed layout this is not much of a deal.
The script (use at your own risk).
#!/bin/bash
# mkprocn
name="FOO"
action="__fork__"
usage() {
echo "usage: $(basename $0) NAME" >&2;
exit 2
}
while true; do case "$1" in
__*__) action="$1"; break ;;
"") break ;;
-*) usage ;;
*) name="$1"; shift 1 ;;
esac done
case "$action" in
__sleep__)
sleep 10000000000;
;;
__fork__)
$0 "$name" __exec__ &
;;
__exec__)
exec -a "$name" urxvt -title "$name" -e "$0" __sleep__; break ;;
*)
usage
;;
esac
You might want to
- replace the urxvt syntax with some other terminal,
- replace
-e "$0" __sleep__
with something useful like -e vim notes-$name.txt
, - add decorations to the name to make it more visible.
+1, because this actually is an excellent question, and I did not find some feature request for it. Maybe just file a report at bugs.i3wm.org.
Have you looked for the "mark" builtin? I've not tried it yet so I don't really know if it works that way.
@tigrezno thanks for the suggestion. I haven't tried it in depth, but I just tried mark'ing a container with a name, and the "i3" label didn't change.
I guess that would be an acceptable feature request: To display a mark in the title. I know I would love it.
+1 would really like this feature. Find e.g. H[H[xterm xterm] not a very useful title for my workflow, and figuring out where I have relevant programs running. Would love to be able to control manually.