OBS > Add a new/custom panel to the Dock

idxearo

Member
Hi Everyone,

I was searching around but could not find anything related. I like the idea of customizing the UI dock of OBS studio to suit my needs. Would it be possible to allow the user to add a new panel to the dock? And in that panel, a browser url or some iframe could be added? I ask because I would actually like to have Twitch chat, notifications and anything else I want IN obs itself, so that way I only have 1 program to monitor and I can arrange everything the way I need it. I understand that this might be redundant for some people, but I've found myself running out of desktop space with all the things I have to keep an eye on.
http://prntscr.com/hugida
 

dodgepong

Administrator
Forum Admin
This is an idea that has been discussed for a while. We already ship CEF with the browser source, but I'm not sure how easy it is to put into a Qt panel. There is also a QtWebEngine but I don't think we need to have 2 browsers in OBS. Jim seems to think there is a way to do it with the CEF we already ship with, so that may be an option for this.
 

sputnick1124

New Member
Hi Everyone,

I was searching around but could not find anything related. I like the idea of customizing the UI dock of OBS studio to suit my needs. Would it be possible to allow the user to add a new panel to the dock? And in that panel, a browser url or some iframe could be added? I ask because I would actually like to have Twitch chat, notifications and anything else I want IN obs itself, so that way I only have 1 program to monitor and I can arrange everything the way I need it. I understand that this might be redundant for some people, but I've found myself running out of desktop space with all the things I have to keep an eye on.
http://prntscr.com/hugida

I know I'm a bit late to the party, but this post comes up pretty quick when searching around for "custom obs studio ui".

After much fiddling and experimenting, I have successfully added a custom dock widget exactly like you are describing (albeit for a different purpose). I am planning on making a github repo at some point to document the process to do so (it's all Qt development stuff, which is new to me). If it would be helpful, I would love to contribute official OBS docs on the process. I don't know anything about the browser question, but getting a custom panel/widget is definitely possible.

In short the process is as follows:
1. Create a standalone Qt widget to your liking as a library (docs for this are hit and miss).
2. As a part of your OBS plugin, make a call to `obs_frontend_get_main_window` to get a pointer to the QMainWindow of the whole application.
3. Instantiate your widget with the reference to the QMainWindow and then add your widget to the main window with `QMainWindow::addWidget`.
4. If you want to hook up your widget to any of the Qt signals, this can be done with a call to Qt's `connect` int he constructor of your widget. The object instance needed for the SIGNAL half of the connect arguments can be found with `QMainWindow::findChild` (as long as the object has a registered name in the application).

That might not make a whole lot of sense, but like I said, I plan on putting a starter example on Github some time in the future to demonstrate. Unfortunately, I cannot share the code I am working on at the moment as it belongs to a client and is not suitable for distribution.

Hope this helps someone!
Nick
 
Last edited:

sick50g

New Member
sry for bumping old topic but i really woud like to use this, cuz i seen 1 guy already have this installed, anyone have any solutions?
 
Top