You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Action required: the keys changed. No action is on a bare letter, digit or
symbol key any more, because those keys now type into the filter. The new
defaults: alt+h help, alt+s stores, alt+f search, alt+r reload, alt+e edit, alt+n new issue, alt+u update, alt+a comment, delete
close, alt+v / alt+p / alt+l the three launchers, ctrl+c quit. Move
with the arrow keys, pgup, pgdown, home and end, and open with enter: h, j, k, l and o no longer move or open. ctrl+q, ?, 1–4, ctrl+space, / and > are gone. The y / n keys of a dialog
are unchanged. The alt+ keys need a terminal that sends alt as an escape
prefix; on macOS turn on the Option-as-Meta setting of the terminal. esc
and a letter that reach the app together read as that alt+ key: under tmux
keep escape-time at 10 ms or lower, the default since tmux 3.5. docs/user-guide/key-bindings.md
has the whole list.
Action required if your config binds keys. A keybindings entry in the shell, board or detail context that binds a single printable character
or space now fails startup and --check-config, with an error that names
the key, the action and the context. Bind the action to an alt+ or ctrl+
key, for example quit: [ctrl+q]. The modal context still takes any key.
An entry on a key that a new default gives to another action in the same
context also fails, for example with key "alt+n" conflicts between actions ... in shell context. Rebind one of the two. The shell actions mode_board, mode_docs, mode_search, mode_detail and toggle_search, the board
action load_more and the whole search context no longer exist: an entry
for one is ignored with a startup warning, so delete it. New actions are open_search in shell and move_home, move_end, page_up and page_down in board.
Action required if your config binds backspace, ctrl+w, ctrl+u or ctrl+t. An entry in the shell or board context on one of these keys
now fails startup and --check-config, with an error that names the key, the
action and the context. The filter and the store search now take these keys
first, so such a binding cannot run on those screens. Bind the action to
another key. The detail and modal contexts still take them.
Action required if your config binds alt+c in the shell context.alt+c
now opens the configuration screen, and a config that already binds it to
another shell action fails startup with key "alt+c" conflicts between actions ... in shell context. Rebind one of the two; the new action is open_config.
Added: a configuration screen.alt+c, or the new config button on the
menu bar, opens a screen where left and right step the theme and the
glyph set. A change shows at once and is written to the config file, which
keeps its comments and its layout; a missing file is created. When the file
cannot be changed safely, nothing changes and a toast says why. esc returns
to where you came from.
Changed: the header. The first button on the menu bar is the name of the
open store, in bold; it opens the store picker, as stores did. A name
longer than 24 columns is cut to 24. On a narrow bar it is cut further, down
to 8 columns, before a button is dropped. The text at the right of the tab
line — the store, the view, the selected issue and Idle — is gone: each
part repeated what the screen already shows.
Changed: the look of the screen. On a terminal wider than 100 columns the
app leaves blank columns at the sides, 2 on each side from 104 columns. On
one higher than 24 rows it leaves a blank row above and below from 26 rows,
whatever its width. The margin takes the first 4 columns over 100 and the
first 2 rows over 24, so the app is not drawn smaller when the window grows.
Help is a full screen and no longer a box over the screen: the keys stand in
sections in one column, the keys of Detail, of a dialog and of the
configuration screen included, alt+h or esc closes it, and enter no
longer does. A description too long for the screen goes on in its column on
the next line, and a help taller than the screen reads … (N earlier) on its
first row and … (N more) on its last. The configuration screen has the same
chrome: a title line, a rule, one blue line and a second rule. On the
configuration screen the blue line names the config file a change is written
to. A menu-bar button has a space on each side, and the button or the tab
under the pointer is lit over that whole cell; a click anywhere on it counts.
A button's label is the text colour, and the rule under the bar starts under
the first label. In the key legend the key is now the dim part and what it
does the bright part, the hints are joined by •, the line starts one column
in, and it ends in … when hints are left off. The bar is wider, so a narrow
terminal drops the version and the last buttons sooner. The band on the row
under the pointer is now the shade between the background and the selected
row: lighter than the background on a dark theme, darker on catppuccin-latte. A 256-colour terminal draws that band in a grey. A
16-colour terminal has no shade for it: the row under the pointer is not
marked there, a tab changes its text colour and a button's label turns bold.
Fixed: a directory with a line break or a tab in its name broke the store
picker. The path drew on two lines, so a click landed one row off. A store
name and a path now draw on one line, without format characters such as a
right-to-left override. The error of a failed store listing does too: a
registry file with a value of the wrong type gave an error of two or more
lines. The same holds for the create-store form, every toast and the error
of a board column or of the detail view: a directory name with an escape
sequence in it reached the terminal from the create-store form. A format
character that shapes nothing, such as a right-to-left override or a soft
hyphen, is dropped; a joiner in an emoji or a script stays. A long error on
the detail view wraps, and a toast draws at most 6 lines, the last a …
when it cut the message.
Added: type to filter. On the Board and Docs tabs every key you type goes
into a filter on the line above the columns. A row stays when every word of
the filter is in its title or its ID. The matched text is marked and each
column header reads N of M, the matching rows of the loaded rows. backspace, ctrl+w and ctrl+u edit the filter and esc clears it. The
filter stays through a tab switch, a detail round trip and a reload.
Changed: search is no longer a tab.alt+f, or the new search button
on the menu bar, opens the store search from a tab or from the detail. It is
one list of results and searches as you type: a search runs 150 ms after the
last key, and enter pressed inside that time opens the result of what you
typed. There is no enter to run the query, no preview pane and no pane
focus. ctrl+t still switches between open issues and all issues. A search
shows at most 100 results and the header reads 100 of M when the store
holds more. esc clears the query and then returns to where you opened the
search; from a result's detail esc returns to the results. The view tabs
are Board and Docs.
Changed: the Done column loads the next page of closed issues only by itself,
when the selection comes near the end of the loaded rows. The > key that
loaded a page on demand is removed.
Added: pgup, pgdown, home and end move the selection on the Board, the
Docs tab, the store search and the store picker.
Changed: when the terminal is too narrow for all board columns, the columns
stay in place until the focus leaves them, and then move only as far as
needed. A click or left/right on a column already drawn no longer shifts the
board. The wheel now scrolls the column under the pointer and focuses it.
Fixed: one central store directory that cannot be read no longer empties the
store picker. That store is listed as broken, and enter on it shows the
reason on a second toast line.
Fixed: one central store directory that cannot be read no longer stops the
app from starting elsewhere. Before, taskmgr-ui exited with failed to open task-manager store for ... in every directory that has no local .tasks
store. It now opens the store of that directory, or the store picker when the
directory has none. Only a start in the project of the unreadable store, or
with --store-name on it, still fails.
Fixed: the error toast of a refused write said the reason two times. A write
that a hook refuses, or that the store finds not valid, names it one time.
Fixed: the result of a write, an edit or a launcher that came back while help
or a dialog was open was lost, and no toast reported it. The toast now shows.
Fixed: when the detail of an issue failed to load, the toast Failed to load selected issue details came back on each change of the store and each timed
refresh. It now shows one time for an issue, and again when you reload.
Fixed: a refresh you did not ask for moved the cursor to another issue in the
Done column when other closes had pushed the selected issue below the rows
already loaded. The refresh now loads up to 3 more pages of Done to find the
issue again, and the cursor returns to it. When the issue is not in those
pages, the cursor stays on its row as before.