[i3fyra] Restart i3 will cause the layout corrupted with bunch of "i3: nowins" #30

Closed
opened 2018-09-15 05:02:23 +00:00 by lukewang1024 · 4 comments
lukewang1024 commented 2018-09-15 05:02:23 +00:00 (Migrated from github.com)

The issue is described as title. I wonder if there is an easy way to restore the layout. Currently the only thing I can do is to close all the windows and all the "i3: nowins". Otherwise, spawning new windows cannot be handled properly by i3fyra.

Steps to reproduce:

  1. Have a few windows open managed by i3fyra
  2. i3-msg restart

2018-09-15-124533_1365x53_scrot

i3fyra version used is 0.501, installed from AUR.

Thanks!

The issue is described as title. I wonder if there is an easy way to restore the layout. Currently the only thing I can do is to close all the windows and all the "i3: nowins". Otherwise, spawning new windows cannot be handled properly by i3fyra. Steps to reproduce: 1. Have a few windows open managed by i3fyra 2. i3-msg restart ![2018-09-15-124533_1365x53_scrot](https://user-images.githubusercontent.com/10437330/45582674-86e5dc00-b8e6-11e8-9fc8-862f356ad676.png) i3fyra version used is 0.501, installed from AUR. Thanks!
budRich commented 2018-09-15 09:12:25 +00:00 (Migrated from github.com)

Thanks for the testing and an excellent issue report.

tl;dr: use i3-msg reload instead of i3-msg restart

When this happens, the easiest and best thing to resore is to simple restart (logout/login) i3, but it often works if you make all "normal" windows floating move them to another workspace and then do: i3-msg kill till all strange windows are destroyed.

The i3-msg restart issue is a bug with i3, that is somehow related to marks and possibly multiple tabbed containers or maybe marks on hidden(ghosts) windows, which is something i am using a lot in i3fyra. I have reported this issues to i3wm (https://github.com/i3/i3/issues/2900) , and it was supposed to be fixed a couple of versions back, but issue still remained at least when doing the i3fyra stuff. And i didn't want to bother the i3 devs more about it. Because: with the later versions of i3, restart is more or less never needed. i3-msg reload now also reloads colors and fonts, and this was the only reason i was using restart.

Before i realized that reload can completely replace restart for all my needs i spend a lot of time hacking a restart script (the script noted all window positions and, made all windows floating, killed all empty containers, removed all marks, then applied the same layout again), that worked ok, but it was really slow (like 2 seconds) and not perfect at all.

I have been thinking about using the root window to store all marks(i3var) instead. This might actually solve the issue but I am not sure.

I will investigate this, I have had this issue reported before (on other channels) and if it persists it will make i3fyra look more broken then it is.

Thanks for the testing and an excellent issue report. # tl;dr: use `i3-msg reload` instead of `i3-msg restart` When this happens, the easiest and best thing to resore is to simple restart (logout/login) i3, but it often works if you make all *"normal"* windows floating move them to another workspace and then do: `i3-msg kill` till all strange windows are destroyed. --- The `i3-msg restart` issue is a bug with i3, that is somehow related to marks and possibly multiple tabbed containers or maybe marks on hidden(ghosts) windows, which is something i am using a lot in i3fyra. I have reported this issues to i3wm (https://github.com/i3/i3/issues/2900) , and it was supposed to be fixed a couple of versions back, but issue still remained at least when doing the i3fyra stuff. And i didn't want to bother the i3 devs more about it. Because: with the later versions of i3, **restart** is more or less never needed. `i3-msg reload` now also reloads colors and fonts, and this was the only reason i was using restart. Before i realized that reload can completely replace restart for all my needs i spend a lot of time hacking a restart script (the script noted all window positions and, made all windows floating, killed all empty containers, removed all marks, then applied the same layout again), that worked *ok*, but it was really slow (like 2 seconds) and not perfect at all. I have been thinking about using the root window to store all marks(i3var) instead. This might actually solve the issue but I am not sure. I will investigate this, I have had this issue reported before (on other channels) and if it persists it will make i3fyra look more broken then it is.
lukewang1024 commented 2018-09-15 10:27:56 +00:00 (Migrated from github.com)

Thanks for the quick and detailed response. Yes, it makes sense to only use i3-msg reload in that case. There used to be an issue in polybar that made me to use i3-msg restart as workaround. However, I have just tried a few times but cannot reproduce it it anymore, so I guess I will happily avoid i3-msg restart from now on.

The issue I came across was that some tray items would become missing during polybar re-launch. The tray daemon process exists but just doesn't show in tray area. I came up with a workaround where I restart all tray daemon processes then the polybar itself in i3 config with exec_always so that a simple i3-msg restart could get everything reset properly.

Thanks for the quick and detailed response. Yes, it makes sense to only use `i3-msg reload` in that case. There used to be an issue in polybar that made me to use `i3-msg restart` as workaround. However, I have just tried a few times but cannot reproduce it it anymore, so I guess I will happily avoid `i3-msg restart` from now on. The issue I came across was that some tray items would become missing during polybar re-launch. The tray daemon process exists but just doesn't show in tray area. I came up with a workaround where I restart all tray daemon processes then the polybar itself in i3 config with `exec_always` so that a simple `i3-msg restart` could get everything reset properly.
budRich commented 2018-09-15 11:06:27 +00:00 (Migrated from github.com)

sounds similar to my issues. I also use polybar, and i made a quick and dirty script, that kills any existing polybars and restart them instead of using the normal polybar-msg restart command, to make sure that i don't get problems.

But i think both polybar has gotten more stable, and the i3 reload function better so almost all these issues are now non existent.

I will keep this issue open till I have experimented further with marks and i3var.

sounds similar to my issues. I also use polybar, and i made a quick and dirty script, that kills any existing polybars and restart them instead of using the normal polybar-msg restart command, to make sure that i don't get problems. But i think both polybar has gotten more stable, and the i3 reload function better so almost all these issues are now non existent. I will keep this issue open till I have experimented further with marks and i3var.
budRich commented 2021-08-10 22:04:21 +00:00 (Migrated from github.com)

@lukewang1024 , i think restarts works Ok now, im closing this. have a great day!

@lukewang1024 , i think restarts works *Ok* now, im closing this. have a great day!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bud/i3ass#30
No description provided.