Collection of resources: corpus linguistics, e-learning, natural language processing, teaching English as a foreign language and tools related to these topics
In combination with Tailscale (and if self-hosting is preferred/important Headscale) it offers secure and easy GUI access to computer and virtualised desktops in a homelab (plus cloud) setup:
No server is needed for direct peer-to-peer connections (e.g. with tailscale full domain names or with internal IPs in homelab):
NB: Don’t forget to enable 2-Factor-Authentication.
If you’d like to enable external access to resources in your homelab or in your cloud environment, please don’t forget to choose a reasonably secure setup:
For month I’ve been trying to get this to work and I finally found a solution, which is a lot easier than I initially thought it would be.
Problem: If you want to connect remotely to a Linux desktop (running ThinLinc server) via ThinLinc* client, it has often been impossible to get the remote desktop working at the native resolution of a 4K display (3840×2160). In my case the highest possible resolution to choose from in the remote systems’ display settings was 1920×1080, resulting in a blurred linux desktop. While ThinLinc still offered a superior remote desktop experience to all tools tested, the blurred display kept bugging me. My aim was to get the sharpest and most responsive Cendio ThinLinc sessions on high-resolution displays possible.
NB. The following workaround also helped me solve display resolution problems with other remote desktop clients (e.g. NoMachine, VNC variants).
[Update 19/02/2025]: The best alternative to ThinLinc for connections to ARM-based linux and macOS remote desktops (e.g. RasperyPI, Oracle Free Tier Ampère Instances, Apple’s M1/M2/M3/M4) is RustDesk, which is available for all platforms and allows peer-to-peer connections (ip<->ip) without the need for a server if used in small homelab situations. Unfortunately, thinlinc server is only available for Intel-/AMD-based systems.
RustDesk does offer superior handling of display resolutions, however, for remote desktops on Intel-/AMD-based platforms thinlinc is by far the best solution for connections to Linux desktops. In these cases, I prefer to use the following workaround (also see overview of my favourite RDP client<->server combinations)
Solution on Windows 11 and macOS with 4K external display and Mac retina display
(might also work on other high-resolution displays)
Step 1 – Set display scaling of the display(s) you want to use for your remote connection to 100% prior to initiating the remote connection
On Windows:
Right-click on Windows-Desktop and choose: “Display settings”. Scroll down to scaling and make sure that your system does not use “custom scaling”. Choose 100% from the drop-down menu. Alternatively, you can navigate to Windows Settings > System > Display settings to find the same menu.
(Screenshots are from a German version of Windows 11)
NB: If you are using more than one display, make sure to adjust scaling to 100% on all screens you intend to use for your remote connection. Also make sure that there is no “custom scaling” enabled.
On macOS:
On macOS, display scaling can be set under: System Preferences/Displays:
Choose the setting labelled “More Space” for native retina display’s resolution.
NB: If you are using more than one display, make sure to adjust scaling to 100% on all screens you intend to use for your remote connection.
Step 2 – Now, start thinlinc client and connect to your remote linux desktop:
(Don’t be discouraged by the tiny icons and font size, you can switch back to your normal scaling as soon as your thinlinc session is over.)
Step 3 – On the remote system, you now have the opportunity to choose your native display resolution and adjust scaling to a more convenient factor: