Skip to content

Margin v0.4.0: Linux support

Choose a tag to compare

@arxhr007 arxhr007 released this 07 Nov 20:44
· 20 commits to main since this release

Margin now runs on Linux as well as Windows, and both have a one-line installer.

Install

Windows 10 / 11 (PowerShell):

irm https://raw.githubusercontent.com/arxhr007/margin/main/scripts/install.ps1 | iex

Linux (64-bit Intel/AMD, systemd):

curl -fsSL https://raw.githubusercontent.com/arxhr007/margin/main/scripts/install.sh | sh

Both check the SHA-256 of what they download. Or download by hand: margin.exe for Windows, margin-linux-x86_64 for Linux (a static binary with no dependencies), each with a .sha256 file.

What's new

  • Linux support. Edge slides and corner presses work through evdev (reads the touchpad) and uinput (sends keys), so it works on Wayland and X11. A background systemd user service runs it, and margin settings opens the settings page in your browser. The settings file format is the same as on Windows.
  • One-line installers for Windows and Linux (see above).
  • Windows: the Switch tabs (Alt+Tab) screen now has a Change the keys… button that opens the Custom keys editor with the preset list, so changing those keys is easy to find.
  • Fixed a bug found while testing on Linux: a touch that starts at exactly the same X as the previous touch in that slot could be missed.

Linux notes

This is the first Linux release. It is tested end to end with a virtual touchpad on Ubuntu 24.04 (a fake touchpad drives the real daemon and the key events it sends are checked), but not yet on a range of real laptops and desktops. Known differences from Windows: slides start by sliding in from the edge only; the pointer is not frozen during a slide; a corner press also clicks; brightness and volume use media keys, so your desktop sets the step and shows its own display; no fine-step modifier. See the README's Linux section, including the one-time permissions setup (input group and /dev/uinput).

There is no prebuilt Linux arm64 binary in this release; on arm64, build from source with cargo build --release.

Checksums (SHA-256)

1628e83bc40a83bdd697b1f69fffd45799811c9ea109a8aa06943039a7bd2cd3  margin.exe
5be736f62aef50bbc96878335e734a5b5a3fa21098b204fa1b7b88481b1c36c1  margin-linux-x86_64