Skip to content

Among Terminal 0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Nov 16:38
· 1 commit to main since this release
Immutable release. Only release title and notes can be modified.
c95baa1

Among Terminal 0.2.0 adds terminal notifications, a plugin system with
sandboxed managed plugins, terminal colour preferences, and several pane and
workspace controls.

  • Terminal notifications: a bell in a pane can pulse the unread line at the left
    of the pane until you focus it, raise a desktop notification, play a sound (the
    bundled one or a WAV file you pick), or run a command you configure. Clicking
    a desktop notification focuses the pane that rang. No command is configured or
    enabled by default.
  • Plugins are managed. Preferences list installed and available plugins, open a
    page for each plugin with its settings and the access it asks for, and show the
    sources plugins come from. You can add, check and remove sources, and
    install, update or remove plugins there. The official plugins (clock,
    pane-pwd, system-status) live in their own repository,
    Among-Terminal/among-plugins,
    and are released on their own schedule. A plugin that did not change in a
    new plugin release is installed from the earlier release that holds its
    packages.
  • Managed plugins run confined by Landlock and seccomp: a plugin sees only its
    own data directory and the system data it was granted. Kernels older than 6.2
    start a plugin only after you accept reduced protection, which Preferences
    keeps visible. The confinement also denies the system calls that change file
    attributes by path.
  • Plugin development mode installs the newest prerelease of a plugin for
    testing, with a visible indicator.
  • A Terminal page in Preferences chooses the text and background colours and the
    colour palette from the GNOME Terminal schemes, with no restart.
  • Preferences also gain an About page showing the build identity.
  • Move a pane to another workspace by dragging it, reorder workspaces with
    native sidebar dragging, and open terminal links with Ctrl+click.
  • An expanded pane has a Restore control in its header and keeps focus.
  • Plugin list and settings: the first time you open Plugins, the official list
    is fetched once, and a failed fetch shows the reason with a Load button. Each
    row opens its plugin page when clicked, the protection shield is a plain mark
    instead of a button, and the "Review plugin access" dialog is wider. The
    command field of a notification takes one argument per line, with no shell
    involved.
  • Fixes: plugin store and settings directories
    that are writable by their own group are accepted, removing a plugin closes
    its details and returns focus to the list, the expanded pane header keeps its
    normal height, and workspace dividers and the sidebar marker stay stable when
    you switch workspaces. Preferences opens tall enough to show the About page
    whole, and GitHub requests for plugin lists and downloads are authenticated
    when the optional AMONG_GITHUB_TOKEN environment variable is set, which
    avoids GitHub's rate limit for anonymous clients.
  • Release packages: DEB and RPM for amd64 and arm64, binary archives and
    AppImages; the AppImage tooling is downloaded from a pinned, immutable
    release of our own and every image carries the runtime notice.

See the plugin guide for installing
plugins, their sources and the confinement rules. To write a plugin, start from
the plugin template.

Overview

among-terminal-promo-0.2.0-music-review.mp4

Download

System Format x86-64 (amd64) ARM 64-bit (arm64)
Ubuntu 24.04 DEB among-terminal-ubuntu24.04-amd64.deb among-terminal-ubuntu24.04-arm64.deb
Debian 13 DEB among-terminal-debian13-amd64.deb among-terminal-debian13-arm64.deb
Fedora 44 RPM among-terminal-fedora44-amd64.rpm among-terminal-fedora44-arm64.rpm
Fedora 43 RPM among-terminal-fedora43-amd64.rpm among-terminal-fedora43-arm64.rpm
Other distributions with glibc 2.39 or newer AppImage among-terminal-amd64.AppImage among-terminal-arm64.AppImage
Ubuntu 24.04 Binary archive among-terminal-ubuntu24.04-amd64.tar.gz among-terminal-ubuntu24.04-arm64.tar.gz
Debian 13 Binary archive among-terminal-debian13-amd64.tar.gz among-terminal-debian13-arm64.tar.gz

uname -m prints x86_64 for amd64 and aarch64 for arm64.

Install

Debian and Ubuntu (APT installs the libraries Among needs):

sudo apt install ./among-terminal-ubuntu24.04-amd64.deb

Fedora:

sudo dnf install ./among-terminal-fedora44-amd64.rpm

AppImage (needs FUSE from the fuse3 package; installs nothing):

chmod +x among-terminal-amd64.AppImage
./among-terminal-amd64.AppImage

Use the file name you downloaded. Start Among Terminal from the applications
menu, or run among. No package carries plugins: install the official ones from the
built-in source named Official plugins for Among Terminal (repository
Among-Terminal/among-plugins) in Preferences, Plugins; they stay disabled until you
review their access and enable them. The binary archive does
not bundle libraries; see the installation guide for it,
for AppImage menu integration, updates and removal.

Verify

Download SHA256SUMS into the same directory and run:

sha256sum --check --ignore-missing SHA256SUMS

What was checked

Before this release was created, every DEB and RPM was installed in a clean
container of its distribution on both architectures, without compilers, and
started as an unprivileged user under X11 (Xvfb with Openbox): desktop launch,
shell input, focus, source-bound official plugin status replayed through the installed
program and session restoration (the packages themselves carry no plugins), then an upgrade
from an older package, removal and reinstallation. The AppImage was started on
clean Debian 13, Ubuntu 24.04 and Fedora 43 hosts. GNOME and Wayland sessions
are not part of these checks.

Source

