Skip to content

Show which project a desk task belongs to: project colors or group by project #175

Description

@LukasGold

On the desk, NEEDS YOU and IN MOTION mix tasks from the desk and from every project. Each row shows no project. In the list, the project name appears only in an open peek below the row. With many rows from several projects, I cannot see at a glance which tasks belong together. I would like the project to be visible from the row itself, or the rows to be grouped by project.

Current behaviour

  • On the desk, NEEDS YOU and IN MOTION collect tasks from every live scope. ON DECK, including the inbox, holds desk tasks only.
  • Each row starts with a status glyph (◌ ○ ● ■ ▲ ✓). The glyph encodes the status only.
  • A row shows no project. In the list, the project name appears only in an open peek below the row.
  • NEEDS YOU and IN MOTION sort rows by the most recent status change. There is no grouping by project and no toggle for the list layout.
  • The board is monochrome. Queue surfaces use bold, dim, underline and reverse only and never set a foreground or background color. I understand this may be a deliberate decision, so option 1 may be out of scope. Option 2 needs no color.
  • ProjectRecord holds only an archived flag and exists only while a project is archived. There is no place to store a project setting today.

Sketch

Either option would solve it. Names and shapes are placeholders.

1. A color for each project

  • A project can have a color, chosen from a small fixed set of terminal colors.
  • On the desk and in the thread view, the status glyph of a row is painted in the color of its project. Desk tasks keep the default style.
  • The Projects Overview shows a legend: each project row shows its color next to the project name.
  • CLI: tsk project <name> color <color>, and --no-color or NO_COLOR to keep the board monochrome.
  • Picker or TUI: a verb on a project row in the Projects Overview that cycles or selects its color.

2. Group by project

  • A toggle on the desk switches NEEDS YOU and IN MOTION between the flat list and a list grouped by project.
  • Grouped mode shows one header row per project, with the desk group first. Inside a group, rows keep their current order.
  • The toggle state could be session-only, like the inbox fold, or persisted.
  • Project groups are collapsible. A project header behaves like the inbox heading: Enter or g on the header folds or unfolds the group. g would act on the group under the cursor.
  • → / l on a project header opens that project's live board in the right column, in the same way that moving the cursor on the Projects Overview opens a project preview. Below 110 columns, this would open a peek of the project instead.
  • A double click on a project header opens the project in tab 2, the same as a double click on a project row in the Overview.
  • Moving the cursor onto a project header makes that project the selected project, so the existing 2 key opens it with one key press. As a side effect, moving the cursor on the desk changes which project tab 2 remembers. Apart from the launch directory, the docs describe only the picker and the Overview as ways to change that selection.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions