Combine #30 + #32 + bump zellij-tile to 0.44.2#35
Closed
ultranity wants to merge 6 commits into
Closed
Conversation
Bumps `zellij-tile` and `zellij-tile-utils` from 0.42.2 to 0.44.1.
Between 0.42 and 0.43, Zellij changed nearly all tuple-style Action enum
variants to named struct variants. Updated every call site in main.rs:
- Action::SwitchToMode(mode) → SwitchToMode { input_mode: mode }
- Action::NewPane(dir, name, suppressed) → NewPane { direction, pane_name, start_suppressed }
- Action::NewTab(layout, ..., focus) → NewTab { tiled_layout, ..., should_change_focus_to_new_tab, cwd: None, initial_panes: None, first_pane_unblock_condition: None }
- Action::MoveFocus(dir) → MoveFocus { direction }
- Action::MovePane(dir) → MovePane { direction }
- Action::Resize(resize, dir) → Resize { resize, direction }
- Action::PaneNameInput(input) → PaneNameInput { input }
- Action::TabNameInput(input) → TabNameInput { input }
- Action::SearchInput(input) → SearchInput { input }
- Action::Search(dir) → Search { direction }
- Action::EditScrollback → EditScrollback { ansi: false }
Verified: cargo build --release --target wasm32-wasip1 passes cleanly.
- Drop EventType::SessionUpdate — it was subscribed but never used, and in Zellij 0.44 the large SessionUpdate payload triggers a WASM out-of-bounds memory access on every event (~1/s), corrupting input. - Fix the initialized flag: the old guard (mode != base_mode) meant the plugin never settled in Normal/base mode, causing endless renders and pipe_message_to_plugin spam. Now it marks initialized as soon as any non-empty output is produced.
- modifier_style: long/short/symbol key display (Ctrl+n, C-n, ^n)
- hint_format: template for each hint ({key}, {action})
- separator: configurable delimiter between hints
- color customization: global, per-label, and per-mode color overrides
- max_keys: limit alternative keybindings shown per action
- alias_{label}: rename action labels in display
- key_alias_{key}: rename special bare keys (Enter→⏎, Space→␣)
Closes b0o#5, closes b0o#12
Calling set_selectable(false) immediately after request_permission() makes the plugin pane unfocusable, so the user cannot click into the permission grant dialog that zellij renders inside that pane. The plugin gets stuck at "unable to grant permission" forever. Move the set_selectable(false) call into the update() handler triggered by EventType::PermissionRequestResult — by then either the user has granted/denied perms or the auto-grant ran, and hiding the pane is safe.
Author
|
Pushed an additional fix: Fix: defer Commit: 120d159fix: defer set_selectable(false) until permission grant resolved |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Combines two open PRs that don't apply cleanly on top of each other, plus bumps
zellij-tile{,-utils}from 0.44.1 → 0.44.2 to match the latest released zellij.Action::*enum variants from tuple → named-struct form to fix ABI compatibility with zellij ≥ 0.43. Without this change, the releasedzjstatus-hints.wasmsimply does not load in zellij 0.44.x.modifier_style,hint_format,separator,max_keys, action/key aliases, color overrides). Resolves Is it posible to style zjstatus-hints? #5 and Regex(es) to allow pre-render modifications #12.The two PRs both heavily rewrite
src/main.rsand conflict on everyAction::*match arm. This branch:src/main.rsso PR feat: customizable key format, colors, aliases, and compact display #30's new config / formatting code uses the new struct-variantAction::*API from PR feat: update zellij-tile to 0.44.1 for Zellij 0.43/0.44 compatibility #32zellij-tile = "0.44.2"andzellij-tile-utils = "0.44.2"(latest at time of writing)Verified
modifier_style,separator,alias_*)Why not separate PRs
Because of the conflict, merging them in either order requires the same manual resolution effort. Filing them separately means whoever merges second will hit the same conflicts. A combined PR documents the resolution once.
If you'd prefer the changes split (e.g. accept #32 first, then a separate "rebased on top of #32" version of #30), I can break this branch in two — let me know.
Credits
Closes #5, closes #12, supersedes #30, supersedes #32.