 Hey there, I am Mycroft. I want to use Plasm on my big screen, D.V. How about, at little voice apps here, at little traditional applications there, at bunch of KCMs everywhere, and we have your Plasm big screen experience ready for use. Now let's see one of my voice apps in action. Hey Mycroft, show me what's trending on YouTube. Glad that works. Now how about browsing the web? Let's try that with a remote instead. Let's check out Wikipedia. Some scroll down. Some scroll up. And back to home. That was amazing. Let's now learn more about Plasm on my big screen from my team. Okay, now how I do get back to the presentation or I do have to, okay, I have to upload the presentation again, I think, so, so, so, so, so, I do upload the presentation, okay. Here we are on the presentation again. So you just seen some feature of Plasma big screen. So as you seen is a big media center, which is a, which is meant to run on a TV. Our reference hardware is a Raspberry Pi 4. And we use it as connected with HDMI and HDMI and to the TV with a remote control connected to the Raspberry Pi 4. When you, when you are on a TV, it's very different than writing an application for the desktop. Because there you have only, only very few inputs, so the input is very different. You don't have mouse and keyboard. You don't have touch. You just have a remote control with a few direction keys, media keys and non-much else. Recently you have voice as well and we used also voice support with the micro voice assistant and some integration with it. And also the output is very different. It's a very big screen, but it's very far. So the information must, must be really not dense. Plasma big screen is written mostly in Qt and QML. So QML with regards to keyboard navigation, it's very tricky, but also very powerful. If you, if you follow some rules, there are some older keyboard navigation things that will be where inserted and at the, at the beginnings of the QML life cycle, which is better to not use much anymore, like the keys.forward to attached events. There are also new things, newer things that are very useful like navigation, which I will talk a bit more in detail later. This is our reference, remote control. It's a pretty standard thing. They are pretty cheap. They are seen as a USB keyboard. It has a little USB dongle. So the arrow keys are seen as actual arrow keys and so on. That makes, that makes it really easy to implement things that work with it. It also has an internal microphone. It's also seen as a USB sound card for the microphone, which is very important. It's very important for, for the Minecraft integration. Some of them also have a kind of remote gyroscope kind of thing for controlling the mouse, but we chosen to not to depend from that. In Plasma Big Screen, as it's at most a nice fallback when there is some UI that it's not really up to par, but we want to have a good UI. So the workflow interaction of Plasma Big Screen is very simple. You turn on the TV, you see a big full screen of, of menu items, and, and then you choose what item to, to launch, and then you go back. Now I don't have much time left, so I will just go quickly over things. So we have some settings done with system settings in KCM, which has been optimized a lot for keyboard interaction. The primary user interface is done by a Plasma, a Plasma shell using Plasma Nano, which is mostly a kind of framework to build shells on it, but it's not a shell in itself. All you see, it's a containment. The last thing I want to touch on is the QML and key navigation. As I, as I said, use the key navigation attached property with it, you can, you can specify where the focus goes when you press up, down, left, right on each control. So it's, it's a very verbose API, but if well-used, you can make key navigation go pretty well. Also focus scope, it's, it's a very good thing as memorizes with the difference between focus and active focus, where the focus was in the last focus scope. Unfortunately, I don't have time to talk more about it, but I will help you to answer any question about it. Now I will leave the microphone to Aditya. Please take it away. I hope everyone can hear me. Yeah. Hi everyone. I'm Aditya and today I'm going to be talking about voice applications and what's so special about voice applications. So for one, voice applications aren't your traditional desktop applications. They are basically Python skills written in Minecraft. They don't draw their own window. Python voice applications have a QML user interface and basically can provide a different user interface for different type of devices without having to rewrite a skill. Voice applications can also be served for the network. Micro voice skills on being bundled with the QML user interface and a traditional desktop entry file is actually what turns these vanilla micro skills into voice applications. These voice applications are then installable from online stores and gain the ability to become launchable via the big screen launcher. To support these operations, MicrofGui application provides a skill launching framework. So let's talk more about what is the MicrofGui and what are MicrofGui skills. Microf skills are generally developed in Python and provide all the logical functioning of the voice application. These skills can then take advantage of the Microf skill class to perform operations such as speaking dialogues and sending data over to an enclosure. Microf and soldiers can be of any type of service. They can be a video service. They can be an audio service or they can be an actual physical device that can output data from a Microf skill. MicrofGui is both a framework and an application powered by Kirigami and Qt. The MicrofGui framework provides a skill view in which these awesome voice applications display their pages. It additionally also provides an API to talk to Microf's enclosure API that serves as a data pipe for skill events, GUI event triggers that are accessible over Microf's WebSocket message pass. So MicrofGui's awesome architecture for displaying skill pages and data can take advantage of Qt's file selectors to be able to deploy the same voice application across multiple platforms with a dedicated user interface for each platform. For example, Plasma Big Screen which is mainly designed to work with key navigation and USB remotes can use the media center file selector to display pages and serve QML files that support key navigation and tile based user interfaces. One could also use the Android file selector for a touch based interface for something like an Android mobile platform. Let's look at some of the history of packaging voice applications. So one of the early implementation challenges we faced while working on the voice application concept was packaging. Microf skills were traditionally lived inside and authors get repository which have been generally only installable via the skill command line interface using repository links provided by authors. We wanted to make this process much simpler by providing a graphical user interface utility and that's how the skill installer was born. One of the concepts was to have a central location for listing all the voice skills and applications without actually searching for GitHub and forum links for posting their voice apps or voice skills. It was then we figured that we could actually utilize the awesome link store and the OCS API to achieve this. The microf skill installer is a graphical front end to microf's own skill manager command line utility. It provides support for OCS enabled API stores that can link their data to the skill installer. Authors can add voice applications by listing them under the microf's apps category on the link store. Voice applications listed on the link store by the authors then provide the graphical user interface to meta information like which branch the installer should use or if the voice applications need any specific system dependencies installed to work correctly. This creates a much cleaner installation and distribution experience for both the users and voice application and voice skill developers. Moving on let's talk about skills for the home page. Home pages provide that traditional application experience when using non-voice input methods to voice applications. Home pages are like an entry point to the voice application. They provide a central interface for controlling the voice application either via key navigation or via voice navigation. Home pages are also required to tell the skill desktop entry file which skill pages should be displayed when opening a voice application from the launcher. So voice applications are really easy to get started with. With all one needs is a basic idea of what they would like the application to do. This can be as complex as interacting with video service library APIs online, displaying hundreds of playable movies that can be made interactive through a conversational style voice interface or can be a simple displaying images gallery or speaking quotes from some website. One can refer to the detailed documentation with examples for Plasma big screen website and Microsoft's own documentation site to read about developing your first GUI-enable voice application using the Microsoft GUI framework. Microsoft GUI framework also provides a bunch of templates to help you get started with making simple skills and the freedom of KML is not only limited to these templates. The power to explore what work applications can be made to do is only limited to one's own creativity and Plasma big screen users will surely be glad to have more of them. Feel free to drop into Plasma big screen telegram channel for more updates, discussions or any help regarding voice applications. Thank you. Hope you're good for questions. Doesn't seem to be questions, not yet. So we can fill up a bit by going a bit more in details. Yeah, sure, you can. You still have seven minutes. Yeah, but please feel free to do any question about... Yes, everyone, if you have questions, please share in the shared notes so I can let them know. Okay, people, attendees are asking for some demo, is that possible at the moment? I don't think at the moment, Aditya, do you have something set up? Not really, not right now. Okay. So, yeah. Is there any possibility for them? So the nearest to a demo right now, I think is the video that we posted at the beginning, which I am posting a URL now in the chat. So that video has actual screens and actual interaction of Plasma big screen, the kind of robotized voice that is in the foreground is the actual voice of Minecraft that has just been modified to actually speak a description of the video. But it is the voice that you will hear when you interact with it. In the Microsoft setup, there are a couple of three or four different voices that you can choose from. So yeah, in the end, we chose to do a very simple and basic thing for now, partly also because we think that experience of watching a TV is not much using the Chrome that there is around, but it's actually watching the stuff. I'm so sorry, Marco, to interrupt you, but we have a few questions. Okay, perfect. First question is, what's the base system and how do I install it on a 5.4? Okay. So we have now an image based on Neon, and I will post later in the chat a link to the image. So installing it on the 5.4, it's quite easy. You download the image, you flash it on a micro SD and as it's usual with Raspberry Pi, you just put the micro SD in the Raspberry Pi and boot it and it's okay. Very later version of the Raspberry Pi can also boot from USB. You would have to make some manual modification on the image for doing that, but it's kind of supported as well. Okay. Our next question, we just have three minutes, so it will be quick. Any idea how far the integration on post market, market OS is the big screen? Okay, so I can check that. So from what I know, there are a few packages on post market OS who are trying to package big screen and micro for post market OS. Okay. Great. The other question is, is there a Python wrapper for the OCS, Plain Store API? So yes, I think there is a Python wrapper, but we don't use the Python wrapper. We use the cute stuff directly. Okay. Great. So the last question, which applications are supported for big screen? Cute only, GTK, do they need to be optimized for remote control? Okay. So basically the thing is on the last question, do they need to be optimized for remote control is yes. So any application that works decently with the remote control and it's at the moment packaged on Neon or packaged on post market OS, that is supported. But if on one end you could really launch the GIMP on there, but you wouldn't do much with it in the end. So if an application is GTK or if it has a private toolkit, it's okay. As long as they work nicely with the remote control, you can, for instance, you can just install Codi alongside and launch Codi as an application that's perfectly supported. But yeah, just anything goes as long as it works well with the remote control.