Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
202d8a2
Fix: FlatpakPermissionWindow not adding app id to command
Core447 Apr 1, 2024
a43e9f4
Fix: show_dbus_permission ignoring flatpak state
Core447 Apr 1, 2024
9235e89
Use store as parent window for flatpak permissions if present
Core447 Apr 1, 2024
6598772
1.4.1-beta release
Core447 Apr 1, 2024
cabb553
Fix: Bad command buid in get_dbus_permission_add method
Core447 Apr 1, 2024
b39c3e1
Stop window grabber hyprland thread on close
Core447 Apr 1, 2024
e72fda1
Change default icon for plugins
Core447 Apr 1, 2024
f0fcfd5
1.4.2-beta release
Core447 Apr 1, 2024
dacb2c3
Add threads_running global var
Core447 Apr 1, 2024
6e3aa58
Deactivate info log on every focus window change
Core447 Apr 1, 2024
2e8f9a6
Add on_removed_from_cache method to ActionBase
Core447 Apr 1, 2024
9577d0e
Fix: clear_action_objects error
Core447 Apr 1, 2024
dd41e82
Reduce main win min size and set default
Core447 Apr 1, 2024
4b3e8d3
Fix: Wrong locale key for multi deck selector header
Core447 Apr 1, 2024
7d78cc4
Fix: Not restoring from screen saver correctly
Core447 Apr 2, 2024
cf803e6
Fix: Background video not loading from cache
Core447 Apr 2, 2024
e54b128
Fix: FlatpakPermissionsWindow flickers when opened from the store
Core447 Apr 2, 2024
f873657
Improve on_open_store of menu button
Core447 Apr 2, 2024
92fb1fc
1.4.3-beta release
Core447 Apr 2, 2024
d7616af
Fix: Not registering key down events
Core447 Apr 2, 2024
f13aa42
1.4.4-beta release
Core447 Apr 2, 2024
4b68fa8
Improve error handling for unavailable assets
Core447 Apr 3, 2024
db2de4d
Fix: Crash if adding many custom assets
Core447 Apr 3, 2024
d118059
Improve error handling if background path is None
Core447 Apr 3, 2024
e9e6063
Fix: Screensaver not waking up correctly
Core447 Apr 3, 2024
96453e7
Remove font weight option for sake of outline
Core447 Apr 3, 2024
404ea1b
Fix: Error in remove_page when trying to clean up default pages
Core447 Apr 3, 2024
1b686fe
Update gitignore
Core447 Apr 3, 2024
0b53100
Fix: PageManager not updating default-pages on rename
Core447 Apr 3, 2024
6885309
Fix: Signals not called with correct arguments
Core447 Apr 3, 2024
068a90d
Add close method to gif
Core447 Apr 3, 2024
c9f8516
Fix: gif close not working
Core447 Apr 3, 2024
330d9c0
Add AppQuit signal
Core447 Apr 3, 2024
a4ab8db
Fix: Screensaver timer preventing app from closing
Core447 Apr 3, 2024
09b8b5f
Terminate processes in on_quit
Core447 Apr 3, 2024
055ffb9
Reenable auto updates
Core447 Apr 3, 2024
940490a
Ignore non Elgato usb disconnects
Core447 Apr 3, 2024
6485ef5
Move data path sys append to globals
Core447 Apr 3, 2024
89a7daa
Catch errors in plugin initialization
Core447 Apr 4, 2024
bd681ce
Add typing to get_visible_child of DeckStack
Core447 Apr 4, 2024
ef079d0
Only load thumbnails when visible to the user
Core447 Apr 4, 2024
f1e4dca
Set old thumbnail pixbuf to none in setting groups
Core447 Apr 4, 2024
3d0a0e8
Fix: on_map_tasks not removed after execution from thumbnails
Core447 Apr 4, 2024
89fb014
Apply sidebar ui changes only when visible
Core447 Apr 4, 2024
54fb258
Use GLib.idle_add for opening asset manager from icon selector
Core447 Apr 5, 2024
3b72c3d
Fix: Icon selector not opening asset manager
Core447 Apr 5, 2024
97b999c
Improve on_map loading of ui
Core447 Apr 5, 2024
d68d966
Use more get than setdefault calls on page dict
Core447 Apr 5, 2024
a695147
Add caching to IconPackManager and WallpaperPackManager
Core447 Apr 6, 2024
78de592
Update requirements
Core447 Apr 7, 2024
6a54cb0
Use clear method in load_from_changes of KeyGrid
Core447 Apr 7, 2024
36d5104
Remove old debug code from clear_actions_objects
Core447 Apr 7, 2024
d0dafbb
Catch possible error in disconnect_signals of ImageEditor
Core447 Apr 8, 2024
a677161
Catch error if no active cords in IconSelector
Core447 Apr 8, 2024
57770e1
Improve show_error methods of Sidebar
Core447 Apr 8, 2024
3a377b1
Add FIXME comment to Sidebar
Core447 Apr 8, 2024
d6ba7dd
Add main function to main
Core447 Apr 8, 2024
c779296
Make sure BetterExpander clear clears memory
Core447 Apr 8, 2024
d336519
Limit size of thumbnails in MediaManager
Core447 Apr 8, 2024
d7705ee
make sure to free up gif after generating thumbnail
Core447 Apr 8, 2024
e08fb1b
Refactor DeckManager
Core447 Apr 8, 2024
9be285a
Clean up memory in image2pixbuf
Core447 Apr 8, 2024
d33a7ef
Rename p to page in clear_old_cached_pages
Core447 Apr 8, 2024
fa1f304
Sort pages PageSelector
Core447 Apr 8, 2024
6daee6b
Only load changes on map in Brightness row
Core447 Apr 8, 2024
237cbe3
Limit load_defaults_from_page to mapped state in DeckGroup
Core447 Apr 8, 2024
2937637
Improve memory usage of DeckGroup Screensaver
Core447 Apr 8, 2024
b90bdc5
Remove deck controller after 5 transport errors in a row
Core447 Apr 8, 2024
1c88b8c
Add missing ClassVar import
Core447 Apr 8, 2024
626bfba
Use Queue for image tasks
Core447 Apr 8, 2024
df62887
Catch key error in perform_media_player_tasks
Core447 Apr 8, 2024
eb62b9f
Add cached serial_number method to DeckController
Core447 Apr 8, 2024
2dbe3b7
Add missing import of Queue
Core447 Apr 8, 2024
ecfe2cd
Update clear_media_player_tasks method
Core447 Apr 8, 2024
793b27d
Close unused background tiles
Core447 Apr 8, 2024
16132f8
Improve close_resources method of ControllerKey
Core447 Apr 8, 2024
6d7f346
Make KeyLabel a dataclass
Core447 Apr 8, 2024
979539c
Prevent attribute error in KeyImage close
Core447 Apr 8, 2024
0ec86c5
Remove max-width and max-height properties from style.css
Core447 Apr 8, 2024
4dda82a
Ad gc.collect after load_page
Core447 Apr 8, 2024
e69af8a
Update categories in metainfo
Core447 Apr 8, 2024
a285ea6
Update metainfo
Core447 Apr 8, 2024
92180a5
Add screenshot captions to metainfo
Core447 Apr 8, 2024
e996336
Bump version to 1.4.5-beta
Core447 Apr 8, 2024
4f68b6e
Fix: version 1.4.5 missing
Core447 Apr 8, 2024
0a3cef2
Update flatpak manifest
Core447 Apr 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -183,4 +183,6 @@ data/

