murrant's blog

    murrant's picture

    Whats up in KDE Remote Desktop Client?

    2010
    14
    May

    KDE SC 4.5 is coming up around the bend and I'm posting about some of the new exciting (to somebody I hope) features for KRDC. For KRDC 4.4 we introduced a new gui layout. I have been away from the keyboard for awhile and finally have been able to hammer out some bugfixes (1,2,3,4) for those new features as well as some older bugs to both 4.5 and 4.4.3 (for the most part).

    Well what are these new features I'm talking about? Well for starters I've taken that drab list of connections in the center of KRDC and made it much more useful by adding statistics and other information. You can sort your list by these different pieces of information and it will save your sort column/order for the next time you open it so you can keep it sorted the way you like. Lets take a look:

    I thought it would be fun to show KRDC with some non-default settings. From left to right, we have a bookmark icon that you can use to toggle favorites, the name of the connection (user modifiable), last connection date/time, the number of times you connected this remote connection, when the connection was created, and how this entry came to be listed here (current sources are History, Bookmarks, and Zeroconf if supported). Now most of this isn't useful till you've been collecting data for awhile, but I cheated, planning ahead I included the data collection for this into 4.4 so when you open 4.5, you should already have a pretty interesting view.

    We've also added a right click menu so you can access several useful items right from this screen:

    While I was fixing a window resizing bug for 4.5, I added some nice functionality for VNC users.

    Now you can have a VNC connection open up scaled to a specific resolution every time.

    Another thing I changed while working on the resizing bugs was the behavior when opening a new connection. One of the most annoying problems I've had with KRDC is it always seems to be maximized because it will try to resize the window to fit, then I click the fullscreen button anyway. Upon leaving fullscreen, I still have a maximized window covering up everything else. I thought of a way around this, we assume that if the desktop and the remote connection size match, the user wants to go into fullscreen mode. So with 4.5, it works something like this: open KRDC it is a nice compact window, open a connection and select the current screen resolution, the window immediately goes fullscreen, click the fullscreen button and it switches back to a nice small window again. So is this a good change or a bad change, please let me know, feedback is great!

    Unfortunately, during the 4.5 cycle I haven't had much time to hack, so these features will have to be pushed back:
    * In Progress: Connection status / reconnect screen
    * TODO: Unified fancy connection input line

    Feel free to contribute, I'm pretty easy to get a hold of ;) There have been several string changes, so thanks to all the translators. And finally, my apologies to any one having issues with KRDC crashing when closing VNC, it appears the VNC thread is not exiting sometimes and as of right now it is out of my expertize to fix it.

    I hope you enjoy the new changes, I have been happy with them in my own usage. Till next time.

    murrant's picture

    Krdc, How to Never Switch Out of Full Screen

    2009
    23
    Sep

    This is what full screen KRDC will look like in KDE SC 4.4:


    Jam-packed with new features.

    Hi, now that I have your attention, let me introduce myself. I'm Tony Murray and like many SysAdmins on Linux, I use KRDC on a daily basis and I am often connected to several servers simultaneously. KRDC is one of my most vital tools. I have some form of coding skills, mostly being schooled in Java, but there are many fundamental differences between C++ and Java so it is a hard learning experience. I have contributed some small bits of code to Plasma and the nowplaying applet (which I believe is almost obsolete). Then I finally got up the courage to work on something I've been wanting to tweak for a long time, KRDC. I love it so, but there have been many small pain points in using it to do my SysAdmin duties.

    It all started out with a small bug that I was occasionally hitting. I started reading through the code and also some C++/Qt books/apidocs to help me know what I'm doing better. After much learning, I finally had a patch to commit, I presented it to Urs Wolfer, the current maintainer of KRDC, and he happily asked if I could commit it. So commit I did, then my appetite got larger.

    One of my most wanted changes is the ability to switch sessions while I was in full screen mode, so I set out to try to make that happen. After a couple of weeks of casual hacking, I had something working and I posted to be reviewed. Urs was happy to see it and encouraged me to continue. After creating this, I realized that there were a few things about the gui design that were holding it back from acting like I thought it should and some things that were making the code overly complicated.

    I started thinking about what needed to happen to make things work better and before I knew it I was working on a redesign of the way new connections are handled in KRDC. After many posts to the KDE Usability board and conversations with Urs and others, we finally settled on a new design. Here is what the mock-up looked like:

    Urs was pretty excited about it and coded up an initial version in a few days, I worked on moving the Zercoconf stuff into the dockwidget. After several bug shakedowns, Urs finally committed his work to change the flow for new connections. I then started on my work with the full screen switching. Because I had it in mind while doing the new connection redesign I also added a button to allow creating new connections while in full screen. This added some complications as there was no synchronization between the KTabWidget that holds all of the RemoteViews and the KComboBox which allows you to switch while in full screen. So you could end up with some inconsistent situations. After debating a bit, I decided to create a model for the KTabWidget which I could supply to the KComboBox and then it would be done by Qt for me.

    Most of the big changes are behind us and we will be focusing on bug-fixing and polishing. I have plenty of small changes that in my mind to take KRDC to the next level and even more changes that I hope will come together for KDE SC 4.5 or later. One thing I'm imagining is something like Firefox's Awesome Bar.

    I hope you guys enjoy the new features and as always with new features please test and report bugs so we can have a great 4.4 release. :)

    Click through to see more screen shots of the new stuff in action...