Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ jobs:
- { runner: macos-latest, os: mac, arch: arm64 }
- { runner: macos-15-intel, os: mac, arch: x64 }
- { runner: windows-latest, os: win, arch: x64 }
- { runner: windows-11-arm, os: win, arch: arm64 }
runs-on: ${{ matrix.runner }}
defaults:
run:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ jobs:
- { runner: macos-latest, os: mac, arch: arm64 }
- { runner: macos-15-intel, os: mac, arch: x64 }
- { runner: windows-latest, os: win, arch: x64 }
- { runner: windows-11-arm, os: win, arch: arm64 }
runs-on: ${{ matrix.runner }}
defaults:
run:
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ does this too on Linux when `$DISPLAY` or `$WAYLAND_DISPLAY` is set;

macOS and Windows builds are on every release too: `hqterm-desktop-macos-{arm64,x64}.{dmg,zip}`
(ad-hoc signed; the installer puts it in `~/Applications/hqterm.app` on a Mac
not reached over ssh) and `hqterm-desktop-windows-x64-setup.exe` / `.zip`
not reached over ssh) and `hqterm-desktop-windows-{x64,arm64}-setup.exe` / `.zip`
(per-user, no admin; `install.ps1` runs it silently unless
`$env:HQTERM_NO_DESKTOP` is set). Neither is notarized/code-signed yet, so the
first launch of a browser download needs right-click > Open (macOS) or
Expand Down Expand Up @@ -100,8 +100,8 @@ bun run build # single binary in dist/

Releases: push a `v*` tag matching package.json; CI builds
`hqterm-{linux,darwin}-{amd64,arm64}`, `hqterm-desktop-linux-{x86_64,aarch64}.AppImage`,
`hqterm-desktop-macos-{arm64,x64}.{dmg,zip}`, `hqterm-desktop-windows-x64-setup.exe`,
`hqterm-desktop-windows-x64.zip` and `SHA256SUMS` (bump `desktop/package.json` too).
`hqterm-desktop-macos-{arm64,x64}.{dmg,zip}`, `hqterm-desktop-windows-{x64,arm64}-setup.exe`,
`hqterm-desktop-windows-{x64,arm64}.zip` and `SHA256SUMS` (bump `desktop/package.json` too).

