This branch adds .deb packaging for T3 Code Desktop so it can run natively on Linux (including WSL2 via WSLg).
Key changes:
.debbuild target —build-desktop-artifact.tsnow supports--platform linux --target deb, generating properly sized icons at build time via ImageMagick and including deb post-install/remove scripts.- CLI wrappers — Installing the
.debcreatest3codeandt3-codecommands in/usr/local/binthat launch the app in the background (won't block your terminal). - WSL2 custom title bar — On WSL2, the app uses
frame: falsewith a custom in-app title bar (WslTitleBar) rendered above all content (including the sidebar). This avoids WSLg's Weston compositor ignoring GTK dark theme hints for server-side decorations. Minimize/maximize/close buttons are built into the custom title bar. - Platform-aware window chrome — macOS uses
hiddenInsetwith traffic lights, Windows usestitleBarOverlay, native Linux gets the default OS frame, and WSL2 gets the custom frameless title bar. - Layout architecture — Root layout wraps everything in a
h-dvhflex container. The WSL title bar sits at the top, content renders in a#app-contentdiv withcontain: paint. Sidebar uses normal flex layout (not fixed positioning). All portals render into#app-contentso overlays respect the title bar. - Wayland/Ozone flags — The
.desktoplauncher and CLI wrappers include--enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto --gtk-version=4for proper Wayland support under WSLg.
Prerequisites: bun, imagemagick (convert command), fpm (installed by electron-builder).
git clone https://github.com/jtwebman/t3code.git
cd t3code
git checkout support-deb-build
bun install
bun run scripts/build-desktop-artifact.ts -- --platform linux --target debThe .deb lands in release/T3-Code-0.0.9-amd64.deb.
sudo dpkg -i release/T3-Code-0.0.9-amd64.deb
sudo apt install -f -y # if there are missing deps like libnotify4Then launch with t3code or t3-code from your terminal.
WSLg's Weston compositor ignores GTK theme hints for server-side window decorations, so the outer window frame color is controlled by your GTK theme env var. Add this to your ~/.bashrc or ~/.zshrc:
# Dark mode
export GTK_THEME=Adwaita:dark
# Or for light mode
export GTK_THEME=AdwaitaThe app content itself follows the in-app theme setting (defaults to system preference).
https://github.com/pingdotgg/t3code/compare/main...jtwebman:support-deb-build