pub enum TuiAction {
Show 109 variants
MoveUp,
MoveDown,
MoveLeft,
MoveRight,
NextBoard,
PreviousBoard,
Open,
Edit,
Agent,
View,
ToggleColumn,
FilterModal,
BulkModal,
Triage,
OpenMentions,
Views,
ApplyView,
NewView,
RenameView,
UpdateView,
DuplicateView,
DeleteView,
Mark,
Unmark,
ClearMarks,
MovePrevious,
MoveNext,
NewIssue,
CloneIssue,
ToggleArchived,
ToggleChildren,
Delete,
Refresh,
Settings,
Planning,
NewBoard,
Help,
Quit,
TextFilter,
ReorderUp,
ReorderDown,
Close,
ScrollUp,
ScrollDown,
ScrollLineDown,
ScrollLineUp,
ScrollTop,
ScrollBottom,
Comment,
Asset,
NewRelationship,
EditRelationship,
RemoveRelationship,
EditParent,
NextRelationship,
PreviousRelationship,
RelatedPicker,
FollowRelated,
NavBack,
Submit,
Cancel,
Next,
Previous,
OpenPicker,
Reset,
Toggle,
AddColumn,
MoveColumnUp,
MoveColumnDown,
NewPlanningItem,
EditPlanningItem,
DeletePlanningItem,
Confirm,
Create,
PreviousYear,
NextYear,
PreviousMonth,
NextMonth,
Reedit,
Ignore,
DeclareKey,
Discard,
SwitchToBoard,
SwitchToTriage,
SwitchToCycle,
SwitchToMilestones,
SwitchToRepos,
SwitchToStats,
HealthForm,
TimeAdd,
TimeEdit,
TimeDelete,
TimeFilter,
TimeBreakdown,
TimeHistory,
SwitchToSchedule,
SeriesGenerate,
SeriesPause,
SeriesResume,
SeriesEnd,
SeriesSkip,
SeriesDefer,
SeriesIgnore,
SeriesNew,
SwitchToLibrary,
SwitchToPortfolio,
SwitchToNewIssue,
SwitchToConfig,
ToggleNavigation,
}Variants§
MoveUp
MoveDown
MoveLeft
MoveRight
NextBoard
PreviousBoard
Open
Edit
Agent
View
Open the selected issue in a read-only viewer (tix #1507).
v was free on both the board and the detail pane. Read-only by
construction: the viewer runs on the issue file and never writes back.
ToggleColumn
FilterModal
BulkModal
Triage
Open the triage inbox (WP06, T029). Its own action rather than a chord
bolted onto another one, so t can be rebound from keybindings.board
like every other board key and the help overlay can name it.
OpenMentions
Open the mentions view (OpenSpec change issue-mentions): every pending
@mention the local user holds, across issues.
Its own action rather than a chord bolted onto another one, for the reason
Triage’s is: the chord is a rebindable board key, the help overlay can name
it, and the bottom indicator row reads it back out of the effective bindings
so the row cannot advertise a key the user has rebound away.
The default is i, which was free on the board — t is the triage inbox, v
the saved views, f the filter, and the board’s letters are its navigation.
Views
Open the saved-views modal (WP05, T024). Its own action for the reason
Triage’s is: v is a rebindable board key and the help overlay names it.
ApplyView
Apply the view under the cursor (WP05, T025).
NewView
Create a view from the live plan (WP05, T027).
RenameView
Rename the view under the cursor (WP05, T027).
UpdateView
Replace the view under the cursor’s plan with the live plan (WP05, T027).
DuplicateView
Duplicate the view under the cursor under a fresh stable id (WP05, T027).
DeleteView
Delete the view under the cursor’s definition, after confirmation (WP05, T027).
Mark
Unmark
ClearMarks
Empty the batch selection from the board (X).
Its own action rather than an overload of Unmark: the modal’s X empties
the whole set while x removes one card, and the board now reads the same
two keys. Canonicalizing both to one action would collapse the distinction.
MovePrevious
MoveNext
NewIssue
CloneIssue
Duplicate the selected issue into the create-issue form, prefilled from it (tix #1484).
C, the capital of c (toggle column): a pair that reads together without
changing what any existing key means, which is the same rule B/A follow.
ToggleArchived
Show the archived issues on the board, or hide them again (tix #1492).
a was unbound on the board. The toggle is a reload, not a display
filter: the archived files are not read until it is on.
ToggleChildren
Show each issue’s sub-issues beneath it on the board, or hide them again (tix #1399).
u was unbound on the board. Unlike the archive toggle this is display-only:
the children are already in the board state, so flipping it reorders the
column (one level deep) rather than re-reading the store.
Delete
Refresh
Settings
Planning
NewBoard
Help
Quit
TextFilter
ReorderUp
ReorderDown
Close
ScrollUp
ScrollDown
ScrollLineDown
Scroll the detail pane’s body one row. j/Down and k/Up were freed
for this when the relationship cursor moved to Tab/BackTab.
ScrollLineUp
ScrollTop
Scroll the detail pane’s body to the top (g) or bottom (G).
ScrollBottom
Comment
Asset
NewRelationship
Open the create-relationship prompt from the detail view (#1359).
EditRelationship
Re-kind or retarget the relationship under the detail pane’s cursor.
RemoveRelationship
Remove the relationship under the cursor, after confirmation.
EditParent
Set, change or clear the open issue’s parent from the detail pane (tix #1384).
P was free in the detail pane. The prompt routes its write through the
shared hierarchy service (Store::set_parent/clear_parent), which is
the same seam tix edit --parent uses, so the TUI gains the
set/change/clear parity for parent that the create-only form could not
express.
NextRelationship
Move the detail pane’s relationship cursor (Tab/BackTab).
PreviousRelationship
RelatedPicker
Open the picker listing the detail pane’s related_issues entries
(tix #1513).
r was free in the detail pane — the board’s r is refresh, a
different context, so the two never collide.
FollowRelated
Follow the detail pane’s selected related_issues entry (tix #1513).
o was free in the detail pane and reads as “open”.
Pop the detail pane’s navigation stack and restore the previous issue (tix #1513).
Backspace was free in the detail pane and reads as “back”.
Submit
Cancel
Next
Previous
OpenPicker
Reset
Toggle
AddColumn
MoveColumnUp
Move the Config mode’s selected board column one position earlier
(shift+k by default, tui-config-mode).
MoveColumnDown
Move the Config mode’s selected board column one position later
(shift+j by default, tui-config-mode).
NewPlanningItem
EditPlanningItem
DeletePlanningItem
Confirm
Create
PreviousYear
NextYear
PreviousMonth
NextMonth
Reedit
Ignore
DeclareKey
Declare the repair prompt’s undeclared frontmatter key in tix.toml
(tix #1506).
Its own action, not confirm: confirm applies whatever fix the prompt
proposes, which happens to be the declaration for an unknown key, while
declare_key always means “write it into [custom_attributes]” and says
so when there is no key to declare.
Discard
Discard the repair prompt’s retained copy, after a second confirmation (tix #1506).
The only action that removes the editor’s copy. The first press arms
the prompt; a second press is the decision. Esc deliberately
acknowledges and keeps the copy instead, so a stray key cannot destroy a
user’s edit.
SwitchToBoard
Switch the top-level shell to the Board mode (F1 by default).
SwitchToTriage
Switch the top-level shell to the Triage mode (F2 by default).
SwitchToCycle
Switch the top-level shell to the Cycle mode (F4 by default).
SwitchToMilestones
Switch the top-level shell to the Milestones mode (F5 by default).
SwitchToRepos
Switch the top-level shell to the Repos mode (F6 by default, tix #1529).
F6 was free in the shell and sits directly after the milestone switch, so the repository list reads as the last of the managed registries.
SwitchToStats
Switch the top-level shell to the Stats page (F7 by default).
F7 was reserved in the shell until this page existed; the Stats page takes it,
and its first tab is Health (mission project-issue-health-status-01M3C8HX).
HealthForm
Open the health form for the issue in the detail pane.
One action, two layers: the form’s own field chooses whether the value is the
issue’s current state or an override layered over its derived one, so a
user does not have to learn two key paths that do the same thing with one
field different.
TimeAdd
Open the add-entry form on the F7 Stats page’s Time tab (mission
per-issue-time-tracking-01M3C9A4, WP05 T025).
One of six keys the Time tab contributes to InputContext::Stats. The key
opens a form and writes nothing; the form’s Enter is the only path that
reaches the shared time service, so a stray key cannot record an entry.
TimeEdit
Open the correction form for the Time tab’s selected entry (WP05 T025).
TimeDelete
Open the deletion form for the Time tab’s selected entry (WP05 T025).
A deletion removes the entry from the issue’s current projection; the form asks for a reason and a confirmation, and History keeps the prior value (C-003, C-004).
TimeFilter
Edit the Time tab’s scope: issue, assignee, period (WP05 T026).
It edits the shared TimeFilter the CLI’s --issue/--assignee/--from/--to
build, so a filter has one grammar and one validator.
TimeBreakdown
Cycle the Time tab’s breakdown dimension: all, issue, assignee, date (WP05 T026).
TimeHistory
Toggle the Time tab’s audit view (WP05 T027): what the current projection no longer holds but History still attributes.
SwitchToSchedule
Switch to the F8 Schedule page (tix #1593).
SeriesGenerate
Generate the selected series’ due occurrence (tix #1593).
SeriesPause
Pause the selected series.
SeriesResume
Resume the selected series.
SeriesEnd
End the selected series.
SeriesSkip
Record the selected series’ due date as skipped.
SeriesDefer
Move the selected series’ candidate past its due date.
SeriesIgnore
Stop offering the selected series’ due date.
SeriesNew
Define a new recurring series (tix #1593).
The Series tab’s n: it opens the page’s create form, whose save reaches the
same tix recurring create service the CLI runs, with the same rule and anchor
parsing and the same validation order.
SwitchToLibrary
Switch to the F11 Library page (tix #1593).
SwitchToPortfolio
Switch to the F10 Portfolio page (WP06).
F10 was reserved in the shell until this page existed; the Portfolio page’s Projects tab takes it.
SwitchToNewIssue
Switch the top-level shell to the New Issue mode (F1 by default).
SwitchToConfig
Switch the top-level shell to the Config mode (F12 by default).
Cycle the vertical navigation display state Off/Small/Default.
Implementations§
Source§impl TuiAction
impl TuiAction
pub const fn as_str(self) -> &'static str
pub const fn description(self) -> &'static str
Sourcepub const fn description_in(self, context: InputContext) -> &'static str
pub const fn description_in(self, context: InputContext) -> &'static str
The wording this action gets in context’s help.
move_left/move_right walk a column on the board, the Config
mode’s two panes (rail ⇄ body), and a group in the Cycle
listing; submit steps into the body and then activates the row there.
The action — and the key — is the same event, so only the noun the help
shows changes. Every other action keeps its single description.
Trait Implementations§
impl Copy for TuiAction
Source§impl<'de> Deserialize<'de> for TuiAction
impl<'de> Deserialize<'de> for TuiAction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for TuiAction
impl StructuralPartialEq for TuiAction
Auto Trait Implementations§
impl Freeze for TuiAction
impl RefUnwindSafe for TuiAction
impl Send for TuiAction
impl Sync for TuiAction
impl Unpin for TuiAction
impl UnsafeUnpin for TuiAction
impl UnwindSafe for TuiAction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more