{"id":2339,"date":"2011-02-27T16:25:20","date_gmt":"2011-02-27T20:25:20","guid":{"rendered":"http:\/\/www.useragentman.com\/blog\/?p=2339"},"modified":"2015-03-27T10:04:28","modified_gmt":"2015-03-27T14:04:28","slug":"installing-cygwin-and-fontforge-for-windows","status":"publish","type":"post","link":"http:\/\/www.useragentman.com\/blog\/2011\/02\/27\/installing-cygwin-and-fontforge-for-windows\/","title":{"rendered":"Installing Cygwin and FontForge for Windows"},"content":{"rendered":"<div class=\"importantNotes\">\n<h3>Notes:<\/h3>\n<ul>\n<li>Since this article has been written, Fontforge has <a href=\"http:\/\/fontforge.github.io\/en-US\/downloads\/windows\/\">an official Windows port<\/a> that runs without the need of Cygwin.  If you (like most end users) don&#8217;t care if FontForge is not compiled with Cygwin support, then the official port is the simpler and easier option to use.<\/li>\n<li>This post is a companion to my article on <a href=\"https:\/\/www.useragentman.com\/blog\/?p=2275\">Converting @font-face Fonts Quickly In Any OS<\/a>.<\/li>\n<li><strong>Update &mdash; May 29, 2012:<\/strong> <a href=\"http:\/\/www.mpetroff.net\">Matthew Petroff<\/a> has created an <a href=\"http:\/\/www.mpetroff.net\/software\/fontforge-windows\/\">unofficial Windows installer for FontForge<\/a>.  I will be testing this package in the next little while to see how well it can be used with @font-face conversion script, but as a standalone desktop application, it seems to work really well! :-)<\/li>\n<li><strong>Updated May 12, 2012<\/strong> to reflect small changes to the installation procedure (thanks to &#8220;Shanna&#8221; for information that helped find the solution).<\/li>\n<\/div>\n<p><div id=\"attachment_2517\" style=\"width: 260px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/fontforge.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2517\" src=\"https:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/fontforge.png\" alt=\"\" title=\"fontforge\" width=\"250\" height=\"141\" class=\"size-full wp-image-2517\" \/><\/a><p id=\"caption-attachment-2517\" class=\"wp-caption-text\">FontForge is a great font editor, but it can be a pain to install for Windows users. Hopefully this article will help you.<\/p><\/div> FontForge, as far as I can tell, is the best free font editing and conversion tool available for all operating systems.  Web developers edit images and photographs with tools like The Gimp and Photoshop, so why can&#8217;t we edit fonts?  The problem is FontForge was originally a UNIX X-Windows application, and the average user may have difficulty getting it to work under Windows. Since a lot of web designers out there may not be familiar with UNIX command shells and Cygwin, I have written this blog post to help.  If you find any errors, please let me know in the comments section below &mdash; I do want to make this as easy and as painless as I possibly can. <\/p>\n<h2>Step 1: Install Cygwin<\/h2>\n<p>First thing you must do in order to run FontForge under Windows is to install Cygwin.  Cygwin is a way to allow programs that run under the Linux Operating System to compile under Windows.  <strong>Do not worry &#8230; we are not going to compile any source code.<\/strong> FontForge has already been compiled under Cygwin and has been packaged up so that end users don&#8217;t have to.  But in order to use it, you must install Cygwin first:<\/p>\n\r\n<p>Cygwin has a nice setup program that downloads and\r\n        installs the necessary Cygwin packages for you.<\/p>\r\n\r\n        <ol type=\"1\">\r\n            <li>\r\n                <p>Open the Cygwin, <a href=\"http:\/\/cygwin.com\/\"\r\n                target=\"_top\">http:\/\/cygwin.com\/<\/a> page in your\r\n                web browser<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click on the <a href=\r\n                \"http:\/\/cygwin.com\/setup.exe\" target=\r\n                \"_top\">&#13;<span class=\r\n                \"QUOTE\">\"setup.exe\"<\/span><\/a> link. This link\r\n                downloads <tt class=\"filename\">setup.exe<\/tt> from\r\n                the primary Cygwin server; save <tt class=\r\n                \"filename\">setup.exe<\/tt> to the directory that you\r\n                would like to store the downloaded packages in\r\n                (e.g. <tt class=\"filename\">c:\\download<\/tt>); do\r\n                not save <tt class=\"filename\">setup.exe<\/tt> to <tt\r\n                class=\"filename\">c:\\cygwin<\/tt>, as that is the\r\n                default directory for the extraction and\r\n                installation of the downloaded packages.<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Run <tt class=\"filename\">setup.exe<\/tt>, you\r\n                will see the welcome screen:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi01welcome.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Next<\/span> to\r\n                proceed to the next screen.<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Choose, <span class=\"guilabel\">Install from\r\n                Internet<\/span>, this will still save the package\r\n                files to your download directory so that you can\r\n                install Cygwin on any number of machines:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi02installoption.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Next<\/span> to\r\n                proceed to the next screen.<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>The default <span class=\"guilabel\">Install\r\n                Root<\/span> is <tt class=\"filename\">c:\\cygwin<\/tt>\r\n                which should be fine for most installations. Leave\r\n                <span class=\"guilabel\">Default Text File\r\n                Type<\/span> as <acronym class=\r\n                \"acronym\">UNIX<\/acronym>. Leave <span class=\r\n                \"guilabel\">Install For<\/span> set to <span class=\r\n                \"guilabel\">All<\/span> unless you lack local\r\n                administrative privileges.<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi03installto.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Next<\/span> to\r\n                proceed to the next screen.<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p><span class=\"guilabel\">Local Package\r\n                Directory<\/span> should default to the directory\r\n                that you ran <tt class=\"filename\">setup.exe<\/tt>\r\n                from:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi04directory.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Next<\/span> to\r\n                proceed to the next screen.<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Choose your proxy setup, or, just choose <span\r\n                class=\"guilabel\">Direct Connection<\/span> if no\r\n                proxy is needed:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi05proxy.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Next<\/span> to\r\n                proceed to the next screen.<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Select your nearest mirror for downloading:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi06mirror.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Next<\/span> to\r\n                proceed to the next screen; setup will download a\r\n                list of available packages as it moves to the next\r\n                screen.<\/p>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>On the next screen you will select the packages\r\n                that will be downloaded and installed. A listing of\r\n                the packages you will need is given below (This list has been updated as for May 11, 2012 thanks to Shanna's troubleshooting questions in the comments below):<\/p>\r\n\r\n                <ul>\r\n                <li>Under the <strong><tt class=\r\n                \"literal\">X11<\/tt><\/strong> category, install:<\/li>\r\n\r\n                <ul type=\"a\">\r\n\r\n                <li>\r\n                        <p><tt class=\r\n                        \"filename\">X-start-menu-icons<\/tt>\r\n                        (optional but recommended, adds icons for X Clients to the\r\n                        Start menu)<\/p>\r\n                    <\/li>\r\n                    \r\n                    <li>\r\n                        <p><tt class=\"filename\">xinit<\/tt>\r\n                        (required, scripts for starting the X\r\n                        server: <b class=\"command\">xinit<\/b>, <b\r\n                        class=\"command\">startx<\/b>, <b class=\r\n                        \"command\">startwin<\/b> (and a shortcut on\r\n                        the Start Menu to run it), <b class=\r\n                        \"command\">startxdmcp.bat<\/b> )<\/p>\r\n                    <\/li>\r\n\r\n                    <li>\r\n                        <p><tt class=\"filename\">xorg-docs<\/tt>\r\n                        (optional, <b class=\"command\">man<\/b>\r\n                        pages)<\/p>\r\n                    <\/li>\r\n\r\n                    <li>\r\n                        <p><tt class=\"filename\">xorg-server<\/tt>\r\n                        (required, the Cygwin\/X X Server)<\/p>\r\n                    <\/li>\r\n\r\n                    <li>\r\n                        <p><tt class=\"filename\">libcairo2<\/tt><\/p>\r\n                    <\/li>\r\n                    <li>\r\n                        <p><tt class=\"filename\">libXi6<\/tt><\/p>\r\n                    <\/li>\r\n                    <li>\r\n                        <p><tt class=\"filename\">libXi-devel<\/tt><\/p>\r\n                    <\/li>\r\n<!--\r\n                    <li>\r\n                        <p>You may also want to ensure that the <tt\r\n                        class=\"literal\">inetutils<\/tt> or <tt\r\n                        class=\"literal\">openssh<\/tt> packages are\r\n                        selected if you wish to use <b class=\r\n                        \"command\">telnet<\/b> or <b class=\r\n                        \"command\">ssh<\/b> connections to run remote\r\n                        X clients.<\/p>\r\n                    <\/li>\r\n-->\r\n                <\/ul>\r\n               <\/li>\r\n               <li>Under the <strong>Gnome<\/strong> catagory, install the <code>libxml2<\/code> and <code>libpango1.0_0<\/code> packages.<\/li>\r\n               <li>Under the <strong>Graphics<\/strong> catagory, install the <code>giflib<\/code>, <code>libpng<\/code>, <code>jpeg<\/code> and <code>libtiff<\/code> packages (the latest non-beta version of <code>libtiff<\/code> at the time of this writing is <code>libtiff5<\/code>)<\/li>\r\n               <li>Under <strong>Editors<\/strong>, install <code>vim<\/code>.<\/li>\r\n               <li>Under <strong>Web<\/strong>, instal <code>wget<\/code><\/li>\r\n               <li>Finally, install <code>rxvt<\/code> in the <strong>Shells<\/strong> category (just <code>rxvt<\/code>, not any of the <code>rxvt-unicode-*<\/code> packages)<\/li>\r\n            <\/ul>\r\n\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi07packages.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Next<\/span> to\r\n                begin the download process, you may want to try\r\n                another mirror if you see a <span class=\r\n                \"QUOTE\">\"Connecting\"<\/span> message on this screen\r\n                for a long period of time:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi08downloading.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>After the packages are downloaded, setup will\r\n                automatically begin to install them:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi09installing.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>I highly recommend allowing Cygwin Setup to\r\n                create Desktop and Start Menu icons for you; these\r\n                icons simply launch a <span class=\r\n                \"application\">bash<\/span> shell:<\/p>\r\n\r\n                <div class=\"mediaobject\">\r\n                    <p><img alt=\"\" src=\r\n                    \"\/blog\/wp-content\/uploads\/2011\/02\/cyi10createicons.png\"><\/p>\r\n                <\/div>\r\n            <\/li>\r\n\r\n            <li>\r\n                <p>Click <span class=\"guibutton\">Finish<\/span> to\r\n                close the setup program.<\/p>\r\n            <\/li>\r\n        <\/ol>\r\n\r\n\r\n\r\n<h2>Step 2: Install FontForge<\/h2>\r\n\r\n<p>Now that you have successfully installed Cygwin and the libraries necessary to run FontForge, it is now to time to install FontForge itself.  <strong>This part is not obvious<\/strong>, and is the main reason why I wrote these instructions.<\/p>\r\n\r\n<p>There are two ways you can install FontForge: using the Cygwin setup program you just downloaded (not-so-easy) or using the \"Unofficial Windows Port\".<\/p>\r\n\r\n<p>If you get stuck, there is more help available at the <a href=\"http:\/\/sourceware.org\/cygwinports\/\">Official Cygwin Ports<\/a> page.<\/p>\r\n\r\n\r\n\r\n<h3>Using the Cygwin Setup<\/h3>\r\n\r\n<p>This is my preferred method for installing FontForge, but may not always be successful because the download process stalls sometimes. If it doesn't work the first time, quit the process and try again.  <strong>Note that I found that installing it this way works best at around 7:00 AM - 4:00 PM EST.<\/strong> I believe that this is because the Cygwin Ports server is busier at night, but I am just guessing.  Your results may vary.<\/p>\r\n\r\n<p>If you get really frustrated installing it this way, try the <a href=\"#mingw\">\"Unofficial Windows Port\"<\/a> method instead.<\/p>\r\n\r\n<ol>\r\n<li>Go to the directory you saved Cygwin's setup.exe when you installed Cygwin.<\/li>\r\n\r\n<li>Right click on setup.exe and choose \"Create Shortcut...\"<\/li>\r\n\r\n<li>Right click on the shortcut that you created and choose \"Properties\".  In the shortcut dialogue, change the Target field from <code>setup.exe<\/code> to <code>setup.exe -K http:\/\/cygwinports.org\/ports.gpg<\/code>\r\n\r\n<div class=\"mediaobject\">\r\n     <p><img decoding=\"async\" alt=\"\" src=\"\/blog\/wp-content\/uploads\/2011\/02\/ff01shortcut.png\"><\/p>\r\n<\/div>\r\n<\/li>\r\n<li>Double-click on the new shortcut. Go through the steps 3 - 12 of the installation instruction of Cygwin.<\/li>\r\n<li>When you get to step 13, you must enter <code>ftp:\/\/ftp.cygwinports.org\/pub\/cygwinports<\/code>  into the <strong>User URL<\/strong> field and click <span class=\"guibutton\">Add<\/span> button.  When you do, it will be added to the list of download sites. <strong>Ensure that the new site is the only one chosen<\/strong> (sometimes two will be chosen at this point, the one you just added and one you used to install Cygwin), and click <span class=\"guibutton\">Next<\/span>.\r\n<div class=\"mediaobject\">\r\n     <p><img decoding=\"async\" alt=\"\" src=\"\/blog\/wp-content\/uploads\/2011\/02\/ff02setupPause.png\"><\/p>\r\n<\/div>\r\nNote that you will see this progress dialogue longer than you did in when installing Cygwin:\r\n\r\n<div class=\"mediaobject\">\r\n     <p><img decoding=\"async\" alt=\"\" src=\"\/blog\/wp-content\/uploads\/2011\/02\/ff02setupPause.png\"><\/p>\r\n<\/div>\r\nBe patient.  You should eventually get to the next dialogue. If it gives you an error about the version of setup.bz2 being earlier than the previous one or something similar, ignore it.\r\n<\/li>\r\n<li>At this point, the <strong>Select Packages<\/strong> will appear.  Go the <strong>Graphics<\/strong> \r\ncategory and choose <strong>fontforge<\/strong>:\r\n\r\n<div class=\"mediaobject\">\r\n     <p><img decoding=\"async\" alt=\"\" src=\"\/blog\/wp-content\/uploads\/2011\/02\/ff03chooseFontForge.png\"><\/p>\r\n<\/div>\r\nClick <span class=\"guibutton\">Next<\/span>.<\/li>\r\n\r\n<li> You will see a dialogue similar to this:\r\n<div class=\"mediaobject\">\r\n     <p><img decoding=\"async\" alt=\"\" src=\"\/blog\/wp-content\/uploads\/2011\/02\/ff04resolveDependencies.png\"><\/p>\r\n<\/div>\r\nThis is just showing you it has to download the fontforge's dependencies as well. Just click <span class=\"guibutton\">Next<\/span><\/li>\r\n<li>You will see the download dialogue:\r\n<div class=\"mediaobject\">\r\n     <p><img decoding=\"async\" alt=\"\" src=\"\/blog\/wp-content\/uploads\/2011\/02\/ff05progress.png\"><\/p>\r\n<\/div>\r\n\r\nThis is the part that may take a long time to run, and may even stall.  Let it run for a while.  If it gets stuck for a long time, you may want to choose a different mirror.\r\n<\/li>\r\n<li>\r\nIf you complete the install process, you should now have successfully installed fontforge.  To test your install, do the following:\r\n\r\n<ul>\r\n<li>Go to the Start Menu, choose \"Programs\" and in the \"Cygwin\" Program Group, launch <code>rxvt-native<\/code>.\r\n\r\n<a href=\"https:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/rxvtLaunch.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/rxvtLaunch.png\" alt=\"Screenshot of how to launch rxvt under Windows XP\" title=\"rxvtLaunch\" width=\"672\" height=\"302\" class=\"aligncenter size-full wp-image-2464\" srcset=\"http:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/rxvtLaunch.png 672w, http:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/rxvtLaunch-300x134.png 300w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/a><\/li>\r\n\r\n\r\n\r\n<li>\r\nFrom the command line, enter the <code>startxwin<\/code> command.   You should see the following output\r\n\r\n<blockquote class=\"code\">\r\n<pre>\r\nWelcome to the XWin X Server\r\nVendor: The Cygwin\/X Project\r\nRelease: 1.9.4.0 (10904000)\r\nPackage version 1.9.4-1 built 2011-02-07\r\n\r\nXWin was started with the following command line:\r\n\r\nX :0 -multiwindow \r\n\r\n_XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6\r\n_XSERVTransOpen: transport open failed for inet6\/NB07023:0\r\n_XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6\r\nwinInitializeScreens - 1\r\nwinInitializeScreen - 0\r\n(II) xorg.conf is not supported\r\n(II) See http:\/\/x.cygwin.com\/docs\/faq\/cygwin-x-faq.html for more information\r\nLoadPreferences: \/home\/haw5855\/.XWinrc not found\r\nLoadPreferences: Loading \/etc\/X11\/system.XWinrc\r\nLoadPreferences: Done parsing the configuration file...\r\nwinGetDisplay: DISPLAY=:0.0\r\nwinDetectSupportedEngines - Windows NT\/2000\/XP\r\nwinDetectSupportedEngines - DirectDraw installed\r\nwinDetectSupportedEngines - Allowing PrimaryDD\r\nwinDetectSupportedEngines - DirectDraw4 installed\r\nwinDetectSupportedEngines - Returning, supported engines 0000001f\r\nwinSetEngine - Multi Window or Rootless =&gt; ShadowGDI\r\nwinScreenInit - Using Windows display depth of 32 bits per pixel\r\nwinAllocateFBShadowGDI - Creating DIB with width: 1280 height: 800 depth: 32\r\nwinFinishScreenInitFB - Masks: 00ff0000 0000ff00 000000ff\r\nwinInitVisualsShadowGDI - Masks 00ff0000 0000ff00 000000ff BPRGB 8 d 24 bpp 32\r\nnull screen fn ReparentWindow\r\nnull screen fn RestackWindow\r\nInitQueue - Calling pthread_mutex_init\r\nInitQueue - pthread_mutex_init returned\r\nInitQueue - Calling pthread_cond_init\r\nInitQueue - pthread_cond_init returned\r\nwinInitMultiWindowWM - Hello\r\nwinInitMultiWindowWM - Calling pthread_mutex_lock ()\r\nwinMultiWindowXMsgProc - Hello\r\nScreen 0 added at virtual desktop coordinate (0,0).\r\nwinMultiWindowXMsgProc - Calling pthread_mutex_lock ()\r\nMIT-SHM extension disabled due to lack of kernel support\r\nXFree86-Bigfont extension local-client optimization disabled due to lack of shared memory support in the kernel\r\n(II) AIGLX: Loaded and initialized \/usr\/lib\/dri\/swrast_dri.so\r\n(II) GLX: Initialized DRISWRAST GL provider for screen 0\r\nwinPointerWarpCursor - Discarding first warp: 640 400\r\n(--) 3 mouse buttons found\r\n(--) Setting autorepeat to delay=500, rate=31\r\n(--) Windows keyboard layout: \"00000409\" (00000409) \"US\", type 4\r\n(--) Found matching XKB configuration \"English (USA)\"\r\n(--) Model = \"pc105\" Layout = \"us\" Variant = \"none\" Options = \"none\"\r\nRules = \"base\" Model = \"pc105\" Layout = \"us\" Variant = \"none\" Options = \"none\"\r\nwinInitMultiWindowWM - pthread_mutex_lock () returned.\r\nwinMultiWindowXMsgProc - pthread_mutex_lock () returned.\r\nwinMultiWindowXMsgProc - pthread_mutex_unlock () returned.\r\nwinGetDisplay: DISPLAY=:0.0\r\nwinMultiWindowXMsgProc - DISPLAY=:0.0\r\nwinInitMultiWindowWM - pthread_mutex_unlock () returned.\r\nwinProcEstablishConnection - Hello\r\nwinInitClipboard ()\r\nwinClipboardProc - Hello\r\nDetectUnicodeSupport - Windows NT\/2000\/XP\r\nwinProcEstablishConnection - winInitClipboard returned.\r\nwinGetDisplay: DISPLAY=:0.0\r\nwinInitMultiWindowWM - DISPLAY=:0.0\r\nwinGetDisplay: DISPLAY=:0.0\r\nwinClipboardProc - DISPLAY=:0.0\r\nwinMultiWindowXMsgProc - XOpenDisplay () returned and successfully opened the display.\r\nwinInitMultiWindowWM - XOpenDisplay () returned and successfully opened the display.\r\nwinClipboardProc - XOpenDisplay () returned and successfully opened the display.\r\n<\/pre>\r\n<\/blockquote>\r\n\r\nYou should see the XWindows icon <img decoding=\"async\" class=\"inline\" src=\"https:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/xwinTray.png\" alt=\"\" title=\"xwinTray\"  \/> in the tray .<\/li>\r\n\r\n<li>Next enter the command <code>fontforge &<\/code> (include the <code>&<\/code> if you want to run <code>fontforge<\/code> in the background so that you can enter in other commands into <code>rxvt<\/code> later).  You will see the fontforge splash screen as well as a file dialogue box.\r\n<div id=\"attachment_2472\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/fontforgesplash.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2472\" src=\"https:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/fontforgesplash-300x204.png\" alt=\"The FontForge Splash Screen with File Dialogue\" title=\"fontforgesplash\" width=\"300\" height=\"204\" class=\"size-medium wp-image-2472\" srcset=\"http:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/fontforgesplash-300x204.png 300w, http:\/\/www.useragentman.com\/blog\/wp-content\/uploads\/2011\/02\/fontforgesplash.png 888w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2472\" class=\"wp-caption-text\">The FontForge Splash Screen with File Dialogue<\/p><\/div>\r\n\r\nIf this is what you see, then congratulations, you installed it correctly!<\/li>\r\n\r\n<li>If you get an error similar to <code>\"error while loading shared libraries: ?: cannot open shared object file\"<\/code>, then you forgot to install one of the dependencies.  You can find out which one is missing by entering in the command <code>cygcheck fontforge<\/code>.  You should see output similar to this:\r\n\r\n<blockquote class=\"code\">\r\n<pre>\r\n$ cygcheck fontforge\r\nFound: C:\\cygwin\\bin\\fontforge.exe\r\nFound: C:\\cygwin\\bin\\fontforge.exe\r\nC:\\cygwin\\bin\\fontforge.exe\r\n  C:\\cygwin\\bin\\cygfontforge-1.dll\r\n    C:\\cygwin\\bin\\cyggutils-1.dll\r\n      C:\\cygwin\\bin\\cyggunicode-3.dll\r\n        C:\\cygwin\\bin\\cygwin1.dll\r\n          C:\\Windows\\system32\\ADVAPI32.DLL\r\n            C:\\Windows\\system32\\msvcrt.dll\r\n              C:\\Windows\\system32\\KERNELBASE.dll\r\n                C:\\Windows\\system32\\ntdll.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Console-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-DateTime-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Debug-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-ErrorHandling-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Fibers-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-File-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Handle-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Heap-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Interlocked-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Localization-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-LibraryLoader-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Memory-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Misc-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-NamedPipe-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-ProcessEnvironment-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-ProcessThreads-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Profile-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-String-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Synch-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-SysInfo-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-Util-L1-1-0.dll\r\n            C:\\Windows\\system32\\API-MS-WIN-Service-Core-L1-1-0.dll\r\n            C:\\Windows\\system32\\API-MS-WIN-Service-winsvc-L1-1-0.dll\r\n            C:\\Windows\\system32\\API-MS-WIN-Service-Management-L1-1-0.dll\r\n            C:\\Windows\\system32\\API-MS-WIN-Service-Management-L2-1-0.dll\r\n            C:\\Windows\\system32\\API-MS-Win-Core-LocalRegistry-L1-1-0.dll\r\n            C:\\Windows\\system32\\API-MS-Win-Security-Base-L1-1-0.dll\r\n            C:\\Windows\\system32\\KERNEL32.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-RtlSupport-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-IO-L1-1-0.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-ThreadPool-L1-1-0.dll\r\n            C:\\Windows\\system32\\RPCRT4.dll\r\n              C:\\Windows\\system32\\API-MS-Win-Core-DelayLoad-L1-1-0.dll\r\n        C:\\cygwin\\bin\\cyggcc_s-1.dll\r\n        C:\\cygwin\\bin\\cygiconv-2.dll\r\n      C:\\cygwin\\bin\\cygintl-8.dll\r\n      C:\\cygwin\\bin\\cygpng12.dll\r\n        C:\\cygwin\\bin\\cygz.dll\r\n    C:\\cygwin\\bin\\cygfreetype-6.dll\r\n    C:\\cygwin\\bin\\cygspiro-0.dll\r\n    C:\\cygwin\\bin\\cyguninameslist-0.dll\r\n    C:\\cygwin\\bin\\cygxml2-2.dll\r\n    C:\\cygwin\\bin\\libpython2.6.dll\r\n  C:\\cygwin\\bin\\cyggdraw-4.dll\r\n    C:\\cygwin\\bin\\cygX11-6.dll\r\n      C:\\cygwin\\bin\\cygxcb-1.dll\r\n        C:\\cygwin\\bin\\cygXau-6.dll\r\n        C:\\cygwin\\bin\\cygXdmcp-6.dll\r\n    C:\\cygwin\\bin\\cygXft-2.dll\r\n      C:\\cygwin\\bin\\cygXrender-1.dll\r\n      C:\\cygwin\\bin\\cygfontconfig-1.dll\r\n        C:\\cygwin\\bin\\cygexpat-1.dll\r\n    C:\\cygwin\\bin\\cygXi-6.dll\r\n      C:\\cygwin\\bin\\cygXext-6.dll\r\n    C:\\cygwin\\bin\\cygcairo-2.dll\r\n      C:\\cygwin\\bin\\cygglitz-1.dll\r\n      C:\\cygwin\\bin\\cygpixman-1-0.dll\r\n      C:\\cygwin\\bin\\cygxcb-render-util-0.dll\r\n        C:\\cygwin\\bin\\cygxcb-render-0.dll\r\n    C:\\cygwin\\bin\\cygpango-1.0-0.dll\r\n      C:\\cygwin\\bin\\cygglib-2.0-0.dll\r\n        C:\\cygwin\\bin\\cygpcre-0.dll\r\n      C:\\cygwin\\bin\\cyggmodule-2.0-0.dll\r\n      C:\\cygwin\\bin\\cyggobject-2.0-0.dll\r\n        C:\\cygwin\\bin\\cyggthread-2.0-0.dll\r\n    C:\\cygwin\\bin\\cygpangocairo-1.0-0.dll\r\n      C:\\cygwin\\bin\\cygpangoft2-1.0-0.dll\r\n    C:\\cygwin\\bin\\cygpangoxft-1.0-0.dll\r\ncygcheck: track_down: could not find cyggif-4.dll\r\n\r\ncygcheck: track_down: could not find cygjpeg-7.dll\r\n\r\ncygcheck: track_down: could not find cygtiff-5.dll\r\n<\/pre>\r\n<\/blockquote>\r\n\r\nIn this case, the missing libraries are <code>libgif<\/code>, <code>jpeg<\/code> and <code>libtiff<\/code>.  Go back to step 1 and ensure that you install them (Cygwin's setup will allow you to install them, even after you did the first install).<\/li>\r\n<\/ol>\r\n\r\n<h3 name=\"mingw\" id=\"mingw\">Using \"unofficial fontforge-mingw\"<\/h3>\r\n\r\n<p><strike>A Japanese developer has posted a <a href=\"http:\/\/www.mingw.org\/\">MingW<\/a> port<\/strike>.  This developer of the mingw port has recently made a standalone version of the Cygwin version of fontforge available as well, and I encourage you to download the Cygwin one instead of the MingW one, since it seems to be a bit more up-to-date.  Both of these ports are available on the developer's <a href=\"http:\/\/www.geocities.jp\/meir000\/fontforge\/\">Geocities Japan<\/a> site (yes folks ... you read that right.  Geocities <strong>still<\/strong> exists in Japan!)  It is dead simple to install fontforge using this package:<\/p>\r\n\r\n\r\n<ol>\r\n<li>Download the package from <a href=\"http:\/\/www.geocities.jp\/meir000\/fontforge\/\">the project's homepage<\/a>.  Even though the page is in Japanese, the Dowload link is in English. :-)<\/li>\r\n<li>unzip the package<\/li>\r\n<li>To test if the installation was successful, go into the directory that contains the package and run the <code>fontforge.bat<\/code> batch file.<\/li>\r\n<\/ol>\r\n\r\n<div class=\"importantNotes\">\r\n<h3>Note:<\/h3>\r\nBy default, this program will run with a Japanese version of the user interface. In order to ensure it runs as English, you will need to edit the <code>fontforge.bat<\/code> and delete the following line:\r\n<blockquote>\r\n<code>\r\n<br \/>\r\nset LANG=ja_JP.UTF-8\r\n<br \/>\r\n<br \/>\r\n<\/code>\r\n<\/blockquote>\r\n\r\nThanks to <strong>Senne<\/strong> for leaving this tip in the comments below.\r\n<\/div>\r\n\r\n<p>Even thought this method doesn't really need the fullblown version of Cygwin (since it is designed to be standalone), I suggest installing Cygwin in order to use the <a href=\"\/blog\/?p=2275\">the CSS3 Font Converter<\/a>.<\/p>\r\n\r\n\r\n<h2>Futher Reading<\/h2>\r\n<ul>\r\n<li><a href=\"http:\/\/www.cygwin.com\/cygwin-ug-net\/\">Cygwin User's Guide<\/a><\/li>\r\n<li><a href=\"http:\/\/lifehacker.com\/#!5633909\/who-needs-a-mouse-learn-to-use-the-command-line-for-almost-anything\">A Command Line Primer for Beginners<\/a><\/li>\r\n<\/ul>\r\n\r\n<h2>Copyright Notice<\/h2>\r\n \r\n<p>Some of the contents of this post have been taken from the <a href=\"http:\/\/x.cygwin.com\/docs\/ug\/cygwin-x-ug.html\">Cygwin\/X User's Guide<\/a>, copyright &copy; 2000 Harold L Hunt II and copyright &copy; 2009, 2010, 2011 Jon Turney. As per that document's license, permission is granted to copy, distribute and\/or modify this document under the terms of the <a href=\"http:\/\/www.gnu.org\/licenses\/fdl-1.1.html\">GNU Free Documentation License<\/a>, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.<\/p>\r\n\r\n        \r\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/2011\/02\/fontforge.png\" \/> FontForge, as far as I can tell, is the best free font editing and conversion tool available for all operating systems.  The problem is, the average user may have difficulty getting it to work under Windows.  Because a lot of web designers out there may not be familiar with UNIX command shells and Cygwin, I have written this blog post to help. <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,121,96,97,10],"tags":[],"class_list":["post-2339","post","type-post","status-publish","format-standard","hentry","category-font-face","category-converting","category-cygwin","category-fontforge-fonts","category-fonts"],"_links":{"self":[{"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/posts\/2339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/comments?post=2339"}],"version-history":[{"count":90,"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/posts\/2339\/revisions"}],"predecessor-version":[{"id":2519,"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/posts\/2339\/revisions\/2519"}],"wp:attachment":[{"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/media?parent=2339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/categories?post=2339"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.useragentman.com\/blog\/wp-json\/wp\/v2\/tags?post=2339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}