
Show HN: Edgepad – Turn an Android phone into a trackpad for your laptop
Edgepad turns an Android phone into a trackpad, a media remote and a control panel for a Windows laptop, a Mac or a Linux laptop, over a direct Bluetooth link with nothing in between.
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
Edgepad turns an Android phone into a trackpad, a media remote and a control panel for a Windows laptop, a Mac or a Linux laptop, over a direct Bluetooth link with nothing in between.
The phone's screen. The finger crosses the trackpad, then slides the corner ruler and the volume follows.
It is for the times the laptop is across the room rather than under your hands: plugged into a television, docked on a desk you are not sitting at, parked somewhere a mouse dongle will not reach. The alternatives are a remote app that only sends media keys, or a remote-desktop app that streams the whole screen and wants an account and a network round trip to change the volume. Edgepad is neither. The phone and the laptop pair once, the way a headset does, and after that they talk directly: no account, no Wi-Fi, no service in between that can be slow or down. The cost is Bluetooth's own — both ends need it, and it does not reach another room or the internet.
Mac and Linux are still in testing. Please use them at your own risk. The Windows app is the one that has been run on a real laptop; the Mac app has been compiled and unit-tested in CI, and the Linux app has not been seen working on a Linux laptop yet. Expect rough edges, and report what you find.
Corner rulers. Each corner of the phone holds a dial drawn as a ruler that wraps the bend. Slide along it, clockwise to raise. Volume, brightness, media scrub, zoom, app switcher or microphone level; Settings picks what each corner does, how long the rulers are and how tall. Split corners in Settings › Corners gives each corner two dials, one on each edge it joins, eight in all.
Trackpad. Everything between the corners moves the laptop's pointer. One finger moves and clicks, two scroll and pinch, three and four fingers do whatever you assign them: desktops, task view, media, volume, app switcher, and more. Press one finger and hold it still until it ticks, then draw without lifting: a shape you have drawn in Settings runs a laptop action, a macro, or hides or locks the pad itself. A stroke that matches nothing does nothing.
Media. The track, the app playing it and where it is, with previous, play/pause and next. Drag the three pieces anywhere on the surface.
Controls. One button on the surface opens a grid of the keyboard, the gamepad, capture and annotate; the grid can be rearranged like the macro deck.
Keyboard and gamepad. A full on-screen keyboard whose modifiers work held or tapped, and a gamepad that drives a real virtual Xbox controller on the laptop, sticks and triggers analog, where the ViGEmBus driver is installed; where it is not, the same pad falls back to pressing keys and says so. Every control is yours to add, bind, label, size, move or delete, and layouts are a library rather than one arrangement, so a phone can keep one per game. Both open sideways. On Linux the gamepad plugs in a virtual Xbox 360 controller; the Mac has no controller driver, so there it presses keys.
Annotate and sign. The phone becomes an absolute pen for the laptop's screen: a touch lands at the same place on the laptop. Pen, highlighter, line, arrow, rectangle and ellipse in eight colours, with Undo and Clear. The Sign switch turns the same pad into a signature pad: nothing is drawn on the laptop, and Save signature copies a transparent PNG to the clipboard and saves it (see Annotate and sign). Primary display only.
Shared clipboard. Text and images copied on the laptop arrive on the phone at once. To send a copy from the phone, go back to Edgepad after copying: Android lets an app read the clipboard only while it is on screen, so nothing is sent until you return. A large photo is sent smaller.
Capture. Buttons for a region screenshot, the whole screen and a screen recording, which press the laptop's own shortcut (see Capture).
Macros. A grid of buttons that open a program, file, folder or web address on the laptop. They live in Controls. Press and hold a button to drag it into the order you want, and pick the grid and labels under the macro screen's settings; the phone still sends only the slot number.
Live state. The dials show the laptop's real volume, mute, brightness and playback position, and follow changes made on the laptop itself.
Guide. Five pages on the first run, and again from Settings, one at a time or on one page.
Black on white or white on black, and upright or sideways: both are toggles in Settings. The orientation applies to every screen but the keyboard and the gamepad, which are always sideways.
Install
Both apps come from the latest release, under Assets. Each file is named for its release, so Edgepad-3.1.1.exe and Edgepad-3.1.1.apk are the two halves of 3.1.1; on a Mac the laptop half is Edgepad-<version>-mac.zip, from 3.4.0, and on Linux Edgepad-<version>-linux-x64.tar.gz, from 4.0.0. Always install both from the same release: the two refuse each other at the handshake when their protocol versions differ, and say so. 3.0.0 moved the protocol from version 3 to version 4, so a 2.x app on either side will not talk to a 3.x one — update both halves together or neither connects. 4.0.0 moves it to version 5, so a 3.x app will not talk to a 4.x one either. Releases after 3.1.1 also carry SHA256SUMS.txt, and gh attestation verify Edgepad-<version>.apk --repo akshit-bansal11/edgepad checks that a file was built by this repository's release workflow.
Download Edgepad-<version>.exe. It is a single self-contained file; nothing else needs installing.
Run it. It is not code-signed, so SmartScreen asks first: choose More info, then Run anyway.
It lives in the system tray, and a left or a right click on its icon opens the same menu. The menu shows whether a phone is connected, then Start with Windows, Macros…, Open log, Documentation, Forget trusted phones and Quit Edgepad, with the version beside it. It follows Windows' light or dark app mode.
Running a newer release's exe asks the running copy to quit and takes its place. From 3.3.0 the tray app asks GitHub once a day whether a newer release exists, and shows an Update available row at the top of its menu when one does.
Optional, for the gamepad: ViGEmBus. The gamepad works without it — every control can be bound to a keyboard key, and keys are what the pad sends on a laptop with no controller driver, which is the state most laptops are in. Install ViGEmBus and Edgepad plugs a virtual Xbox controller into Windows instead, so the sticks and triggers carry their full analog range and a game that only ever accepted a controller can be played from the phone. It is a third-party kernel driver, signed as Windows requires of one, and you install it yourself; Edgepad neither bundles nor installs it. You never have to guess which of the two you are in: the laptop answers every request for the controller, and the gamepad screen says keyboard mode and which of the three reasons it was, rather than being quietly dead.
One download covers Apple Silicon and Intel. The Mac app was compiled and unit-tested in CI before its first run on a real Mac, so expect rough edges and report them.
Because the signature is ad hoc, macOS treats every new version as a different app, so the Device Control permission has to be granted again after each update: remove the old Edgepad entry in the list, then add the new one.
Still in testing; use it at your own risk. docs/LINUX.md lists everything that has not been seen working.
Download Edgepad-<version>-linux-x64.tar.gz and check it against SHA256SUMS.txt.
Extract it and run the installer as root:
tar xzf Edgepad-<version>-linux-x64.tar.gz cd edgepad-<version> sudo ./install.sh # or: sudo ./install.sh /opt/edgepad to install under another prefix
Log out and back in once, so your session gets access to /dev/uinput. Then start Edgepad from the launcher, or run edgepad.
install.sh only copies files and loads a module; it downloads nothing. It puts edgepad in <prefix>/bin (the prefix defaults to /usr/local), the launcher entry in <prefix>/share/applications, the icon in <prefix>/share/icons/hicolor/scalable/apps, a udev rule in /etc/udev/rules.d/60-edgepad-uinput.rules and uinput in /etc/modules-load.d/edgepad.conf, then runs modprobe uinput and reloads udev. Uninstall with sudo ./install.sh --uninstall (same prefix, if you gave one); your settings in ~/.config/edgepad stay.
The app is a self-contained single file, so .NET need not be installed. It does need:
On Wayland, the layer annotate draws on runs under XWayland and the compositor may ignore its always-on-top request, so annotate is best effort: Edgepad offers it to the phone only when it can work, and the phone hides the Annotate tile otherwise. The shortcuts behind task view, show desktop, search, notifications and switching desktops differ per desktop; the GNOME and KDE tables were written from memory and are unverified, and on any other desktop those actions do nothing. Macros are a text file you edit by hand, ~/.config/edgepad/macros.txt; there is no editor on Linux yet.
Download Edgepad-<version>.apk on the phone and open it. Allow installing from this source if asked.
On first run, allow the Nearby devices permission. Edgepad uses it to see the laptops paired with the phone; it never scans for new ones.
Every later release installs over the previous one; settings are kept. From 3.3.0 the app fetches them itself: Settings › Help › Updates says when a newer release exists, and a tap downloads and installs it. Update the laptop app to the same release.
Use
Pair the phone with the laptop once, in Windows Settings > Bluetooth & devices, macOS System Settings > Bluetooth or your Linux desktop's Bluetooth settings, and confirm the code on both sides.
Keep Edgepad running in the laptop's tray, or on a Mac in the menu bar. On Linux the tray needs a desktop that shows StatusNotifier icons; GNOME needs the AppIndicator extension.
Open Edgepad on the phone and tap the laptop. The first time, the laptop asks Trust this phone?; choose Trust there (no answer within a minute counts as no). Every paired phone is asked about once, and each one you trust is remembered; Forget trusted phones in the tray or menu-bar menu forgets them all. One phone drives the laptop at a time: a trusted phone that connects takes over from the connected one, and the phone it replaced is refused for 30 seconds, so the two do not take the laptop back and forth. After that it can reconnect with Retry.
The phone remembers the laptop and reconnects when the app opens. If the link drops, the phone retries ten times, two seconds apart, and says so.
The control surface
Where Touch Laptop does
A corner ruler slide turns that dial: clockwise raises
A corner ruler tap the dial's action: mute, play/pause, mic mute, task view, reset zoom
Anywhere else, one finger move / tap / tap then hold-and-move pointer / left click / drag
Anywhere else, one finger press, hold still until it ticks, then draw what that shape is bound to: an action, a macro, or the pad's own focus or lock
Two fingers drag scroll both axes
Two fingers pinch / tap zoom / right click, or what Settings assigns
Three or four fingers tap, swipe up, down, left, right what Settings assigns
Top centre tap one of the four buttons Settings, Controls (keyboard, gamepad, capture, annotate), the lock, the macro grid
Back
leaves the surface; the link stays up
Out of the box, three fingers left and right switch desktops, three up opens task view, three down shows the desktop, four fingers left and right walk the app switcher (Alt stays held while the fingers are down), and tapping searches or opens notifications. Every one of those is changed under Settings > Trackpad.
The lock in the middle of that row is the one button that changes the surface instead of opening a screen. One tap hides the dials and the media and leaves the trackpad; a second tap straight after locks the trackpad instead and puts the dials and the media back, so the phone can sit in a pocket or
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。