The Arrival of NX, Part 5: Using NX

We know you've been waiting for it, so here's the next installment of our NX series. This time out, learn how to navigate with hands-on exercises that demonstrate all NX can do.
Understanding the Advanced Configuration Dialog

You can access the Advanced Configuration dialog any time before starting a new NX session to modify previously used settings. Once a session is running, most settings are fixed. Also, suspending a session and resuming it at a later stage re-uses the same settings as when initially creating it. As of version 1.5.0 of the NX Core libraries, however, it is possible to re-size the NX session window to any arbitrary values of width and height or to toggle between windowed and fullscreen mode with the [Strg]+[Alt]+[f] keyboard shortcut.

We now take a closer look at the five tabbed screens of the Advanced Configuration dialog, beginning with the General tab.

Figure 11. The General Tab of the Advanced Configuration Dialog

The fields within the General tab are explained here:

  • 1a, 1b: these setting are already familiar to you from the Connection Wizard screenshot.

  • 2: you can save your NX password in the session configuration file. Though not in clear text, but in a modestly scrambled (not encrypted!) form to avoid a too-easy retrieval, and though protected by user-only access in your home directory, you still should be aware that the password is stored on disk and may be retrieved by other users of the same system. Anybody who gets physical access to your client computer can run an NX session to your remote account without even needing to detect a password, so take your precautions

  • 3a, 3b, 3c, 4, 5a, 5b, 5c: you should recognize these settings and their meanings from the Connection Wizard screenshot and explanation.

  • 6a, 6b, 6c: the default image encoding usually yields good results while still saving bandwidth. It uses JPEG level 6 quality. This way you may see some typical JPEG artifacts in highly compressed remote sessions, for instance in desktop background wallpapers with color shadings. You can customize the image encoding to use either PNG compression (lossless--higher quality, but also more network traffic) or even higher JPEG compression with better network savings yet more visibility of JPEG compression artifacts.

Figure 12 shows the Advanced tab and its fields.

Figure 12. The Advanced Tab of the Configuration Dialog

  1. the "Enable SSL encryption" dialog.

  2. during a running NX session, NX keeps in memory a cache for images and other data. This cache helps a good deal in creating the fabulous NX speedup for remote sessions. After the session ends, the cache is stored on disk. The disk cache file then may be re-used in the future. The disk cache covers two cases: the same user+client runs another session to the same server or the NX session gets suspended and is resumed at a later stage. Set the amount of RAM you want to reserve for the NX session here. The default is 4MB; I mostly use 32MB, because I do not run on a memory depleted thin client.

  3. this dropdown sets the disk space limit for stored session cache files. Default is 16MB; I always increase it to 128MB, because I have enough free space on the hard disk. Should the limit be reached, the oldest files and/or cache entries are auto-deleted first to create new space for the current session.

  4. this button deletes all past cache files.

  5. the keyboard may be mapped to a different layout, depending on your needs. The default, however, is to use the NX client machine's current settings.

Figure 13 depicts the Services tab and its input fields.

Figure 13. The Services Tab of the Configuration Dialog

  1. Enable this checkbox if you want to share local files and directories on your NX client system with your remote NX server. This setting enables remotely running applications on your NX server to access these files and modify them or to save new documents into the shared directory. This function uses the SMB protocol and the smbmount utility to perform its actions. This way you easily can store an image on your local hard disk even though it was created with the help of a remotely running instance of The GIMP.

  2. Enable this checkbox to print (via CUPS) from your remotely running applications to your locally attached printers. Each individual shared CUPS printer needs to be configured individually (see the Add and Modify buttons described below).

  3. The port number CUPS uses in your local environment. This usually is 631. If in doubt, ask your local printer administrator.

  4. Click Add to add another printer to the list; the list initially is empty. A new dialog pops up that lets you select a printer from a list of resources available from your locally running CUPS daemon and a driver to be used for the remote session.

  5. Highlight one of the printers in the list and click Modify to change its settings. The list is empty initially and the Modify button disabled. A new dialog pops up that lets you select a printer from a list of resources available from your locally running CUPS daemon and a driver to be used from the remote session.

  6. Highlight one of the printers in the list and click Delete if you want to remove it from the list of printers available for NX. This will not delete the printer from your local CUPS installation but only make it unavailable to NX.

  7. Multimedia support essentially tunnels sound events from your remote NX session to your local speakers. So if your remote KDE is configured to issue a startup sound hymn, you will hear it at the beginning of each new NX session.

Figure 14. The Environment Tab of the Configuration Dialog

