luminusOS / welcomatic

This application provides a intuitive and instructive welcome screen application.
GNU General Public License v3.0
0 stars 0 forks source link

Desenvolver uma Aplicação de Boas-Vindas na Primeira Instalação - Utilizando GTK4 e Rust #1

Open leandromqrs opened 1 year ago

leandromqrs commented 1 year ago

Objetivo

Esta issue tem como objetivo discutir e planejar o desenvolvimento de uma aplicação de boas-vindas para a primeira instalação do Luminus, inspirada no programa de boas-vindas do Windows 11. A aplicação será desenvolvida usando as tecnologias GTK4 e Rust, com o propósito de guiar os usuários durante a configuração inicial do sistema.

Pontos-chave

Vantagens e Melhorias

Tarefas Propostas

leandromqrs commented 1 year ago

Ainda estou tendo umas dificuldades para entender a estrutura do Rust, mas já consegui separar a janela principal dos widgets, seria uma boa também utilizar o GTK BluePrint, ele é melhor que o XML padrão e menos verboso também.

Olha um exemplo e diferença:

Blueprint:

using Gtk 4.0;

template MyAppWindow : ApplicationWindow {
  default-width: 600;
  default-height: 300;
  title: _("Hello, Blueprint!");

  [titlebar]
  HeaderBar {}

  Label {
    label: bind MyAppWindow.main_text;
  }
}

XML:

<?xml version="1.0" encoding="UTF-8"?>
<interface xmlns="urn:oasis:names:tc:opendocument:xmlns:widget:1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:gtk="http://gtk.org/schema"
  xsi:schemaLocation="urn:oasis:names:tc:opendocument:xmlns:widget:1.0
                      http://openstandaarden.be/cabonate/widgets/widget.xsd
                      http://gtk.org/schema
                      http://gtk.org/schema/gtk.xsd">

  <object class="GtkApplicationWindow" id="window">
    <property name="default-width">600</property>
    <property name="default-height">300</property>
    <property name="title" translatable="yes">Hello, Blueprint!</property>

    <child>
      <object class="GtkHeaderBar" id="titlebar">
        <!-- Add HeaderBar content here if needed -->
      </object>
    </child>

    <child>
      <object class="GtkLabel" id="label">
        <property name="label" translatable="yes">Hello, Blueprint!</property>
      </object>
    </child>
  </object>

</interface>

Mais informações: https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/

leandromqrs commented 1 year ago

Próximo passo é utilizar os widgets chamados Carousel para passar as "pages" da aplicação, seguindo os passos para finalizar as configurações iniciais do SO.

image