This tutorial by grundlig shows us how to configure X forwarding between BSD and Windows.

On Unix systems, windowing systems are an optional component. There are numerous window systems but the most prevalent, as I understand it, is X. It’s a networked client/server model, where the machine with the display and input devices is called the server, and the machine running windowed apps against this server is the client. This is backwards from how you typically think about clients and servers, i.e. servers are usually headless and clients are usually responsible for rendering data from servers and translating input.

I usually interact with my BSD machine from my Windows laptop using PuTTY. But running Emacs in a terminal window is sometimes hard on the eyes, it’s hard to get good fonts, color schemes, etc. I wanted to see if I could launch Emacs from PuTTY but have it render its UI over the X protocol on my Windows laptop. This was harder than I thought, and I didn’t find any step-by-step tutorial to help me troubleshoot, so here’s an account of what worked for me. Note that I started from a relatively clean install of FreeBSD 10.1, with only sshd and some basic packages installed.

Check out the tutorial with full instructions here: