diff --git a/docker-compose.yml b/docker-compose.yml index a2e0fdf..37f6d3d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,6 +25,8 @@ services: #- ${XDG_RUNTIME_DIR}/wayland-0:${XDG_RUNTIME_DIR}/wayland-0 # Allow access to the host's GPU - /dev/dri:/dev/dri + #Auto reload on code changes + - ./guiTools/spiri_sdk_guitools/:/app/spiri_sdk_guitools devices: # Provide access to GPU devices - /dev/dri:/dev/dri diff --git a/guiTools/spiri_sdk_guitools/launcher.py b/guiTools/spiri_sdk_guitools/launcher.py index d630aad..d2200e9 100644 --- a/guiTools/spiri_sdk_guitools/launcher.py +++ b/guiTools/spiri_sdk_guitools/launcher.py @@ -3,11 +3,11 @@ import subprocess # Dictionary of applications: key is the button text, value is the command to execute applications = { - "Launch Terminal": ["qterminal"], - "Launch rqt": ["rqt"], - "Launch rviz2": ["rviz2"], - "Launch Gazebo": ["/spawn_drones.sh"], - "Launch Gazebo Standalone": "gz sim -v4".split(), + "Terminal": ["qterminal"], + "rqt": ["rqt"], + "rviz2": ["rviz2"], + "Gazebo": ["/spawn_drones.sh"], + "Gazebo Standalone": "gz sim -v4".split(), # Add more applications here if needed } @@ -19,11 +19,21 @@ def launch_app(command): print(f"{command[0]} not found. Make sure it's installed and accessible in the PATH.") # Create the NiceGUI interface -ui.label("Spiri Robotics SDK").style('font-size: 20px; margin-bottom: 10px;') +ui.label("Spiri Robotics SDK").style('font-size: 40px; margin-bottom: 10px;').classes('w-full text-center') -# Create and place buttons dynamically based on the dictionary -for app_name, command in applications.items(): - ui.button(app_name, on_click=lambda cmd=command: launch_app(cmd)).style('width: 150px; height: 50px; margin: 5px;') +with ui.tabs().classes('w-full') as tabs: + tab_tools = ui.tab('Tools') + tab_robots = ui.tab('Robots') + # two = ui.tab('Two') +with ui.tab_panels(tabs, value=tab_tools).classes(): + with ui.tab_panel(tab_tools): + # Create and place buttons dynamically based on the dictionary + with ui.grid(columns=3): + for app_name, command in applications.items(): + ui.button(app_name, on_click=lambda cmd=command: launch_app(cmd)).style('width: 150px; height: 50px; margin: 5px;') + with ui.tab_panel(tab_robots): + with ui.card().tight(): + ui.label(f"Robots SysID") # Start the NiceGUI application ui.run(title="Spiri SDK Launcher", port=8923, dark=None)