Install ShiftPane
What you need, then build and run it. Windows needs one driver, once.
ShiftPane runs on Windows, macOS and Linux, and each release comes as an installer: nothing to clone or build.
ShiftPane in a minute: the phone as a second screen or a widget board, and making your own widgets.
Download
Get the installer for your system from the latest release:
| System | File |
|---|---|
| Windows | ShiftPane-<version>-win-x64.exe |
| macOS (Apple silicon) | ShiftPane-<version>-mac-arm64.dmg |
| Linux | ShiftPane-<version>-linux-x86_64.AppImage or ShiftPane-<version>-linux-amd64.deb |
Run it, and the window opens on the Devices page with a QR code to pair your first phone. The widget board works everywhere. The virtual monitor is the part that differs by system (below), and it's the part that's only been tried on Windows so far.
The installers aren't signed yet. On Windows, SmartScreen says "Windows protected your PC": choose More info → Run anyway. On macOS, right-click the app and choose Open the first time. Each file's SHA-256 is on the release page, so you can check what you downloaded, and the workflow that builds the installers is in the repository.
Build it yourself
You need:
corepack enable once and Node provides it.rust-toolchain.toml.On Windows, building the native helper also needs Visual Studio (or its Build Tools) with the C++ workload, as any Rust program on Windows does.
Get the code
Clone the repository and open a terminal in its folder.
Terminalgit clone https://github.com/kwiruu/shiftpane.git cd shiftpaneInstall and build the phone app
The desktop app serves the phone app to your phone, so build it once first:
Terminalpnpm install pnpm --filter @shiftpane/phone buildStart the desktop app
Terminalpnpm dev:desktopThe window opens on the Devices page, with a QR code to pair your first phone.
The virtual monitor
Display mode needs a virtual monitor, and each OS makes one differently. Widgets work without it.
The virtual monitor
On Windows, install Virtual Display Driver once:
winget install --id=VirtualDrivers.Virtual-Display-Driver -eThen open VDD Control from the folder winget installed it to and click Install. ShiftPane tells you if the driver is missing when you first ask for a monitor.
Make an installer
To package the app for the OS you're on, run pnpm package. The installer lands in apps/desktop/release/; this is how the releases are made.
Next: pair a phone.