vid_cache/

**/.flatpak-builder/
**/.flatpak-builder/

**/.flatpak/
9 changes: 7 additions & 2 deletions GtkHelper/GtkHelper.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,13 @@ def get_list_box(self) -> Gtk.ListBox:
return revealer_list_box

def clear(self):
revealer_list_box = self.get_list_box()
revealer_list_box.remove_all()
rows = self.get_rows()
list_box = self.get_list_box()
list_box.remove_all()
for row in rows:
row = None
del row
del rows

def reorder_child_after(self, child, after):
childs = self.get_rows()
Expand Down
61 changes: 28 additions & 33 deletions com.core447.StreamController.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,39 +9,20 @@ finish-args:
- --socket=fallback-x11
- --share=ipc
- --device=dri
- --filesystem=xdg-documents
- --filesystem=home
- --share=network
- --socket=pulseaudio
- --socket=session-bus # Allow plugins to connect to the session bus
- --device=all # Needed to communicate with the decks
- --talk-name=org.freedesktop.Flatpak # Allow plugins to run system commands
- --device=all # Needed to communicate with the decks
- --talk-name=org.freedesktop.Flatpak # Allow plugins to run system commands
- --talk-name=org.mpris.MediaPlayer2.* # Media control
- --talk-name=org.kde.kdeconnect # Access to KDEConnect
- --talk-name=org.gnome.Shell # Interact with Gnome - used to open the "Install extension" dialog
- --talk-name=org.gnome.Shell.Extensions.StreamController
- --system-talk-name=org.freedesktop.UPower # Access to power management - used to get battery status

