Cheeky fork of Fractal
Go to file
Alejandro Domínguez 49dab8eeaa Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
build-aux Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
data Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
hooks Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
po Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
src Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
.editorconfig Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
.gitignore Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
.gitlab-ci.yml Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
Cargo.toml Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
LICENSE.md Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
README.md Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
meson.build Init with GTK Rust Template 2021-02-04 20:46:36 +01:00
meson_options.txt Init with GTK Rust Template 2021-02-04 20:46:36 +01:00

README.md

GTK + Rust + Meson + Flatpak = <3

A boilerplate template to get started with GTK, Rust, Meson, Flatpak made for GNOME. It can be adapted for other desktop environments like elementary.

![Main Window](data/resources/screenshots/screenshot1.png "Main Window")

What does it contains?

  • A simple window with a headerbar
  • Bunch of useful files that you SHOULD ship with your application on Linux:
    • Metainfo: describe your application for the different application stores out there;
    • Desktop: the application launcher;
    • Icons: This repo contains three icons, a normal, a nightly & monochromatic icon (symbolic) per the GNOME HIG, exported using App Icon Preview.
  • Flatpak Manifest for nightly builds
  • Dual installation support
  • Uses Meson for building the application
  • Bundles the UI files & the CSS using gresources
  • A pre-commit hook to run rustfmt on your code
  • Tests to validate your Metainfo, Schemas & Desktop files
  • Gsettings to store the window state, more settings could be added
  • Gitlab CI to produce flatpak nightlies
  • i18n support

How to init a project ?

The template ships a simple python script to init a project easily. It asks you a few questions and replaces & renames all the necessary files.

The script requires having git installed on your system.

You can run it with,

python3 create-project.py
➜ python3 create-project.py
Welcome to GTK Rust Template
Name: Contrast
Project Name: contrast
Application ID (see: https://developer.gnome.org/ChooseApplicationID/): org.gnome.design.Contrast
Author: Bilal Elmoussaoui
Email: bil.elmoussaoui@gmail.com
Github/Gitlab repository: https://gitlab.gnome.org/World/design/contrast/
Use gtk4 [Y/n]: y

A new directory named contrast containing the generated project

Credits