StreamController / StreamController

An elegant Linux app for the Elgato Stream Deck with support for plugins
https://core447.com
GNU General Public License v3.0
187 stars 23 forks source link

BUG: Desync'd deck causing system to "hang" somewhat #95

Open ctyler2621 opened 4 months ago

ctyler2621 commented 4 months ago

Describe the bug If you get the StreamDeck into a de-synchronized state where the deck is still technically working, it recognizes button presses but the button images will not update. Then attempt to change the page using the dropdown in the app, it causes the app to hang and the process must be manually killed from a virtual console.

To Reproduce Steps to reproduce the behavior:

  1. Get the StreamDeck into a desync'd state by too quickly changing pages.
  2. In the app, attempt to change the page using the dropdown menu.

Expected behavior

  1. Expect it not to de-synchronize
  2. Expect it to update the buttons when changing pages from the app even in a desync's state.

Screenshots StreamController_screencap2.webm

Additional context The Application switcher (Alt-Tab) doesn't work once the app freezes, and you can't click on anything with the mouse, but you can switch to a virtual console (Alt-F3) to then be able to kill the StreamController process which gets the desktop back to a working state.

ctyler2621 commented 4 months ago

Temporary workaround... Just don't change pages too quickly and you will not run into this issue.

Core447 commented 4 months ago

This might be fixed by 5174a8f0d76a8925d3f5504a95a9b8b070a97f65. Can you please try the source version? Installation instructions

ctyler2621 commented 4 months ago

Can't get it to run. I get errors on 'pip install -r requirements.txt'... Output below.

Here is what python outputs after that...

$ python3 main.py Traceback (most recent call last): File "/home/ctyler/bin/StreamController/main.py", line 16, in import setproctitle ModuleNotFoundError: No module named 'setproctitle'

...Here is the output from pip install...

$ pip install -r requirements.txt Collecting annotated-types==0.6.0 (from -r requirements.txt (line 1)) Downloading annotated_types-0.6.0-py3-none-any.whl.metadata (12 kB) Collecting async-lru==2.0.4 (from -r requirements.txt (line 2)) Downloading async_lru-2.0.4-py3-none-any.whl.metadata (4.5 kB) Collecting cairocffi==1.6.1 (from -r requirements.txt (line 3)) Using cached cairocffi-1.6.1-py3-none-any.whl.metadata (3.3 kB) Collecting CairoSVG==2.7.1 (from -r requirements.txt (line 4)) Using cached CairoSVG-2.7.1-py3-none-any.whl.metadata (2.7 kB) Collecting certifi==2024.2.2 (from -r requirements.txt (line 5)) Downloading certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB) Collecting cffi==1.16.0 (from -r requirements.txt (line 6)) Downloading cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB) Collecting charset-normalizer==3.3.2 (from -r requirements.txt (line 7)) Downloading charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB) Collecting click==8.1.7 (from -r requirements.txt (line 8)) Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB) Collecting colorama==0.4.6 (from -r requirements.txt (line 9)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting contourpy==1.2.0 (from -r requirements.txt (line 10)) Downloading contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB) Collecting cssselect2==0.7.0 (from -r requirements.txt (line 11)) Using cached cssselect2-0.7.0-py3-none-any.whl.metadata (2.9 kB) Collecting cycler==0.12.1 (from -r requirements.txt (line 12)) Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB) Collecting dbus-python==1.3.2 (from -r requirements.txt (line 13)) Downloading dbus-python-1.3.2.tar.gz (605 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 605.5/605.5 kB 15.2 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... error error: subprocess-exited-with-error

× Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [94 lines of output]

× Encountered error while generating package metadata. ╰─> See above for output.

note: This is an issue with the package mentioned above, not pip. hint: See above for details.

Core447 commented 4 months ago

That's unfortunate, but the Flatpak will be updated in a couple of hours, so you just test it there

ctyler2621 commented 4 months ago

No problem. Not in any rush.

G4PLS commented 4 months ago

Still persists on the newest Flatpak Version 1.5.0-beta.4. Tested it with my Streamdeck XL Only the UI gets desynced, actions and other things are loaded correctly. When you press an action that changes the label the whole button updates correctly again, but only the pressed button