Category Archives: MISC

RustDesk plus Tailscale

RustDesk in combination with Tailscale/Headscale offers a near-perfect and completely free Remote Access solution for homelab enthusiasts.

This is so far the best tool I’ve found to remotely connect to ARM-based Linux desktops (e.g. Oracle Free Tier Ampère Instances with up to 4vCores and 24GB RAM or any of Apple’s M1/M2/M3/M4/… systems). For Intel-/AMD-based Linux desktops, however, I still prefer Cendio’s ThinLinc (on high resolution displays with the following workaround). For a matrix of client/server matches that worked best for me, see: overview of my favourite RDP client<->server combinations.

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.

Related external posts/reviews/tutorials:

Remote Desktop Access – Overview of my favourite client-server combinations 2025

The following combinations have worked best for me:

Remote
 Desktops
Windows DesktopMac DesktopLinux Desktop Intel-/AMD-basedLinux Desktop
ARM64 / aarch64
Clients
Windows ClientWindows RDP (builtin)RustDeskThinLinc*RustDesk
Mac ClientWindows AppRustDeskThinLinc*RustDesk
Linux ClientRustDeskRustDeskThinLinc*RustDesk
iOS/iPad ClientWindows AppRustDesk**
(via Windows App)
RustDesk**
(via Windows App)
RustDesk**
(via Windows App)
Android Client
(untested)
Remote Desktop AppRustDeskRustDeskRustDesk

* on high-resolution/Retina displays: use this workaround
** currently on TestFlight only

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:

Crisp Cendio Thinlinc sessions on high resolution displays (e.g. 4K)

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:

Related external posts:

Configure Cendio ThinLinc Server on Pop_OS!

In order to run ThinLinc Server on Pop_OS! An additional profile needs to be created

$ sudo nano /opt/thinlinc/etc/conf.d/profiles.hconf
default=pop
order=unity ubuntu gnome gnome-classic kde xfce cinnamon mate lxde pop  <-------
[... rest of file ...]
[/profiles/pop]
xdg_session=pop
name=Pop
description=The Pop_OS Gnome desktop environment
screenshot=
cmdline=
testcmd=
description_from_testcmd=false

For details see:

The bizarre world of instructional LPs

Instructional LPs - Relaxed English

Instructional LPs – Relaxed English – Excerpts on BBC Radio 4

Source: http://www.bbc.com/news/uk-33464722 [accessed: 18/07/2015]

Programme description:  «How to make an Archive on 4» available on BBC iPlayer

Ever wondered how to make an Archive on 4? Here’s your chance to find out!

Alan Dein enters the strange world of instructional records where you can teach yourself just about anything – from yodelling to training your budgie to talk.

It all started in 1901 when Polish émigré Jacques Roston harnessed the new technology of sound recording to teach foreign languages, signing up such luminaries as George Bernard Shaw and JRR Tolkien to lend their support.

By the 50s and 60s you could buy LPs on how to do just about anything – from keep fit to playing a musical instrument, relaxation and passing your driving test.

Perhaps the most surprising are those which help you to train your pet budgerigar to talk – with help from Sparkie, Britain’s favourite budgie, who supposedly had a vocabulary of over 500 words.

With help from Sparkie, Alan Dein tells the story of instructional records and, along the way, reveals a few of the secrets of how to make an Archive on 4.

Source: http://www.bbc.co.uk/programmes/b062dhgb [accessed: 18/07/2015]

 

 

A tour of the British Isles in accents

A dialect coach, Andrew Jack, gives a tour of the accents of the British Isles. (Release date: 20/02/2014, remix, using google maps 02/04/2014 by Philip Barker)

Source (audio): http://www.bbc.co.uk/programmes/p01slnp5 [accessed: 21/06/2015]
Source (remix): https://www.youtube.com/watch?v=-8mzWkuOxz8 [accessed: 21/06/2015]

Random sample from text file Mac OSX

Quick step-by-step guide:
Get a random sample of 100 lines per text file on Mac OSX:

Steps 1 to 4 only have to be followed once per computer. After that only steps 6 & 8 are needed.

  • Open Terminal window:
  • Install „Homebrew“ package manager (this allows you to install additional Unix/Linux programmes on your Mac). Copy and paste the following line into the Terminal window (all one line):

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

Source: http://brew.sh/ (for further documentation)

If it asks you to install “Commandline developer tools”, say YES (might take a while).

  • Wait for installation to finish, press RETURN and enter your password (the one you use to log on to your Mac).
  • Type: brew install coreutils
  • Extract attached zip to your Desktop (make sure that the folder random_sample is visible on your Desktop and that there is a file called test.txt in it.
  • Go back to Terminal window and type: cd Desktop/random_sample
  • And now comes the actual shuffling bit: gshuf -n 2 test.txt

Instead of test.txt you can use your query results and instead of 2, you can enter the size of your sample.

  • If you want to save the sample into a new text file instead of just displaying it in the terminal window, type: gshuf -n 2 test.txt > random_sample1.txt and the results will be saved in the file txt in the same folder (feel free to adapt filenames and be aware of the fact that if you use one name twice the contents of the file with the same name will be overwritten).

Explanation of the different parts of the command:

shuffle command sample size (display shuffled lines, up to the line number specified by -n switch) name of file you want to shuffle (lines) write output into file name of output file
gshuf -n SAMPLESIZE test.txt > out.txt

An easy way to navigate to a particular folder: type cd [space] into the terminal window, drag&drop the folder you want to work in from your Finder into the Terminal and press RETURN/ENTER.

Other basic folder/directory navigation from Terminal window:

Source: http://www.cheatography.com/davechild/cheat-sheets/linux-command-line/

Example:

test.txt gshuf -n 2 test.txt
line 1: Aarau

line 2: Basel

line 3: Bern

line 4: Luzern

line 5: Olten

line 6: St. Gallen

line 7: Zürich

Command for a sample of 100:

cd path_to_folder_with_file_you_want_to_shuffle

gshuf -n 100 results.txt > random_sample1.txt