ilopad.
Manual

Manual / Files on your computer

Files on your computer.

Where the server keeps its files, what it changes on your computer, and how to reset or remove it.

This chapter lists each file that the server writes, and each change that it makes to your computer. It also tells you how to reset the server and what stays after you uninstall it.

The server folder

The server keeps its settings, its keys and its logs in one folder. Only your user account can read this folder.

SystemFolder
Windows%APPDATA%\ilopad, which is usually C:\Users\<you>\AppData\Roaming\ilopad
macOS~/Library/Application Support/ilopad
Linux~/.config/ilopad

Open the folder on Windows

  1. Open File Explorer.
  2. Click the address bar.
  3. Type %APPDATA%\ilopad and press Enter.

Open the folder on macOS

  1. In Finder, click Go › Go to Folder.
  2. Type ~/Library/Application Support/ilopad and press Return.

Open the folder on Linux

The .config folder is hidden. In most file managers, press Ctrl + H to show hidden folders. Or type the path in the address bar of the file manager.

The files in the folder

FileWhat it holdsCan you delete it?
server.jsonThe settings and the list of paired devices. See below.Only to reset the server. Then each device must pair again.
server_keyThe private key of the server. Your devices use it to make sure that they talk to your server.Only to reset the server. Then each device must pair again.
server.log, server.log.1The log. See Logs.Yes, after you quit the server.
crash.logThe crash report. See Logs.Yes, after you quit the server.
server.json.bak, server_key.bakA file that the server could not read. The server gives the bad file this name, and starts with a new file.Yes. First read If a file is damaged.
instance.lockStops a second copy of the server. macOS and Linux only.Yes, after you quit the server.
firewall.stateThe firewall ports that the server opened. Linux only.Yes. The server can then ask for your password again. See Firewall.
portal-restore-tokenThe screen that you shared for pencil mode, so that the desktop does not ask again. Linux on Wayland only.Yes. Your desktop then asks again which screen to share.

A file that ends in .tmp can show for a moment while the server saves. The server removes it.

What server.json holds

  • The identity of the server: a random ID, the server name and the network port (4444).
  • Each paired device: its ID, its name, its public key, the time when it last connected, and single-use tokens that it uses to connect.
  • The values from the Settings window. See Settings.
  • The keys that the touchpad gestures send.
  • On Windows: your answer to the firewall question. Also each drawing program for which you selected the check box Don’t tell me about … again in a notice.
  • The time of the last update check.
Keep these files private. server_key is the private key of the server. A person who has it can pretend to be your server to your paired devices. server.json holds the keys and the tokens of your paired devices. Do not share the folder, and do not put these two files in a support email. The logs are the only files that support needs.

Do not edit the files while the server runs

The server keeps its settings in memory. It writes all of server.json again at each change, for example when a device disconnects. Thus it overwrites a change that you make while it runs. Use the Settings window and the server window to make changes. If you must edit server.json, quit the server first.

If a file is damaged

If the server cannot read server.json, it renames the file to server.json.bak. It then starts with a new server identity and the default settings. The same occurs for server_key, which becomes server_key.bak. In the two cases, your devices cannot connect until you pair them again.

If you know how to repair the file, you can get your pairings back:

  1. Quit the server.
  2. Repair the .bak file. For server.json, the file must be valid JSON.
  3. Delete the new file.
  4. Remove .bak from the name of the repaired file.
  5. Start the server.

Logs

The server writes two kinds of log in the server folder:

  • server.log records what the server does: the start, the connections of each device and the errors. When it gets to 2 MB, the server renames it to server.log.1 and starts a new server.log. The server keeps only these two files.
  • crash.log gets one line each time the server starts. If the server stops because of a fault, it writes the report of the fault below that line. The server clears the file at the next start when it is larger than 1 MB.

The server does not send the logs anywhere. If you ask for help, you can attach them to your email. See Get help.

If the server cannot write its logs, it shows a notification that tells you that Ilopad is not recording a log. The server continues to work.

Other temporary files

  • The server keeps no cache on disk. The screen that it sends in pencil mode stays in memory.
  • An automatic update downloads the new version to a folder with a name that starts with ilopad-update-, in the temporary folder of your system. You can delete that folder after the update.
  • On KDE Plasma, the server writes short scripts to your user runtime folder to find the active window. It deletes each script after use.

The Start on Login entry

When you turn on Start on Login in Settings, the server adds an entry that starts it when you log in. When you turn the setting off, the server removes the entry. At each start, the server also makes sure that the entry agrees with the setting and points to the correct program.

