{"id":68,"date":"2008-03-10T01:12:01","date_gmt":"2008-03-09T23:12:01","guid":{"rendered":"http:\/\/katastrophos.net\/andre\/blog\/2008\/03\/10\/rdesktop-connect-to-windows-vista-with-cleartype-font-smoothing-enabled\/"},"modified":"2010-02-12T03:21:15","modified_gmt":"2010-02-12T02:21:15","slug":"rdesktop-connect-to-windows-vista-with-cleartype-font-smoothing-enabled","status":"publish","type":"post","link":"https:\/\/katastrophos.net\/andre\/blog\/2008\/03\/10\/rdesktop-connect-to-windows-vista-with-cleartype-font-smoothing-enabled\/","title":{"rendered":"rdesktop: Connect to Windows 7 and Vista with ClearType font smoothing enabled"},"content":{"rendered":"<p>So Windows Vista finally allows to enable ClearType font smoothing for Remote Desktop \/ Terminal Services sessions. <strong>Update:<\/strong> Windows XP SP3 does too!<br \/>\nIf you try to connect to a machine running Windows XP SP 3 or later using <a href=\"http:\/\/www.rdesktop.org\" target=\"_blank\">rdesktop<\/a>, you won&#8217;t get smoothed font typing since at the time of this writing <a href=\"http:\/\/www.rdesktop.org\" target=\"_blank\">rdesktop<\/a> does not officially offer an option to control this feature. However, here is a workaround:<br \/>\n<!--more--><br \/>\n<a href=\"http:\/\/www.rdesktop.org\" target=\"_blank\">rdesktop<\/a> allows to specify the RDP5 experience via the -x experience switch.<br \/>\nOne can either define one of three default experiences (modem, broadband, lan) or one can specify a raw hex value that is send to the server. <\/p>\n<p><strong>NOTE: You can skip over this rather technical part, if you&#8217;re not interested in the details. You&#8217;ll find the workaround below.<\/strong><\/p>\n<p>This hex value is actually a combination of defined bit flags. After some tinkering I found that the hex value 0x80 will enable font smoothing for the connection.<br \/>\nThe file constants.h of the rdesktop sources contains these flags:<\/p>\n<pre name=\"code\" class=\"c:nogutter:nocontrols\">\r\n#define RDP5_DISABLE_NOTHING\t0x00\r\n#define RDP5_NO_WALLPAPER\t0x01\r\n#define RDP5_NO_FULLWINDOWDRAG\t0x02\r\n#define RDP5_NO_MENUANIMATIONS\t0x04\r\n#define RDP5_NO_THEMING\t\t0x08\r\n#define RDP5_NO_CURSOR_SHADOW\t0x20\r\n#define RDP5_NO_CURSORSETTINGS\t0x40\t\/* disables cursor blinking *\/\r\n<\/pre>\n<p>So, naturally an additional flag constant can be defined like this:<\/p>\n<pre name=\"code\" class=\"c:nogutter:nocontrols\">\r\n#define RDP5_ENABLE_FONT_SMOOTHING 0x80\r\n<\/pre>\n<p>The file rdesktop.c would have to be extended preferably with an additional argument that controls the font smoothing.<br \/>\nIf you want to use font smoothing with rdesktop now you have to combine the flags (bitwise OR, addition will do too) and specify the result via the -x switch.<\/p>\n<p><strong>Here is the workaround for the three defaults mentioned above:<\/strong><\/p>\n<p><code><strong>rdesktop -x 0x8F<\/strong> mywinserver<\/code>&nbsp;&nbsp;&nbsp;# equals the <strong>modem default<\/strong> + font smoothing<br \/>\n<code><strong>rdesktop -x 0x81<\/strong> mywinserver<\/code>&nbsp;&nbsp;&nbsp;# equals the <strong>broadband default<\/strong> + font smoothing<br \/>\n<code><strong>rdesktop -x 0x80<\/strong> mywinserver<\/code>&nbsp;&nbsp;&nbsp;# equals the <strong>LAN default<\/strong> + font smoothing<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So Windows Vista finally allows to enable ClearType font smoothing for Remote Desktop \/ Terminal Services sessions. Update: Windows XP SP3 does too! If you try to connect to a machine running Windows XP SP 3 or later using rdesktop, you won&#8217;t get smoothed font typing since at the time of this writing rdesktop does [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[20,17,19,11,8,15,9],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-development","tag-findings","tag-hack","tag-linux","tag-os-x","tag-random","tag-windows"],"_links":{"self":[{"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/posts\/68"}],"collection":[{"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/comments?post=68"}],"version-history":[{"count":5,"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/posts\/68\/revisions"}],"predecessor-version":[{"id":80,"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/posts\/68\/revisions\/80"}],"wp:attachment":[{"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/media?parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/categories?post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/katastrophos.net\/andre\/blog\/wp-json\/wp\/v2\/tags?post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}