• 1 Post
  • 1 Comment
Joined 5 days ago
cake
Cake day: June 29th, 2024

help-circle
  • To further illustrate my point, here are some more screenshots of the current layout:

    As well as what I think would look better:

    This is a completely different perspective from the current “grid” layout. The idea here is:

    • We have exactly N rows.
    • We have a list of “items”, where an “item” is either a pinned (unopened) icon or a button for an opened application/window with a title (will call it “button” here for short, can’t come up with a better term).
    • The row height should never change while opening/closing windows (applications).
    • The width of (unopened) icons should never change.
    • The width of “buttons” should be determined dynamically, depending on the number of items and space available. But I imagine that it should start from something like 300 px - something that could be considered wide enough to display “enough” of the title text (maybe ‘px’ is not the best unit, but just to illustrate the point), and only decrease the width when needed (i.e. no space left).
      • In the simple case when N=1, let’s say the available space is with width W units, there are P pinned icons and their width is K units, then the available space for all “buttons” could be calculated with something like buttons_total_space = (W - (P*K)). To get the target single button width, we could do something like button_width = min(300, buttons_total_space / buttons_count) (not sure if the case of “too small button_width” should be handled in any special way - IMO probably not worth it).
      • To handle the N>1 case, the formula would become more complicated of course, as it would need to account for different available horizontal space in each row and figure out how many buttons to put in each row. For example, if N=3 and we have 8 pinned unopened icons, they will probably fit in the first row. Then we might end up with, say, 480px left in the first row and 800px in the other two, so if we need to distribute 10 buttons, we might decide to put 2 buttons (with width 240px) in the first row and 4 buttons (with width 200px) on each of the remaining 2 rows.