eliep / i3-layouts

Dynamic layouts for i3wm
MIT License
204 stars 14 forks source link

'i3l none' works—though there is an error message #18

Open steffenbanhardt opened 2 years ago

steffenbanhardt commented 2 years ago

Sending i3l none stops i3-layouts managing the workspace.

But there is also an error message from layouts.py “Invalid layout name: none.. Skipping”

Relevant part of the debug log:

[2022-03-12 12:56:10,616] DEBUG {handlers.py:17} - [ipc] tick event - payload:
[2022-03-12 12:56:15,517] DEBUG {handlers.py:17} - [ipc] tick event - payload:i3-layouts none
[2022-03-12 12:56:15,523] ERROR {layouts.py:494} - [layouts] Invalid layout name: none. Skipping
[2022-03-12 12:56:15,523] DEBUG {ticks.py:83} -   [ipc] tick event - unset workspace layout

I suppose the problem is at the end of layouts.py (from line 488 onwards):

    @classmethod
    def create(cls, name: str, params: List[Any], workspace_name: str) -> Optional['Layout']:
        try:
            layout_name = LayoutName(name)
            return cls.factory[layout_name].create(workspace_name, params) if layout_name in cls.factory else None
        except ValueError:
            logger.error(f'[layouts] Invalid layout name: {name}. Skipping')
            return None

layout_name = LayoutName(name) fails, because none is not a vaild LayoutName