[Feature request] Vertical bar
itshog opened this issue · 2 comments
Probably this feature is out of scope for the project, but I think for some users it would be really useful being able to display the bar vertically to the left or right side of the screen, especially on small laptop screens where vertical space is limited.
The biggest problem which is always brought up when talking about vertical bars for tiling window managers is that text isn't as easy to fit and align vertically as it is horizontally, and even when it is the result may not be aesthetically pleasing. Generally speaking, there are usually three options for fitting text in a vertical bar:
- Rotate the text by 90 or 270 degrees: it preserves the basic structure of text-based bars, but it may be difficult to read rotated text or it may look ugly in some cases.
- Use vertical text: it works like a charm with CJK languages that already use vertical text, but with latin alphabets it's kind of ugly and it wastes a lot of space.
- (My personal favourite) Use horizontal text with line breaks: by inserting a new line after a user-defined number of characters/width (and by specifying line breaks beforehand when configuring the status-line) we achieve the best flexibility. It's up to the user to properly configure the bar so it fits in a reasonable width and still conveys all needed information: for instance, the date could be formatted as
%H\n%M
and the percentage indicators for battery etc. as "icon\npercentage".
The only programs which currently support vertical bars on wlroots compositors are waybar and (I think) eww (but AFAIK with eww you have to basically write the whole widget yourself), with waybar's implementation still leaving some things to be desired. yambar instead has an open issue about this.
I don't know how difficult it would be to implement this, nor if it would work with how status generators like i3status and i3status-rust are designed, since sway's own bar doesn't support vertical layouts. Given all of the above, I'd understand if this is considered out of scope or too tedious to implement and maintain.
Thanks in advance
This is in scope for this project. I will probably not implement it myself in the near future, but I'm open to the discussion on how it should work and I'm willing to review and maintain a potential implementation.
This is in scope for this project. I will probably not implement it myself in the near future, but I'm open to the discussion on how it should work and I'm willing to review and maintain a potential implementation.
Nice to hear! In my opinion the third option I described is the one that allows for the most flexibility, maybe with the optional rotation of some/all elements of the bar (for example, one could have the workspace numbers displayed normally, one below the other and separated by a newline, and longer bits of text in the status line rotated to be more readable)