# TigerVNC Java viewer

## Havin_it

Hi All,

This is sort of a prelude to filing an enhancement/bug about this, in case there's something I don't know about the situation.

I switched from TightVNC to TigerVNC, but have still been using the TightVNC Java viewer as an applet for web-based access because Tiger didn't appear to include one. However, recently I came across some mention that it did (in Red Hat at least), and looking in the Gentoo tarball, sure enough the Java code is there. I built it on its own and ran it via Apache on the vnc server box, and it seems to work fine.

So what I'm wondering is, mainly, why doesn't the tigervnc ebuild have a flag to build this? It could pretty much be copy-pasted from the TightVNC ebuild I should think, so I wonder why this wasn't done.

Is the code unloved/deprecated in tigervnc? I did notice the Makefile for it had "-target 1.5" which I had to change to 1.7 to build it, and there were a couple of deprecated method warnings when building.  If it's really so vestigial, then I'd assume there is not much value in using it over the original tightvnc applet. I would if there was, if it offered any better compatibility with the tigervnc server, but there's nothing to indicate this.

Does anyone know what's going on with this? There's not a word about it on the tigervnc site, which isn't a good sign. Just wondering if it's worth looking into.

Thanks in advance for any info.

----------

## Gusar

The TigerVNC Java viewer is in very active development actually (upstream has new commits for it today, that's how active), and I'm very sure it performs quite a bit better than the tightvnc viewer.

The reason it's not in the ebuild... Well, the ebuild as a whole is not really well maintained. It's still using an old xorg111 patch that makes the libvnc.so module crash X. And tigervnc-1.2.0 has been out since almost a month now, while the ebuild is still at 1.1.0. Also, xorg-server-1.12 is in ~arch, the ebuild won't work with that, it needs an xorg112 patch. I know, I know, I should file bugs for all that stuff  :Embarassed: 

Basically, nothing wrong with the TigerVNC Java viewer, it's the opposite, it's in very good shape.

----------

## Havin_it

Gusar, thanks for the reply. I found the code repo and I see what you mean - exciting!

I filed a bug to request the version bump, and suggested they add USE=java at the same time. Just to get it in the system  :Smile: 

----------

## Gusar

I've learned how to use cmake in ebuilds, and have put together an ebuild for tigervnc-1.2.0. Grab the tarball with the ebuild plus all needed patches from the bug

Note, I'm forcing the use of tigervnc's internal fltk copy. That's because patches to fltk are needed for full functionality and I haven't yet bothered trying to patch the system fltk. Also, this is only compile tested, I have no idea if the Java viewer in particular actually works. The rest should work, it's compiled the same way I compile the Arch Linux package.

It'd be cool if you give it a try.Last edited by Gusar on Mon Apr 09, 2012 4:50 pm; edited 1 time in total

----------

## Havin_it

Great, thanks for the pointer - I'll give it a try (time for a packer -Syu for my Arch client as well then  :Very Happy:  )  Maybe worth adding/linking your work to the bug above?

I may have to keep using the tightvnc applet for now though, as I have it built with SSH support for access over WAN. I see from the tiger dev list that they're working on this now though - excellent!

In the meantime I'll certainly give the tiger applet a go when safely behind m'firewall though.

----------

## Havin_it

First merge attempt unsuccessful  :Sad:  it appeared to puke when linking the fltk lib, but with cmake's pithy output I think that's all I can tell you. FWIW I'm building with USE="gnutls%* java%* nptl pam%* server -opengl -xorgmodule" and it might also be worth knowing I build xorg-server with USE="-xorg" (because I don't use any real X on the server, which is headless).

Let me know if you want any more info about this. I'll keep trying.

----------

## Gusar

Bah, I just uploaded the tarball to the bug, and now you're telling me it doesn't work? :/

It built fine here. I don't think it matters how the system xorg-server was built, the tigervnc build process does not use it. And fltk isn't used by the server anyway, only by the viewer.

There is a way to have cmake spit out more info during compiling, but I'll have to figure out how to do it from an ebuild. Edit: Ok, it's very simple - near the top of the ebuild where you see CMAKE_IN_SOURCE_BUILD=1, just add CMAKE_VERBOSE=1

----------

## Havin_it

Sorry to bear bad tidings   :Embarassed: 

Here's the couple of lines before the failure:

