Home Store Blog

Implement to change desktop layouts

#1

Hi,

As Ubuntu MATE has (app mate-tweak), it would be awesome to offer an easy way to change the layout! For example, I prefer a Windows layout:

A hug :slight_smile:

#2

Hi costales,

Not sure what you mean, is it about the panel layout?

#3

Yes, a Settings section or program for choose default layout:

  • Default (as installed).
  • Unity.
  • Windows (as screenshot).
  • MacOS.
  • etc

Then, you could choose one and your layout would change in the moment.
You have a video explaining the MATE app.

#4

It’s an idea I came up with a year ago … but still great minds think alike !

It is something I have never been able to spend any real time on unfortunately.

I am more than happy though to work with anyone who wants to take up the challenge.

I see it as mainly a bash scripting challenge with maybe a bit of html/python thrown in to add the callouts to the scripts via budgie-welcome.

#5

Zorin OS does this. It would be a nice feature for newbies especially.

#6

I could try it in a few weeks. I will think on it.

#7

As for mate-tweak I guess Budgie Settings can be an option in our case. Probably adding it to settings would resemble something you have in mate-tweak.

#8

This isn’t likely something I’ll be getting in for Budgie 10 series (just too much work in relation to the few other tasks I want to accomplish for Budgie 10.5 and the subsequent 10.5.1 release), but this is something I’ll be doing for Budgie 11’s Control Center.

We’d ship with some pre-defined layouts at that point and any others that wish to be shipped by downstreams (like Ubuntu Budgie) will have designated directories. I don’t have any set directories yet, because obviously the functionality does not yet exist, but I’d expect it to be something like:

  • Built-in: /usr/share/budgie-desktop/layouts/core/
  • Downstream: /usr/share/budgie-desktop/layouts/third-party/
  • Local (useful for sharing and back-ups): ~/.config/budgie-desktop/layouts/

Since Budgie 11 would likely be stateless, you’d also be able to override the “core” layouts in a system-wide manner via /etc/budgie-desktop/layouts/core/

The trickiest aspect would be ensuring applet settings are also stored and applied in a sane way. There’s some ideas I have on that, but won’t really know until I flesh out the new widget model (which will need to account for panel and Raven widgets).

1 Like
#9

Sounds like a feasible plan. I agree, it is better to be left for Budgie 11. I like the idea of splitting into 3 parts since at the same time the core doesn’t need to be touched, and you could pull the custom ones using apps like budgie-welcome or any other 3rd party depending on the distro into Downstream folder.

I guess that applets would need to have the same structure for storing their configuration and also to ensure that applying some layout can check for missing applets before applying the layout which could result in broken layout.

It would be interesting to see some widgets done in Raven like on Mac OS that could take functionality of some widgets like weather, stocks, etc.

#10

One question please, where is the public repository for budgie-desktop-settings?

Thanks in advance.

#11

I like the idea of splitting into 3 parts since at the same time the core doesn’t need to be touched, and you could pull the custom ones using apps like budgie-welcome or any other 3rd party depending on the distro into Downstream folder.

Precisely. I want to maximize the amount of customization downstreams can do for Budgie layouts while reducing the legwork. Just chuck it in a directory, set it as the default in a gschema override, and done. Downstreams like Ubuntu Budgie come to a determination as to what the best way to distribute other layouts would be, whether that’s through Budgie Welcome or some other mechanism.

I guess that applets would need to have the same structure for storing their configuration and also to ensure that applying some layout can check for missing applets before applying the layout which could result in broken layout.

Yea, since each Budgie applet has a unique UUID, we’d need to have part of the layout loader check for types of applets (like DropBy, IconTasklist, etc.) and prompt the user if they’d like to keep their settings for the applets (in which case, we’d apply them to the corresponding identical applet type, so DropBy -> DropBy in new layout) or go with the default provided by the layout. Or some similar model.

It would be interesting to see some widgets done in Raven like on Mac OS that could take functionality of some widgets like weather, stocks, etc.

These really are the two first widgets I want to add natively to Raven for Budgie 11 :smiley:

#12

It’s located in a kinda funky place, haven’t had the opportunity to move it yet (PRs welcome, I’d just move it to src/settings). Repository is budgie-desktop and settings is located in src/panel/settings.

Yea, in src/panel. I know, it’s weird. :man_shrugging:

1 Like
#13

Well, we can do the work for weather and upstream it. We already have 95% of the vala code so really its just converting from an applet style to a raven widget style. Just need the api to write to.

1 Like
#14

Hi,

I tried to implement it 2 times, but it uses vala & C files (I’m not familiar with them) and the project has a complicate workflow code (for me).

Then, after a lot of lost hours, I’m so sorry, but I can’t not implement this :frowning:

A hug and I’m sorry.