""
May devblog

This month allowed us to make progress on the integration of options, while publishing the first alpha versions.





Alpha releases

This month has been very important for Tess. Indeed, last month, we've announced that we'll release our first alpha release soon, and this happens two weeks ago with the release of the first alpha version of the rewrite of Tess, followed by the release of the second alpha recently, including new options available for profile, and the possibility to apply a theme.





Rewrite Progress

New Options

This month was mainly devoted to integrate new options to Tess. We've worked hard to add most options previously available for the profiles, and a new theme system that will be presented next. These new options are mostly fully integrated, and only minor changes may appear on it.


Here's a quick recap of what is already available in the last alpha version.


Option Description Value Default
Font size Let you change the default font size 10 < x < 30 16
Draw bold in bright Define if bright text should be rendered with the bright color or in bold true or false false
Cursor blink Define if the cursor should be blinking or not true or false false
Buffer size Control the number of lines saved in memory, letting you 500 < x < 5000 3000
Line height Control the line height of the terminal 100 < x < 200 100
Cursor Define the style of the cursor ["Block", "Bar", "Underline"] Block
Letter spacing Control the number in pixel to add between letters 0 < x < 8 0
Font weight Control the font weight of the text 1 < x < 9 4
Font weight bold Control the font weight of the bold text 1 < x < 9 6


Notification system



As you can see, we have finished the notification system of Tess. It'll be used to display error or information message to the user, and plugins should also have access to it in order to send toast messages to the user.

As of today, only some error messages are displayed, but we are working on to display all error with it. More, we will add an option to partially or completely disabling it.



New Theme System

With the integration of many options, we've also worked on the theme system.

We've decided to change it in order to make it more powerful and readable for users. Previously, we say that a theme is represented by a json file, but this is gone. A theme will now contain multiple files, one for the app itself, and one for the color scheme of the terminal.


The file describing the app style is now a CSS stylesheet. It's mean that you can customize every single element of Tess, but we've also added global variable if you just want to change the color scheme of Tess.

For the color scheme of the terminal, the file stays in a json format.


In order to create a theme, you now have to make a folder, named with the theme name, and add one or both of these files in the folder.


  • style.css

    :root {
        --app-background: #141a29; 
    
        --text-color: #deeaf8;
    
        --icon-color: #deeaf8;
    
        --topbar-background: #050a19;
    
        --tabs-background: #050a19;
        --tab-focused-background: #192033;
        --tab-hovered-background: #161e32;
        --tab-progressbar-color: #deeaf8;
        --tab-progressbar-background: #050a19;
        --tab-action-button-background: var(--tab-focused-background);
    
        --toast-background: #192033;
    
        --action-button-background: transparent;
        --action-button-hovered-background: #050a19; 
    
        --shadow-color: #192033;
    }
    

  • terminal.json

    {
    "foreground":"#DEEAF8",
    "background":"#141A29",
    "black":"#22303F",
    "red":"#Ef3134",
    "green":"#2DF4B7",
    "yellow":"#FFC738",
    "blue":"#156CE6",
    "magenta":"#FF5CB8",
    "cyan":"#01DEFE",
    "white":"#9AA5CE",
    "bright_black":"#2B3D50",
    "bright_red":"#F1494B",
    "bright_green":"#76F8D0",
    "bright_yellow":"#FFCE52",
    "bright_blue":"#297AEB",
    "bright_magenta":"#FF76C3",
    "bright_cyan":"#4DE8FE",
    "bright_white":"#ABB4D6",
    "cursor":"#DEEAF8",
    "cursor_accent":"#141A29"
    }
    

In this example, we have used all available key for the terminal.json file and all global variables for the stylesheet. All value are the default one, so let's free to change there as you like.


To apply your theme, we recommend you to put the folder in ~/.config/tess/themes.


Next, edit the configuration file, located at ~/.config/tess/config.json and add this key

"theme": "foo"

Here, foo is the name of the theme that we have just created and moved inside the right folder. You can also specify the full path to your theme, like so

"theme": "/path/to/foo/

Another possibility is to set a theme only for a specific profile. For that, we use the same key as previously, but inside the profile:

{
    "theme": "foo",
    // ...
    "profiles": [
        {
            "name": "bar",
            "command": "/path/to/your/shell",
            "theme": "baz"
        }
    ]
}

In this case, the profile named bar will use the color scheme of the theme baz. All others profiles will use the default color scheme, which is that of the theme foo.





Website updates

Tess' Dashboard

With this rewrite of Tess, we also want to develop new features, like macro or new parameters to let you have the terminal that you want. But, we've also another project, which is an account system that we have started to develop this month!


This month, we've started developing this new feature. Spoilers should come very soon.


This project will bring up new feature to Tess, like the possibility to sync your configuration between devices, but also upload, comment and share your plugins or themes to others users with a marketplace, that should come in the v0.8 of Tess.



Roadmap

Some months ago, we've mentioned that we want to make a roadmap page. After some investigation, this will not be done near. Indeed, this feature requires a lot of work, and it would slow down the development of Tess. However, we'll still have this project, probable at the end of the rewrite or after the release of the v0.7.



Documentation

Currently, one major feature is missing on our website, it's a full and well documented section.


So we've planned to start working on our documentation soon, probably this month, letting you have more information on how to use Tess, all the available parameters, and how to create plugins (coming soon) and themes. This documentation should be available on a subdomain. We will communicate more information about this soon!