ubuntu-flutter-community / settings

:penguin: :orange_heart: :blue_heart: An Ubuntu Desktop system settings app made with Flutter.
GNU General Public License v3.0
272 stars 48 forks source link

Missing page: displays #58

Open Feichtmeier opened 2 years ago

Feichtmeier commented 2 years ago

Must-have-features:

Nice-to-have-features:

To-be-discussed-features:

Relevant implementations:

mivoligo commented 2 years ago

Opinion: The night light feature should be moved to the appearance page The color profiles should be moved to this section

I agree with that.

It's just an anecdotal evidence (based on a single case :smiley: ) but I remember having hard time to find the setting for the night light.

atsen-dev commented 2 years ago

Hello, I'm trying to make a first implementation of this page, I'll notify you here when my advance can be showed in a picture here.

Thanks

Feichtmeier commented 2 years ago

Hello, I'm trying to make a first implementation of this page, I'll notify you here when my advance can be showed in a picture here.

Thanks

Awesome thanks! If you want to get Infos about the dbus methods there is a nice tool for reading the dbus methods called d-feet (sudo apt install d-feet)

I've tinkered a bit on the display branch with the dbus methods but it's far from done. Maybe you can reuse the code

atsen-dev commented 2 years ago

Hello, I'll see that.

I have some questions, I don't know what resolutions I have to keep and remove from available resolutions, here what I have at this time : answer-for-resolutions

I'm able to call GetCurrentState method and retrieve some data for now.

Thank in advance

Feichtmeier commented 2 years ago

Hello, I'll see that.

I have some questions, I don't know what resolutions I have to keep and remove from available resolutions, here what I have at this time : answer-for-resolutions

I'm able to call GetCurrentState method and retrieve some data for now.

Thank in advance

I would keep all resolutions available. I guess if a display doesn't support it out wouldn't be on the list

Muqtxdir commented 2 years ago

would make sense to split the resolution after @ and show it separately as Refresh rate?

atsen-dev commented 2 years ago

Hi, just to notify that I'm always working on it. At this time, I' m able to switch resolution and refresh rate.

It miss to implements that for changing scale, transform (for landcape/right/left/reversed mode) and fractional scaling (for that I don' t know how I have to do).

And for 2 or more monitors, I think it miss also to change order of screen and change the primary screen.

Thanks

Feichtmeier commented 2 years ago

@atsen-dev thanks for the update!

atsen-dev commented 2 years ago

Hello, Update on my work : 1) For a one-screen configurations: all seems to work (except fractional scaling) : we can change resolution, refresh rate, scale, and rotation

2) For two screens configuration need some tests for me maybe almost all is working as expected.

Question : For fractional scaling, did you know from where we can changes that ? I didn't found that in DBus Mutter display configuration.

Thanks

Feichtmeier commented 2 years ago

Wow that sounds promising :)

I found this key: org.gnome.desktop.interface scaling-factor 0 and this key org.gnome.mutter.x11 fractional-scale-mode 'scale-ui-down'

But fractional-scale-mode didn't change when I changed to fractional scaling in gnome control center. :(

Feichtmeier commented 2 years ago

It could be that it is actually named "underscanning"

https://github.com/GNOME/gnome-control-center/blob/master/panels/display/cc-display-config.c#L313

It must be supported then it can be enabled Could this be fractional scaling? :thinking:

Muqtxdir commented 2 years ago

Hi, The code for fractional-scaling in ubuntu's gnome-control-center is done via these files:

Attaching the zip file containing the .patches file that is used in ubuntu to expose Fractional-scaling options under display: display-fractional-scaling-patches.zip

Feichtmeier commented 2 years ago

@atsen-dev if you like we could start with what you got, and improve it over time. For example I could try to review your design of the display panel etc, even if the missing features are not in yet

atsen-dev commented 2 years ago

Okay for me. Did you want some screenshots below this reply ?

Feichtmeier commented 2 years ago

No just make a pull request and post screenshots there 🐱

atsen-dev commented 2 years ago

Pull Request is made, I let you to link it with this issue ;)

https://github.com/Feichtmeier/settings/pull/295

Feichtmeier commented 2 years ago

@atsen-dev what is the reason the dispose in main is currently disabled for the display service? :)

atsen-dev commented 2 years ago

I found that it's not useful. Forgot to delete theses lines.

Feichtmeier commented 2 years ago

Hm, I see you capsuled a second display service in the DisplayService I think you need to close the dbus client on dispose though, similar to

https://github.com/Feichtmeier/settings/blob/37446ca53c4011734f5d46cd0a249a3cb11ed978/lib/services/bluetooth_service.dart#L29-L33

Maybe you could create a dipose method in the DisplayService, which only calls a dipose method from your DisplayDBusService?

atsen-dev commented 2 years ago

Hm, I see you capsuled a second display service in the DisplayService I think you need to close the dbus client on dispose though, similar to

https://github.com/Feichtmeier/settings/blob/37446ca53c4011734f5d46cd0a249a3cb11ed978/lib/services/bluetooth_service.dart#L29-L33

Maybe you could create a dipose method in the DisplayService, which only calls a dipose method from your DisplayDBusService?

Yeah, you're right. I'll do it and remake a new Pull Request to fix that.