# Virtual Stream Deck on menu bar when real Stream Deck is disconnected

**URL:** <https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025>\
**Category:** Feature Requests\
**Created:** [May 8, 2024, 12:29pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025 "2024-05-08T12:29:28Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![sambtt](https://community.folivora.ai/user_avatar/community.folivora.ai/sambtt/32/26835_2.png) [@sambtt](https://community.folivora.ai/u/sambtt)\
**Post date:** [May 8, 2024, 12:29pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/1 "2024-05-08T12:29:28Z")

</div>

Hello,  
I've spent many hours and days setting up my stream deck buttons and shortcuts.  
The visual customization of the buttons helps me very much without having to remember tens or hundreds of shortcuts. This is especially true for groups, I usually hide sub-commands under a groups so my stupid brains always know which trail to follows when trying to accomplish something.

The problem is that when I use a laptop on the go I usually don't carry around the stream deck, meaning that all my shortcuts, groups and subgroups and button customizations are not accessible anymore and my brain pushes my hand to reach my Stream Deck that is not there 😆

Given that there is already a very light emulator of the Stream Deck when setting it up, would it be possible to have a fully fledged Stream Deck emulator living on menu bar when the real physical one is not available? I guess this would be possible with floating web view.

My idea would be to have a menu bar icon that when clicked will bring up a web view with a perfect emulation of the real Stream Deck.

I hope it won't be too difficult 🙏

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 8, 2024, 1:46pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/2 "2024-05-08T13:46:17Z")

</div>

