A simple GTK4 + VTE terminal with tab support.
When creating a new tab, jterm4 attempts to inherit the current tab's working directory (via VTE's current directory URI). If unavailable, it falls back to $HOME.
Each tab also includes a close button in the tab header.
On exit, jterm4 saves the current tab list (and active tab) and restores them on next start. The state is stored under your XDG config directory (typically ~/.config/jterm4/tabs.state).
JTERM4_LOG: log level (off|error|warn|info|debug|trace). Falls back toRUST_LOG. Default:warn.JTERM4_FONT: Pango font description string. Default:SauceCodePro Nerd Font Regular 12.JTERM4_FONT_SCALE: default font scale (0.1-10.0). Default:1.0.JTERM4_SCROLLBACK: scrollback line count (>=0). Default:5000.JTERM4_OPACITY: initial window opacity (0.01-1.0). Default:0.95.JTERM4_FG,JTERM4_BG,JTERM4_CURSOR,JTERM4_CURSOR_FG: colors accepted by GTK (#RRGGBBetc).
On startup, each terminal chooses a shell like this:
- Prefer
fishwhen available. - If
fishhas a workingbass, runbass "source ~/.bashrc"once before showing the prompt (so bash-style environment changes from.bashrcare applied). - If
fishis not available, fall back tobash -l.
Notes:
- This project does not need to edit
~/.config/fish/config.fish. bassis expected to import environment variables; importing bash aliases into fish is intentionally avoided because many bash aliases contain bash-only syntax.
If you want .bashrc environment imported into fish, install bass:
- With fisher:
fisher install edc/bass
(Any other method that provides a bass function in fish also works.)