Built from commit c95baa15283fb961184059b7622e82886744cd32 by this workflow run.
Source RPMs: among-terminal-fedora43.src.rpm, among-terminal-fedora44.src.rpm. Sources of the libraries bundled in the AppImage: among-terminal-amd64-appimage-sources.tar, among-terminal-arm64-appimage-sources.tar.
Licences: LICENSE, NOTICE,
third-party notices.

What's Changed

Other changes

  • fix(packaging): align artwork and AppImageLauncher desktop integration by @intech in #21
  • docs(readme): add CI, license, downloads and package buttons by @intech in #22
  • fix(packaging): bind RC release notes and registered AppImage launches by @intech in #23
  • docs(readme): pair ten download buttons by architecture by @intech in #24
  • feat(panes): restore expanded layouts from the pane header by @intech in #25
  • fix(plugins): contain hostile pipes and supervise child generations off-loop by @intech in #26
  • feat(plugins): inspect managed metadata and edit offline settings by @intech in #27
  • feat(plugins): admit managed runtimes with scoped grants and live settings by @intech in #28
  • feat(plugins): preserve identity-scoped inventory and native search by @intech in #29
  • feat(plugins): preserve typed session edits and confirm safe restarts by @intech in #30
  • feat(plugins): install and manage verified GitHub packages by @intech in #33
  • Test the pinned managed client through actual PluginHost admission by @intech in #35
  • Forward bounded TZ to managed children and exercise the production clock by @intech in #37
  • fix(tooling): cover all three tar archive advisories with 0.4.46 by @intech in #39
  • Exercise managed resource output through the real host by @intech in #41
  • Exercise managed resource widgets through native GTK controls by @intech in #42
  • test(plugins): drive real SDK paging and scoped pane lifecycle by @intech in #43
  • fix: gate and isolate plugin process-group retirement by @intech in #40
  • Test Debian slot identity refusal; fix stale Debian packaging notes by @intech in #46
  • Installed DEB checks: upgrade from the published release, replay documented commands by @intech in #47
  • feat: reorder workspaces by dragging sidebar entries by @intech in #52
  • Pin appimagetool to release 1.9.1 by @intech in #56
  • Open terminal links with Ctrl+click by @intech in #54
  • Keep focus on the expanded pane by @intech in #55
  • feat: move panes between workspaces by dragging by @intech in #57
  • fix(appimage): download build tools only from our own release by @intech in #58
  • ci: validate pull request titles as Conventional Commits by @intech in #60
  • feat(plugins): latest/schema2 installation and plugin development mode by @intech in #45
  • fix(appimage): carry the runtime notice in every image by @intech in #59
  • ci(release): prepare releases from PR titles and tag them from main by @intech in #61
  • refactor(packaging): stop building and shipping the example plugins by @intech in #62
  • feat(notifications): consolidate owned audio authority and live consumers by @intech in #53
  • feat(plugin): confine managed plugins with Landlock and seccomp by @intech in #63
  • test(plugins): run notification roles under real confinement by @intech in #64
  • feat(release): tag a release candidate before the stable release by @intech in #65
  • ci(plugins): build host candidates from the release candidate commit by @intech in #67
  • chore(release): 0.2.0 by @intech in #66
  • test(live): wait for the signals three flaky live checks depend on by @intech in #68
  • fix(packaging): make the Debian and RPM package builds pass their test phases by @intech in #69
  • fix(release): show the version's highlights on a release candidate by @intech in #70
  • chore(release): 0.2.0 by @intech in #71
  • test(live): read only whole report lines from the application log by @intech in #72
  • fix(plugins): accept own-group write on store and settings directories by @intech in #74
  • fix(panes): keep header height, divider placement and sidebar marker stable by @intech in #73
  • fix(workspaces): keep dividers and the sidebar marker stable on switch by @intech in #77
  • fix(ui): pulse the unread stripe until focus and close details of a removed plugin by @intech in #75
  • feat(preferences): add About page, build identity and new page order by @intech in #76
  • feat(preferences): lighter Notifications page with one play/stop sound row by @intech in #78
  • feat(preferences): refresh plugin management and add desktop bell notifications by @intech in #81
  • feat(preferences): add a Terminal tab for text, background and palette colours by @intech in #82
  • ci(release): keep the reason when the published plugin download fails by @intech in #83
  • chore(release): 0.2.0 by @intech in #84
  • fix(sandbox): deny path-based file attribute syscalls by @intech in #79
  • fix(preferences): first-open plugin list, plain shield, clickable rows, wider review, argument lines by @intech in #85
  • docs: add Preferences screenshots for 0.2.0 by @intech in #86
  • fix(preferences): open tall enough for the About page to show whole by @intech in #88
  • fix(plugins): authenticate GitHub API requests when a token is provided by @intech in #89
  • chore(release): 0.2.0 by @intech in #87
  • fix(sandbox): review the fchroot kernel call in the policy header test by @intech in #90
  • chore(release): 0.2.0 by @intech in #91
  • ci: retry apt and fall back to the public archive on hosted runners by @intech in #94
  • fix(plugins): install plugins carried over from an earlier release by @intech in #93
  • docs: keep only build and development documentation in this repository by @intech in #92
  • fix(ci): stop a test race on executable fixtures and keep a working apt mirror by @intech in #97
  • fix(plugins): read a file that is being replaced instead of refusing it by @intech in #98
  • test: remove fixture directories that tests left in the temporary directory by @intech in #99
  • chore(release): 0.2.0 by @intech in #96
  • ci: authenticate the download of published plugin inputs by @intech in #100
  • chore(release): 0.2.0 by @intech in #101

Full Changelog: v0.1.1...v0.2.0