```
/usr/bin/cmake -E cmake_progress_report /tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0/CMakeFiles 43

[ 60%] Building CXX object common/fltk/src/CMakeFiles/fltk_static.dir/fl_overlay.cxx.o

cd /tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0/common/fltk/src && /usr/lib64/ccache/bin/x86_64-pc-linux-gnu-g++  -DPACKAGE_NAME=\"tigervnc\" -DPACKAGE_VERSION=\"1.2.0\" -DLOCALEDIR=\"/usr/share/locale\" -D__BUILD__=\"20120409\" -DHAVE_GNUTLS -DHAVE_CONFIG_H -DFL_LIBRARY  -DNDEBUG -march=native -O2 -pipe  -I/tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0/common/fltk -I/tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0 -I/usr/include/freetype2    -D_THREAD_SAFE -D_REENTRANT -o CMakeFiles/fltk_static.dir/fl_overlay.cxx.o -c /tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0/common/fltk/src/fl_overlay.cxx

Linking CXX static library libfltk_static.a

cd /tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0/common/fltk/src && /usr/bin/cmake -P CMakeFiles/fltk_static.dir/cmake_clean_target.cmake

cd /tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0/common/fltk/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/fltk_static.dir/link.txt --verbose=1

/usr/bin/ar cr libfltk_static.a  CMakeFiles/fltk_static.dir/Fl.cxx.o CMakeFiles/fltk_static.dir/Fl_Adjuster.cxx.o CMakeFiles/fltk_static.dir/Fl_Bitmap.cxx.o CMakeFiles/fltk_static.dir/Fl_Browser.cxx.o CMakeFiles/fltk_static.dir/Fl_Browser_.cxx.o CMakeFiles/fltk_static.dir/Fl_Browser_load.cxx.o CMakeFiles/fltk_static.dir/Fl_Box.cxx.o CMakeFiles/fltk_static.dir/Fl_Button.cxx.o CMakeFiles/fltk_static.dir/Fl_Chart.cxx.o CMakeFiles/fltk_static.dir/Fl_Check_Browser.cxx.o CMakeFiles/fltk_static.dir/Fl_Check_Button.cxx.o CMakeFiles/fltk_static.dir/Fl_Choice.cxx.o CMakeFiles/fltk_static.dir/Fl_Clock.cxx.o CMakeFiles/fltk_static.dir/Fl_Color_Chooser.cxx.o CMakeFiles/fltk_static.dir/Fl_Counter.cxx.o CMakeFiles/fltk_static.dir/Fl_Device.cxx.o CMakeFiles/fltk_static.dir/Fl_Dial.cxx.o CMakeFiles/fltk_static.dir/Fl_Double_Window.cxx.o CMakeFiles/fltk_static.dir/Fl_File_Browser.cxx.o CMakeFiles/fltk_static.dir/Fl_File_Chooser.cxx.o CMakeFiles/fltk_static.dir/Fl_File_Chooser2.cxx.o CMakeFiles/fltk_static.dir/Fl_File_Icon.cxx.o CMakeFiles/fltk_static.dir/Fl_File_Input.cxx.o CMakeFiles/fltk_static.dir/Fl_Group.cxx.o CMakeFiles/fltk_static.dir/Fl_Help_View.cxx.o CMakeFiles/fltk_static.dir/Fl_Image.cxx.o CMakeFiles/fltk_static.dir/Fl_Input.cxx.o CMakeFiles/fltk_static.dir/Fl_Input_.cxx.o CMakeFiles/fltk_static.dir/Fl_Light_Button.cxx.o CMakeFiles/fltk_static.dir/Fl_Menu.cxx.o CMakeFiles/fltk_static.dir/Fl_Menu_.cxx.o CMakeFiles/fltk_static.dir/Fl_Menu_Bar.cxx.o CMakeFiles/fltk_static.dir/Fl_Sys_Menu_Bar.cxx.o CMakeFiles/fltk_static.dir/Fl_Menu_Button.cxx.o CMakeFiles/fltk_static.dir/Fl_Menu_Window.cxx.o CMakeFiles/fltk_static.dir/Fl_Menu_add.cxx.o CMakeFiles/fltk_static.dir/Fl_Menu_global.cxx.o CMakeFiles/fltk_static.dir/Fl_Multi_Label.cxx.o CMakeFiles/fltk_static.dir/Fl_Native_File_Chooser.cxx.o CMakeFiles/fltk_static.dir/Fl_Overlay_Window.cxx.o CMakeFiles/fltk_static.dir/Fl_Pack.cxx.o CMakeFiles/fltk_static.dir/Fl_Paged_Device.cxx.o CMakeFiles/fltk_static.dir/Fl_Pixmap.cxx.o CMakeFiles/fltk_static.dir/Fl_Positioner.cxx.o CMakeFiles/fltk_static.dir/Fl_Printer.cxx.o CMakeFiles/fltk_static.dir/Fl_Preferences.cxx.o CMakeFiles/fltk_static.dir/Fl_Progress.cxx.o CMakeFiles/fltk_static.dir/Fl_Repeat_Button.cxx.o CMakeFiles/fltk_static.dir/Fl_Return_Button.cxx.o CMakeFiles/fltk_static.dir/Fl_Roller.cxx.o CMakeFiles/fltk_static.dir/Fl_Round_Button.cxx.o CMakeFiles/fltk_static.dir/Fl_Scroll.cxx.o CMakeFiles/fltk_static.dir/Fl_Scrollbar.cxx.o CMakeFiles/fltk_static.dir/Fl_Shared_Image.cxx.o CMakeFiles/fltk_static.dir/Fl_Single_Window.cxx.o CMakeFiles/fltk_static.dir/Fl_Slider.cxx.o CMakeFiles/fltk_static.dir/Fl_Table.cxx.o CMakeFiles/fltk_static.dir/Fl_Table_Row.cxx.o CMakeFiles/fltk_static.dir/Fl_Tabs.cxx.o CMakeFiles/fltk_static.dir/Fl_Text_Buffer.cxx.o CMakeFiles/fltk_static.dir/Fl_Text_Display.cxx.o CMakeFiles/fltk_static.dir/Fl_Text_Editor.cxx.o CMakeFiles/fltk_static.dir/Fl_Tile.cxx.o CMakeFiles/fltk_static.dir/Fl_Tiled_Image.cxx.o CMakeFiles/fltk_static.dir/Fl_Tooltip.cxx.o CMakeFiles/fltk_static.dir/Fl_Tree.cxx.o CMakeFiles/fltk_static.dir/Fl_Tree_Item_Array.cxx.o CMakeFiles/fltk_static.dir/Fl_Tree_Item.cxx.o CMakeFiles/fltk_static.dir/Fl_Tree_Prefs.cxx.o CMakeFiles/fltk_static.dir/Fl_Valuator.cxx.o CMakeFiles/fltk_static.dir/Fl_Value_Input.cxx.o CMakeFiles/fltk_static.dir/Fl_Value_Output.cxx.o CMakeFiles/fltk_static.dir/Fl_Value_Slider.cxx.o CMakeFiles/fltk_static.dir/Fl_Widget.cxx.o CMakeFiles/fltk_static.dir/Fl_Window.cxx.o CMakeFiles/fltk_static.dir/Fl_Window_fullscreen.cxx.o CMakeFiles/fltk_static.dir/Fl_Window_hotspot.cxx.o CMakeFiles/fltk_static.dir/Fl_Window_iconize.cxx.o CMakeFiles/fltk_static.dir/Fl_Wizard.cxx.o CMakeFiles/fltk_static.dir/Fl_XBM_Image.cxx.o CMakeFiles/fltk_static.dir/Fl_XPM_Image.cxx.o CMakeFiles/fltk_static.dir/Fl_abort.cxx.o CMakeFiles/fltk_static.dir/Fl_add_idle.cxx.o CMakeFiles/fltk_static.dir/Fl_arg.cxx.o CMakeFiles/fltk_static.dir/Fl_compose.cxx.o CMakeFiles/fltk_static.dir/Fl_display.cxx.o CMakeFiles/fltk_static.dir/Fl_get_key.cxx.o CMakeFiles/fltk_static.dir/Fl_get_system_colors.cxx.o CMakeFiles/fltk_static.dir/Fl_grab.cxx.o CMakeFiles/fltk_static.dir/Fl_lock.cxx.o CMakeFiles/fltk_static.dir/Fl_own_colormap.cxx.o CMakeFiles/fltk_static.dir/Fl_visual.cxx.o CMakeFiles/fltk_static.dir/Fl_x.cxx.o CMakeFiles/fltk_static.dir/filename_absolute.cxx.o CMakeFiles/fltk_static.dir/filename_expand.cxx.o CMakeFiles/fltk_static.dir/filename_ext.cxx.o CMakeFiles/fltk_static.dir/filename_isdir.cxx.o CMakeFiles/fltk_static.dir/filename_list.cxx.o CMakeFiles/fltk_static.dir/filename_match.cxx.o CMakeFiles/fltk_static.dir/filename_setext.cxx.o CMakeFiles/fltk_static.dir/fl_arc.cxx.o CMakeFiles/fltk_static.dir/fl_arci.cxx.o CMakeFiles/fltk_static.dir/fl_ask.cxx.o CMakeFiles/fltk_static.dir/fl_boxtype.cxx.o CMakeFiles/fltk_static.dir/fl_color.cxx.o CMakeFiles/fltk_static.dir/fl_cursor.cxx.o CMakeFiles/fltk_static.dir/fl_curve.cxx.o CMakeFiles/fltk_static.dir/fl_diamond_box.cxx.o CMakeFiles/fltk_static.dir/fl_dnd.cxx.o CMakeFiles/fltk_static.dir/fl_draw.cxx.o CMakeFiles/fltk_static.dir/fl_draw_image.cxx.o CMakeFiles/fltk_static.dir/fl_draw_pixmap.cxx.o CMakeFiles/fltk_static.dir/fl_engraved_label.cxx.o CMakeFiles/fltk_static.dir/fl_file_dir.cxx.o CMakeFiles/fltk_static.dir/fl_font.cxx.o CMakeFiles/fltk_static.dir/fl_gtk.cxx.o CMakeFiles/fltk_static.dir/fl_labeltype.cxx.o CMakeFiles/fltk_static.dir/fl_line_style.cxx.o CMakeFiles/fltk_static.dir/fl_open_uri.cxx.o CMakeFiles/fltk_static.dir/fl_oval_box.cxx.o CMakeFiles/fltk_static.dir/fl_overlay.cxx.o CMakeFiles/fltk_static.dir/fl_overlay_visual.cxx.o CMakeFiles/fltk_static.dir/fl_plastic.cxx.o CMakeFiles/fltk_static.dir/fl_read_image.cxx.o CMakeFiles/fltk_static.dir/fl_rect.cxx.o CMakeFiles/fltk_static.dir/fl_round_box.cxx.o CMakeFiles/fltk_static.dir/fl_rounded_box.cxx.o CMakeFiles/fltk_static.dir/fl_set_font.cxx.o CMakeFiles/fltk_static.dir/fl_set_fonts.cxx.o CMakeFiles/fltk_static.dir/fl_scroll_area.cxx.o CMakeFiles/fltk_static.dir/fl_shadow_box.cxx.o CMakeFiles/fltk_static.dir/fl_shortcut.cxx.o CMakeFiles/fltk_static.dir/fl_show_colormap.cxx.o CMakeFiles/fltk_static.dir/fl_symbols.cxx.o CMakeFiles/fltk_static.dir/fl_vertex.cxx.o CMakeFiles/fltk_static.dir/ps_image.cxx.o CMakeFiles/fltk_static.dir/screen_xywh.cxx.o CMakeFiles/fltk_static.dir/fl_utf8.cxx.o CMakeFiles/fltk_static.dir/fl_encoding_latin1.cxx.o CMakeFiles/fltk_static.dir/fl_encoding_mac_roman.cxx.o CMakeFiles/fltk_static.dir/flstring.c.o CMakeFiles/fltk_static.dir/scandir.c.o CMakeFiles/fltk_static.dir/numericsort.c.o CMakeFiles/fltk_static.dir/vsnprintf.c.o CMakeFiles/fltk_static.dir/xutf8/is_right2left.c.o CMakeFiles/fltk_static.dir/xutf8/is_spacing.c.o CMakeFiles/fltk_static.dir/xutf8/case.c.o CMakeFiles/fltk_static.dir/xutf8/utf8Input.c.o CMakeFiles/fltk_static.dir/xutf8/utf8Utils.c.o CMakeFiles/fltk_static.dir/xutf8/utf8Wrap.c.o CMakeFiles/fltk_static.dir/xutf8/keysym2Ucs.c.o CMakeFiles/fltk_static.dir/fl_utf.c.o CMakeFiles/fltk_static.dir/fl_call_main.c.o

/usr/bin/ranlib libfltk_static.a

make[2]: Leaving directory `/tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0'