You can configure that like this:

 ![image](https://community.folivora.ai/uploads/default/original/3X/7/0/70abeae3c307963386a574544ae30aae984e1e6e.jpeg)

It should remember it's position so will show up / hide when you click the menubar icon

---

<div class="post-metadata">

**Author:** ![sambtt](https://community.folivora.ai/user_avatar/community.folivora.ai/sambtt/32/26835_2.png) [@sambtt](https://community.folivora.ai/u/sambtt)\
**Post date:** [May 8, 2024, 3:27pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/3 "2024-05-08T15:27:32Z")

</div>

Hi, no, it doesn't remember its position, I move it around and always reopen in the left bottom corner.  
The window size is also weird, I try to enlarge it to make all the buttons visible but they don't flow naturally. Anyway even if they becomes all visible the next time I show the emulator it's back to its original size and some buttons are hidden

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 8, 2024, 3:31pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/4 "2024-05-08T15:31:39Z")

</div>

Weird it seems to work fine here. Did you provide a serial number? It's also necessary to have the "show window title bar" option active for this to work.

However right now this is pretty slow. I'll add some caching to make it faster soon.

---

<div class="post-metadata">

**Author:** ![sambtt](https://community.folivora.ai/user_avatar/community.folivora.ai/sambtt/32/26835_2.png) [@sambtt](https://community.folivora.ai/u/sambtt)\
**Post date:** [May 8, 2024, 3:32pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/5 "2024-05-08T15:32:06Z")

</div>

Also quite buggy, 1/3 of the times the buttons don't show up 🤷‍♂️

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 8, 2024, 3:32pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/6 "2024-05-08T15:32:24Z")

</div>

Which macOS version are you on?

---

<div class="post-metadata">

**Author:** ![sambtt](https://community.folivora.ai/user_avatar/community.folivora.ai/sambtt/32/26835_2.png) [@sambtt](https://community.folivora.ai/u/sambtt)\
**Post date:** [May 8, 2024, 3:32pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/7 "2024-05-08T15:32:43Z")

</div>

Ventura 13.6.6

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 8, 2024, 3:34pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/8 "2024-05-08T15:34:47Z")

</div>

ah unfortunately that might be the reason ;-(  
Some of the code for that only works on macOS 14 or greater and Apple has fixed various window positioning issues there as well.

I'll check whether I can make it easily work on macOS 13 but I only have that running in a VM (might take a while for me to really look into it).

---

<div class="post-metadata">

**Author:** ![sambtt](https://community.folivora.ai/user_avatar/community.folivora.ai/sambtt/32/26835_2.png) [@sambtt](https://community.folivora.ai/u/sambtt)\
**Post date:** [May 8, 2024, 3:42pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/9 "2024-05-08T15:42:00Z")

</div>

I see, thanks.  
Is the serial number necessary even for the emulator? Could you please remind me how to find the serial number ?

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 8, 2024, 3:42pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/10 "2024-05-08T15:42:36Z")

</div>

You can just enter a fantasy serial number. It's just used as the title of the window, which macOS uses to save the position & size of the window.

The next alpha will make it much faster to show up.

---

<div class="post-metadata">

**Author:** ![sambtt](https://community.folivora.ai/user_avatar/community.folivora.ai/sambtt/32/26835_2.png) [@sambtt](https://community.folivora.ai/u/sambtt)\
**Post date:** [May 8, 2024, 3:49pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/11 "2024-05-08T15:49:07Z")

</div>

ok thanks, embedding the emulator into a web view wouldn't solve both problems of speed and retro-compatibility?

---

<div class="post-metadata">

**Author:** ![sambtt](https://community.folivora.ai/user_avatar/community.folivora.ai/sambtt/32/26835_2.png) [@sambtt](https://community.folivora.ai/u/sambtt)\
**Post date:** [May 8, 2024, 3:51pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/12 "2024-05-08T15:51:17Z")

</div>

BTW, giving a fantasy serial number fixed the position and size being saved 👍

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 8, 2024, 3:54pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/13 "2024-05-08T15:54:58Z")

</div>

It is a webview already 😉  
Performance was easy to fix - BTT will now keep it loaded even when hidden. (But the new alpha will still take a bit until I can upload it)

---

<div class="post-metadata">

**Author:** ![Arasmus](https://community.folivora.ai/user_avatar/community.folivora.ai/arasmus/32/10183_2.png) [@Arasmus](https://community.folivora.ai/u/Arasmus)\
**Post date:** [May 11, 2024, 6:09pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/14 "2024-05-11T18:09:06Z")

</div>

@sambtt that was an EXCELLENT suggestion. Thanks!

---

<div class="post-metadata">

**Author:** ![Arasmus](https://community.folivora.ai/user_avatar/community.folivora.ai/arasmus/32/10183_2.png) [@Arasmus](https://community.folivora.ai/u/Arasmus)\
**Post date:** [May 27, 2024, 5:02pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/15 "2024-05-27T17:02:30Z")

</div>

Now I'm sad, realizing that the Stream Deck preview is not _active_.

@Andreas_Hegenberg, a suggestion: It would be a quantum leap in value if the buttons in your Stream Deck simulator were actually functional. You already know what the buttons are supposed to do, so it _might_ be trivial for you?

Use case: I have a Stream Deck at home but not at work. With your simulator I could..simulate it?

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 27, 2024, 5:12pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/16 "2024-05-27T17:12:02Z")

</div>

what do you mean by active? As long as BTT is running in full control mode it should work like the real device  
(but I can‘t do anything about what is configured in the stream deck app)

---

<div class="post-metadata">

**Author:** ![Arasmus](https://community.folivora.ai/user_avatar/community.folivora.ai/arasmus/32/10183_2.png) [@Arasmus](https://community.folivora.ai/u/Arasmus)\
**Post date:** [May 28, 2024, 5:32pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/17 "2024-05-28T17:32:15Z")

</div>

Sorry Andreas, I was imprecise. It actually does work as you suggest. Which is ironically, hugely frustrating!

Scenario: I have the simulator running and I activate the Finder. My Finder profile appears on the simulator. Good. But when I click on a simulator button the profile changes to the one associated with Better Touch Tool and then _that_ button fires. (Which makes a certain amount of sense but is entirely unhelpful)

So very close to great, but tragic instead…just a thought for you.

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 29, 2024, 7:06am UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/18 "2024-05-29T07:06:15Z")

</div>

Ah I see, that should of course not happen. I'll make the window non activatable.

---

<div class="post-metadata">

**Author:** ![Andreas\_Hegenberg](https://community.folivora.ai/user_avatar/community.folivora.ai/andreas_hegenberg/32/39221_2.png) [@Andreas\_Hegenberg](https://community.folivora.ai/u/Andreas_Hegenberg)\
**Post date:** [May 29, 2024, 8:00am UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/19 "2024-05-29T08:00:41Z")

</div>

@Arasmus I just checked again, but the window is already non-activatable so it should not activate BTT. Which version of macOS / BTT are you on?

---

<div class="post-metadata">

**Author:** ![Arasmus](https://community.folivora.ai/user_avatar/community.folivora.ai/arasmus/32/10183_2.png) [@Arasmus](https://community.folivora.ai/u/Arasmus)\
**Post date:** [May 29, 2024, 1:59pm UTC](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025/20 "2024-05-29T13:59:09Z")

</div>

I'm running 4.495 (on macOS Sonoma).

That's interesting, I would have guessed "non activatable" would have meant "non interactionable" but clearly that is not the case.

I appreciate the challenge here; genereally, you want activated applications to trigger a profile change. Indeed, I have a profile for BTT. We just don't want the Stream Deck simulater to triger a change.

[Next page](https://community.folivora.ai/t/virtual-stream-deck-on-menu-bar-when-real-stream-deck-is-disconnected/37025.md?page=2)
