Skip to content

Support Windows Terminal progress UI #47

Open

Description

@davidanthoff

Windows Terminal added support for ConEmu's OSC 9;4 escape sequences a while ago to trigger various nice UI things in the terminal. In particular, one can show a progress bar in the task bar and on the tab for a given Julia instance. I think the best place to add support for that would be here? Essentially all one has to do is emit various escape sequences if on Windows, and it should all work.

Couple questions:

  • My sense is that the current progress logging framework here fundamentally supports multiple progress bars a the same time? There is only one per terminal window, I'm a bit lost how we can handle that?
  • One can also emit certain escape sequences to set an error and warning state for the terminal. I think it would be nice if for example the task bar button showed the red bar when there was an error, and also showed a non-progress-bar-but-something-is-running whenever the REPL is executing code that doesn't do any progress reporting. The problem is that stuff seems more like REPL integration, though... So I'm a bit lost where that kind of code should be...

Some screenshots follow.

Showing a 40% progress in the tab and on the taskbar:

image

image

Showing an error state on the taskbar:

image

Showing the "something is running" on the taskbar, note that this is animated and the little bar is constantly moving:

image

And then there is also a yellow state, not clear to me what we would use that for:

image

Activity

  1. c42f commented on Jul 1, 2023

    @c42f
    Member

    In particular, one can show a progress bar in the task bar and on the tab for a given Julia instance. I think the best place to add support for that would be here?

    Sure, sounds great!

    There is only one per terminal window, I'm a bit lost how we can handle that?

    There's no obviously good way as the multiple progress bars might be unrelated to each other. Maybe we just show the oldest one which was added to the list. That's more likely to represent overall progress if there's nested progress bars.

    The problem is that stuff seems more like REPL integration, though

    Yes I think that part would have to go in the REPL stdlib

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions