-
-
Notifications
You must be signed in to change notification settings - Fork 506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: view as surface #2945
base: develop
Are you sure you want to change the base?
feat: view as surface #2945
Conversation
…port grid header buttons with normal grid
aecb344 update symetrix-dsp to v2.0.0
I'm not sure how much I like this. I always try to inline developments with #2387 and the UX there does not relate to single surfaces. As far as I see it at the moment, and please correct me if I'm wrong, this looks like a super complex way to hide some buttons. It adds another tab and many options and complex logic and stuff which leads to confusion when done wrong. "Why I can't see my buttons anymore?" "You have to check that..." |
This is exactly the use case I am aiming for here.
I don't think this is in contrast with some of the ideas proposed in #2387. It is aiming to solve a similar scenario as that screenshot of yours. Im curious, how would you display this in that grid? It doesn't quite align to a grid nicely, so I think will be confusing to display like that. (there is an lcd segment for each button around it, meaning that portion is a 2x4, but then with centered buttons at the ends) |
Don't get me wrong, I'm a big fan of every functionality, but I think this it the wrong UI approach to that problem. |
And by the way I think placing controls is difficult if you have a few different surfaces with different offsets and that is the point where you need to see all of them and not one of them. |
I kind of agree but not fully. And for the author of the surface integration, they will need to define those overlaps.
Unless rotaries and things work in that, it can't really be called an emulator. A viewer maybe, but for those with rotaries it would only be useful as a programming tool not for operation. (Unless someone has a plan on how rotaries should work in an emulator)
I had thought yesterday that it would be nice to be able to select a surface-group in this view, rather than just individual surfaces, but didn't want to tackle that yet. This is reading to myself like I am fighting the concept of a grid, but I'm not intending to. And its not changing any of the technical details behind things, just an alternate way of viewing the grid. |
That shouldn't be a real problem. Rendering like it looks on the device, use mouse or touch rotation movement to rotate it. Extra bonus: use scroll wheel to rotate. Done.
The current emulator should not be called an emulator in that regard, I'd rather call it a webpanel.
What would be the difference then from my surface view? Only that you don't see unused cells or anything else? In my proposal the surface view actually has the main purpose of positioning the surfaces, but I'm open for a simulator view. Overlapping surfaces is a challenge for that, maybe one could select / deselect the surfaces or groups to show on simulator. I don't think we should use too much effort for this feature because Companion is about using equipment with real surfaces or virtual surfaces and the main GUI is for programming that stuff and not for running it. A simulator can help while programming but the main focus of the GUI should stay programming. |
Do we have any telemetry on how many people actually use Companion with multiple surfaces / overlapping surface layouts? Maybe I’m the odd one out, but I don’t utilize surfaces in that way and would consider it more of an advanced use case. The Surface mockup with them all overlayed is confusing to me, in terms of how I think about the grid and organize my Companion systems. but maybe seeing an actual implementation would make it make more sense. And data could prove me dead wrong, but my suspicion is that lots of people use companion with just a single Streamdeck, or at least a single type of Streamdeck. |
Overlapping surfaces have been the standard ever since. When we started this workflow it was a little awkward to many people and still is today. Often beginners ask why both of their surfaces show the same buttons or how they can address the second surface individually. The programming style with a side-by side layout is only made possible recently with the larger grid size (not counting multiple streamdeck minis). In my surrounding (professional events industry), I'd say 50% of the people are using 1x XL, 30% more than one XL, 20% mixed surfaces. The reason is that we like to add streamdecks to the genuine consoles. In the streamer and more budget-oriented world, the combination of XL and SD+ is very popular because it gives some rotaries and good amount of buttons. They usually replace the consoles completely with Streamdecks. Speaking about my Mockup: What does confuse you? Keep in mind that this is only a quick Mockup, done over a year ago and does not 100% fit the context here. Have you read #2387 ? |
That's interesting anecdotal evidence of what devices / how people are using them, but I would be interested in the raw data of the userbase as a whole.
I read thru this and it makes slightly more sense, but I still conceptually have a hard time with the windows/surfaces concept as laid out there. I think I could grow to learn it, but trying to be an advocate for the most basic of user who just needs a simple setup with one or two devices. I feel like being as simple to go from install to programed surface is still important.Maybe, as you in that discussion, "once you see this in action it will be very easy." But having not seen anything like this implemented or drafted, and as such have a hard time breaking the current layout/ pages mentality. I do think getting more voices in the discussion would also be helpful. All that said, this PR is likely not the best place for this whole discussion, so I'll defer to that discussion thread if I have more input. |
There is some, here is a sampling of how many unique surfaces each online user has reported across the last week This will only include users who are online, an unknown proportion are offline. Fun fact, one user of 2.2.0 has 87 surfaces!
I think we are talking about two related but not quite the same thing. So with what Dorian proposes in #2387, if we show every surface on every page, then yes it will be a confusing mess of overlaps. Even though I implemented the larger grid, I haven't reconfigured my office setup to put everything on page 1 simply because I can't be bothered to reconfigure things. But if I were to add a new surface, then I would do it the new way. But getting back to the question at hand, does this proposed view serve a good purpose or is it going down the wrong road? I still think it has value as a way of viewing the portion of the the grid being configured with a specific streamdeck in mind, while #2387 proposes something that will help with placing multiple within the grid. I don't think it has to be one or the other. Based on the stats above, I think the side by side view is probably not that useful, so while a nice idea probably won't be done. And honestly, I am not how long it will be until the grid changes from #2387 get done. I so rarely find myself doing something complex enough to benefit from windows, that the times I do I would be satisfied with a better way to link/ref a button to another. |
Related: #1352 #2189
This adds the ability to view the button grid as a particular surface.
For now this is limited to reducing the buttons shown to the ones displayed by a surface, it will later be extended to support showing 'custom' layouts and graphics for surface types that define them.
The selection is remembered across page reloads/refreshes.
There is a toggle button added above the grid to quickly enable/disable this for the current surface, the main configuration for this tool is a panel on the right.
The 'Surface' dropdown offers every surface as shown in the surfaces tab of companion. We already cache the dimensions of these, so know what size grid to show, even when they are not connected
In some cases, we don't have dimensions (surface hasn't been connected since we started storing that), then a warning is displayed and no size change takes effect
You can also choose 'Custom' in the 'Surface' dropdown, which enabled the 'Surface Type' dropdown which is configured with every surface type that companion natively supports.
You can also manually adjust the x&y offsets to position as desired.