FuMachine
A tiny remote desktop for your home network

Reach your own computers on your own network. Nothing else involved.

One exe, no installer, no account, no cloud, no subscription. Run it on every computer; they find each other, and you double-click one to sit at it.

Windows 10 / 11Linux, X11 and WaylandmacOS 14+ viewerNo audioUnzip, run
The FuMachine main window: this computer's name and address at the top, a list of computers on the network with their access mode, one of them pinned and one off or asleep, and who is connected to this computer
The main window, here on Linux. Every computer running FuMachine shows up by itself.
Getting started

Copy it, run it, double-click a computer.

Step 1

Copy FuMachine.exe to each computer and run it

Nothing to install. The first time, Windows Firewall asks whether FuMachine may use the network. Allow it on private networks.

Step 2

The others appear under "Computers on your network"

Each copy announces itself on the LAN, so a freshly started one shows up within a moment. Give any of them a name of your own with F2, or pin it to the top of the list; only your list changes.

Step 3

Double-click one. The other side shows Allow / Deny

Tick Always allow this computer and it won't ask again. Closing the window keeps FuMachine in the tray, so the computer can still be reached.

The connection request dialog: LIVINGROOM-PC (alex) wants to connect, with an Always allow checkbox and Deny and Allow buttons, Deny counting down
What the other computer shows the first time you connect. Deny wins after 30 seconds if nobody is there.

Nobody at the other computer?

Set a password there (Settings → Set password…). Your viewer can tick Remember this computer; the host then gives it a personal token and stops asking. Tick Start FuMachine when I sign in to Windows so it's always reachable.

The viewer

The toolbar has everything, and the keys behave like RDP's.

The viewer window's toolbar: Display, Quality, Fit to window, Full screen, Send shortcuts, View only, Keys, Files and Refresh
The viewer's toolbar. In full screen, touch the top edge to bring it back.
DisplayPick a monitor, or all of them side by side
QualitySlow connection, Speed, Balanced or Best. Areas sent blurry are sharpened once they stop changing
Fit to windowScaled to the window, or 1:1 pixels with scrollbars
Full screenAlso Ctrl+Alt+Break
Send shortcutsAlt+Tab, the Windows key, Ctrl+Esc and the rest go to the remote computer
View onlyWatch without sending your mouse, keyboard or copied text. Also Ctrl+Alt+Shift+V
KeysCommon combinations, Task Manager, Win+R, lock the remote computer
FilesDrop files or folders on the picture, fetch files using the remote computer's own file dialog, or save a picture of its screen
RefreshResend the whole screen

Keys go across as the physical keys you press, and the remote computer's own layout decides the characters, the same as RDP. A Norwegian viewer typing on a US-layout computer gets US characters.

If that is not what you want, switch on Send characters as typed here (Keys menu, or Settings). Then what you type arrives exactly as typed, dead keys included, whatever layout the other computer uses. Shortcuts with Ctrl, Alt or the Windows key still go as keys.

Copied text is shared both ways. The mouse pointer is drawn by your own computer from the remote cursor's shape, so it moves instantly whatever the video is doing.

How it performs

Quick enough for everyday use on a home network.

11msTypical time for a change on screen to reach the viewer over a wired network, on the author's setup
0.2% CPUWhat an idle host costs, roughly. When something moves on screen it keeps up with the display
64px tilesOnly the tiles that changed are sent, so a still desktop costs almost nothing
47MBOne file, .NET runtime included. Without the runtime it is about 1 MB, for computers that already have .NET 10 Desktop Runtime

Numbers from the built-in self-tests on one 2560×1440 display; yours will differ. FuMachine.exe --selftest latency measures your own.

Security

Encrypted, and every computer has an identity.

Each copy makes a signing key on first start. Your viewer remembers it, so a device that later claims to be your desktop is stopped, and you are told that the key changed.

On a network you don't trust, compare the fingerprint3F9A-12C0-77D1-0B6E-A4C2
  • AES-256-GCM on the wire. Keys are agreed per session with ephemeral ECDH and signed by the host's identity key.
  • Only private network addresses may connect. Tailscale peers are the one exception, and only through your own Tailscale adapter.
  • Unattended access needs the password set on that computer. Guesses are rate-limited per address, and the limit can't be dodged by changing address.
  • A remembered viewer gets a personal token, never the password. Forget any of them in Settings.
  • Secrets at rest are protected with Windows DPAPI; on Linux the settings file is readable by its owner only.
The settings window with its four tabs, This computer, Connections, Viewing and General; Connections is open: allow, ask before, and file transfer options, a password, and remembered computers
Settings, the Connections tab. Everything the host and the viewer do is decided here.
Settings

Four short tabs of settings, and they follow Windows' light or dark mode.

Connections: whether this computer accepts connections at all, whether it asks first, whether files may be sent to and from it, its password, and the computers it remembers. Viewing: how you view others, with shortcuts, clipboard, smoothing and typed characters. General: starting with Windows, the hints on buttons, and finding computers on Tailscale.

The settings live in one JSON file per user. The Linux app and the headless host share the same settings, so you can switch between them. Run one at a time: they use the same ports.

Linux

The same window on Linux, plus a host for computers nobody sits at.

Desktop app

Computer list, viewer, settings and tray icon, as on Windows. Views other computers and can be viewed itself.

chmod +x fumachine && ./fumachine

X11 or Wayland

On X11 everything works both ways. On Wayland the person at the machine allows screen sharing once, through the desktop's portal, and the compositor tells FuMachine what changed on screen.

Settings → Show in the applications menu

Headless host