/usr/bin/cmake -E cmake_progress_report /tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0/CMakeFiles  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

[ 60%] Built target fltk_static

make[1]: Leaving directory `/tmp/portage/net-misc/tigervnc-1.2.0/work/tigervnc-1.2.0'

make: *** [all] Error 2

emake failed

 * ERROR: net-misc/tigervnc-1.2.0 failed (compile phase):

 *   Make failed!

 * 

 * Call stack:

 *     ebuild.sh, line   85:  Called src_compile

 *   environment, line 3231:  Called cmake-utils_src_compile

 *   environment, line  894:  Called _execute_optionaly 'src_compile'

 *   environment, line  401:  Called enable_cmake-utils_src_compile

 *   environment, line 1560:  Called cmake-utils_src_make

 *   environment, line  911:  Called die

 * The specific snippet of code:

 *           emake VERBOSE=1 "$@" || die "Make failed!";
```

Would you rather continue this on the bug?

----------

## Gusar

I can't see the error in the output you posted. What are your MAKEFLAGS? Switch them to -j1 instead, on one occasion this helped me to see the compile failure. Also, maybe post a longer snippet of the output, but not directly here, use pastebin.

About continuing in the bug or here, idk, does it really make a difference?

----------

## Havin_it

Update: Success   :Very Happy: 

