- Python 100%
|
|
||
|---|---|---|
| .gitignore | ||
| README.md | ||
| repack.py | ||
| zoho-cliq-hide-menubar.md | ||
Zoho Cliq Linux Repack Tool
Repacks the official Zoho Cliq RPM or DEB package with a newer Electron binary
and a set of Linux compatibility patches. The result is a runnable directory,
an installable .deb, or a self-contained AppImage.
Why
Zoho ships Cliq with an outdated bundled Electron (35.x as of v1.8.1). This tool
swaps it for a current release (~41.x) to get security fixes and better Wayland
support, and applies three patches to bundle.js that fix Linux-specific bugs in
the shipped app code.
Requirements
- Python 3.9+
bsdtar(libarchive — handles RPM CPIO, DEB ar, and tar in one tool)npx/ Node.js (used to runasarfor ASAR extraction)- Internet access on first run (downloads Electron zip and
appimagetool)
On Fedora/RHEL: sudo dnf install bsdtar nodejs
On Debian/Ubuntu: sudo apt install libarchive-tools nodejs npm
Usage
python3 repack.py <cliq-package.rpm|deb> [options]
Options
| Flag | Description |
|---|---|
--electron-version X.Y.Z |
Electron version to embed (default: 41.3.0) |
--output-dir DIR |
Where to write the assembled app (default: Cliq-linux/ next to the package) |
--appimage |
Also produce Cliq.AppImage |
--appimage-only |
Produce AppImage only, delete the staging directory afterwards |
--deb |
Also produce a repacked .deb |
--deb-only |
Produce .deb only, delete the staging directory afterwards |
--cache-dir DIR |
Cache directory for downloaded files (default: cliq-repack-cache/ next to the script) |
Examples
Run from directory and install desktop entry:
python3 repack.py cliq-1.8.1_x86_64.rpm
./Cliq-linux/cliq
Produce an installable DEB from an RPM:
python3 repack.py cliq-1.8.1_x86_64.rpm --deb-only
sudo dpkg -i cliq_1.8.1_amd64-repacked.deb
Repack a DEB to a DEB (preserves original control metadata):
python3 repack.py cliq_1.8.1_amd64.deb --deb-only
sudo dpkg -i cliq_1.8.1_amd64-repacked.deb
Build an AppImage:
python3 repack.py cliq-1.8.1_x86_64.rpm --appimage-only
./Cliq.AppImage
Patches applied
Three patches are applied to resources/app/app/bundle.js inside the ASAR archive:
-
autoHideMenuBaron Linux — The BrowserWindow constructor only setautoHideMenuBaron Windows. Enabling it on Linux hides the menu bar by default; pressAltto reveal it temporarily. -
menuBarHeight()Linux fix — The view resize handler subtractsmenuBarHeight()from the BrowserView height. On Linux this hardcodes25regardless of menu bar visibility, leaving a permanent 25 px white gap at the bottom of the window. Patched to return0. -
mainPath /appsuffix —global.mainPathis set usingapp.isPackagedto decide whether to append/apptogetAppPath(). When running from an extracted directory (not an ASAR),isPackagedisfalseso the suffix is skipped, making all image/resource paths one level too shallow and crashing on startup. Patched to always append/app.
Caching
Downloaded files (Electron zip, appimagetool) are kept in cliq-repack-cache/
and reused on subsequent runs. Delete the directory to force a fresh download.
Notes
- Re-run after Cliq updates. Each update ships a new
app.asar; run the tool again with the updated package. - Known non-fatal error.
TypeError: g.resetAppMenu is not a functionmay appear in the console when a view is reloaded. This is a pre-existing bug in the Cliq source and does not affect normal use. --appimageand--debcan be combined with--output-dirto keep the staging directory while also producing a distributable artifact.