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 ##