TR4W runs very well under Linux using the WINE compatibility layer.
You will need to set symbolic links to your serial ports (examples below)
If using usb-to-serial conversion, you need to issue dmesg to see what USB# (s) are assigned to your usb2serial cable(s) and Winkey. Here is a snippet of my dmesg output:
usb 1-4.2: FTDI USB Serial Device converter now attached to ttyUSB0
[ 10.493665] mos7840 1-5:1.0: Moschip 7840/7820 USB Serial Driver converter detected
[ 10.494830] usb 1-5: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB1
[ 10.496217] usb 1-5: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB2
Then 'sudo adduser $USER dialout' and 'sudo chown $USER:dialout'
It may be easier to build a shell program to read your USB assignments as they can be dynamic.
Here is an example:
dmesg > dmesg.txt
grep "USB" dmesg.txt
In the example above, we see that WK is assigned to ttyUSB0, and the dual USB2SERIAL is assigned to USB1 and USB2 respectively. We can now assign the symbolic links as follows:
/dev/ttyUSB0 ~/.wine/dosdevices/com3 << WK = com3 to TR4W
ln -s /dev/ttyUSB1 ~/.wine/dosdevices/com5 << USB1 connects to com5 (TR4W)
ln -s /dev/ttyUSB2 ~/.wine/dosdevices/com4 << USB2 = com4 to TR4W
This can be rolled into a shell program to run the assignments -if needed:
cat tr4w0.sh << arbitrarily named tr4w0.sh as usb0 is assigned to WK
ln -s /dev/ttyUSB1 ~/.wine/dosdevices/com5
ln -s /dev/ttyUSB2 ~/.wine/dosdevices/com4
For SO2R, the alt-D function may cause focus on TR4W to be lost. Ensure you invoke 'winecfg' from terminal, select 'graphics', and check “Allow the window manager to control the windows”