On this page
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.
| System | Folder |
|---|---|
| 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
- Open File Explorer.
- Click the address bar.
- Type
%APPDATA%\ilopadand press Enter.
Open the folder on macOS
- In Finder, click Go › Go to Folder.
- Type
~/Library/Application Support/ilopadand 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
| File | What it holds | Can you delete it? |
|---|---|---|
server.json | The settings and the list of paired devices. See below. | Only to reset the server. Then each device must pair again. |
server_key | The 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.1 | The log. See Logs. | Yes, after you quit the server. |
crash.log | The crash report. See Logs. | Yes, after you quit the server. |
server.json.bak, server_key.bak | A 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.lock | Stops a second copy of the server. macOS and Linux only. | Yes, after you quit the server. |
firewall.state | The firewall ports that the server opened. Linux only. | Yes. The server can then ask for your password again. See Firewall. |
portal-restore-token | The 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.
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:
- Quit the server.
- Repair the
.bakfile. Forserver.json, the file must be valid JSON. - Delete the new file.
- Remove
.bakfrom the name of the repaired file. - Start the server.
Logs
The server writes two kinds of log in the server folder:
server.logrecords what the server does: the start, the connections of each device and the errors. When it gets to 2 MB, the server renames it toserver.log.1and starts a newserver.log. The server keeps only these two files.crash.loggets 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.
| System | Entry |
|---|---|
| Windows | The 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.
| Item | Location |
|---|---|
| The program | %LOCALAPPDATA%\Programs\Ilopad. An installation for all users goes to C:\Program Files\Ilopad. |
| Shortcuts | An Ilopad folder in the Start menu, with Ilopad and Uninstall Ilopad. |
Drivers
A driver installation needs administrator permission. Windows asks for it each time.
| Driver | What it does | When it is installed | Name in Device Manager |
|---|---|---|---|
| VMulti pen driver | Makes the pencil arrive as a pen, with pressure. | By the installer, the first time you install. | Pentablet HID |
| ViGEmBus gamepad driver | Makes 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 name | Port | What it is for |
|---|---|---|
| Ilopad Server | UDP 4444 | The connection from your devices. |
| Ilopad mDNS | UDP 5353 | Discovery, 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.
| Permission | What it is for | When macOS asks |
|---|---|---|
| Accessibility | To move the pointer, click and type. The server cannot start without it. | The first time you open Ilopad. |
| Screen & System Audio Recording | To 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,rpmorpacman). 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 theilopad-serverservice (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.
| Change | What it does |
|---|---|
/etc/udev/rules.d/70-ilopad-uinput.rules | Gives /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:
| Change | What it does |
|---|---|
/etc/udev/rules.d/99-ilopad.rules | Gives 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 group | Lets 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.conf | Loads the uinput kernel module at each start. Only if the module was not loaded. |
An access rule on /dev/uinput | Only 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.rulesis not readable, for example on Ubuntu. - firewalld: only when a query needs a password and the package did not install the
ilopad-serverservice.
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.
- Open the server window.
- Click the menu button, then click Quit.
- Open the server folder.
- Go up one level to the folder that contains
ilopad. - Rename
ilopadtoilopad-old, or delete it. - Start Ilopad.
- 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:
- Uninstall on Windows
- Uninstall on macOS
- Uninstall on Linux: Arch, CachyOS, Debian, EndeavourOS, Fedora, Linux Mint, Manjaro, openSUSE, Pop!_OS, Ubuntu
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 uninstaller | Items |
|---|---|
| Removes | The 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. |
| Keeps | The server folder %APPDATA%\ilopad. Delete it yourself. |
macOS
To uninstall, drag Ilopad from the Applications folder to the Trash. These items stay. Remove each one that you do not want:
| Item | How to remove it |
|---|---|
| The server folder | Delete ~/Library/Application Support/ilopad. |
| The Start on Login entry | Only if you did not turn off Start on Login. Delete ~/Library/LaunchAgents/com.tinybits.ilopad-server.plist. |
| The two permissions | In 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:
| Change | How to remove it |
|---|---|
| The server folder | rm -r ~/.config/ilopad |
| The Start on Login entry | Only if you did not turn off Start on Login. rm ~/.config/autostart/ilopad-server.desktop |
| Access to the input device | sudo 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 membership | Only 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 iptables | The rules stop when you restart the computer, unless a different program saved them. |
| COSMIC mapping | Before you uninstall, set COSMIC Tablet Mapping to Disabled. |
| The Ilopad repository | If you added it, remove it and its key. See the uninstall page for your system, above. |
input group. Remove the group membership only if no other program needs it.