ucollage icon indicating copy to clipboard operation
ucollage copied to clipboard

Dynamically adjust rows and columns on window resize

Open 766F6964 opened this issue 3 years ago • 1 comments

Currently, one can change the amount of rows and columns with +_ and -_. It would be nice if ucollage could dynamically adjust the amount of rows and columns when resizing the window, to allow for best use of the space in the terminal.

Examples: May17_144136 May17_144146

766F6964 avatar May 17 '21 12:05 766F6964

This is also a problem that is a little tricky because of how ueberzug draws images on the screen. Let me explain a little more how ucollage handles each image.

ueberzug takes the following parameters

  • x: the column we want to start drawing
  • y: the row we want to start drawing
  • width: how many columns are available
  • height: how many rows are available

When ucollage creates the grid, it sets this values for each image and then ueberzug does the rest, according to the scaler selected. In order to optimize the use of space we would need to know the resolution of the image (not that difficult to find through the use of secondary programs) and also how that resolution is mapped to the column width and row height of your terminal in order to select the optimal values.

For example how do we map a 3:2 resolution image to widthxheight so that the ratio (width * pixels_per_column)/(height * pixels_per_row) is 3:2.

I believe this is doable. I can search the web for it. But if you already have an idea and can help, I will be happy to listen to suggestions.

Then again, we have the problem. What resolution should we tailor our grid for our images to fit perfectly? But, this is manageable, through set options. It's interesting in any way and this issue can remain open for the time being.

ckardaris avatar May 17 '21 14:05 ckardaris