Zterm

Introduction

Zterm (pronounced Zed-Term) is a simple terminal emulator using Vte and Gtk+ written using the Zig programming language. Some useful features of Zterm are:

Installing

Other Linux distros or operating systems will have to build from source, see Building.

=> Zterm aur package | Releases on Codeberg

Building

You will need the Zig compiler, version 0.9.0, available from ziglang.org. You will also need the Gtk-3.x and vte libraries plus development headers installed on your system.

=> https://ziglang.org

Zterm is built using the Zigmod) package manager for Zig.

=> Zogmod

zigmod ci
zig build -Drelease-safe=true

This will place the executable in zig-out/bin and the icon and .desktop file in the appropriate subdirectories of zig-out/share. To Install somewhere else, one can simple set the prefix like so.

zig build -Drelease-safe=true --prefix /some/directory

The data directory can also be adjusted if necessary. For instance, if one wanted to install Zterm in their home directory, with the executable in ~/bin and the data files in ~/.local/share, it can be done like so.

zig build -Drelease-safe=true --prefix $HOME -Ddatadir=".local/share"

Assuming one has ~/bin in their $PATH, this should be sufficent to add a menu entry and icon in most modern Unix desktop environments, without needing root permissions.

Keyboard Shortcuts

The following table gives the default keybindings. If any customization is desired, see configuration.

| Shortcut         | Action                  |
| ---------------- | ------                  |
| Ctrl/Shift/T     | New Tab                 |
| Ctrl/Shift/Enter | New Pane                |
| Alt/R            | Change Pane Orientation |
| Alt/[1-9]        | Goto [num] Tab          |
| Alt/UpArrow      | Previous Tab            |
| Ctrl/PageUp      | Previous Tab            |
| Alt/DownArrow    | Next Tab                |
| Ctrl/PageDown    | Next Tab                |
| Alt/RightArrow   | Next Pane               |
| Alt/LeftArrow    | Previous Pane           |
| Ctrl/Shift/Q     | Quit                    |

Command line options

Usage: zterm [-h] [-e ] [-t ] [-w <DIR>]
Flags:
	-h, --help                   	Display this help and exit.
	-e, --command <COMMAND>      	Command and args to execute.
	-t, --title <TITLE>          	Defines the window title.
	-w, --working-directory <DIR>	Set the terminal's working directory.</pre><h2>Configuration
</h2><p>Zterm uses the nestedtext) human readable data format to store it's configuration. The main program options may be edited with the preferences dialog without editing any files. However, at this time the only way to change the default keybindings is by editing the file ~/.config/zterm/keys.nt. The file will be auto-generated if it does not exist. All configuration options set via the preferences dialog will take effect immediately. Any changes to the keys.nt file will require a restart to take effect.
</p><p><span class="gemini-fragment">=> </span><a href="https://nestedtext.org/en/latest/">NestedText format</a><br /><h2>Roadmap
</h2><ul><li>Preferences dialog [done]
</li>
<li>Finish implementing all preferences [wip]
</li>
<li>Background image [done]
</li>
<li>Background gradient
</li>
<li>Expose charset settings [todo]
</li>
<li>User editable keybindings [done]
</li>
<li>Dialog to set keybindings [todo]
</li>
<li>Set tab title based on running program / current directory [todo]
</li>
<li>change from GtkBox widget to more flexible GtkPaned [todo]
</li>
<li>change build to utilize only zig build system [done]
</li></ul><h3>Tags for this page
</h3><p><span class="gemini-fragment">=> </span><a href="/proxy/gemini.hitchhiker-linux.org/software/zterm.gmi/../tags/terminal.gmi">terminal</a><br /><span class="gemini-fragment">=> </span><a href="/proxy/gemini.hitchhiker-linux.org/software/zterm.gmi/../tags/software.gmi">software</a><br /><span class="gemini-fragment">=> </span><a href="/proxy/gemini.hitchhiker-linux.org/software/zterm.gmi/../tags/zterm.gmi">zterm</a><br /><span class="gemini-fragment">=> </span><a href="/proxy/gemini.hitchhiker-linux.org/software/zterm.gmi/../tags/zig.gmi">zig</a><br /><span class="gemini-fragment">=> </span><a href="/proxy/gemini.hitchhiker-linux.org/software/zterm.gmi/../tags/gtk.gmi">gtk</a><br /><p><span class="gemini-fragment">=> </span><a href="/proxy/gemini.hitchhiker-linux.org/software/zterm.gmi/..">Home</a><br /><p>All content for this site is licensed as CC BY-SA.
</p><p>© 2022 by JeanG3nie
</p><p><span class="gemini-fragment">=> </span><a href="finger://hitchhiker-linux.org/nathan">Finger</a> <span class="gemini-fragment">|</span> <a href="mailto:jeang3nie@hitchhiker-linux.org">Contact</a><br /><details>
<summary>Proxy Information</summary>
<dl>
<dt>Original URL</dt><dd><a href="gemini://gemini.hitchhiker-linux.org/software/zterm.gmi">gemini://gemini.hitchhiker-linux.org/software/zterm.gmi</a></dd>
<dt>Status Code</dt>
<dd>Success (20)</dd>
<dt>Meta</dt><dd><code>text/gemini;lang=en-US</code></dd><dt>Capsule Response Time</dt>
<dd>619.914986 milliseconds</dd>
<dt>Gemini-to-HTML Time</dt>
<dd>0.918489 milliseconds</dd>
</dl>
<p>This content has been proxied by <a href="https://github.com/gemrest/september/tree/ba2dcfa">September (ba2dc)</a>.</p>
</details></body></html>