SystemEntry
WindowsThe value IlopadServer in the registry key HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
macOS~/Library/LaunchAgents/com.tinybits.ilopad-server.plist
Linux~/.config/autostart/ilopad-server.desktop

Windows

Program files

The installer installs the server for your user account. It needs no administrator permission for this.

ItemLocation
The program%LOCALAPPDATA%\Programs\Ilopad. An installation for all users goes to C:\Program Files\Ilopad.
ShortcutsAn Ilopad folder in the Start menu, with Ilopad and Uninstall Ilopad.

Drivers

A driver installation needs administrator permission. Windows asks for it each time.

DriverWhat it doesWhen it is installedName in Device Manager
VMulti pen driverMakes the pencil arrive as a pen, with pressure.By the installer, the first time you install.Pentablet HID
ViGEmBus gamepad driverMakes the device arrive as a game controller.Only if you select it in the installer, or when you first use gamepad mode.Nefarius Virtual Gamepad Emulation Bus

An update does not install a driver again if the driver is already there and the version did not change.

Firewall rules

The installer adds two inbound rules to Windows Firewall. Each rule lets in only UDP traffic to the server program.

Rule namePortWhat it is for
Ilopad ServerUDP 4444The connection from your devices.
Ilopad mDNSUDP 5353Discovery, so that the app can find the server on your network.

If the rules are missing, or point to an old location, the server asks you before it changes them. See The firewall blocks the connection.

macOS

You install Ilopad when you drag it to the Applications folder. The server needs two permissions from macOS. You give them in System Settings › Privacy & Security.

PermissionWhat it is forWhen macOS asks
AccessibilityTo move the pointer, click and type. The server cannot start without it.The first time you open Ilopad.
Screen & System Audio RecordingTo send the screen to the iPad in pencil mode. The other modes work without it.The first time a device goes into pencil mode.

If a permission is missing, the server shows a window with the steps. See Accessibility and Screen Recording in Connection problems. For the first installation, see Install on macOS.

The server makes no other change to macOS, apart from the Start on Login entry.

Linux

Package files

The package installs these files. Your package manager removes them when you remove the package.

  • /usr/bin/ilopad-server: the program.
  • /usr/share/applications/ilopad-server.desktop: the entry in your applications menu.
  • /usr/share/icons/hicolor/256x256/apps/ilopad-server.png: the icon.
  • /usr/share/metainfo/com.tiny_bits.Ilopad.metainfo.xml: the description for software centers.
  • /usr/share/ilopad-server/package: one word, the type of package (deb, rpm or pacman). The server reads it to tell you how to update.
  • Debian, Ubuntu, Linux Mint and Pop!_OS: /usr/share/doc/ilopad-server/copyright.
  • Fedora and openSUSE: /usr/lib/firewalld/services/ilopad-server.xml. The package also opens the ilopad-server service (UDP 4444 and 5353) in the default zone of firewalld.

Access to the input device

The server makes a virtual mouse, keyboard, pen and gamepad with the Linux input device /dev/uinput. If your user account cannot open this device, the server shows Permission Required when it starts. Click Allow, and your desktop asks for the administrator password. Then the server makes one change, and the server window opens at once. You do not have to restart the computer.

ChangeWhat it does
/etc/udev/rules.d/70-ilopad-uinput.rulesGives /dev/uinput to the user who sits at the computer, while the session of that user is active. A user who logs in over the network does not get it. If the uinput kernel module was not loaded, the server also loads it one time. After that, the module loads when the server opens the device.

If you use Ilopad over SSH or a remote desktop, your session has no local seat, and this rule has no effect. The server then offers the input group instead. It shows Permission Required with Use input group, or Group Membership. If you agree, it makes these changes:

ChangeWhat it does
/etc/udev/rules.d/99-ilopad.rulesGives a group read and write access to /dev/uinput. The group is input, or a different group that you select.
Your user account in that groupLets you use the device. This starts to work after you log in again. The server tells you to restart the computer.
/etc/modules-load.d/ilopad.confLoads the uinput kernel module at each start. Only if the module was not loaded.
An access rule on /dev/uinputOnly if a different program, for example brltty, blocks the access. The server then shows Permission Override Detected.

If the server cannot ask for the password, it shows Run This Once with a command. Click Copy command, then run the command in a terminal.

If a system update installed a new Linux kernel and the computer did not restart, the server shows Restart Needed. It changes nothing. Restart the computer, then start Ilopad again.

Firewall

At each start, the server looks at the firewall. It can use firewalld, ufw, nftables or iptables. If UDP port 4444 or UDP port 5353 is closed, the server opens the two ports with one command. Your desktop asks for the administrator password first. On Fedora and openSUSE, the package opens the ports with the firewalld service ilopad-server, so the server does not ask.

