Home

Awesome

Contributor Covenant

Skribisto

Skribisto is born from the ashes of Plume Creator, keeping the goals while adopting more recent ways to think an application.

Where its ancestor was geared toward writing novels, Skribisto aims to be more generic. The user can organize his project with items and folders. Each item displays a 'page' and can be of a different type :

Other types can be added in the future.

The user is free to use tags to define any item.

What Skribisto is not : LibreOffice, Calligra or Word. Any project can be exported to .odt so as to make use of these complete text processors formatting abilities before printing.

Accessibility is too often forgotten. I'm trying to keep the interface accessible for screen readers, as much as Qt let me implement it. Jaws and NVDA are my screen readers for testing. Please contact me if there is a glaring lack in the accessibility. Some technical choices have already been made so as to not hinder accessibility, like the seemingly strange choice of a classic drop-down menu on the top left of the window.

Goals

Short term goal is to rejoin its ancestor Plume Creator feature-wise. A few outstanding features are below. Bold means this feature is already implemented

Skribisto will add to these features with :

Medium term goals are :

Other features will be implemented more for fun. Thanks to the plugin system, Skribisto can accomodate other goals than writing. I added the "Writing Games" plugin for fun.

User manual

The dedicated website for the user manual is here

The dedicated website for the FAQ is here

Each one can be translated (see Translation section)

Discussions

A Discord server is available. Do you need help, offer suggestions or talk ? Join us here

Support

This is a GPL v3 project, so support is on a voluntary basis. Personally, I'll only accept bug issues from users if this user runs Skribisto using theses packaging methods :

Help is always appreciated

If this project takes your interest, if you want to help or wish for more details, you can contact me or create issues.

Easier tasks for beginners

For tech people, under the hood

All the application is rewritten from scratch using C++ Qt for back-end and QML for the front-end. The QML allows for a touch friendly and dynamic interface.

Each project is a SQLite3 file, more robust than the zipped projects in Plume.

Parts

Languages used

C++/QML bindings are extensively used.

Plugins

Interfaces

More and more, Skribisto allows to be extended with plugins. For now, plugins allow:

Plugin interfaces to come soon :

Existing plugins

Build it, test it

The quickest and the easiest for development

Tested on Ubuntu 20.04, Fedora 33/34, Windows 10, MacOS Big Sur

Minimum Qt : 5.15 If you have not Qt 5.15, use the Qt installer found at Qt website Install 5.15 Desktop or superior and Qt Creator

Building prerequisites

Building

Running it

Windows

Automated building & packaging

Linux

By hand, for development but not the easiest

Needed sources and libs :

Minimum Qt : 6.2.2 If you have not Qt 6.2.2, use the Qt installer found at Qt website Install 6.2.2 Desktop or superior and Qt Creator Open the project using the CMakeLists.txt file Build and run it, optionally with --testProject

Flatpak

Flatpak prerequisites

Prerequisites (>1Go):

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.kde.Sdk//6.4
flatpak install flathub org.kde.Platform//6.4

You can follow the setup guide for Flathub at https://flatpak.org/setup/ .

Older flatpak-builder doesn't support YAML manifest files. Convert it to JSON using one of the online website easily found, then place the new file by eu.skribisto.skribisto.yml. Adapt the flatpak commands to point to this new file instead of the .yml file.

Flatpak from GitHub master branch

Compile :

mkdir ~/Devel
cd ~/Devel
git clone https://github.com/jacquetc/skribisto.git
flatpak-builder --user --repo=local-repo build-dir skribisto/package/flatpak/eu.skribisto.skribisto.yml --force-clean

Run only once :

flatpak build-update-repo local-repo
flatpak --user remote-add --no-gpg-verify local-repo local-repo

Install :

flatpak install local-repo eu.skribisto.skribisto -y --reinstall

Later, when a new version is online, you can update with this single line:

cd ~/Devel && flatpak-builder --user --repo=local-repo build-dir skribisto/package/flatpak/eu.skribisto.skribisto.yml --force-clean && flatpak install local-repo eu.skribisto.skribisto -y --reinstall

To run this installation of Skribisto :

flatpak run --branch=master eu.skribisto.skribisto

To list the installations :

flatpak list

To run the older but stable Skribisto :

flatpak run --branch=stable eu.skribisto.skribisto

To remove it:

flatpak remove eu.skribisto.skribisto

and you select the "master" skribisto so as to remove it

Flatpak from local source code

You can copy/paste in ~/Devel/ the file eu.skribisto.skribisto found in [skribisto-repo]/package/flatpak/local/

Near the end of the file, in skribisto build module, adapt path: to your local repository (ex: path: /home/cyril/Devel/skribisto)

mkdir ~/Devel
cd ~/Devel
git clone https://github.com/jacquetc/skribisto.git
flatpak-builder --user --repo=local-repo build-dir skribisto/package/flatpak/local/eu.skribisto.skribisto.yml --force-clean

Run only once :

flatpak build-update-repo local-repo
flatpak --user remote-add --no-gpg-verify local-repo local-repo

Install :

flatpak install local-repo eu.skribisto.skribisto -y --reinstall

After you modified the code you want in whichever git branch you want, type this command :

cd ~/Devel && flatpak-builder --user --repo=local-repo build-dir skribisto/package/flatpak/local/eu.skribisto.skribisto.yml --force-clean && flatpak install local-repo eu.skribisto.skribisto -y --reinstall

To run this installation of Skribisto :

flatpak run --branch=master eu.skribisto.skribisto

To list the installations :

flatpak list

To run the older but stable Skribisto :

flatpak run --branch=stable eu.skribisto.skribisto

To remove it:

flatpak remove eu.skribisto.skribisto

and you select the "master" skribisto so as to remove it

MacOS

Using the Linux Superbuild instructions, it runs.

Translation

alt text

As you can see in the chart, all the main languages are translated. That's not the reality ! A first pass of translation was done with Google Translate, so if you find errors or a distinct lack of logic in a few words, you know the culprit ! You are invited to fix such mistakes by following the below instructions.

SKribisto uses Transifex to manage translation from english to any language.

https://www.transifex.com/skribisto/skribisto/

To help with translation, go here and click on the "Help translate" button. It's free. No tool required, nothing to install.

If your language isn't listed and you want to translate it, please create an (issue)[https://github.com/jacquetc/skribisto/issues] or send me an email at cyril.jacquet@skribisto.eu and I'll add it.

Transifex integration with Skribisto

The source language is en_US (american english), the file is src/translations/skribisto_en_US.ts from the "develop" branch. The en_US translation file is the only translation updated when a new to-be-translated sentence is added on the source code.

There is no need to manualy use Qt's lupdate or lrelease. Any push request with any translation file other than skribisto_en_US.ts will be rejected.

Each time the project is built, skribisto_en_US.ts is automatically updated. Moreover, all the languages are compiled in ".qm" files at build time.

Any new language is detected without any declaration in the source code.

Transifex updates all languages with the new sentences without intervention.

The process is written in this CMakeLists.txt

Thank you to the Scribus project to have written a clean way to automatise translation. See here. I learnt a lot from it.

To contact me

cyril.jacquet@skribisto.eu (UTC+1)