Desktop app
The Source Zero desktop app, srcz-desktop, shows the same UI as srcz browser
in one window of its own: the operating system's web view, with native menus
and dialogs, through the mygo toolkit. It talks
to one long-lived Source Zero daemon per user over a private socket, so the window
and srcz . share the same server.
It shows projects on this computer. The app is a preview: macOS builds are not notarized and there is no auto-update. It has not been run on a Mac yet.
Install
macOS and Linux, no sudo. The install script installs the app and the srcz CLI:
curl -fsSL https://raw.githubusercontent.com/flexdinesh/srcz/main/scripts/install.sh | shFor latest main (the edge prerelease; no macOS Intel builds):
curl -fsSL https://raw.githubusercontent.com/flexdinesh/srcz/main/scripts/install-edge.sh | shLinux needs WebKitGTK 4.1 and GTK 3; the install script warns when it can't find them. On Debian and Ubuntu:
sudo apt install libwebkit2gtk-4.1-0The app carries its own srcz binary for the daemon. The scripts put srcz and
srcz-desktop in ~/.local/bin (or ~/bin). The srcz CLI is what opens the
app with srcz . and publishes walkthroughs.
-
macOS:
srcz-desktop.appgoes to/Applications(or~/Applications). Builds are ad-hoc signed, not notarized. curl marks nothing as downloaded, so Gatekeeper does not block the first launch. A browser-downloaded zip needs one right-click, Open, or:xattr -dr com.apple.quarantine /Applications/srcz-desktop.app -
Linux: the app goes to
~/.local/share/srcz-desktop/app/, with a desktop entry that openssrcz://links and an icon.
Run a script again to update; quit the app first. Packages are on
GitHub Releases:
srcz-desktop_<version>_linux_<arch>.tar.gz and
srcz-desktop_<version>_darwin_<arch>.zip. Unpacking one by hand registers no
srcz:// handler on Linux, so srcz . serves in a browser instead.
Open from a terminal
srcz-desktop .opens the current directory. Only one copy runs: a second command or link opens in the running app. With the CLI installed:
srcz .Source Zero checks the directory, starts the daemon if needed, adds the directory to
it, opens the project in the app, and exits. --no-open prints the srcz://
link instead.
Source Zero serves in a browser instead, as srcz browser does, when:
--hostor--portis set;- the app is not installed or does not open (prints install instructions);
- the daemon cannot start or speaks another protocol (prints why).
srcz browser [path] always serves in a browser. On a machine without a UI
(an SSH session, or Linux without a display), srcz [path] tells you to use
--remote (Remote hosts).
Tabs
Cmd+W on macOS or Ctrl+W on Linux closes the active tab. Closing the final tab with this shortcut closes the app. The shortcut also closes the app when no tabs are open.
Links
srcz://local/?project=/abs/path opens a project, and
srcz://local/view?… takes the same query as a browser URL (path, wt,
review, …). Links never add directories; only srcz [path], srcz-desktop [path], and File › Open Folder… do. srcz walkthrough publish prints a
srcz:// link when the app can show the walkthrough.
srcz://r-<id>/… opens a server you connected to with srcz connect
(Remote hosts), with the same routes. Links carry no address and
no secret; the app looks up a connection saved on this computer.
File context menus
Right-click a file or folder in the Explorer, or a tab, for the app's native menu. Reveal in File Manager shows the file in Finder or your Linux file manager; the Explorer menu also copies a file's full or relative path. Source Zero reveals only files inside a project it serves, and never follows a link out of the project.
Notifications
The app tells you what changed in projects you are not looking at. Choose what in Settings, under Notifications:
| Setting | Default | Notifies you when |
|---|---|---|
| New Commits | On | a project's branch gets a new commit |
| Branch Switches | On | a project checks out another branch |
| File Edits | Off | edits stop for 10 seconds in the project a window shows |
| Walkthroughs | On | a walkthrough is published or updated |
Commits, branch switches, and walkthroughs cover every project opened since the window opened, up to 16. Nothing fires for the project in a focused window, and closing a window ends its notifications. Editing a file that already has uncommitted changes does not notify again. Click a notification to open what it is about.
Settings warns you if this computer has no notification service or macOS is blocking Source Zero. Each notification is limited to one per project and kind every 30 seconds.
Not in the desktop app
These went with the earlier Electron app and are not coming back as they were:
- ssh connections and the Connect page.
srcz connectopens other machines (Remote hosts). - Open at Login, recent folders, the Dock menu, and dropping folders on the window or the Dock.
- Open in srcz in file managers, and deb and AppImage packages.
WebKit
The page runs on WebKit: Safari's engine on macOS and WebKitGTK on Linux. A distribution's WebKitGTK can lag behind what the UI is tested on. Explorer, tabs, documents, diagrams, images, and live updates are tested in this app. Search, Source Control, code navigation, and walkthroughs are the same UI, tested on WebKit in a browser but not yet in this app. Known differences from a browser:
- Text shifts slightly when a document gains a scrollbar.
- A review link to a line deep in a very large diff may not reach it.
Uninstall
The uninstall script removes the app and CLI however you installed them in your home directory. Quit the app first; if a daemon is running, the script stops and prints the command to end it. It prints the command for a copy another tool installed, and keeps and lists your data:
curl -fsSL https://raw.githubusercontent.com/flexdinesh/srcz/main/scripts/uninstall.sh | shPage state lives in ~/.local/share/srcz-desktop/ beside the app on Linux, and
in ~/Library/WebKit/io.github.flexdinesh.srcz.desktop on macOS. The daemon's
remembered directories are in srcz/roots.json under ~/.config or
~/Library/Application Support.