modules:
- pypi-requirements.yaml

- name: StreamController
buildsystem: simple
build-commands:
- mkdir -p /app/bin
- cp . /app/bin/StreamController -r

# - "pip install -r requirements.txt --ignore-installed --prefix=/app"

- install -D flatpak/launch.sh /app/bin/launch.sh
- chmod +x /app/bin/launch.sh
- install -D flatpak/icon_256.png /app/share/icons/hicolor/256x256/apps/com.core447.StreamController.png
- install -D flatpak/launch.desktop /app/share/applications/com.core447.StreamController.desktop
- install -D flatpak/com.core447.StreamController.metainfo.xml /app/share/metainfo/com.core447.StreamController.metainfo.xml
sources:
- type: git
url: https://github.com/StreamController/StreamController.git
tag: 1.2.0-beta

# build-options:
# build-args:
# - "--share=network"

- name: git
make-install-args:
- NO_INSTALL_HARDLINKS=1
Expand All @@ -50,12 +31,7 @@ modules:
url: https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.43.1.tar.gz
sha256: 4977349ad66f3a6a4f4b0471af702ff412b6e407e0918eb92788e4f829605360

- name: libusb
buildsystem: autotools
sources:
- type: git
url: https://github.com/libusb/libusb.git
tag: v1.0.27
- shared-modules/libusb/libusb.json

- name: hidapi-libusb
buildsystem: autotools
Expand Down Expand Up @@ -102,4 +78,23 @@ modules:
url: https://github.com/flatpak/libportal.git
tag: 0.7.1

# Install via: flatpak-builder --repo=repo --force-clean --disable-cache --install --user build-dir com.core447.StreamController.yml
- name: StreamController
buildsystem: simple
build-commands:
- mkdir -p /app/bin
- cp . /app/bin/StreamController -r

# - "pip install -r requirements.txt --ignore-installed --prefix=/app"

- install -D flatpak/launch.sh /app/bin/launch.sh
- chmod +x /app/bin/launch.sh
- install -D flatpak/icon_256.png /app/share/icons/hicolor/256x256/apps/com.core447.StreamController.png
- install -D flatpak/launch.desktop /app/share/applications/com.core447.StreamController.desktop
- install -D flatpak/com.core447.StreamController.metainfo.xml /app/share/metainfo/com.core447.StreamController.metainfo.xml
sources:
- type: git
url: https://github.com/StreamController/StreamController.git
tag: 1.4.6-beta
# branch: dev

# Install via: flatpak-builder --repo=repo --force-clean --install --user build-dir com.core447.StreamController.yml
48 changes: 46 additions & 2 deletions flatpak/com.core447.StreamController.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,55 @@
<categories>
<category>System</category>
<category>Utility</category>
<category>Productivity</category>
</categories>

<keywords>
<keyword translate="no">Streaming</keyword>
<keyword translate="no">Elgato Stream Deck</keyword>
<keyword translate="no">GTK</keyword>
</keywords>