I scanned the log further up and found the problem, my system VM was set to sun-jdk-1.6. So actually it was the Java part that had failed (because it sets "-source 1.7 -target 1.7" for javac). I changed to oracle-jdk-1.7 and it worked fine. I guess the ebuild should check for this though, ideally.

I should also mention that I'm currently still on xorg-server-1.11 as 1.12 isn't building for me at the moment (bug here). I realise that in my case it probably doesn't matter, but might version mismatches like that be a problem for people with USE="xorgmodule"?

----------

## Gusar

 *Havin_it wrote:*   

> Update: Success 

 

Cool!   :Cool: 

 *Havin_it wrote:*   

> I guess the ebuild should check for this though, ideally.

 

Hmm, the ebuild does have >=virtual/jdk-1.7. I guess the problem is if you have both 1.6 and 1.7 installed. Can an ebuild check which is the system VM? And potentially even switch?

This java stuff is not something I usually deal with - if you checked, my Arch Linux package doesn't even build the java viewer  :Smile: . It's because I haven't bothered, and no Arch user has asked for it.

Edit: If I'm right, just inheriting the java-pkg-opt-2 eclass should be enough.

 *Havin_it wrote:*   

> I realise that in my case it probably doesn't matter, but might version mismatches like that be a problem for people with USE="xorgmodule"?

 

