Skip to content

Conversation

@D3VL-Jack
Copy link

@D3VL-Jack D3VL-Jack commented Oct 8, 2025

This pull requests adds a tree view profile picker to the main window.
image
Click groups to expand and collapse them, double click profiles to open as a new tab.

Hover actions & context menu options are also available
image image

To achieve this, groups have been given the ability to be nested under another group
image

Care has been taken to ensure backwards compatibility with previous configs.
parentGroupId, icon, color fields have been added to the groups configuration items

groups:
  - id: 62c453d2-01d0-47e1-8723-1eec6373323e
    name: Group 1
    icon: fas fa-layer-group
    color: '#e294ff'
  - id: 7398c52c-2381-4f42-a8b3-816d8b5930e4
    name: Group 2
    icon: fas fa-4
    color: '#ffe33e'
    parentGroupId: 62c453d2-01d0-47e1-8723-1eec6373323e
  - id: f667f830-03af-48c9-b1b8-cfee8bfa84ac
    name: Group 3
    icon: fas fa-boxes-stacked
    color: '#4800f0'
    parentGroupId: f667f830-03af-48c9-b1b8-cfee8bfa84ac

An additional setting has been added to the window tab that allows the disabling of this feature
image

EditProfileModalComponent and EditProfileGroupModalComponent have been exported from tabby-settings to allow calling the modal from the sidebar.
electron_wxHq3xRT4M

And finally, the search modal has been changed to display the full group path as opposed to only the profile's parent group name.
image

Linked issues #9758 #9210 #411

Introduces support for nested profile groups, allowing groups to have parent groups, icons, and colors. Updates the UI to display groups in a collapsible tree structure, adds icon and color pickers to the group edit modal, and refactors group creation and editing logic to support the new hierarchy.
Re added the ability to set group defaults when creating a group
Moved delete group children to match group collapsed deletion
Moved buildGroupTree to profiles.service to allow for reusability
Groundwork for adding more panels to the app-root
Allows for better targeting than relying on the hierarchy of app-root>.content existing
Introduces a new ProfileTreeComponent with associated template and styles, displaying profile groups and profiles in a collapsible sidebar with filtering and resizing capabilities. Integrates the sidebar into the main app layout and updates module exports to support profile and group editing modals.
@Eugeny
Copy link
Owner

Eugeny commented Oct 13, 2025

Thank you so much for the PR!

There are a few layout issues on macOS currently:
image

@Suhun0331
Copy link

I think it would be good if this function was added as soon as possible !

@itzhoujun
Copy link

nice work

@nisaev
Copy link

nisaev commented Nov 26, 2025

nice work. Hope @Eugeny will add it soon.

@nisaev
Copy link

nisaev commented Nov 27, 2025

Thank you so much for the PR!

There are a few layout issues on macOS currently: image

margin-top:20px for filter input field should fix it.

@itzhoujun
Copy link

Thank you so much for the PR!

There are a few layout issues on macOS currently: image

@D3VL-Jack Hi

@steel97
Copy link

steel97 commented Dec 1, 2025

Awesome PR!

@nisaev I think 20px is too close to mac os traffic lights:
img
I suggest using something like margin-top: calc(var(--tabs-height) - 0.5rem). -0.5rem is to compensate p-2 on outer container:
img

Also, I think that this margin should be only applied on macos and only if not in fullscreen mode.
In fullscreen mode on macos it looks weird:
img

I think condition like this may work:

if (process?.platform == 'darwin' && !hostWindow.isFullscreen) {
    // apply margin-top on input here
} else {
    // remove margin-top
}

P.S: I also checked safe-area-inset-top and it doesn't work on electron app unfortunately...

@D3VL-Jack
Copy link
Author

Hi all,

Thank you for the positive feedback on this PR!

Unfortunately, I don't have the time nor access to a macOS environment at the moment to work on this small layout issue.

@steel97 thank you for having a look into this already, I hope @Eugeny will be able to use your findings and add this to the PR so it can get merged!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants