Add Custom Layouts
This pull request introduces support for customizable profile layouts and includes a minor change to the terminal's default behavior. The most important changes involve adding new structures for defining layouts, updating the Profile struct to include an optional layout configuration, and modifying the terminal's default focus state.
Support for customizable profile layouts:
src/config.rs: AddedLayoutDefinitionandSplitDefinitionstructs to define profile layouts, including properties for split axis, ratio, and target pane. Also introduced theSplitAxisenum to specify horizontal or vertical splits.src/config.rs: Updated theProfilestruct to include an optionalcustom_layoutfield of typeOption<LayoutDefinition>. This allows profiles to define custom layouts.src/config.rs: Modified theDefaultimplementation forProfileto setcustom_layouttoNoneby default.
Terminal behavior change:
src/terminal.rs: Changed the default value ofis_focusedin theTerminalstruct tofalseinstead oftrue.
Localization:
i18n/en/cosmic_term.ftl: Added a new localization stringprofile-layouts = Profile Layoutsto support the new feature.
I'm just checking in on this PR. It's been open for over a month and I want to make sure someone takes a look at it. I really do think that it is a unique feature that others, including me, would enjoy having. It does not change the default behavior of the terminal, this is an optional enhancement feature.
We are open to it. This amount of new UI would not be able to land during the first release cycle (we are entering feature freeze and focusing on bug fixes now).
now).
Awesome to hear! Wish I'd have gotten this in a little earlier, lol! I'll keep the branch sync'd with upstream so it'll be easier to integrate later.