Yep, the xorgmodule needs to have the same ABI as the running server. There is XSERVER_VERSION at the top of the ebuild, if your system xorg is 1.11.2, just set the variable to that. Minor version differences (1.11.2 vs 1.11.4) don't matter, but major versions (1.11 vs 1.12) do if ABI differs between them. This only matters for xorgmodule, not for Xvnc.

Shouldn't be a problem in practice, because I marked the ebuild ~arch, and well, what's in ~arch is xorg-server-1.12.0-r1

----------

## Havin_it

 *Gusar wrote:*   

> This java stuff is not something I usually deal with - if you checked, my Arch Linux package doesn't even build the java viewer . It's because I haven't bothered, and no Arch user has asked for it.

 

Yeah, I guess it's kinda hard to compare Arch with Gentoo here because Gentoo expects choice, with Arch you take what you're given or do your own fork on aur (or locally). I'm glad you're giving it a go for us, anyway   :Very Happy: 

The use-case for the Java viewer is a funny one too. I guess it mostly belongs with "server" because the typical use would be to serve it as an applet from the same server that runs the vnc server (e.g. as my Arch box is a LAN-only client, it won't need the Java viewer). Then again, maybe there are folks who prefer it to the C client...?

 *Gusar wrote:*   

> Shouldn't be a problem in practice, because I marked the ebuild ~arch, and well, what's in ~arch is xorg-server-1.12.0-r1

 

Oh, that's not nearly OCD enough an attitude for Portage  :Wink:   I'm proof: running ~arch, but not yet able to upgrade to xorg-server-1.12. Then there are those that are blocking the latest version for some reason: graphics driver issues for example (been there!).

Certainly, keyword is nowhere near a guarantee of what version of xorg is installed. Two approaches here: you can just make a hard dependency on a certain version of xorg when USE="xorgmodule" (not that elegant but little work), or detect the xorg version and build accordingly.

In this case, as you mentioned, tigervnc-1.2.0[xorgmodule] needs xorg-server-1.12 anyway, but newer versions of xorg-server (maybe new ABI versions) may appear before there's a new version of tigervnc, so the ebuild should allow for that.

----------

## Gusar

 *Havin_it wrote:*   

> because Gentoo expects choice

 

Yep. It was quite funny when I started updating the ebuild. At first I just added pam and gnutls to RDEPEND. Then I was like "hey, wait a minute... something feels weird here". And then made them selectable with USE flags.

 *Havin_it wrote:*   

> you can just make a hard dependency on a certain version of xorg when USE="xorgmodule" 

 

That's how it works now:

```
      xorgmodule? ( ~x11-base/xorg-server-${XSERVER_VERSION} )
```

 *Havin_it wrote:*   

> In this case, as you mentioned, tigervnc-1.2.0[xorgmodule] needs xorg-server-1.12 anyway

 

Only because I've set it so. But change XSERVER_VERSION at the top of the ebuild to 1.11, 1.10 or something even earlier, and you'll get a libvnc.so module that works with that particular xserver.

 *Havin_it wrote:*   

> but newer versions of xorg-server (maybe new ABI versions) may appear before there's a new version of tigervnc

 

That's already the case. Tigervnc as such supports only up to 1.10. Support for later versions is provided by the xorg111 and xorg112 patches, which come from Fedora: http://pkgs.fedoraproject.org/gitweb/?p=tigervnc.git;a=tree

So when xorg-server-1.13 is released, tigervnc will block the update to it. You can either accept that and wait for a xorg113 patch, or deactivate xorgmodule.

----------

## Havin_it

Thanks for the further illumination of the matter. I'm certainly happy enough to let the xorg-server version be dictated by tigervnc on the server (since it' the only X server that gets used), though it might be more of an issue on client machines where it's actually worth having newer graphics drivers (usually).

