Remote desktop does not support colour depth 24; falling back to 16

rdesktop on Linux will give this warning message when connecting to a Windows machine which has not been configured for 24-bit color RDP connections. This has, amongst other things, the effect of showing some horrible, jaggy desktop icons. See the pictures on the right for reference.

On Vista, Windows 7 and later (?), the solution is simple: Use 32-bit colors (-a 32)

On XP, which doesn’t support 32-bit colors, it gets a little more complicated. XP does support 24-bit connections, but this mode is disabled by default because of bandwidth concerns and bad choices.

To fix this problem on XP (nothing needs changing on the Linux or Windows client) you need to access the Local Machine Group Policy editor.

If you’re lucky, going to Start -> Run -> “gpedit.msc” will work for you. Type “gpedit.msc” without the quotes (and click “Run”).

If that does not open the group policy editor, this is the long way around:

  • Start -> Run and type in “mmc
  • Add the Group Policy snap-in by going to File -> Add/Remove Snap-in -> Add -> Group Policy Object Editor -> Add -> Finish (Local Machine) -> Close -> Ok

In the Group Policy Editor:

  • Navigate to Local Computer Policy -> Computer Configuration -> Administrative Templates -> Windows Components -> Terminal Services, and double-click on the ‘Limit maximum Color Depth‘ object.
  • Set the item to “Enabled” and set “Color Depth” to “24 bit”
  • Click OK, then log in with the remote client. If the changes haven’t been applied, reboot the server.

NOTE: If the Terminal Services item, or other parts of the path, is missing, you need to restore the missing functionality by right clicking on Administrative Templates, clicking Add/Remove Templates, Add, and then adding system.adm. Details here (credits to Ramesh Srinivasan), archive copy here.

 

Rejoice with your new, shiny desktop icons and full 24-bit desktop.

12 Comments

  • Tobi says:

    Hi,

    the solution doesn’t work! I’m using openSuSE 10.3 and try to access a Windows 7 machine via rdesktop:
    rdesktop -u my_user -k en-us -g 2560×1024+0+0 -b -C -D -K -N -a 24 -z -x l -P -r sound:remote win7_computer &

    I got the following message:
    WARNING: Remote desktop does not support colour depth 24; falling back to 16

    You wrote, try “-a 32” and I did it:
    rdesktop -u my_user -k en-us -g 2560×1024+0+0 -b -C -D -K -N -a 32 -z -x l -P -r sound:remote win7_computer &

    Now I get this message:
    ERROR: Invalid server colour depth.

    What’s wrong?
    Thanks in advance.
    Best regards,
    Tobi.

  • bolt says:

    “Invalid server colour depth” is your local rdesktop client not supporting 32 bit colour. That’s either due to your xserver not running 32-bit (check “xwininfo” output or similar), or rdesktop on SUSE simply doesn’t have support for 32-bit colour, in which case you’d need to compile it youself. Ask SUSE’s IRC channels / forums about how to do this if you’re uncertain.

  • someguy says:

    Thanks so much for posting this – it was just what I needed!
    P.S. My eyes thank you too!

  • David says:

    I tried doing this on ubuntu 12.04 using the rdesktop in the repository to access Windows 7 and I still got the message even with -a 24 or -a 32. I downloaded and compiled the rdesktop 1.7.1 source and this solved the problem.

  • Frank says:

    This worked just right for me, thanks very much for the article

  • Duke Pham says:

    I did followed the instruction using “gpedit.msc” and I set it to 32 on my Windows 7, then on the client side (Linux), It worked for me when I add the extra full screen option. So here is the command:

    rdesktop -a 32 win7_computer -f

  • Bikash says:

    Please reboot the host system.

  • 5 years later says:

    This has never worked and will never work. rdesktop does not support higher than 16/24 depending on libraries installed.

    • bolt says:

      I wonder what version you’re using, as my manpage clearly states that -a “sets a colour depth for the connection (8, 15, 16, 24 or 32)” and that -P can be used to set a 40MB disk space cache for “32-bit colour sessions”.

  • alvaro rodelo says:

    try xfreerdp instead

    • bolt says:

      While xfreerdp may not complain, it certainly doesn’t fix the issue either. If 24-bit mode is disabled in Windows, it’s not going to be enabled by a different client. All xfreerdp can do is fall back silently, and you still get 16-bit colours.

Leave a Reply

Your email address will not be published. Required fields are marked *