Table of Contents
About The Module
Window Tabs Keeps your windows in Foundry VTT grouped and organized. Easily Grouping open windows with a tab experience.
Key Features
- Adds Tabs to nearly any window in Foundry VTT. Making it simple to organize open windows by adding tabs to the frame of the window app.
- Automatic Grouping keeps all of your windows of the same type together. For example, all of your actors will be grouped together, all of your items will be grouped together, etc.
- Maximize, Minimize and Dock you Windows. Easily maximize your windows to take up the entire screen, minimize and dock them above hotbar.
Supported Modules / Systems
Should work with most modules and systems. However, systems or modules with heavy theming may cause graphical issues. If so just let me know and I will try to fix it.
Get Rekt
- [ ] Window Controls Does not work with this module. I tried to add support, but given the super janky way I handle windows, it just didn't really work out. Sorry.
- [ ] Taskbar Does not work with this module. I tried to add support, but once again, I am handling the windows in a super janky way, so it didnt work out. Sorry.
- [ ] PopOut! Unable to select header button because of version issue. This is fixed in version 2.9+ but only version 2.14 is available on v11. Once this weird version issue is fixed, I will add support for this module.
API
Window Tabs comes with an API to use to help you integrate with it.
Registering a Custom Grouping Function
You can use game.modules.get('window-tabs').api.register(MODULE_ID, FUNCTION)
to register a custom function that will be called to determine a windows grouping. For example:
game.modules.get('window-tabs').api.register('kasper', (sheetApp) => {
// If Sheet ID is kasper-manager, group kasper wiht config
return (sheetApp?.id == 'kasper-manager' ? 'config' : null);
});
This will check to see if the id
of the window being opened is kasper-manager
. If it is, it will group it with the config
tab. If not, it will not use any custom grouping.
It is recommened that you use your Modules ID as the first parameter, this will help avoiding conflicts with other modules. If you need to register multiple functions, its recommend you use Module ID + Function Name, for example kasper.myFunction
.
Unregistering a Custom Grouping Function
You can use game.modules.get('window-tabs').api.unregister(MODULE_ID)
to unregister a custom function. For example:
game.modules.get('window-tabs').api.unregister('kasper');
This will unregister the custom grouping function registered above.
License
The image used for the logo can be found here Tabs icons created by Smashicons - Flaticon
Distributed under the MIT License. See LICENSE for more information.