Дальнейшее развитие моего эксперимента с прогрессбаром в терминале (OSC 9;4)
Проверял только в Kitty и Ghostty. Интересно где ещё работает.
```python
import sys
import time
BRALE_CHARS = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
# Indeterminate mode
for i in range(101):
char = BRALE_CHARS[i % len(BRALE_CHARS)]
sys.stderr.write(f"\r{char} Indeterminate\x1b]9;4;3\x07")
sys.stderr.flush()
time.sleep(0.05)
# Paused
sys.stderr.write("\r\x1b[K Paused\x1b]9;4;4\x07")
sys.stderr.flush()
time.sleep(2)
# Progress
for i in range(101):
char = BRALE_CHARS[i % len(BRALE_CHARS)]
sys.stderr.write(f"\r\x1b[K{char} {i}%\x1b]9;4;1;{i}\x07")
sys.stderr.flush()
time.sleep(0.05)
# Error
sys.stderr.write("\r\x1b[K Error\x1b]9;4;2\x07")
sys.stderr.flush()
time.sleep(2)
# Clean up
sys.stderr.write("\r\n\x1b]9;4;0\x07")
```
Проверял только в Kitty и Ghostty. Интересно где ещё работает.
```python
import sys
import time
BRALE_CHARS = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
# Indeterminate mode
for i in range(101):
char = BRALE_CHARS[i % len(BRALE_CHARS)]
sys.stderr.write(f"\r{char} Indeterminate\x1b]9;4;3\x07")
sys.stderr.flush()
time.sleep(0.05)
# Paused
sys.stderr.write("\r\x1b[K Paused\x1b]9;4;4\x07")
sys.stderr.flush()
time.sleep(2)
# Progress
for i in range(101):
char = BRALE_CHARS[i % len(BRALE_CHARS)]
sys.stderr.write(f"\r\x1b[K{char} {i}%\x1b]9;4;1;{i}\x07")
sys.stderr.flush()
time.sleep(0.05)
# Error
sys.stderr.write("\r\x1b[K Error\x1b]9;4;2\x07")
sys.stderr.flush()
time.sleep(2)
# Clean up
sys.stderr.write("\r\n\x1b]9;4;0\x07")
```