Warning, /system/mycroft-gui/README.md is written in an unsupported language. File is not indexed.
0001 Mycroft GUI 0002 =========== 0003 0004 Graphical User Interface powered by Qt and Kirigami for [Mycroft AI](https://github.com/MycroftAI/mycroft-core) 0005 0006 _______________________________________________________________________ 0007 0008 - [Getting Started](#getting-started) 0009 + [General setup instructions](#general-setup-instructions) 0010 + [Virtual environment setup instructions](#virtual-environment-setup-instructions) 0011 - [Usage](#usage) 0012 + [Local environment](#local-environment) 0013 + [Remote environment](#remote-environment) 0014 - [Development & Contributing](#development-contributing) 0015 + [Contributing to Mycroft GUI API](#contributing-to-mycroft-gui-api) 0016 + [Developing skills with an User Interface](#developing-skills-with-an-user-interface) 0017 - [Troubleshooting](#troubleshooting) 0018 - [Debugging Mycroft GUI](#debugging-mycroft-gui) 0019 0020 _____________________________________________________________________________________________ 0021 0022 ## Getting Started 0023 0024 The following guide will provide a set of instructions to get you started with installing Mycroft GUI on your system. *Note:* All non virtual environment setups should generally follow the [General Setup Instructions](#general-setup-instructions) steps. 0025 0026 ### 0027 0028 ### General Setup Instructions 0029 0030 The interactive Installation script supports installation on KDE Neon, K/Ubuntu 20.04 & Manjaro Linux, It also supports installation and building on other distributions and platforms but system dependencies will be have to installed manually as mentioned in the Installation Script. 0031 0032 0033 0034 1) Fetch Repository and Run Installation Script 0035 0036 ```@bash 0037 cd ~ 0038 git clone https://github.com/mycroftai/mycroft-gui 0039 cd mycroft-gui 0040 bash dev_setup.sh 0041 ``` 0042 0043 2) Running Mycroft GUI: 0044 0045 ```@bash 0046 mycroft-gui-app 0047 ``` 0048 0049 ### Virtual Environment Setup Instructions 0050 0051 1) Download and Install [VirtualBox](https://www.virtualbox.org/wiki/Downloads) 0052 0053 2) Download Latest (Any Supported) Distribution ISO. 0054 0055 3) Open VirtualBox and create a system installation 0056 0057 4) Within the VM, open a terminal session and type: 0058 0059 ```@bash 0060 cd ~ 0061 git clone https://github.com/mycroftai/mycroft-gui 0062 cd mycroft-gui 0063 bash dev_setup.sh 0064 ``` 0065 0066 5) (Optional) Customize Plasma settings for GUI debugging purposes 0067 0068 * Disable screensaver 0069 - Click the > icon, type: Screen Locking 0070 - Untick "Lock screen automatically after:" 0071 - Click OK 0072 6. Running Mycroft GUI: 0073 0074 ```@bash 0075 mycroft-gui-app 0076 ``` 0077 0078 ## 0079 0080 ## Usage 0081 0082 Mycroft GUI can be used on an Local Environment as well as a Remote Environment 0083 0084 ### 0085 0086 ### Local Environment 0087 0088 Note: Boot your device or run `./start-mycroft.sh all` 0089 0090 1) Invoke using ```mycroft-gui-app``` in any terminal, or Mycroft icon from your desktop application launcher. 0091 0092 2) Click *Start* button in the middle of the window if Autoconnect is disabled 0093 0094 3) Talk to your Mycroft! 0095 0096 ### Remote Environment 0097 0098 Note: Remote device / server must have mycroft services running or `./start-mycroft.sh all` on remote device / server 0099 0100 1. Invoke using `mycroft-gui-app` in any remote terminal session, or Mycroft icon from your remote desktop/platform application launcher. 0101 0102 2. Configuring Mycroft GUI for externally hosted Mycroft-Core: 0103 0104 - Click on the hamburger menu in the lower left 0105 0106 - Select 'Settings' 0107 0108 - Enter the IP address of your device. If your device is at 192.168.2.2, enter 'ws://192.168.2.2' 0109 0110 - Close 0111 0112 3. Click *Start* button in the middle of the window if Autoconnect is disabled 0113 0114 4. Talk to your Mycroft! 0115 0116 5. Additional Notes: 0117 0118 - CAUTION: The Mycroft messagebus is an open websocket with no built-in security measures by default. We strongly recommend that you do not expose the messagebus ports outside a secure LAN/PAN unless you have other security measures in place. 0119 0120 - For Externally Hosted Mycroft-Core, one would require to sync skills, one can simply use the provided sync script from the repository to perform a sync 0121 0122 - Run `bash sync_skills.sh 192.168.1.1 [replace with your remote ip] ` 0123 0124 - For Externally Hosted Mycroft-Core, but sure to disable the firewall on the Raspberry Pi. You can do this via `sudo ufw disable` 0125 0126 - Generally, the GUI interaction is managed by an enclosure-specific skill that orchestrates things. For example, the Mark 2 uses skill-mark-2. 0127 0128 - Lightweight debugging can be done from Mycroft's CLI. You can see commands being sent to GUI clients by hitting Ctrl+G within the CLI 0129 0130 - Multiple GUIs can safely run against a single Mycroft Core instance. 0131 0132 ## 0133 0134 ## Development & Contributing 0135 0136 Users & Developers can contribute in advancement of Mycroft GUI in several ways, below mentioned methods will help you identify contribution targets. 0137 0138 ### Contributing To Mycroft GUI API 0139 0140 Mycroft GUI API is the protocol layer designed to talk and integrate with Mycroft Core Services, It handles various functions some of which include setting, managing and parsing session data and handling delegate activities for skill instances, API Implementation documentation can be found at: 0141 0142 - [Transport Protocol Documentation](https://github.com/MycroftAI/mycroft-gui/blob/master/transportProtocol.md) 0143 0144 - [Enclosure API Implementation - Mycroft Core](https://github.com/MycroftAI/mycroft-core/blob/dev/mycroft/enclosure/gui.py) 0145 0146 ### Developing Skills With An User Interface 0147 0148 Mycroft enabled devices with displays such as the Mark II, KDE Plasmoid provide skill developers the opportunity to create skills that can be empowered by both voice and screen interaction. The display interaction technology is based on the QML user interface markup language that gives you complete freedom to create in-depth innovative interactions without boundaries, A detailed documentation on getting started with developing skills with an user Interface is available at [Mycroft Documentation - Displaying Information](https://mycroft-ai.gitbook.io/docs/skill-development/displaying-information/mycroft-gui) 0149 0150 ## Troubleshooting 0151 0152 Having trouble or facing issues with Mycroft GUI ? You can use the below guide to debug Mycroft GUI 0153 0154 ### Debugging Mycroft GUI 0155 0156 1. **Debugging Mycroft GUI Application:** 0157 0158 - Run Mycroft GUI application from a terminal 0159 0160 - Errors should be visible on teriminal output, copy output to a log file 0161 0162 - Open a relevant issue and post your log file 0163 0164 2. **Debugging Skills & Session Data**: 0165 0166 - Start Mycroft CLI client and use ctrl+g to view session data being passed to Mycroft GUI 0167 0168 - For more detailed logging add { "log_level": "debug"} to your mycroft system configuration 0169 0170 - More detailed logs can be retrived from "/var/logs/mycroft/enclosure.log" & "/var/logs/mycroft/skills.log" 0171 0172 3. **Debugging on Remote Device (Example: Mark-1)**: 0173 0174 - SSH to the Mark 1 0175 0176 - Run `sudo service mycroft-enclosure-client stop` 0177 0178 - Run `sudo su mycroft` 0179 0180 - Run `mycroft-enclosure-client` This will start the client and show Debug() messages on the console. 0181 0182 ##