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