Speaking of clients, I just applied your ebuild on my netbook and it worked fine, although I do see one possible regression (scrollbars including horizontal on a same-width fullscreen display, instead of cursor-led scrolling) which I'll file something upstream about in due course. That one will not be too good for my Arch laptop because there I use it fullscreen on its own in a DM-less session.

----------

## Gusar

 *Havin_it wrote:*   

> scrollbars including horizontal on a same-width fullscreen display, instead of cursor-led scrolling

 

Hmm, I've only seen scrollbars when they were really needed (remote display has a higher resolution than the local one), but yeah, that's a difference between the old viewer and the new fltk-based one - the old one would use panning instead of scrollbars. I must say I prefer panning, it's quicker to navigate.

----------

## Havin_it

Ditto, without the ability to pan I feel like I'm getting RSI already  :Sad: 

The vnc display is set to 1024x786, and my netbook screen is 1024x600. So the horizontal bar is there to scroll exactly the width taken up by the vertical one  :Sad: 

----------

## Gusar

 *Havin_it wrote:*   

> So the horizontal bar is there to scroll exactly the width taken up by the vertical one 

 

Yeah, I figured that's the case. It does suck. The one consolation I can give you is that tigervnc supports xrandr. First define a new mode (I got the numbers with cvt), then add it do the display, and finally switch to it:

```
xrandr --newmode 1024x600 49.00  1024 1072 1168 1312  600 603 613 624 -hsync +vsync

xrandr --addmode default 1024x600

xrandr -s 1024x600
```

Also, I'm going through the tigervnc bugtracker, mainly to see if there's something about panning already there. Haven't seen that yet, but there's some interesting stuff there - this, for example: http://sourceforge.net/tracker/?func=detail&aid=3486983&group_id=254363&atid=1126849. I think I'm going to play around with it  :Smile: . Edit: It doesn't really work that well. It's quite random in choosing when to switch and what resolution to switch to. Sometimes forcing a refresh helps, but there's still randomness. And on a 1024x600 display, going fullscreen will switch to 1024x576.

----------

## Havin_it

Thanks for the xrandr tip -- this was actually the reason I switched to tiger originally, though I never knew I could actually add a mode. That makes things a lot better.

As for the SF tracker, I decided to add my own request but the one you linked is also interesting. If it works out, think we'll see it in the Java viewer too?   :Cool: 

----------

## Gusar

Bumping this thread for something quite awesome: Panning was added to the fltk viewer!! - http://thread.gmane.org/gmane.network.vnc.tigervnc.scm/1359  :Very Happy:   :Very Happy: 

However, I'm not sure I'll go into creating a live ebuild. I did a live PKGBUILD on Arch - https://aur.archlinux.org/packages.php?ID=25408.

Would be cool if they made a new release soon, the current svn is awesome, it's the only vnc implementation capable of fluently displaying fullscreen video. What would also be cool is if the fltk guys committed more of the tigervnc patches and made a release.

----------