The server records each port that it opened in firewall.state in the server folder. Under the line # Open already. The server did not add these: it records each port that was open before it asked. It reads this file when it cannot look at the firewall without the password:

  • nftables and iptables: always.
  • ufw: only where /etc/ufw/user.rules is not readable, for example on Ubuntu.
  • firewalld: only when a query needs a password and the package did not install the ilopad-server service.

If the file is not there, the server can ask for your password again at the next start.

The server also records each rule that it adds in /var/lib/ilopad-server/firewall-rules. When you remove the package, it removes these rules, and only these. It then deletes this file. This applies to each Linux package.

Rules in firewalld and ufw stay after a restart of the computer. Rules in nftables and iptables do not. After a restart of the computer, the server opens the nftables or iptables ports again, and asks for your password again.

Changes that last only while the server runs

  • On-screen keyboard (KDE Plasma). When Suppress On-Screen Keyboard is on, the server turns off the Plasma on-screen keyboard. When it quits, it puts the setting back as it was.
  • Input method (IBus). If you allow Allow Typing Beyond Your Layout, the server registers as an input method while it runs. It writes no file for this, and removes itself when it quits.

COSMIC

When you select a display in COSMIC Tablet Mapping, the server writes an entry in ~/.config/cosmic/com.system76.CosmicComp/v1/input_devices. It keeps the other entries in that file. When you select Disabled, the server removes its entry.

Reset the server

A reset gives the server a new identity and the default settings. It removes all pairings.

Each device must pair again. After a reset, no device can connect until you pair it again. If you delete the folder, you cannot undo the reset. Rename the folder instead if you want to keep a copy.
  1. Open the server window.
  2. Click the menu button, then click Quit.
  3. Open the server folder.
  4. Go up one level to the folder that contains ilopad.
  5. Rename ilopad to ilopad-old, or delete it.
  6. Start Ilopad.
  7. Pair each device again. See Add a device to the server.

The new server has the name of your computer. A reset does not change the drivers, the firewall rules, the permissions or the Start on Login entry.

To go back to the old server, quit Ilopad. Delete the new ilopad folder. Then rename ilopad-old to ilopad.

Uninstall

Before you uninstall, turn off Start on Login in Settings. Then quit the server.

The uninstall page for your system gives each step:

This section tells you what the uninstall removes, and what stays on your computer.

Windows

The uninstaller asks for administrator permission, because it removes the drivers and the firewall rules. Click Yes. If you click No, the uninstaller stops and removes nothing. Run it again and click Yes.

The uninstallerItems
RemovesThe program and the Start menu shortcuts. The Start on Login entry. The two firewall rules. The VMulti pen driver. The ViGEmBus gamepad driver, if Ilopad installed it.
KeepsThe server folder %APPDATA%\ilopad. Delete it yourself.
ViGEmBus and other programs. If ViGEmBus was on the computer before Ilopad, the uninstaller keeps it. A different program that uses it continues to work.

macOS

To uninstall, drag Ilopad from the Applications folder to the Trash. These items stay. Remove each one that you do not want:

ItemHow to remove it
The server folderDelete ~/Library/Application Support/ilopad.
The Start on Login entryOnly if you did not turn off Start on Login. Delete ~/Library/LaunchAgents/com.tinybits.ilopad-server.plist.
The two permissionsIn System Settings › Privacy & Security › Accessibility, select Ilopad and click −. Do the same in Screen & System Audio Recording.

Linux

Remove the package with your package manager. The package removes the package files. It also removes the firewall rules that the server added, and on Fedora and openSUSE the ilopad-server service in firewalld. Rules that you or your system made stay. The other system changes stay. Remove each one that you do not want:

ChangeHow to remove it
The server folderrm -r ~/.config/ilopad
The Start on Login entryOnly if you did not turn off Start on Login. rm ~/.config/autostart/ilopad-server.desktop
Access to the input devicesudo rm -f /etc/udev/rules.d/70-ilopad-uinput.rules. If you used the input group, also sudo rm -f /etc/udev/rules.d/99-ilopad.rules /etc/modules-load.d/ilopad.conf
Group membershipOnly if Ilopad added you to a group. sudo gpasswd -d "$USER" input. Use the name of your group if you selected a different one.
Firewall, nftables or iptablesThe rules stop when you restart the computer, unless a different program saved them.
COSMIC mappingBefore you uninstall, set COSMIC Tablet Mapping to Disabled.
The Ilopad repositoryIf you added it, remove it and its key. See the uninstall page for your system, above.
The group. Other programs can use the input group. Remove the group membership only if no other program needs it.