Canopydocs v0.4.7

Install on Linux

As with the Windows build, the Linux packages compile and ship but have not been validated on a desktop. Every release builds .deb, .rpm and .AppImage on an ubuntu-latest runner, and there's a CI job whose whole purpose is compiling the cfg(not(macos)) paths: the tray fallback, xdg-open, terminal detection.

System dependencies#

Tauri 2 apps need WebKitGTK and a tray backend. On Debian and Ubuntu these are the packages the release workflow installs for itself:

sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev \
  libayatana-appindicator3-dev librsvg2-dev

On Fedora the equivalents are webkit2gtk4.1, gtk3, libappindicator-gtk3 and librsvg2.

Install#

All three packages are on the releases page.

# Debian / Ubuntu
sudo dpkg -i Canopy_0.4.7_amd64.deb || sudo apt-get -f install

# Fedora / RHEL
sudo rpm -i Canopy-0.4.7-1.x86_64.rpm

# Anywhere, no install, no root
chmod +x Canopy_0.4.7_amd64.AppImage
./Canopy_0.4.7_amd64.AppImage

The tray on Linux#

This is the difference worth knowing about. Linux tray implementations (AppIndicator and StatusNotifier) don't deliver click events at all, so the click-toggles-popover behaviour Canopy uses on macOS isn't available. The icon carries a menu instead:

  • Open Canopy shows the main window.
  • Quit Canopy stops every service and exits.

The popover window still exists here (a regular borderless always-on-top window, not an NSPanel), and the main window is the primary surface.

Requirements for everything else#

RequirementNotes
gitEvery worktree operation shells out to git.
Your login shellCommands run as a login shell, so version managers initialise the way they do in a terminal.
A Node version managerPinned versions are found in ~/.asdf/installs/nodejs/…, ~/.nvm/versions/node/… and fnm's data dir.
xdg-openOpens a service's port in the browser and reveals a folder in the file manager.
A terminal emulator"Open terminal" detects a common one; the Terminal settings page lets you name the program.
Postgres (optional)Only for the database features, and the client binaries have to match the server's major version.

Where Canopy keeps its files#

WhatPath
Settings and runtime state~/.config/com.midhunkumare.canopy/ (settings.json, state.json)
Log file~/.local/share/com.midhunkumare.canopy/logs/canopy.log
Appearance and per-worktree contextthe webview's localStorage

Known issues#

  • Window decorations and popover placement are unverified on tiling window managers.
  • The AppImage brings its own WebKitGTK expectations. If it won't start, try the .deb or .rpm.
  • Nothing is signed and there's no repository to add, so updating means downloading a new package.

Documentation for Canopy 0.4.7. Controls marked coming soon are present in the interface but have no implementation behind them yet.