`site/index.html` is the hqterm.sh landing page and `site/docs.html` is
https://hqterm.sh/docs; `install.sh` is served at https://hqterm.sh/install and
Expand Down
4 changes: 2 additions & 2 deletions desktop/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "hqterm-desktop",
"productName": "hqterm",
"version": "0.4.0",
"version": "0.4.1",
"description": "hqterm desktop: a terminal window that shows hqtui/qc images and HD emoji (xterm.js + node-pty).",
"license": "MIT",
"author": "Profullstack, Inc. <hello@profullstack.com>",
Expand Down
16 changes: 12 additions & 4 deletions install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -88,22 +88,30 @@ if (-not (Get-Service -Name sshd -ErrorAction SilentlyContinue)) {
Say ' Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0'
Say " Start-Service sshd; Set-Service sshd -StartupType Automatic"
}
# The desktop app: a per-user NSIS installer, run silently. Windows on ARM
# runs the x64 build under emulation.
# The desktop app: a per-user NSIS installer, run silently. Native on ARM64;
# a release without an arm64 build falls back to x64 (runs under emulation).
$desktop = -not $env:HQTERM_NO_DESKTOP -and -not $env:SSH_CONNECTION
if ($desktop) {
$hqBase = if ($env:HQTERM_VERSION) {
"https://github.com/profullstack/hqterm/releases/download/$($env:HQTERM_VERSION)"
} else {
'https://github.com/profullstack/hqterm/releases/latest/download'
}
$asset = 'hqterm-desktop-windows-x64-setup.exe'
$asset = if ($arch -eq 'arm64') { 'hqterm-desktop-windows-arm64-setup.exe' } else { 'hqterm-desktop-windows-x64-setup.exe' }
$tmp = Join-Path ([IO.Path]::GetTempPath()) ("hqterm-" + [Guid]::NewGuid())
New-Item -ItemType Directory -Path $tmp | Out-Null
try {
Say "downloading $asset from github.com/profullstack/hqterm"
$file = Join-Path $tmp $asset
Invoke-WebRequest -UseBasicParsing "$hqBase/$asset" -OutFile $file
try {
Invoke-WebRequest -UseBasicParsing "$hqBase/$asset" -OutFile $file
} catch {
if ($arch -ne 'arm64') { throw }
$asset = 'hqterm-desktop-windows-x64-setup.exe'
Say "no arm64 desktop build in this release; using $asset (runs under emulation)"
$file = Join-Path $tmp $asset
Invoke-WebRequest -UseBasicParsing "$hqBase/$asset" -OutFile $file
}
Invoke-WebRequest -UseBasicParsing "$hqBase/SHA256SUMS" -OutFile (Join-Path $tmp 'SHA256SUMS')
$line = Get-Content (Join-Path $tmp 'SHA256SUMS') | Where-Object { $_ -match "\s\*?$([regex]::Escape($asset))$" } | Select-Object -First 1
if (-not $line) { throw "$asset is not listed in SHA256SUMS" }
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hqterm",
"version": "0.4.0",
"version": "0.4.1",
"description": "Terminal session manager: persistent hqsh sessions with images and HD emoji, built on hqtui.",
"license": "MIT",
"private": true,
Expand Down
3 changes: 2 additions & 1 deletion site/docs.html
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,8 @@ <h2 id="desktop">The desktop app</h2>
<tr><th>Platform</th><th>Download</th></tr>
<tr><td>macOS, Apple silicon</td><td><a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-macos-arm64.dmg">hqterm-desktop-macos-arm64.dmg</a> (or <a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-macos-arm64.zip">.zip</a>)</td></tr>
<tr><td>macOS, Intel</td><td><a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-macos-x64.dmg">hqterm-desktop-macos-x64.dmg</a> (or <a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-macos-x64.zip">.zip</a>)</td></tr>
<tr><td>Windows 10/11 (x64; ARM64 runs it emulated)</td><td><a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-windows-x64-setup.exe">hqterm-desktop-windows-x64-setup.exe</a> (per user, no admin), or the portable <a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-windows-x64.zip">.zip</a></td></tr>
<tr><td>Windows 10/11, x64</td><td><a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-windows-x64-setup.exe">hqterm-desktop-windows-x64-setup.exe</a> (per user, no admin), or the portable <a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-windows-x64.zip">.zip</a></td></tr>
<tr><td>Windows 11, ARM64</td><td><a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-windows-arm64-setup.exe">hqterm-desktop-windows-arm64-setup.exe</a>, or the portable <a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-windows-arm64.zip">.zip</a></td></tr>
<tr><td>Linux x86_64 / arm64</td><td><a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-linux-x86_64.AppImage">x86_64 AppImage</a> / <a href="https://github.com/profullstack/hqterm/releases/latest/download/hqterm-desktop-linux-aarch64.AppImage">aarch64 AppImage</a></td></tr>
</table>
<p>The installers above (<code>install</code> and <code>install.ps1</code>) fetch the right one for you. The Mac and Windows builds are not signed by Apple or Microsoft yet. On a Mac, a .dmg downloaded in a browser opens after a right-click on hqterm, then <b>Open</b> (or <code>xattr -dr com.apple.quarantine /Applications/hqterm.app</code>); the curl installer needs none of that. On Windows, SmartScreen may ask once: <b>More info</b>, then <b>Run anyway</b>. Panes run your login shell; on Windows that is PowerShell 7 (<code>pwsh</code>) when installed, else Windows PowerShell, and remote panes need <code>hqsh.exe</code> on your PATH (install.ps1 puts it there).</p>
Expand Down
Loading