Terminal emulator in Rust and Gtk4 with tabs and split panes.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nathan Fisher b9319e8471 Remove mistakenly checked in file 3 months ago
.cargo Add xtask packaging script 5 months ago
data Tweak icon 5 months ago
src Use conditional compilation so that correct integer size is passed to 4 months ago
xtask Begin preferences window 5 months ago
.gitignore Initial commit 5 months ago
Cargo.lock Use gethostname crate to get hostname for tab title, strip "file://" 5 months ago
Cargo.toml Use gethostname crate to get hostname for tab title, strip "file://" 5 months ago
LICENSE.md Add LICENSE.md 5 months ago
README.md Fix README formatting for rustdoc 5 months ago
deny.toml Begin preferences window 5 months ago


The Oxized terminal emulator



OxTerm is a terminal emulator in Rust and Gtk4. It is Currently in an early stage of development but usable for day to day tasks. OxTerm is a possible spiritual successor to Zterm in that it is planned to be relatively simple, with a minimal graphical interface, yet have a few nice power user features such as split panes as well as some nice theming options. It is also an acknowledgement that using a pre-1.0 language such as Zig comes with some major challenges. Finally, there is a lot that was learned both in implementing Zterm and in other projects since, and the code in Zterm is definitely sub-optimal in a number of areas which lead to challenges in the future development of the codebase.

Planned Features

  • Tabbed interface
  • Flexible split tabs
  • Theming
    • Fonts
    • Colors
    • Backgrounds
      • Solid colors
      • Gradients
      • Images
      • Transparency
  • User configurable keybindings


Arch Linux

Make sure to install the required dependencies. Arch has an official package for gtk4 and an aur package for vte4-git. To install both using pikaur:

pikaur -S gtk4 vte4-git

Once the dependencies are installed the program is compiled using Cargo.

cargo build --release
sudo install -v target/release/oxterm /usr/local/bin

Other Unix or Linux systems

A lot of Linux distros are significantly behind in packaging Gtk+ version 4 and will not have a new enough version in their official repos to build OxTerm. It is even less likely that you will find a package for vte compiled for gtk4. It is still possible to install OxTerm on these systems by compiling the required dependencies from source. This situation is expected to improve rapidly over the next year or so as Gnome transitions more completely from Gtk+ version 3 to Gtk+ version 4.

FreeBSD has a compatible package for Gtk+ version 4, but not for Vte.

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/W Close Tab
Ctrl/PageDown Next tab
Ctrl/PageUp Previous Tab
Ctrl/Shift/Enter Split Tab Horizontally
Alt/Enter Split Tab Vertically
Alt/[1-9] Goto [num] Tab
Ctrl/Shift/N New Window
Ctrl/Shift/A Show About Info
Ctrl/Shift/Q Close Window


Most of the planned configuration items are not yet implemented.

Keybindings may be changed from their defaults by creating and editing the file ~/.config/oxterm/keys.toml.

# Sample keys.toml file
new_tab = "<primary><Shift>S"

The first field is the action name, while the value is the key combination consisting of one or more modifiers and a key value. If the action name is misspelled or does not refer to a valid action it will be ignored, while if the keybinding specified does not parse to a valid keybinding the program will fall back to it's default for that action.