<branding>
<color type="primary" scheme_preference="light">#244b62</color>
<color type="primary" scheme_preference="dark">#244b62</color>
</branding>

<url type="homepage">https://github.com/StreamController/StreamController</url>
<url type="bugtracker">https://github.com/StreamController/StreamController/issues</url>
<url type="contribute">https://github.com/StreamController/StreamController</url>
<releases>
<release version="1.4.6-beta" date="2024-04-08">
<description translatable="no">
<p>Bugfixes</p>
<p>Memory optimizations</p>
</description>
</release>
<release version="1.4.5-beta" date="2024-04-02">
<description translatable="no">
<p>Bugfixes</p>
</description>
</release>
<release version="1.4.4-beta" date="2024-04-02">
<description translatable="no">
<p>Bugfixes</p>
</description>
</release>
<release version="1.4.3-beta" date="2024-04-02">
<description translatable="no">
<p>Bugfixes</p>
</description>
</release>
<release version="1.4.2-beta" date="2024-04-01">
<description translatable="no">
<p>Bugfixes</p>
</description>
</release>
<release version="1.4.1-beta" date="2024-04-01">
<description translatable="no">
<p>Bugfixes</p>
</description>
</release>
<release version="1.4.0-beta" date="2024-04-01">
<description translatable="no">
<p>Bugfixes</p>
Expand Down Expand Up @@ -135,12 +173,15 @@
Official Plugin Features:
</p>
<ul>
<li>Send network requests</li>
<li>Run commands</li>
<li>Press hotkeys (X and Wayland)</li>
<li>Move mouse (X and Wayland)</li>
<li>Control OBS Studio</li>
<li>Control your music</li>
<li>Mix the volume of different apps</li>
<li>Run commands</li>
<li>Switch between audio outputs</li>
<li>Mute your microphone</li>
<li>Show a clock</li>
<li>Send network requests</li>
</ul>
</description>
Expand All @@ -149,12 +190,15 @@
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/StreamController/StreamController/main/Assets/images/Screenshots/Screenshot_1.png</image>
<caption>The main window</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/StreamController/StreamController/main/Assets/images/Screenshots/Screenshot_2.png</image>
<caption>The main window</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/StreamController/StreamController/main/Assets/images/Screenshots/Screenshot_3.png</image>
<caption>The store</caption>
</screenshot>
</screenshots>
</component>
8 changes: 7 additions & 1 deletion globals.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@
import os
from typing import TYPE_CHECKING
import argparse
import sys

DATA_PATH = os.path.join(os.path.expanduser("~"), ".var", "app", "com.core447.StreamController", "data") # Maybe use XDG_DATA_HOME instead
# DATA_PATH = "data"

# Add data path to sys.path
sys.path.append(DATA_PATH)

if TYPE_CHECKING:
from src.app import App
from locales.LocaleManager import LocaleManager
Expand Down Expand Up @@ -47,13 +51,15 @@
window_grabber: "WindowGrabber" = None
store: "Store" = None # Only if opened
flatpak_permission_manager: "FlatpakPermissionManager" = None
threads_running: bool = True


app_version: str = "1.4.0-beta" # In breaking.feature.fix-state format
app_version: str = "1.4.6-beta" # In breaking.feature.fix-state format
exact_app_version_check: bool = False
argparser: argparse.ArgumentParser = None
logs: list[str] = []

release_notes: str = "<ul> \
<li>Bugfixes</li> \
<li>Memory optimizations</li> \
</ul>"
6 changes: 5 additions & 1 deletion main.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,8 @@ def reset_all_decks():
except:
log.error("Failed to reset deck, maybe it's already connected to another instance? Skipping...")

if __name__ == "__main__":

def main():
# Dbus
log.info("Checking if another instance is running")
DBusGMainLoop(set_as_default=True)
Expand All @@ -190,5 +191,8 @@ def reset_all_decks():
threading.Thread(target=update_assets, name="update_assets").start()
load()

if __name__ == "__main__":
main()


log.trace("Reached end of main.py")
Loading