8bitPit / Niagara-Issues

A place to submit feature requests and bug reports for Niagara Launcher, a modern + minimalist Android home screen optimized for one-✋ access and staying focused.
http://niagaralauncher.app
830 stars 38 forks source link

Different configurations per screen for foldables/multi-screen devices #1707

Open lexiconzero opened 2 years ago

lexiconzero commented 2 years ago

Is your feature request related to a problem?

No response

Describe the solution you'd like

I would like to have the ability to customise the launcher layout/widgets on the two screens of my foldable (Samsung Fold 3) separately. The larger inner screen provides the option to have widgets as there's a lot more screen real estate versus the outer screen which should be as concise as possible

Maxr1998 commented 2 years ago

I'm not sure if this is feasible, while Niagara has some optimizations for foldable devices, to my knowledge it's not possible to detect on which screen you're currently on (not just for the Z Fold 3, but for foldables generally - we'd prefer an universal solution instead of per-device customisations.

lexiconzero commented 2 years ago

That makes sense to me, thanks for the response. I would imagine that other multi-screen devices might have even wilder screen dimension changes so this might be a desirable option for others too.

mattboy9921 commented 2 years ago

I came here today to suggest this. The default Samsung launcher on Fold devices is able to have a separate layout depending on which screen you are on. Currently, I use Niagara on my cover display and a different launcher (switched via Tasker) on my inside screen.

My thought is that I tend to do different activities on the cover screen (answer calls/texts, quick searches, calorie tracking) vs the main screen (videos, games, Reddit, email, web browsing) so I have different sets of apps for each. Perhaps this would be a good consideration?

it's not possible to detect on which screen you're currently on

I'm also curious about this as well. Currently, it must know what screen I am on because it shows the 2 column mode on the main display vs the single column on the cover display. Would it not be as simple as tying it to the same method that figures out whether to show the two columns?

I'd also just like to say I'm very happy that Foldables are finally getting some love. ❤️

sorgelig commented 10 months ago

Since Niagara already can distinguish screens to display one or two columns, switching between two screen sets following the same flag is about couple lines of code.

Maxr1998 commented 10 months ago

It's not, unfortunately. You also need to be able to set up those layouts separately. And then, the different layouts would need to be reloaded whenever you fold or unfold your device. But the implementation complexity isn't even the main issue, providing a clear user experience is. We have experimented with this feature internally already, but ultimately decided to not release it. We may pick this up again in the future, but right now, there are no plans for that.

By the way, the two columns are pretty easy in comparison, we just swap out the layout manager for the same set of items.

sorgelig commented 10 months ago

Actually you can always update both layouts but display only one, if you think reloading will give bad experience. Detection of inner/outer screen can relay on the same "is_tablet" flag from resources as you already doing now. Or simply Width/Height ratio of screen. Inner screens are all close to 1:1 ratio. I was using Samsung Galaxy Fold 2 about 3 years. Its native launcher supports independent layouts of home for inner and outer screens. And i was so get used to that, so miss it very much now on Xiaomi Fold 3 with Niagara (native Xiaomi launcher is rubbish). Basically i miss the ability to set different widgets on different screens.

TFackler commented 10 months ago

@nayanreddi added:

Two column option is great when foldable is opened. But when it's closed having the first column as main screen would be great than clubbing both columns into one.

sorgelig commented 10 months ago

@NayanReddi added:

Two column option is great when foldable is opened. But when it's closed having the first column as main screen would be great than clubbing both columns into one.

That's the UGLIEST possible way to implement! This is why i hate MIUI and other stock launchers for foldables. This is why i moved to Niagara. Please don't do it. Or give an option not to do that weird way.

Only OneUI implements correct way to handle 2 screens. It simply uses independent configs. And then each user may decide if he/she want to mirror the configs or display half or use completely different sets of widgets/icons.

NayanReddi commented 10 months ago

Definitely not uglier than the current way.. I don't have hope in Niagara that they go to that extent to give separate configurations for both screens.. if they do that's the most welcomed change. The other better possible I've asked for..

sorgelig commented 10 months ago

For me it's uglier than current one. Actually Niagara already starts to go this uglier way because now it displays 2 widgets side by side if there is a stack. Thanks i can still use single widget and have it centered. I simply hate when i cannot center widget on inner screen in MIUI launcher.

I don't understand why stacked widgets cannot have flag to display only on selected screen? It's basically zero work to implement that. All views have hidden/gone flag, and it can be assigned dynamically depending on screen layout. Of course resize should be different on different screens as widgets may have different sizes.

Maxr1998 commented 10 months ago

Actually Niagara already starts to go this uglier way because now it displays 2 widgets side by side if there is a stack.

Long press the stack, click two column widgets and hit disable. It's the new default, but the old behavior is still available. I suppose the toggle needs a bit more discoverability.

I don't understand why stacked widgets cannot have flag to display only on selected screen? It's basically zero work to implement that. All views have hidden/gone flag, and it can be assigned dynamically depending on screen layout.

The UI to configure this isn't that simple honestly. And regardless, I don't think that's a good design from a user perspective. Having to pick the visibility for each widget for each screen already feels convoluted just thinking about it.

Of course resize should be different on different screens as widgets may have different sizes.

Maybe, but then you'll quickly have people ask for the sizes to sync. Having better resize and alignment options would certainly be cool, but implementing these in a simple way is not an easy feat.

sorgelig commented 10 months ago

What you think is more convenient and what you call look cleaner for me is not obvious. For example you didn't make badges which is essential and clean looking way to notify, but did weird preview where none of messages will fit leaving it like badly formatted icon description. Quite "dirty" and heavy look. Badge even as a bare red dot (without number) would look much more cleaner. Adding separate screen configs doesn't mean every user should use it. It's can be an option and won't require special setting besides the single one: separate home screens - that's all. User will configure outer screen, then unfold the phone and configure inner screen. I don't see any difficulty for user to do that. Especially there are not many things need to be configured. Basically just one widget and list of favorites. By the way, process of folding and unfolding is not instant, so launcher has a lot of time to reload the config and user won't notice it.

sorgelig commented 9 months ago

https://github.com/8bitPit/Niagara-Issues/assets/917089/db85b28f-c92b-4502-88b1-77392f386bdf

I've patched Niagara to try how different homes will work. So you can see it on video. Flipclock widgets are different. Inner screen uses 4x2 widget while outer screen uses 5x2 version. So take it as 2 different widgets. Also you can see amounts of favorite icons between screens are different. Sets are fully independent between screens. Patched version doing this: If screen switched then launcher gets restarted and other database name is used. It's very simple patch. I don't know why it's so hard for developer to implement it. It won't affect non-foldable devices. Why don't make foldable users happy?

sorgelig commented 9 months ago

In my POC patch there are some inconveniences due to i had to swap the whole database, so some settings need to be repeated for each screen. With normal integration it would work better.