I need to use RDP to connect to a Windows 10 machine. Equipped with a 4k display, on Arch Linux, with FreeRDP 2.2.0, the following combination of flags turned out to be the best: -grab-keyboard /gfx-h264:avc444 +gfx-progressive.

To make it work, first make sure hardware acceleration is enabled. With AMD:

$ sudo pacman -Sy xf86-video-amdgpu libva-mesa-driver freerdp

Then add this .desktop file:

$ cat .local/share/applications/xfreerdp.desktop
[Desktop Entry]
Name=XFreeRDP
Comment=Connect to remote desktops using RDP
Exec=xfreerdp %U -grab-keyboard /gfx-h264:avc444 +gfx-progressive
Terminal=false
Type=Application
StartupNotify=false
MimeType=application/x-rdp-type;

Without /gfx-h264:avc444, certain UI elements (e.g: red text on dark background in PuTTY) are rendered unreadable. Without +gfx-progressive, scrolling is extremely laggy, a full redraw (switching window) can take a second.

-grab-keyboard is used to let i3 key bindings take effect even in full screen mode. If this doesn’t work for you, take a look at this post and the freerdp man page.