The Environment tab of the Advanced Configuration dialog (Figure 14) contains the following fields:

  1. This line hints at the directory, located on the NX client box, where user-specific session files logs, settings, caches, images, traffic statistics and the like are stored. Note, you usually do not need to change this. Enable the checkbox in 1b if you do not want to keep old session files on your hard disk. Note that you should disable this checkbox if you need access to old session files for debugging purposes in case of a problem with your NX session.

  2. Click on this button if you want to navigate to a different directory for storing NX session files. You normally do not need to change this.

  3. This line hints at the directory, located on the NX client box, where system-wide NX files--binaries, libraries, etc.--are stored. You usually do not need to change this.

  4. Click on this button if you want to navigate to a different directory for storing NX session files. You normally do not need to change this.

  5. This line writes the full path, located on the NX client box, where the executable file to start up the CUPS daemon--local to the NX client box--can be found.

  6. Click on this button if you want to navigate to a different path to find your local system's cupsd executable. You normally do not need to change this.

  7. Click on these buttons if you want your NX client dialogs to show up in a different font. Note that the Fixed font in some older releases is set to an unreadably small value and can't be changed permanently due to a bug. The bug is fixed in the latest releases.

  8. The About box reveals the version of the NX Client to you. This may be important in case you report a bug or ask for help on the FreeNX mailing list or in the #nx IRC channel on Freenode.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Really awesome series of articles and the product itself, NX.

Anonymous's picture

I have a local linux ws and a remote one sitting across in a different continent where I need to do extensive Java development using Eclipse IDE. I have been using NX for quite sometime now and it is working very well for me. This series of articles have clearly explained why.


> installing FreeNX now that

Anonymous's picture

> installing FreeNX now that NoMachine has released NX Server Free Edition.

Beware "NX Server Free Edition" is not "libre" software, it limits you to only two concurrent sessions, and so on.

FreeNX has not this limitations

When will Part 6 be out?

Brian Takita's picture

I am really enjoying reading this series and am impressed with NX. When will Part 6 be out? Thanks.

NX Server Free Edition

Marc's picture

Fast forward a year from when this excellent article was written, there is probably not much point now in installing FreeNX now that NoMachine has released NX Server Free Edition.

This is fairly easy to install and offers more features than FreeNX.

freenx / nxserver: difficult to install

Anonymous's picture

I've probably installed freenx and nxclient a dozen times, and each time it has been a hellishly difficult process. One can do a vanilla install on two hosts on the same LAN, with virtually everthing set up correctly, and still get the dreaded "Using auth method: publickey / Authentication failed" message. So my conclusion is that it might be better to seek other ways of remotely accessing machines at this point than freenx.

"I've probably installed

Anonymous's picture

"I've probably installed freenx and nxclient a dozen times, and each time it has been a hellishly difficult process."

I can second that, I had to install freenx on some machines last year and the configuration almost drove me crazy. The same client asked me to update these machines to the new nx server. I tried to install it on some local machines and it went very smooth!

Using NX to connect to Windows

Jay's picture

NX really is great stuff, getting amazingly quick connections to my Ubuntu Breezy server at home whilst I'm sitting at work!

The only thing I can't seem to do is use the client to connect to my XP via RDP. I can run the nxdesktop from the ubuntu box no problem, am I missing something in the set-up?

Any help gratefully received!

thanks so far...

Anonymous's picture

Hi Kurt,

thanks for the great series of articles about FreeNX which you publish here.

One thing tho, to which I never found a solution on the nomachine site or elsewhere:

When using the rdesktop feature from a Windows NoMachine client to a FreeNX (Debian-based) server (as proxy) to a Windows 2003 server at some client's site, I don't get a german keyboard layout - no matter what I choose in the NXclient. Even after adding german locales (and setting them as default) on the Debian proxy, there's no way to change that. Using version 1.5 didn't make a difference, and, suprisingly: when using the client on Debian (english desktop) as well, all just plain works [TM]!

So what do I have to do to make Windows clients play nicely?

Thanks again,
and kind regards,
wjl aka Wolfgang Lonien

same for me

Geli's picture

Hey Wolfgang,
I'm getting the exact same bug i think: I connect with a Windows-NX-Client ( to a SUSE linux machine with recent FreeNX straight from and the f***ing Keyboard layout will only be English! Even though i have on both machines German-Keyboard as default, and also selected "German" in the NXClient.

pls drop me a line if you could fix it!

best regards

keyboard mapping == nxdesktop bug ?

Anonymous's picture

the problem you describe looks like a bug in NX' nxdesktop component (i mean to have read about it b4).

i assume you have tried the latest bugfix release of the nxclient for windows from nommachine already, yes? and also read their detailed release notes, yes?

if that didnt fix it for you, youll have to be patient and wait for the next release by nomachine.

Re: keyboard mapping == nxdesktop bug ?

Gian Filippo Pinzari's picture

This bug shouldn't affect the NoMachine NX server and, as far as I can say, it is not a bug of nxdesktop, as nxdesktop uses the keyboard correctly, according to the settings of the remote X server.

On Windows the keyboard settings are downloaded by the NX server to the client upon session startup. This is a feature of NX server that is activated whenever the remote X server is unable to handle the keyboard initialization locally, for example if the X server lacks the XKB tools and related keymap files. This makes much simpler to create thin client setups where only the X server is deployed, without the X libraries and the additional tools (as in the NX client for Windows).

I don't know how FreeNX handles this but the feature was implemented in November 2004. There was a long thread in the NX project's mailing list and Fabian and Kurt should have received copy of it. It shouldn't be difficult for the FreeNX guys to implement this in the same way as it is implemented in the NoMachine NX server.

/Gian Filippo.