For a server or a Raspberry Pi with an X display and nobody at it. Set a password once, run it as a user service, and it waits for its display.

./fumachine-host --set-password
A note from the author

Made with Claude, used daily, shared as is.

I wrote FuMachine because NoMachine put its free version behind a subscription and I didn't feel like paying every month to reach my own computers. The code was written with Claude (Fable and Opus). I take no responsibility for what it does on your machines: no warranty, no support promise. I use it every day across a handful of computers at home and it works fine for me, and that is the only reason it is here. If it does the same for you, good.

Download

Version 0.2.6

— downloads— visitorscounted once the page is on stigern.net

Each Windows and Linux build is one zip with the program inside. Unzip it anywhere and run it; there is nothing to install and nothing is written outside your own user folder, unless you switch on Allow access to the lock and sign-in screen on Windows (an optional setting that installs a small service).

Windows

Windows 10 or 11, 64-bit. Everything included.
FuMachine-win-x64.zip42 MBSHA-256 2a7319ae0164d533437d6cd4414fe47fc147c505351cc89fa52fac517e8d2c04
Download

Windows, without the .NET runtime

For computers that already have the .NET 10 Desktop Runtime. Otherwise the same.
FuMachine-win-x64-no-runtime.zip0.6 MBSHA-256 36ff5b8dc34b48b48303a40e35cdaa5ab33f1f6abd3eae3612637ebdf4ecb16f
Download

Linux x64

The desktop app and the headless host, both self-contained. X11 and Wayland.
FuMachine-linux-x64.zip70 MBSHA-256 f87f80c61eb788b10dae522435220b90083369378b24e3bc8bcb436ca4a41680
Download

Linux arm64

The same two programs for 64-bit ARM: Raspberry Pi 4 and 5, and similar.
FuMachine-linux-arm64.zip66 MBSHA-256 12c69ae65f03b5010188433a3bd539837d93acd2879287d130f59dbd4fd19b8b
Download

macOS

A native viewer for your Windows and Linux computers, macOS 14 or later, Apple silicon and Intel. Signed and notarized: open the disk image and drag FuMachine to Applications.
FuMachine-mac.dmg3.2 MBSHA-256 2aa31b8ce3c5000664b0178da05e73f75dd714234664b4678fac551a9ea59897
Download

Free. What changed is in the changelog below, and on the About window. If it saves you a subscription, you can buy me a coffee.

☕ Buy me a coffee
Changelog

What changed in each version.

Version 0.2.6

2026-10-13

New

  • Viewer: a Slow connection quality, first in the Quality list, for a very slow connection (a phone's, a far-away Wi-Fi, a relayed Tailscale link). Big changes come blurrier and smaller than with Speed and are sharpened once still; typing and other small changes go sharp at once, for no more than Speed sends. On Windows, Linux and the Mac. A computer still on an older FuMachine gets Speed instead, and an older FuMachine reading the settings takes it for Speed too.
  • Refresh in the computer list says what it does: Looking… next to the button for 3 seconds (it can't be clicked meanwhile), then how many computers answered. On Windows, Linux and the Mac.
  • When every computer seen through Tailscale stops answering for 30 seconds while Tailscale still says they are online, the computer list suggests restarting Tailscale on this computer (Tailscale had lost its way to them; it goes as soon as one answers again). On Windows, Linux and the Mac.

Fixed

  • Windows: with lock-screen access set up, Set password in Settings opens its dialog over the Settings window, not in the top left corner of the screen.
  • Cancel on the Reconnecting… panel ignores clicks for its first second, so a click meant for the picture as the connection drops no longer closes the viewer. On Windows, Linux and the Mac.
  • Linux (Wayland): when the screen is locked at the computer and Unlock the screen for viewers who sign in is on, the viewer is told to connect again to unlock it, not to unlock it there.
  • Mac: Esc no longer closes a viewer that is reconnecting, as on Windows and Linux.
  • Mac: viewer windows can no longer be merged into tabs (Window → Merge All Windows).
  • Mac: text that another program types into a viewer (an automation tool, a text expander) arrives as that text instead of the letter "a".

Version 0.2.5

2026-10-07

New

  • FuMachine for Mac: a native viewer for your Windows and Linux computers, for macOS 14 or later on Apple silicon and Intel, signed and notarized by Apple (FuMachine-mac.dmg: open it and drag FuMachine to Applications). The same computer list (found on the network, on Tailscale, or by address; rename, pin to top, wake up), sign-in with a password or by approval, and a viewer with the display, quality, fit, full screen, Send shortcuts, View only, keys, sending and getting files, a picture of the screen, shared copied text and connecting again after a lost connection. ⌘ works as Ctrl on the remote computer (a setting). The Mac only views other computers; it can't be viewed itself.

Fixed

  • Windows: a viewer, password prompt or question that comes after a wait (Allow at the other computer, a computer waking up) no longer takes the keyboard from the window you are typing in: it opens without taking the keyboard, its taskbar button flashing, and a connection that fails after a wait says so in a tray notification.
  • Linux (X11): closing the lid or suspending while a viewer has the keyboard no longer leaves the computer unlocked (nor does a lock asked for through logind): the viewer lets go of the keyboard first, and the screen is locked again if the desktop couldn't.
  • Linux (X11): the desktop app no longer lets the screen blank and lock while a viewer only watches, as on Windows and Wayland. The headless fumachine-host keeps the computer from going to sleep and holds off the X server's own screen saver meanwhile (a GNOME desktop may still blank the screen).
  • Linux (Wayland): a screen FuMachine unlocked for a viewer is locked again once the last viewer has left (unless the sharing was stopped at the computer), also when the unlock was slow.
  • Linux (Wayland): shared without remote control, a viewer can no longer lock the screen or replace this computer's copied text.
  • Windows: with several viewers, one letting go of a key or mouse button (or leaving) no longer lifts it while another still holds it.
  • Windows lock-screen service: a program that takes the service's link to the tray app and stops reading no longer freezes it for every viewer; file transfer failures are written to helper.log again (also failed sends); the Ctrl+Alt+Del link recovers from a request that was given up early.
  • Get files: files chosen on the other computer more than 15 minutes after the click arrive, instead of being refused while the viewer kept saying "Choose the files…".
  • Windows: closing a viewer while files arrive no longer leaves name.fumachine-part in Downloads.
  • Linux viewer, with Send shortcuts on: the Display and Quality lists take Esc, Enter and the arrows instead of sending them to the other computer.
  • Linux viewer: Ctrl+Alt+Shift+V and Ctrl+Alt+Shift+S follow the keyboard layout (Dvorak, Colemak), as on Windows.
  • Linux (Wayland, GNOME): a key held in a viewer no longer fills the system log with warnings.
  • Windows: screen readers announce who wants to connect when the Allow / Deny question comes up.

Improved

  • Windows host, and Linux (X11) with All displays: a screen where nothing changes is grabbed at most an eighth of the time, and at least once a second, while it is viewed with All displays or the basic capture (was up to three quarters of the time with two 4K displays).
  • Linux (Wayland): on a monitor faster than 60 Hz the desktop makes at most 60 pictures a second for FuMachine, not one per refresh.

Version 0.2.4

2026-10-04

New

  • Linux desktop app: Settings → Connections → Screen lock, for a computer nobody sits at (both off by default). Unlock the screen for viewers who sign in: a viewer that connects with the password, or as a remembered computer, unlocks a locked screen (a locked Wayland screen can't be shared), and the computer shows a notification. Keep the screen from locking while FuMachine runs: the desktop doesn't blank or lock it by itself, and a viewer's Lock is refused. Both on Wayland only; the screen is unlocked only when sharing can start, locked again if it then fails, and the notification names the computer that connected.

Fixed

  • Linux (X11): a program that hides the pointer (a video player, a game) hides it in the viewer too. FuMachine sees that from when it starts; with the optional cursor module from linux/xorg installed, also a pointer hidden before.
  • Linux: a password manager's secret copied while FuMachine reads the clipboard is never sent to the other computers; text that was on the clipboard before it was cleared is put back when another computer copies it.
  • Linux: with several viewers, one letting go of a key or mouse button (or leaving) no longer lifts it while another still holds it, e.g. Shift in the middle of a selection.
  • Linux (X11): a lowercase letter typed as a character while Shift is held (by the viewer, another viewer, or the computer's own keyboard) arrives in lowercase; a restarted X server no longer ends the host: a viewer carries on with the new server (picture, cursor and input), or is told the X server can't be reached.
  • Linux (Wayland): "Keep the screen from locking" counts as on only once the desktop agreed, and asks again otherwise.
  • Linux desktop app: the tray is used only when something shows its icons (a panel can be gone while its watcher is still running); a window closed after the tray went away comes back minimised instead of disappearing for good.
  • Linux viewer, Send characters: the same dead key twice types the accent on its own, as on the computer itself.
  • Linux: faster with small changes on a 4K screen: an X server without shared memory sends only the changed tiles (a caret: 11 ms → 0.04 ms a picture); on Wayland only the changed areas of a picture are copied; the viewer uploads scattered changes to the GPU in a few pieces instead of one per tile (up to 28 ms → 3 ms a frame).
  • Linux (Wayland): sharing through GNOME's own screen cast (when the screen sharing was allowed for is gone, e.g. an HDMI dummy plug) keeps "view only" when sharing was allowed without remote control, instead of giving every viewer mouse and keyboard and saving that; and it keeps the screen from going dark, which ended the session after the idle delay ("stopped at the remote computer"). A viewer whose screen went dark is told so.
  • Linux desktop app: a viewer, password prompt or "disconnected" message that opens while you type elsewhere (after an approval, a computer waking up, a host disconnecting) no longer takes the keyboard; what you type stays where it was.
  • Linux: with ~/Downloads deleted (xdg then points Downloads at the home folder), received files go to a new ~/Downloads, never into the home folder, where a host could have left files such as .bash_login.
  • Linux: "Keep the screen from locking" asks again when the desktop portal wasn't up yet at login or restarted.
  • Linux (X11): a viewer's Lock locks the desktop being shared, or says it couldn't, instead of another session; mouse moves go to the served screen with --display :N.1.
  • Linux: a settings folder this user can't read (made by sudo -E, say) gives settings that don't accept connections, as an unreadable file does, instead of fresh ones that accept them; the same when new settings can't be saved at all.
  • Linux: the wired card's address is the one sent for Wake-on-LAN when there is also Wi-Fi (Wi-Fi counted as wired).
  • Linux: file names with \ arrive as one file, not split into folders; a received name.fumachine-part is no longer deleted when name arrives later (all platforms).
  • Linux: another user's program on the discovery port no longer takes this FuMachine's discovery answers.
  • Linux desktop app: autostart switched off in the desktop's own startup tool stays off; a transfer line no longer keeps "A transfer is already running." after a lost connection.
  • Windows: with the lock-screen service installed, a computer running FuMachine 0.2.1 or older no longer keeps flipping between on and Off or asleep in the list (double-clicking it then only woke it). The tray app now keeps a computer listed for 30 s without hearing from it, instead of 7 s; one that is switched off goes from the list that much later.
  • Linux (Wayland): a computer restarted with another screen than the one screen sharing was allowed for (an HDMI dummy plug in place of the monitor, say) no longer fails with "The desktop shared no screen". On GNOME, FuMachine then shares the primary monitor through GNOME's own screen cast, without a dialog nobody is there to answer (a virtual one when no monitor is connected at all). On other desktops the viewer is told to allow screen sharing again there.
  • Windows, lock-screen service: Always allow this computer is kept only when an administrator of the computer answers. A standard user's Allow lets the viewer in once (the prompt doesn't offer Always then): the remembered computers count for everybody who uses the computer, administrators too.
  • Windows, lock-screen service: setting it up again after removing it, before restarting, keeps FuMachine in Program Files on Windows 11 too (the restart's pending deletions are written there as *1\??\C:\…, and weren't recognised).
  • Windows, lock-screen service: after removing it, the copy FuMachine goes on from (in %LOCALAPPDATA%\Programs\FuMachine) is let through Windows Firewall again; since 0.2.3 nobody could connect until an administrator allowed it. Removed from outside FuMachine, it says that the firewall has to be set again.
  • Windows, lock-screen service: another user's program can no longer switch off Ctrl+Alt+Del from viewers by taking the service's pipe name between two requests.
  • Windows viewer: a viewer in the background no longer takes the keyboard from the window you are typing in when its computer is reached again, its session ends or a picture of the screen is saved. One that ends in full screen stays in full screen, showing why.
  • Windows viewer: in View only and while reconnecting, Alt+F4 closes the window and Alt+Space opens its menu.
  • Windows viewer: files dropped while a transfer is running no longer make a later lost connection keep "A transfer is already running." instead of saying the transfer stopped.
  • Windows, Linux: one forged discovery announcement on the LAN can no longer take over a computer listed at its Tailscale address (it moves to the LAN once that address has announced it the same way for 2 s), nor set the network card a remembered computer is woken by (taken once its announcements agreed for 10 s).
  • Windows, Linux: a settings file that can't be read at start (held by a backup or sync tool) is waited for 5 s; after that FuMachine runs on stand-in settings that don't accept connections, and saving says it failed, instead of accepting connections with the default settings and saving nothing.
  • Windows: a viewer that duplicates the screen just after another session lost it (UAC, lock screen) no longer makes FuMachine leave DXGI capture for 10 minutes.

Version 0.2.3

2026-10-03

New

  • Windows, Linux: every button and option explains what it does once the mouse has rested on it for five seconds; Settings → General → Explain buttons and options when the mouse rests on them switches that off.

Fixed

  • Windows, Linux: a computer on Wi-Fi that this one's broadcasts don't reach is no longer listed as off or asleep (double-clicking it only woke it); on Windows that happened whenever the lock-screen service was installed. Discovery now also asks the computers remembered for waking up directly, at their last address.
  • Linux: the programs FuMachine uses (xdg-open, notify-send, gdbus, loginctl) are started from the system's own folders only, never a file of that name in the folder FuMachine was started from.
  • Windows: the tray app only talks to the lock-screen service's own helper, and the helper only takes Ctrl+Alt+Del answers from the service, never from another program that took the name of their connection first.
  • Windows, Linux: the Allow / Deny prompt for a connection request no longer takes the keyboard when it appears, not even from the FuMachine window you are typing in; keys (Tab too) only answer it a moment after it has been clicked, Deny is where the keyboard starts, Enter denies, and Enter or Space click Allow only when you moved there yourself.
  • Windows: the lock-screen service's folder in Program Data is made anew by every install, owned by Administrators, and the service, its helper and Settings use it only while it is still like that; a folder of that name made beforehand by another user is no longer taken over.
  • Windows: allowing FuMachine through Windows Firewall (the button in Settings, and setting up or removing the lock-screen access) works from a folder with a curly apostrophe in its name, such as Kari’s PC, and such a name can no longer make the elevated script do anything else.
  • Windows, Linux: someone else on the network can no longer change how a remembered computer is woken up: its network card and address are updated only when you connect to it.
  • Linux: with Send shortcuts on, the viewer lets go of the keyboard after 50 seconds without input in it, so the screen can lock while a viewer is in front (GNOME on Xorg said "Lock was blocked by an application"). The next key or mouse move in the viewer takes it again.
  • Windows: removing the lock-screen access and setting it up again before restarting no longer leaves the service without its program after the restart.
  • Windows: the main window says again when every network is set to Public, which keeps other computers from reaching the lock-screen service.
  • Windows: after removing the lock-screen access, FuMachine no longer stops when the copy it was started from before is older than 0.2.2. It goes on from a copy of itself, which then starts at sign-in.
  • Windows: unticking the lock-screen access in Settings after it was already removed from an administrator's prompt no longer starts a second host beside the first.
  • Windows: a viewer whose session has ended no longer takes the keyboard when you come back to it: Alt+Tab, the Windows key and Alt+F4 work, Enter or Esc close it, and its toolbar keeps only Fit to window, Full screen and Save a picture. On Linux, keys, the mouse and copied text stop as soon as the session has ended.
  • Windows, Linux: when the other computer ends the session during a file transfer, the viewer says the transfer stopped instead of showing its progress for good, and clears its statistics.
  • Windows, Linux: disconnecting a viewer while a busy screen streams over a slow network tells the viewer it was disconnected, instead of looking like a lost connection that a remembered viewer came straight back in from.
  • Windows, Linux: a viewer that gets garbled data from a computer stops with "sent invalid data", instead of saying the connection was lost and reconnecting over and over.
  • Windows: in View only, Send files… and Send a folder… send the files again instead of saying the connection was lost.
  • Linux: files chosen in the Send files dialog after the connection was lost are refused with a message instead of "Preparing…" staying for good, and saving a picture of the screen during a transfer no longer hides that the transfer is going.
  • Windows: screen readers again announce why a viewer was disconnected, and "Reconnecting…".
  • Windows: "did not wake up", and a failed connection to a computer that just woke up, come as a notification instead of a message box that froze the viewer windows and an open Allow / Deny prompt.
  • Windows: Copy address no longer holds up FuMachine while another program is using the clipboard, and says so when it couldn't copy.
  • Windows: typing or clicking into a window that runs as administrator shows "Input is blocked" with what helps; on the lock screen and UAC prompts it points to Allow access to the lock and sign-in screen.
  • Linux: started in a Wayland session without the session's environment (a systemd user unit, some autostarts on sway or Hyprland), FuMachine shares the screen through the desktop's portal, or says it can't, instead of showing viewers an empty screen.
  • Linux: the password or new-computer question for a computer that wakes up while the main window is minimized shows on its own instead of hidden with the window; "did not wake up" is then a notification.

Version 0.2.2

2026-10-03

New

  • Windows: Settings → This computer → Allow access to the lock and sign-in screen installs a small Windows service, so a viewer can see and use the lock screen, send Ctrl+Alt+Del, sign in after a restart (or after waking the computer from shut down) with nobody signed in yet, answer UAC prompts and control windows running as administrator. It needs a password, which then opens the lock and sign-in screen too. While you are signed in, the tray app still asks Allow / Deny and shows who is connected. It takes connections on private networks only: when every network the computer is on is Public, the main window and Settings say so and lead to Windows' network settings. Unticking it removes everything again; FuMachine then goes on from a copy of its own if it ran from the installed one. See the README.
  • Viewer: Keys → Ctrl+Alt+Del for every computer (a Windows computer needs the setting above), and Ctrl+Alt+End sends it, as in Remote Desktop.
  • Computer list: a Windows computer at its sign-in screen is listed with "Nobody signed in" as its user.
  • Viewer: when the connection is lost or the remote computer restarts, the window stays open and reconnects by itself, for up to 10 minutes (Cancel stops it). The last picture stays, darkened, meanwhile. A computer that moved to another address is followed (from the LAN to Tailscale, say). Nothing is asked or typed on its own: a computer that wants its password typed again, or shows another identity than the remembered one, has to be connected to from the list. One you were let into by Allow asks for Allow again.
  • Viewer: View only on the toolbar watches without sending the mouse, the keyboard or copied text. It is off again with each new connection.
  • Viewer: Files → Save a picture of the screen saves the remote screen as it is shown as a PNG in Downloads.
  • Viewer: the display, the quality and Fit to window are remembered for each computer, and used again the next time you connect to it (the display only if that computer still has it). A computer you haven't connected to before gets the quality and fit you chose last.
  • Viewer: keyboard shortcuts for View only (Ctrl+Alt+Shift+V) and Save a picture of the screen (Ctrl+Alt+Shift+S), next to Ctrl+Alt+Break for full screen.
  • Computer list: right-click a computer and choose Pin to top to keep it at the top of the list, with a small pin beside it. Unpin puts it back in its place.
  • Wake-on-LAN: a computer you have connected to stays in the list, greyed out as Off or asleep, while it sleeps or is switched off. Double-click it to wake it up over the network; FuMachine connects as soon as it is back (or says so after two minutes). Right-click it for Wake up or Forget. The computer's network card has to allow waking, and it usually works over a cable, not Wi-Fi; see the README.

Fixed

  • File transfer: a folder that failed, was cancelled or was still arriving when the session ended left its empty folders behind, so the next try landed in "name (1)". Folders with files in them stay.
  • Host: disconnecting a viewer while files went to it over a slow connection (a few hundred KB/s) told it "The connection was lost.", and the viewer then reconnected by itself. The rest of the file is dropped and the host waits up to 10 seconds for the reason to get through; the viewer leaves as soon as it has it. What the viewer still sends meanwhile (its keys and mouse) is no longer acted on.
  • Windows: copied text could get lost, both ways, when another program (Windows' clipboard history, a clipboard manager, Excel) had the clipboard open for a moment. FuMachine tries again for up to about a second.
  • The computer list and an open viewer's keyboard no longer wait while another program (the Linux host next to the desktop app, a backup tool) holds the settings file.
  • Linux: a maximized main window came back at normal size from the tray, the dates of remembered computers in Settings showed the month first, and "(Tailscale, relayed)" didn't follow a switch between direct and relayed until something else in the list changed.
  • Windows host: a large screen at Best quality over a slow connection (about 200 KB/s: Wi-Fi at the edge of its range, relayed Tailscale) ended the session, and again after every reconnect.
  • Windows: a Get files request from another computer froze this computer's own viewer windows until the files were chosen, and a viewer's "disconnected" message froze the others (and could let an Allow / Deny prompt run out as Deny). A viewer that was disconnected now says why in its window.
  • Windows viewer: an "&" in a file or computer name disappeared from the toolbar and its menus ("Q&A.pdf" showed as "QA.pdf"). Files picked in Send files… after the connection dropped while the dialog was open are refused with a message, instead of the line saying "Preparing…" for good.
  • Linux viewer: a viewer window in the background whose computer changed its displays took the keyboard from the window you were typing in. Connecting to this computer itself is refused with a message, instead of its mouse and keys looping back into the viewer.
  • Linux: fumachine-host started in a Wayland session served Xwayland's black screen. It now says so and exits, pointing to the desktop app; an X server named with --display :N is served all the same. In the desktop app on Wayland, the screen sharing card could show outdated text, and forgot after a restart that remote control had not been allowed.

Improved

  • Settings: four tabs (This computer, Connections, Viewing and General) instead of one long column that no longer fitted a small screen. Ctrl+Tab goes from tab to tab.
  • File transfer: sending files over a slow connection takes about a third of the CPU it did.
  • Linux host: about three times faster on 16-bit X displays (VNC, Xvfb, older Raspberry Pi set-ups).

Version 0.2.1

2026-09-30

New

  • Viewer: a thin bar under the toolbar while files go, and the transfer line says how much of how much, how fast and about how long is left ("Sending big.iso · 1.2 of 4.3 GB · 38 MB/s · about 1 min left").

Improved

  • File transfer: the picture, the keyboard and the mouse are no longer held back behind megabytes of file data. Sending files over a slow connection (Wi-Fi at the edge of its range, down to about 1.5 Mbit/s) no longer ends the session after 15 seconds.
  • Host: less CPU while someone watches a still screen, and when moving pictures are sharpened.
  • Viewer: pictures sent without loss are unpacked faster; on Windows, "Fit to window" scales in under half the time.
  • Computer list: the Address column is wider, so every IPv4 address shows whole at the window's first size. On Linux, text that is cut short shows whole in a tooltip.
  • Keyboard and screen readers (Windows, Linux): the computer list has the keyboard at start, the About window's links and changelog work without a mouse, and Tab goes through a dialog's fields first. On Windows, screen readers get a name for the refresh button, the text boxes and every cell of a computer's row.
  • Windows viewer: the transfer line and the host's notices stay on the toolbar when it is narrow (the statistics make room first); in full screen the toolbar spans the screen; its overflow button and menu follow the theme.
  • Linux viewer: the transfer line and notices have a line of their own under the buttons, the toolbar no longer changes height as the numbers in it change, and the window can be made as small as 480×360.
  • Windows: on a display with other scaling than the main one, computer names, the refresh button and the About logo have the size of everything else. Lists no longer flash when they are drawn again. Dark scroll bars in the viewer at 1:1, grey text in a selected row that can be read, and dates as 2026-04-03.
  • Linux: links, the transfer bar and error texts are readable in dark mode.

Fixed

  • Linux viewer: the transfer line was not shown (only errors and the "open folder" link were).
  • Windows: Settings could be taller than a laptop's screen, with Save and Cancel out of view.
  • Widening a window left computer addresses cut short until the mouse passed over them (Windows, Linux).
  • "Get files": a batch the other computer gave up on before its first file was opened showed nothing. Cancel had no effect while a big folder was still being listed. A link that leads nowhere, picked on its own, ended the batch.
  • File transfer: a failure told to the other computer included this computer's folders.
  • Host: a fast capture method that kept reporting one part of the screen could leave another part stale for as long as something else moved. Wayland: after "stopped reporting screen changes", the fallback compares the whole picture.
  • Windows: "(Tailscale, relayed)" only changed when the mouse passed over the row. A window minimized while maximized came back at normal size.
  • Linux viewer: a computer name with "_" lost it in the Keys and Files menus, "(main)" was cut off in the Display box, and the window made to fit the remote screen shrank a screen that fits.
  • Discovery: how long ago a computer was heard from went by the time of day. The log now says when another computer announces itself with this computer's id.
  • Check for updates: a build that can't say which version it is was told "You have the latest version."

Version 0.2.0

2026-09-29

New

  • About window: "Check for updates" asks FuMachine's web page which version is current, and leads to the download page when there is a newer one. Only when you press it: FuMachine needs no internet otherwise.
  • Before a password goes to a computer you haven't connected to before, the viewer asks first and shows that computer's fingerprint. Settings shows this computer's own fingerprint, to compare with.
  • Windows: received files are marked as coming from another computer, as downloads are. Windows asks before a received program runs, and Office opens received documents in Protected View (macros in them are blocked).
  • Web page: each download shows its SHA-256.

Improved

  • "Get files": one file dialog at a time on the host, whichever viewer asked; a viewer that asks while one is open is told to close it first. When what was picked there has nothing to send, the viewer is told so instead of being left waiting.
  • File transfer: a refused file shows why on the receiving side too, and that stays shown; the sender stops as soon as any file it offered is refused. The sender waits longer for a big file to be confirmed, so a slow disk (a USB stick) has time to write it.
  • Host: fast capture (DXGI, WGC, XDamage) is no longer set aside because a check happened to be quicker than it, or because of an error while encoding; after a stall it is tried again later, also on Windows without WGC.
  • Host: "… sent you files" is shown once per transfer (at most one every 3 s), also after a failed or cancelled one.
  • Windows: opening FuMachine again, or --connect, brings its window to the front instead of flashing the taskbar.
  • Linux: when FuMachine starts at login before the desktop's tray is there, it looks for one for a minute and uses it.

Fixed

  • "Get files": files still arriving 15 minutes after the click were refused, leaving an incomplete copy.
  • Windows: sending a folder skipped the files OneDrive (and the like) keeps online only; now only links are left out.
  • Windows viewer, "Send characters": an accent key followed by a letter it doesn't combine with lost the letter (don't became don' on US-International). With "Send shortcuts" on, an accent key waiting for its letter survived Backspace, Escape, the arrows and leaving the viewer.
  • Windows viewer: a change in the host's displays could move the keyboard to another viewer window.
  • Windows: text with a NUL character copied on another computer was sent back to it cut short.
  • Host: making another display of the same size the main one wasn't noticed, so the picture and the clicks could end up on different displays.
  • Host: a key held by the viewer could stay pressed when the host quit, or when the session ended during a transfer.
  • Linux: sending a named pipe, or a folder with one in it, hung the sender for the rest of the session.
  • Linux host: a viewer whose name starts with "-" gave no "is now connected" notification.
  • Linux: a viewer connecting while the clipboard was being read was sent what was already copied, and the next copy didn't reach it.
  • A sign-in that ran out of time said "Cannot access a disposed object".

Security

  • The system libraries FuMachine itself calls are only loaded from the system's folders, never from a file of that name next to FuMachine (in Downloads, among received files); the libraries its UI toolkit loads on Linux are not covered. Windows starts PowerShell and Explorer by their full path.
  • Each step of the sign-in has a time limit, so a computer that answers slowly can't keep "Connecting…" up for hours. A picture whose parts claim far more than the screen, or a screen size that changes many times a second, ends the session instead of keeping the viewer busy.
  • Host: half-made connections can't fill the sign-in table, and limits used up by one device don't keep out computers that signed in before. The computer list takes at most four computers from one network address.

Version 0.1.9

2026-09-28

New

  • The About window links to the FuMachine web page.

Improved

  • File transfer: files are opened and finished on a worker of their own, so a slow Downloads folder (a network share) no longer holds up the picture and input, and the flushes of a run of small files overlap.
  • The main window no longer lists network adapters on the UI thread, doesn't refresh its header while in the tray, and only rebuilds "Connected to this computer" when the sessions change.
  • Windows: shutting down no longer waits for viewers to say goodbye.
  • Windows: with "Share copied text" off, copies are no longer read at all while someone is connected (a big copy in Excel was rendered for FuMachine, holding up the viewer's keyboard).
  • Windows host: an unchanged pointer shape is no longer drawn and sent again twice a second.
  • Linux viewer: only the part of the picture that changed is redrawn, GPU uploads are merged, and JPEG pictures are decoded with libturbojpeg when it is installed. A caret blink no longer rescales the whole frame.
  • Linux (X11): "Send characters" no longer makes every program reload its keyboard layout twice per character; the keyboard grab, the clipboard watcher and the header sleep while there is nothing to do.
  • Switching to a higher quality now also sharpens the parts of the screen that don't change.

Fixed

  • A laptop on Wi-Fi lost the wired computers from its list 7 s after every refresh, and never saw ones started later: many Wi-Fi networks don't pass their broadcasts on. Every copy now asks the others every 2 s, and they answer it directly.
  • The viewer's display went away (unplugged, switched off, a KVM switch): the host rebuilt its screen capture 10–20 times a second until it came back.
  • "Get files" clicked again while the first one was being answered cancelled the files from the first click, or aborted a download already running.
  • Two transfers receiving the same name at once could delete each other's finished file just before it was saved.
  • A partial file left behind by a crash is removed instead of making later files get " (1)", and a received file is written to disk before it takes its name.
  • Windows: sending a whole drive (C:\) sent FuMachine's own folder instead.
  • Windows and Linux viewers, "Send characters": characters typed with AltGr (@ { [ \ | on Nordic or German keyboards) reached the remote computer with Alt held, so a menu opened or nothing was typed.
  • Windows viewer, "Send characters": Caps Lock had no effect with "Send shortcuts" on (and was switched back when the viewer was activated again); an accent key followed by Space lost the accent; a letter held while Ctrl was pressed stayed down on the remote computer.
  • Linux viewer, "Send characters": an accent key waiting for its letter survived Backspace, Escape and leaving the window.
  • Linux app: "Send shortcuts" changed in Settings didn't reach viewer windows already open, and saving Settings undid toggles made in a viewer meanwhile; the tray could open a second Settings window.
  • Linux app: opening FuMachine, or --connect, while it was still starting at login did nothing.
  • Linux viewer: the remote pointer kept its old size after Fit / 1:1 or resizing the window.
  • Linux (Wayland, GNOME): with a scaled desktop (125 %, 200 % …) the pointer landed in the wrong place. The permission to share the screen is no longer lost when starting fails halfway.
  • Linux (X11): two viewers typing characters that aren't on this computer's keyboard could get each other's character.
  • Headless host: stopping it after the X server went away reported the service as failed.
  • Settings: creating the identity on first start could hold up a save for 2 s. Basic (GDI) capture could poll flat out after the capturer changed. The Tailscale device list could stop refreshing if the tailscale command left its output open.
  • Windows: a viewer's keyboard hook that Windows removed after a stall comes back within a second. The approval prompt no longer leaks a system handle per request.
  • File transfer: a file refused after it was sent stops the sender at once, not up to three files later.
  • Web page: a malformed download link gave a server error.

Version 0.1.8

2026-09-26

New

  • Computers on your Tailscale network appear in the list by themselves: FuMachine asks Tailscale for the device list (every 30 s, only while this computer is on Tailscale) and queries each device directly. Their address shows "(Tailscale)", or "(Tailscale, relayed)" when there is no direct path. A computer on both the LAN and Tailscale is one row, at its LAN address while that answers. Off with Settings → Find computers on my Tailscale network.

Improved

  • Linux (Wayland): the compositor's own list of changed areas is used, so only those tiles are compared, and the captured picture is no longer copied a second time for every frame (a blinking caret on a 4K desktop cost ~100 MB of memory traffic per blink). Other viewers are no longer held up while the "Allow screen sharing…" dialog is open, and quitting no longer waits for it.
  • File transfer: several files are offered and confirmed at once, so a folder of many small files no longer pays two round trips per file.
  • Settings are written outside the lock that every sign-in and discovery beacon takes: a settings file held by a backup tool or antivirus for a few seconds no longer delays incoming connections.
  • Basic (GDI) capture of a large display leaves a quarter of a processor core free instead of running flat out.

Fixed

  • Caps Lock, Num Lock and Scroll Lock could be toggled the wrong way on the remote computer after switching back to the viewer window: the host read a stale lock state.
  • Linux (X11): a grab that failed for a moment lost the screen changes reported just before it, and those areas stayed stale on the viewer until the periodic check caught them.
  • A manually added host name that does not resolve (a computer that is off, a slow name server) no longer holds up the discovery beacon for the lookup's timeout every minute, which made this computer flicker out of other lists. Failed lookups are retried after 1, 2, 4, 8, then 10 minutes; resolved names are refreshed every 5 minutes.
  • "Send shortcuts" and "Send characters as typed here" changed in Settings now apply to viewer windows already open, and their toolbar and menu ticks follow.
  • When the settings file cannot be written, a notification says so (a password set or a computer remembered then holds only until FuMachine is restarted) instead of failing silently.
  • The hidden remote pointer could show as a single black pixel.
  • Discovery no longer spins on a network socket that keeps failing.

Version 0.1.7

2026-09-26

New

  • "Send characters as typed here" (Keys menu in the viewer, and in Settings; off by default): what you type appears as typed even when the remote computer uses another keyboard layout. Shortcuts with Ctrl, Alt or the Windows key still go as keys, so they keep working; dead keys (´ ¨ ^ ~) are composed on your own computer.

Version 0.1.6

2026-09-26

New

  • A picture shown larger than 1:1 is smoothed instead of showing blocks (Settings → Viewing other computers, on by default).

Fixed

  • Linux (Wayland): after the shared screen changed resolution, mouse clicks from viewers landed in the wrong place.
  • Linux (Wayland): cancelling "Allow screen sharing…" no longer disconnects the viewers already watching; a screen sharing portal that is slow to start at login no longer leaves the computer unviewable until FuMachine is restarted; a broken PipeWire stream is reported instead of freezing the picture; a permission taken away in the desktop's settings brings the setup banner back.
  • Linux (X11): text typed by password managers reached the wrong characters on computers with several keyboard layouts.
  • Linux: a screen that can't be captured no longer keeps a processor core busy; the headless host waits for its X display instead of exiting (and reconnects after the X server was restarted).
  • Settings: a password set or a computer forgotten from the command line could stay unnoticed by the running host when the file was briefly unreadable; Set/Remove password and Forget in the settings dialogs now wait for Save, so Cancel really cancels.
  • The tray's "Disconnect everyone", the Windows firewall button and quitting with unreachable manual hosts no longer freeze the window.
  • Windows: full screen keeps covering the display after a scaling change or a move to another display; an empty password now says so instead of silently closing the dialog; a leftover connect request is no longer acted on later.
  • Linux app: starting FuMachine (or --connect) while the previous copy was still quitting no longer does nothing; the memory of closed viewer windows is freed; keys pressed in the toolbar menus no longer go to the remote computer.
  • Log noise: "DXGI capture unavailable" is no longer logged for every second viewer, and bad frames log once a second.
  • Smaller fixes: password lockouts follow a monotonic clock, "All displays" too large for a viewer falls back to one display, file names ending in a hidden ".." are cleaned, free disk space is checked on network Downloads folders too.

Version 0.1.5

2026-09-25

New

  • The Windows app has the same look as the Linux app, in light and dark mode (it follows Windows' app mode).
  • Rename computers in the list: right-click one, or press F2. Only your own list changes.
  • Lock the remote computer from the viewer (Keys menu), since Windows keeps Win+L for itself.
  • About window with the version and this changelog.
  • Linux (Wayland): the screen is kept awake while someone views it, and a blanked screen is woken when someone connects. A locked screen now says so instead of failing.

Fixed

  • Keys could get stuck on the remote computer and repeat for ever after switching to another window.
  • Connections over Tailscale were refused.
  • Running the Linux app on Windows could erase the Windows app's password and remembered computers.
  • Memory grew with every viewer on Windows; a failed capture could retry for ever.
  • Wayland: the picture froze after a resolution change, and a stopped screen share left the viewer waiting.
  • X11: displays that aren't 24-bit (e.g. 16-bit) couldn't be shared; keys stayed pressed when FuMachine was stopped.
  • The list said "Not accepting" for computers that let in the computers they remember; it now says "Remembered computers only", or "Remembered" when that computer remembers yours.
  • Many smaller fixes to file transfer, the clipboard, dialogs, scaling between monitors and the tray icon.

Security

  • The limit on password guesses can no longer be bypassed by changing network address.
  • Connection prompts can't be kept on screen by a flood of requests.
  • A changed identity is never accepted silently when retrying a connection.
  • Received file names can't hide their real extension, and incoming files can't fill the disk.
  • Pictures, cursors and clipboard text from another computer are checked before use.

Version 0.1.0

2026-09-25
  • First release: see and control other computers on your network, on Windows and Linux (X11 and Wayland), with automatic discovery, file transfer, shared clipboard text, passwords, approval prompts and remembered computers.