Skip to content

Commit

Permalink
Merge pull request #59 from OpenVoiceOS/release-1.0.0a1
Browse files Browse the repository at this point in the history
Release 1.0.0a1
  • Loading branch information
JarbasAl authored Nov 5, 2024
2 parents 80f1b27 + a1ffe1b commit 14f004d
Show file tree
Hide file tree
Showing 16 changed files with 146 additions and 616 deletions.
8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Changelog

## [0.2.3a1](https://github.com/OpenVoiceOS/ovos-gui/tree/0.2.3a1) (2024-10-21)
## [1.0.0a1](https://github.com/OpenVoiceOS/ovos-gui/tree/1.0.0a1) (2024-11-05)

[Full Changelog](https://github.com/OpenVoiceOS/ovos-gui/compare/0.2.2...0.2.3a1)
[Full Changelog](https://github.com/OpenVoiceOS/ovos-gui/compare/0.2.3...1.0.0a1)

**Merged pull requests:**
**Breaking changes:**

- fix:no wait for ready [\#56](https://github.com/OpenVoiceOS/ovos-gui/pull/56) ([JarbasAl](https://github.com/JarbasAl))
- drop the gui bus upload of resources [\#53](https://github.com/OpenVoiceOS/ovos-gui/pull/53) ([JarbasAl](https://github.com/JarbasAl))



Expand Down
46 changes: 24 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,6 @@ GUI messagebus service, manages GUI state and implements the [gui protocol](./pr
GUI clients (the application that actually draws the GUI) connect to this service


# Plugins

plugins provide platform specific GUI functionality, such as determining when to show a homescreen or close a window

you should usually not need any of these unless instructed to install it from a GUI client application

- https://github.com/OpenVoiceOS/ovos-gui-plugin-shell-companion
- https://github.com/OpenVoiceOS/ovos-gui-plugin-mobile
- https://github.com/OpenVoiceOS/ovos-gui-plugin-plasmoid
- https://github.com/OpenVoiceOS/ovos-gui-plugin-bigscreen

# Configuration

under mycroft.conf
Expand All @@ -36,18 +25,8 @@ under mycroft.conf
"homescreen_supported": false
},

// Optional file server support for remote clients
// "gui_file_server": true,
// "file_server_port": 8000,

// Optional support for collecting GUI files for container support
// The ovos-gui container path for these files will be {XDG_CACHE_HOME}/ovos_gui_file_server.
// With the below configuration, the GUI client will have files prefixed with the configured host path,
// so the example below describes a situation where `{XDG_CACHE_HOME}/ovos_gui_file_server` maps
// to `/tmp/gui_files` on the filesystem where the GUI client is running.
// "gui_file_host_path": "/tmp/gui_files",

// Optionally specify a default qt version for connected clients that don't report it
// NOTE: currently only QT5 clients exist
"default_qt_version": 5
},

Expand All @@ -60,3 +39,26 @@ under mycroft.conf
}
}
```

# Plugins

plugins provide platform specific GUI functionality, such as determining when to show a homescreen or close a window

you should usually not need any of these unless instructed to install it from a GUI client application

- https://github.com/OpenVoiceOS/ovos-gui-plugin-shell-companion
- https://github.com/OpenVoiceOS/ovos-gui-plugin-mobile
- https://github.com/OpenVoiceOS/ovos-gui-plugin-plasmoid
- https://github.com/OpenVoiceOS/ovos-gui-plugin-bigscreen


# Limitations

gui resources files are populated under `~/.cache/mycrot/ovos-gui` by skills and other OVOS components and are expectd to be accessible by GUI client applications

This means GUI clients are expected to be running under the same machine or implement their own access to the resource files (resolving page names to uris is the client app responsibility)

> TODO: new repository with the removed GUI file server, serve files from `~/.cache/mycrot/ovos-gui` to be handled by client apps
In case of containers a shared volume should be mounted between ovos-gui, skills and gui client apps

30 changes: 7 additions & 23 deletions ovos_gui/bus.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,22 +124,6 @@ def on_close(self):
LOG.info('Closing {}'.format(id(self)))
GUIWebsocketHandler.clients.remove(self)

def get_client_pages(self, namespace):
"""
Get a list of client page URLs for the given namespace
@param namespace: Namespace to get pages for
@return: list of page URIs for this GUI Client
"""
client_pages = []
server_url = self.ns_manager.gui_file_server.url if \
self.ns_manager.gui_file_server else \
self.ns_manager.gui_file_host_path
for page in namespace.pages:
uri = page.get_uri(self.framework, server_url)
client_pages.append(uri)

return client_pages

def synchronize(self):
"""
Upload namespaces, pages and data to the last connected client.
Expand All @@ -155,11 +139,13 @@ def synchronize(self):
"data": [{"skill_id": namespace.skill_id}]
})
# Insert pages
# if uri (path) can not be resolved, it might exist client side
# if path doesn't exist in client side, client is responsible for resolving page by namespace/name
self.send({"type": "mycroft.gui.list.insert",
"namespace": namespace.skill_id,
"position": 0,
"data": [{"url": url} for url in
self.get_client_pages(namespace)]
"data": [{"url": page.get_uri(self.framework), "page": page.name}
for page in namespace.pages]
})
# Insert data
for key, value in namespace.data.items():
Expand Down Expand Up @@ -260,16 +246,14 @@ def send_gui_pages(self, pages: List[GuiPage], namespace: str,
@param namespace: namespace to put GuiPages in
@param position: position to insert pages at
"""
server_url = self.ns_manager.gui_file_server.url if \
self.ns_manager.gui_file_server else \
self.ns_manager.gui_file_host_path
framework = self.framework

# if uri (path) can not be resolved, it might exist client side
# if path doesn't exist in client side, client is responsible for resolving page by namespace/name
message = {
"type": "mycroft.gui.list.insert",
"namespace": namespace,
"position": position,
"data": [{"url": page.get_uri(framework, server_url)}
"data": [{"url": page.get_uri(framework), "page": page.name}
for page in pages]
}
LOG.debug(f"Showing pages: {message['data']}")
Expand Down
4 changes: 4 additions & 0 deletions ovos_gui/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from ovos_config.locations import get_xdg_cache_save_path

GUI_CACHE_PATH = get_xdg_cache_save_path('ovos_gui')

58 changes: 0 additions & 58 deletions ovos_gui/gui_file_server.py

This file was deleted.

Loading

0 comments on commit 14f004d

Please sign in to comment.