Feature request - full screen window behaviors

photonclock
edited August 20 in SecuritySpy

I have had SecSpy running on my new Mac Mini M4 for several weeks now - very performant and a great setup overall. It's allowing me to do things I hadn't thought to do previously.

The newest macOS has these fancy "handoff" features where I can use my iPad keyboard/trackpad to control the Mac Mini, which is great because I don't want to have a keyboard/mouse hooked up to it.

I configured all my SecSpy windows in "spaces" (full screen views).

space 1 = full screen all camera grid (when I say "full screen" I mean macOS full screen window mode, where you click the green dot.

space 2 = cam 1

space 3 = cam 2 ...etc...

All of them full screened.

Then I changed my keyboard shortcut to flip between spaces to option-left/right arrow keys. Now I can quickly hit option-left/right arrow to flip between full screen cameras/all camera grid, etc.

I love this configuration.

One downside: when you restart Security Spy, it doesn't remember all your full screen window configuration. It starts up with all the windows non-full screen piled up on top of each other in the "Desktop space" (where non-full screened windows land by default).

Any way we could fix this up a bit and make SecSpy restore all windows to their full screen glory (and their specified ordering of spaces) at startup?

The full-screen "kiosk" mode that's built into SecSpy is always rotates between cameras. That's nice, but I prefer generally to leave the monitor on the multi-cam grid view, and then quickly flip to a full screen individual camera if I want to look at something carefully.

One other note on this topic: macOS default keyboard shortcut for window fullscreen is control-command-F. Security Spy window don't respond to that shortcut, but pretty much all other apps do. Could we add it?

Thank you!

macOS 15.6.1 + secSpy 6.13

Comments

  • Hi Ben, just bumping this feature request. It would be great if SecSpy could support retaining all macOS full-screen window and "space" configurations after quit & relaunch.

  • Sorry that your original post didn't get a response.

    I'm not sure if there's anything we can do to remember which space each window is on, as this is handled by macOS, but I'll take a look to check.

    We recommend that users use SecuritySpy's own full-screen mode (Command-F). In this mode, you can simply double-click on a particular camera to view it individually, and then double-click again to go back to the grid view. Does this do what you want?

  • I am quite confused by Security Spy's full screen mode behavior. For example:

    I open a camera window by double clicking it from my main all cameras window, or from a group window. I then press command-F and the window fullscreen's, but displays a different camera than the one that was visible in the individual camera window. Then I have to right-click it and choose 'add a camera to this screen', add the camera I expected (the one I double-clicked), then right-click again on the first camera (the wrong camera - not the one that was initially displayed in the window when I double-clicked it from the all-cameras view or the group view), and choose 'remove this camera from this screen'.

    If I open a camera window, and do not full screen it (neither SecSpy or macOS), and then display the "mission control" preview that shows all the spaces-desktops a little icons across the top of the macOS desktop, and drag that SecSpy camera window into the preview area to make it live in a new space, then it becomes a "macOS full screen space". Now the problem is I connect disable fullscreen on it by pressing command-control-F (the default macOS shortcut for exiting full screen). I've effectively converted it into a macOS fullscreen window by dragging it into a new space. Now I'm back to the original problem, which is that on a subsequent launch of SecSpy, SecSpy will not remember this configuration and I'll have configure all the camera windows again.

    I cannot use Security Spy's fullscreen mode to fullscreen multiple individual camera windows and then flip through the full screen views, as I do with spaces. SecSpy full screen views seem to only be able to exist in one macOS "space".

    In terms of the macOS full screen beahviors, other macOS apps I use (ie, browsers) remember the full screen configuration and "spaces" positioning of every window, and then I use shortcuts to flip through the spaces.

    All I want to accomplish here is having full screen views of:

    GroupView

    Cam1

    Cam2

    Cam3

    Etc...

    Which I can then quickly flip through with keyboard shortcuts. Since I can't figure out how to do that with SecSpy control, I've been using macOS spaces to accomplish it.

  • photonclock
    edited November 9

    Specific breakdown of feature requests:

    Control-command-F (macOS) to full screen a window.

    If I move a full screen window to a space, remember the space and restore it at re-launch.

    Goal: full screen views of 1 or more group windows and/or all-camera windows + 1 fullscreen views of or more individual camera windows, quickly accessible by toggling through them with a keyboard shortcut (I use command-option-left/right arrows to toggle through spaces, I think the macOS default is control-left/right arrow, not sure as I always change it to my liking).

    My spaces layout is like this:

    GroupView, Cam1, Cam2, Cam3, Safari Hubitat dashboard 1, Safari Hubitat dashboard 2, Weather

    Then I can rapidly switch between these fullscreen views to see small details in the cameras when desired, as well as having big button layouts for Hubitat dashboards, weather, etc.

    If Security Spy implemented a more thorough full screen control configuration, I'd happily use it. A more advanced way I could image it working for people with greater numbers of cameras would be to just be able to type a camera number and press enter on numeric keypad to instantly jump to that camera's full screen view. *-Enter or .-Enter could default to all cameras or a group view. User types 1,9,Enter, jumps to camera 19. User types *,Enter back to group view. Etc. But I'm not really suggesting go build something like that, I figure you get all this macOS full-screen window & spaces functionality control for "free" from macOS, so why not leverage it? If you've not played with it, hover over the green dot on a Safari window for example and you see all the "fill and arrange" options for various macOS controlled fullscreen layouts. SecSpy should take advantage of this. 😃

  • With SecuritySpy's own full-screen implementation:

    • Each monitor gets its own independent layout.
    • This is different from other camera windows (group, individual, All Cameras).
    • Right-click on a monitor in full-screen mode to add/remove cameras.

    This gives a lot of flexibility, but you are right that it's different from spaces, where you can swipe left/right through the different spaces to give different views. In terms of making individual windows full-screen, and putting them in different spaces, this is macOS behaviour that is beyond SecuritySpy's control.

    I've looked into the spaces thing a bit more and here's what I have found. This is managed by "Saved Application State" - basically the idea is that macOS remembers window locations and what spaces they are on, to restore them the next time that the application loads.

    However there is a serious flaw in this mechanism that we have had to work around in SecuritySpy: sometimes, often after a reboot/powercut, upon opening an application again, macOS will display a message such as "do you want to restore windows for application X". This message stays there until the user clicks something, thereby preventing the application from opening. Obviously this is unacceptable for SecuritySpy, which often needs to run autonomously on Macs deployed as servers (e.g. headless or without user input), with as much uptime as possible.

    Therefore, to prevent this, SecuritySpy specifically removes its saved state every time it opens. Unfortunately this means that spaces won't persist for SecuritySpy's windows across restarts. This is the situation at the moment. Perhaps we can add a setting for this, I'll look into it.

  • I understand. The point is, Spaces are just the means by which I've found a configuration I like, but it doesn't require macOS "spaces" functionality to achieve the same result. If I could full screen (via SecSpy) an individual camera window with multiple cameras assigned to it, and configure the window to display one camera full screen, and then simply use the arrow keys to flip left/right through full screen views of all cameras assigned to that window, that would be roughly equivalent to what I'm accomplishing with spaces.

    We lose a lot by deleting all application state. When the app restarts after a power failure or reboot or whatever the cause - none of the windows are restored as they were configured. My setup has dedicated monitors, with the "all cameras" or my desired camera group window always full screened on one monitor so I see the big picture, and the other monitor showing full screen views of the individual cameras. It's a shame that the application can't restore even it's own full screen window configuration upon relaunch.

  • Ben
    Ben
    edited November 12

    This is a good idea! Now implemented in the latest beta version (currently 6.17b1) so please test:

    • Enter full-screen mode.
    • Double-click one particular camera to make it full-screen individually.
    • You can now use the left/right arrow keys to move between cameras.
    • Double-click again to go back to the grid view.

    Regarding your other comment about restoring full-screen mode, SecuritySpy does actually do this: if full-screen mode is active when you quit, the next time you open, it's automatically restored. This of course only works with SecuritySpy's own full-screen mode, not the window-specific macOS one, due to the saved state issue.

  • Ok, this is almost perfect. Could we make one tweak? Rather than having to double-click to enter/exit grid view (which negates the simplicity of simple keystroke UI), can the arrow keys be used to navigate to grid as well?

    Examples:

    Camera Window/Grid contains: cam1, cam2, cam3, cam4

    Arrow right key results, beginning with Grid currently displayed:

    cam1, cam2, cam3, cam4, GRID, cam1, cam2...

    Arrow left key results, beginning with cam2 currently displayed:

    cam1, GRID, cam4, cam3, cam2, cam1, GRID...

    etc...

    ? 😁

  • photonclock
    edited 3:32AM

    EDIT: what I wrote here was inaccurate...nevermind...

  • Ok, after playing with this for a bit - one other thought:

    When SecSpy is put into its command-F fullscreen mode, it effectively takes over all displays, negating any usage of macOS spaces.

    If I full screen an individual camera window via macOS (ie, click the green window button to macOS-fullscreen the window vs SecSpy fullscreen), the left/right arrow key feature to flip through cameras in an individual camera window doesn't work. SecSpy has to be in it's own "SecSpy fullscreen mode" for the feature to work.

    Question: is that limitation necessary?

    How about allowing assignment of multiple cameras to a camera window when SecSpy full screen mode is not enabled, and then, let the user flip through the assigned cameras with the arrow keys in any window, whether full screen mode is active or not?

    This would allow users to use SecSpy fullscreen mode as implemented, which presumably some people are familiar with and prefer, and it would allow users to attain some macOS functionality as I'm trying to do, where I leverage macOS Spaces along with SecSpy fullscreened windows simultaneously.

    To be clear: I like the change you just made (caveat - would also be great if arrow keys worked to rotate through grid+individual views without the double click). I can see using SecSpy in both its fullscreen mode some of the time (ie, by default when SecSpy starts up), and then exiting SecSpy fullscreen mode on occasion when I'm in the office and want to use SecSpy + macOS Spaces for my "mission control" (which means viewing SecSpy windows as well as Hubitat Dashboards and other pre-configured macOS-fullscreened windows via Spaces).