Repository navigation
Process list in columns, with headings that sort - #13
Merged
Merged
Conversation
The list read as a stack of sentences: a name, then "PID · user · N threads" under it, with CPU and memory piled at the right edge. Fine for finding one process, useless for the thing a process viewer is for — running an eye down the whole system and seeing which one is misbehaving. Each row is now one line: icon and name, then PID, CPU, memory and threads, each right-aligned in a column. A column is as wide as the widest figure it can hold at the current text size, measured once in ProcessListMetrics and shared by every row and the headings, so figures line up whatever the row holds. The headings take their edges from a laid-out row rather than their own margins, so they sit over the figures wherever the table puts the header. Where a row is too narrow, threads go first, then PID; CPU always stays. At the accessibility text sizes the figures stack under the name. CPU shows orange from half a core and red from nine tenths, so a process spinning a core stands out; idle stays secondary. The user moves off the row (it is in the details and VoiceOver still reads it), and so does the disclosure chevron, which cost the name column its width. A heading sorts by its column, tinted with an arrow like a detail table's. Threads is a new sort order to match. Rows are laid out by hand at a fixed height, so a live sample only sets text, and the table never measures a row. German "Memory" becomes "Speicher", as Activity Monitor has it: "Arbeitsspeicher" was wider than any figure under it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closed
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.
The list read as a stack of sentences: a name, then "PID · user · N threads"
under it, with CPU and memory piled at the right edge. Fine for finding one
process, useless for the thing a process viewer is for — running an eye down
the whole system and seeing which one is misbehaving.
Each row is now one line: icon and name, then PID, CPU, memory and threads,
each right-aligned in a column. A column is as wide as the widest figure it
can hold at the current text size, measured once in ProcessListMetrics and
shared by every row and the headings, so figures line up whatever the row
holds. The headings take their edges from a laid-out row rather than their
own margins, so they sit over the figures wherever the table puts the
header. Where a row is too narrow, threads go first, then PID; CPU always
stays. At the accessibility text sizes the figures stack under the name.
CPU shows orange from half a core and red from nine tenths, so a process
spinning a core stands out; idle stays secondary. The user moves off the row
(it is in the details and VoiceOver still reads it), and so does the
disclosure chevron, which cost the name column its width.
A heading sorts by its column, tinted with an arrow like a detail table's.
Threads is a new sort order to match. Rows are laid out by hand at a fixed
height, so a live sample only sets text, and the table never measures a row.
German "Memory" becomes "Speicher", as Activity Monitor has it:
"Arbeitsspeicher" was wider than any figure under it.
Fixes #8
🤖 Generated with Claude Code