Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ligatures for common progress bars #1183

Open
tonsky opened this issue Jan 16, 2021 · 22 comments
Open

Ligatures for common progress bars #1183

tonsky opened this issue Jan 16, 2021 · 22 comments
Milestone

Comments

@tonsky
Copy link
Owner

tonsky commented Jan 16, 2021

No description provided.

@tonsky
Copy link
Owner Author

tonsky commented Jan 16, 2021

npm (the filled part is displayed with background color instead of character):

⸨          ░░░░░░░░⸩ ⠼

gauge:

[#####.....]

@tonsky
Copy link
Owner Author

tonsky commented Jan 16, 2021

pip

|████████████████▌               |

@tonsky
Copy link
Owner Author

tonsky commented Jan 16, 2021

wget

[===============>                            ]

@tonsky
Copy link
Owner Author

tonsky commented Jan 16, 2021

Gradle

<======------->

@tonsky
Copy link
Owner Author

tonsky commented Jan 16, 2021

htop

[||||||||||||||||||                    14.2%]

@tonsky
Copy link
Owner Author

tonsky commented Jan 16, 2021

brew

################################################                          67.0%

@tonsky
Copy link
Owner Author

tonsky commented Jan 16, 2021

yarn

[##############################################----------------------------------] 46/80

@avrong
Copy link

avrong commented Jan 16, 2021

cargo

    Building [===========================>                           ] 151/296

@tonsky tonsky added this to the 6 milestone Jan 16, 2021
@pcdevil
Copy link

pcdevil commented Jan 17, 2021

apt has the same as gauge:

Progress: [ 98%] [########################################################..]

@magicvodi
Copy link

pacman (default config) same as gauge:
[##################################------------------------------------------] 45%

pacman with ILoveCandy setting:
[-------------------------------------------------c o o o o o o o o ] 68%
(The c is yellow and changes between lower and upper case)

@maximal
Copy link

maximal commented Jan 19, 2021

Composer (PHP package manager):

  0/96 [>---------------------------]   0%
 64/96 [==================>---------]  66%
 96/96 [============================] 100%

@lbguilherme
Copy link

Docker

0732ab25fa22: Downloading [=================================>                 ]  17.56MB/26.5MB

@dbechrd
Copy link

dbechrd commented Jan 20, 2021

There’s a cool animated one in a lot of Linux distros (I think during boot, I don’t recall):

....|
..../
....-
....\
(Back to start)

The last character spins until the next progress increment, when it is replaced with a ‘.’ and the spinner moves right.

You can see this type of spinner in action, without the progress indicating periods, here (along with some other pretty neat ideas):
https://youtu.be/5t2DO6Lp6Nk

@tonsky
Copy link
Owner Author

tonsky commented Jan 29, 2021

Gradle download

..............10%..............20%...............30%..............40%..............50%..

@tonsky tonsky modified the milestones: 6, 7 Nov 5, 2021
@ioquatix
Copy link

I see you added some progress bar characters.

Using the unicode block characters with a solid background you can make a fine-grained progress bar:

			BLOCK = [
				" ",
				"▏",
				"▎",
				"▍",
				"▌",
				"▋",
				"▊",
				"▉",
				"█",
			]

You get n/8 sub-resolution with those blocks.

It would be nice if you could do something similar with the progress bar characters you made, but it might require a rethink on how they fit together, with the left and right brackets having no actual "progress bar filler".

@maximal
Copy link

maximal commented Dec 1, 2021

Laravel Mix uses filled-only blocks but highlights them by different colors:

● Mix █████████████████████████ building (19%)

image

@maximal
Copy link

maximal commented Dec 1, 2021

PHPStan static analysis tool:

100/246 [▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░]  40%

@GlowingUmbreon
Copy link

Correct me if I'm wrong but isn't adding a loading font for every common loading screen a bit extreme? There are so many common loading bars and they can vary a lot. And a lot of them the size changes depending on the size of your terminal which I assume would make it harder.

@tonsky
Copy link
Owner Author

tonsky commented Feb 8, 2022

@GlowingUmbreon I am not sure I understand. What do you mean by “adding a (loading) font”? Adding where?

@cristaloleg
Copy link

@tonsky adding to FireCode I suppose.

@joelnordell
Copy link

joelnordell commented Mar 17, 2022

@tonsky - I have an idea: you could add a ligature for the new FiraCode progress bar chars themselves, for the case where a bar is 100% completed. Some progress bar libraries allow setting a "theme" for the bar, with characters for bar start, filled progress, empty progress, and bar end, but do not have a concept of two different characters for bar end depending on whether the progress has reached 100% or not.

This results in a progress bar that looks slightly incomplete:

image

A ligature could solve that by replacing the sequence \uee04\uee02 (filled bar, empty end) with \uee04\uee05 (filled bar, filled end).

Even without all the application-specific ligatures, I think this would be useful.

@bertin0
Copy link

bertin0 commented Jun 7, 2023

pacman with ILoveCandy setting: [-------------------------------------------------c o o o o o o o o ] 68% (The c is yellow and changes between lower and upper case)

Personally I would leave this one be. If you specifically set ILoveCandy for your pacman you probably want it to stay that way, and if you want to get the fancy bar you can just disable ILoveCandy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests