""
Summer devblog

We have worked all this summer on the preparation of our new alpha release.  We have greatly improved some features and introduced new ones.





Macros

One of our goals for this summer was to finally integrate macros (see #19).

You will now be able to create a new macro in the config file like so:

{
    "macros": [
        { 
            "content": "my custom macro",
            "uuid": "22f898a3-b988-4f5e-bab9-1e119e676a8e"
        }
    ],
    ...
}

This macro can be later executed to paste its content into the shell with a shortcut.





Shortcut support

During the past two months, we've also worked on some other important features, including shortcuts.

Rework

We have vastly improved how shortcuts are handled compared to the previous integration in the electron version, resulting in a faster and lighter shortcut manager.

These are the default shortcuts

  • CTRL + W Close focused tab
  • CTRL + MAJ + W Close focused window
  • CTRL + T Open a new tab with the default profile
  • CTRL + C Copy selected content
  • CTRL + V Paste clipboard content into the terminal
  • CTRL + TAB Focus next tab
  • CTRL + MAJ + TAB Focus previous tab


There are other shortcuts available, but they are not defined by default.

  • OpenProfile(UUID): Open the profile corresponding to the UUID specified
  • ExecuteMacro(UUID): Execute the macro corresponding to the UUID specified


Example

Take a look at this configuration file:

{
    "profiles": [
        {
            "name": "default profile",
            "command": "sh"
        },
        {
            "name": "second profile",
            "command": "bash",
            "uuid": "6ecd1d97-cd83-4a70-8472-2ac157240603"
        }
    ],
    "macros": [
       { 
            "content": "my custom macro",
            "uuid": "22f898a3-b988-4f5e-bab9-1e119e676a8e"
        } 
    ],
    "shortcuts": [
        {
            "shortcut": "CTRL+T",
            "action": "OpenDefaultProfile"
        },
        {
            "shortcut": "CTRL+N",
            "action": "OpenDefaultProfile"
        },
        {
            "shortcut": "CTRL+M",
            "action": {
                "ExecuteMacro": "22f898a3-b988-4f5e-bab9-1e119e676a8e"
            }
        },
                {
            "shortcut": "CTRL+B",
            "action": {
                "OpenProfile": "22f898a3-b988-4f5e-bab9-1e119e676a8e"
            }
        }
    ]
}

In this example, we define multiple shortcuts, two profiles and one macro. Notice that this will remove the default value for these keys.


If you copy this configuration into your config file (~/.config/tess/config.json on Linux or %APPDATA%/Tess/config.json on Windows), you will be able to execute these shortcuts:

  • CTRL + T or CTRL + N to open a new tab with the default profile
  • CTRL + B to open bash in a new tab
  • CTRL + M to paste our macro content into the focused shell




Revamped popup

With this new alpha release, our goal was to make it as usable as possible. Therefore, we have re-implemented popups and close confirmation.



This feature is one of the final steps to making the rewrite usable for almost all users. We have improved the design of the popup and your experience by making it navigable with your keyboard.

More recently, the close confirmation has improved. It should now be smarter.



If you want to customize how close confirmations are handled, we have introduced new option keys in the config file:

{
    "close_confirmation": {
        "tab": true,
        "window": true,
        "app": true,
        "excluded_process": [
            "sh",
            "bash",
            "fish",
            "zsh"
        ]
    }
}

More, if you only want close confirmation when closing the entire window if there is more than one tab opened, you can do something like that:

{
        "close_confirmation": {
        "tab": false,
        "window": true,
        "app": false,
        "excluded_process": [
            "sh",
            "bash",
            "fish",
            "zsh"
        ]
    }
}

There is also a shorthand to enable or disable all properties:

{
    "close_confirmation": true || false
}

Concerning the support for the new theme system introduced earlier, we have added some variables to control the style of the popup, and you can still use custom CSS rules to modify it completely.





Others

Documentation

In the last devblog, we announced that we were working on documentation. We have made significant progress on it, but we still need to develop important features before releasing it.



Config page

We are aware that manually configuring text by editing the file may be time-consuming. We want to re-implement as soon as possible the configuration interface into Tess, but we still need to redesign all the elements and develop some necessary parts in the codebase first.



Linux rendering issue

On Linux, you may experience rendering issues with green artifacts. This is directly related to the webview used by Tess, and it seems complicated to fix it ourselves. One possibility is to switch to webGL2 to render the terminal, but this is not available on Linux yet.





Rewrite Progress


Features Electron Tauri
Translation
Tabs ✔️ ✔️
Move tabs between windows
Administrator tabs
Tabs split
Command line interface ✔️
Notifications 🟠
Macros ✔️
Plugins 🟠
Themes 🟠 🟠
Config page ✔️
Config watching 🟠
Image display
Font ligature 🟠
Animated background ✔️
URI scheme API
Search in a shell
Marketplace