zellij icon indicating copy to clipboard operation
zellij copied to clipboard

`Unsupported action: TogglePanePinned` on first run

Open Sarke opened this issue 8 months ago • 8 comments

2. Issues with the Zellij UI / behavior / crash

Issue description

$ zellij                                                                                                                                                                                                                              1 ↵

  × Failed to parse Zellij configuration
    ╭─[/home/me/.config/zellij/config.kdl:18:1]
 18 │         bind "h" { MoveFocus "left"; }
 19 │         bind "i" { TogglePanePinned; SwitchToMode "normal"; }
    ·                    ────────┬───────
    ·                            ╰── Unsupported action: TogglePanePinned
 20 │         bind "j" { MoveFocus "down"; }
    ╰────
  help: For more information, please see our configuration guide: https://zellij.dev/documentation/configuration.html

Minimal reproduction

I did this (which worked)

bash <(curl -L https://zellij.dev/launch)

Then this

brew install zellij

then the error above when running zellij.

After running zellij --debug and exiting, it works. Not an ideal first experience.

Other relevant information

zellij 0.42.1 Linux neon 5.15.0-56-generic #62~20.04.1-Ubuntu SMP Tue Nov 22 21:24:20 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Sarke avatar Mar 21 '25 21:03 Sarke

@Sarke it worked after running this command

zellij setup --dump-config > ~/.config/zellij/config.kdl

from https://zellij.dev/documentation/configuration.html

scr2em avatar Apr 21 '25 11:04 scr2em

This means that one has a configuration file from a newer Zellij version and is running an older Zellij version. I guess this likely happened to OP because they installed a version from brew before brew updated to the latest Zellij version.

imsnif avatar Apr 21 '25 13:04 imsnif

I'm seeing the same thing after launching zellij for the first time since last week on my Intel Thinkpad. I've changed nothing in the config. I'm running zellij 0.42.2-1 on Arch Linux.

Interestingly, with the very same config files (managed via stow), I do not see the error on my Framework AMD.

shawnyeager avatar Apr 30 '25 03:04 shawnyeager

I'm seeing the same thing after launching zellij for the first time since last week on my Intel Thinkpad. I've changed nothing in the config. I'm running zellij 0.42.2-1 on Arch Linux.

Interestingly, with the very same config files (managed via stow), I do not see the error on my Framework AMD.

As mentioned in the comment above, this error happens when you're running a newer Zellij config with an older Zellij version. I know sometimes for me - especially when running configuration management tools - these things can be mixed up. I suggest checking and double checking that the version you're running is the one you think you are. A good way to be 100% sure of this is to run Zellij with zellij setup --clean (this bypasses the configuration file) and then opening the about screen with Ctrl o + a to see which version you're running and not rely on shell paths or aliases.

imsnif avatar Apr 30 '25 07:04 imsnif

Thanks @imsnif. Could I suggest a nicer error message when it finds a newer config? As mentioned, I simply ran it first to try it using zellij.dev/launch and then installed it, then got the error, which to me seems like a totally reasonable series of events.

To get a cryptic error message to start off with is not a great look. Something like "Newer config file detected, please run zellij setup --clean"

Sarke avatar Apr 30 '25 22:04 Sarke

I hear you, but honestly... how would you suggest this be implemented? Given that by definition an older version has no knowledge of the config of the newer version?

imsnif avatar May 01 '25 06:05 imsnif

It doesn't have to have knowledge of any specific properties, just that it's found unknown property.

Sarke avatar May 01 '25 22:05 Sarke

It doesn't have to have knowledge of any specific properties, just that it's found unknown property.

This is what we do now, except we use the word "Unsupported" rather than "Unknown". While we could add a more descriptive text to this error that will explain the potential situation of this being a newer configuration used with an older version, the vast majority of incidents in which users encounter this error are when they misspelled a property rather than encountered this situation. Adding an error message that will explain both of these will mean including a large bulk of text that most users will not read and will confuse more of them than it would help.

The way to do this properly and give a specific concise error for both separate cases is to version the configuration file. This would mean however that we will need to have both an upgrade story and a downgrade story for configuration files. Which would entail parsing them completely, holding on to user comments, figuring out what to do when certain unsupported actions happen in the middle of a keybinding and describing it to the user (because only the user can decide what the right thing to do in these middle cases is), etc. etc.

While I appreciate that you found this first impression unpleasant and would have definitely liked for this not to happen to you, what you encountered is an extreme edge case. It happened because you installed one version immediately as it came out and then installed another version before the distributor (homebrew) had a chance to upgrade the version in their repositories. This time frame is often short and in any case not something that is under the control of the Zellij maintainers.

Fixing this edge case properly would involve a massive amount of work and would make other more common error paths provide a worse experience to more users. So - I'm genuinely sorry you encountered this, but you were just very unlucky. I'm happy it's working for you now.

imsnif avatar May 02 '25 07:05 imsnif

@Sarke it worked after running this command

zellij setup --dump-config > ~/.config/zellij/config.kdl

from https://zellij.dev/documentation/configuration.html

This worked for me

Eamll avatar Oct 16 '25 00:10 Eamll

Ran into the same error. I share my config(dotfiles) between Mac and Fedora, but it fails whenever I open zellij on the Fedora laptop.

Ding-Fan avatar Nov 25 '25 02:11 Ding-Fan