TKLClient Core development - ideas and feedback please

Jeremy Davis's picture

Sorry about the huge post. Hopefully its worth the reading!

I fwould love to see a TKL Client (ie TKL Desktop OS) make it into the next TKL release, even if its only a base Client Core (in the same vane as the current TKL Core but with a Desktop GUI). Obviously we don't need to reinvent the wheel because there are literally hundreds of Linux Desktop distros out there. IMO it needs to be uniquely TKL - ie a minimalist Desktop OS aimed at developers and development (at least initially). I think it needs to be something that won't look out of place with TKL's current offerings (and the way things are shaping up - the gigantic upcoming release).

This idea has been discussed here on the forums a few times and I'd really like to run with it. I think the benefits of a fast, minimal desktop OS, which will run quickly and cleanly inside a VM (or on bare metal) with the base relevant tools pre-installed are clear. I imagine this may be especially useful for TKL/Linux newbs as well as developers and perhaps even a useful OS for Sys Admins that prefer Linux but are forced to work in a Win Desktop/Server environment.

I can also see that still having it available as a TKLPatch after official release (assuming lots aren't I!?) may be desireable. That way those that wish to run on bare metal can also have access to a GUI if they wish (by applying the Client patch to their desired ISO). A patch like this would probably want/need a little tweaking for that use scenario.

I have spent a considerable amount of time researching, playing, thinking and generally working on this idea. I currently have a prototype running inside a VM and I'm pretty happy so far. I have ideas for other stuff I'd like to do with it in the future (such as a specific TKL theme) but for now I'm focusing on the pragmatics.

The next step will be to finalise and post an intial prototype patch, which I hope to do sometime within the next few days (although could be up to a week). I anticipate that this will not be a final patch, rather it will be a work-in-progress; with insertions, deletions and modifications probably right up untill the patch deadline for the next release (mid to late Sept).

This brings me to the purpose of this post (besides letting you all know what I've been up to). I'd like some feedback and ideas about what you think should be included/removed/altered. Here's what I've got so far:

  • Base TKL Lucid Core OS with only very minor modifcation (retained all current services, eg Webmin, SSH, SFTP, WebShell etc) with
  • Desktop GUI:
    • X Window System (X11)
    • LXDM - LXDE graphical login manager
    • OpenBox Window Manager
    • Core LXDE (Lightweight X11 Desktop Environment) components (not full Lubuntu desktop) consisting of:
      • LXTerminal (Terminal)
      • LeafPad (Text Editor)
      • PCManFM (File Manager)
      • LXPanel (Panel - also handles menu)
      • and a few other bits...
    • TKL ConfConsole (running inside an LXTerm window) for networking - Its not a pretty GUI but I like it!
    • Firefox (Web browser - duh!)
I'm very happy with LXDE and am clear that's what I'd like to use for the desktop. IMO its a brilliant balance between performance and modern beauty (most other low resource GUIs look reminiscent of Win98 ie super ugly!). Other stuff I'm not so attached to and am open to suggestions.
I haven't included a GUI package management app (such as Synaptic). I intentionally haven't done that for 2 reasons. Firstly, TKL are appliances, designed for a specific purpose and hence shouldn't require extra packages. Secondly, as they are aimed more at developers (whom one would assume are at least relatively comfortable with the commandline) so using apt-get should be adequite.
I have a few specific questions for you all:
  • Should I remove some of TKL Core? If so why & what? If not why?
  • Do you think a specifc TKL GUI theme is important or will we look at that later and stick with LXDE default for now?
  • Is TKL ConfConsole running in a teminal window acceptable? (Like I said I actually quite like it!) Or should it contain a 'proper' GUI network manager? If so what? The main reason I didn't initially was that I wasn't sure which way to go, LXNM isn't in the Ubuntu repos (not sure what Lubuntu uses - I probably should check) and NM-applet pulls down most (if not all) of Gnome so is WAY overkill and I've got no experience with anything else.
  • Is Firefox ok as web browser? Or should we use Chromium (Lubuntu default)? Personally my preference is for Firefox, partially for familiarity, partially because of the add-ons I have come to expect/rely on. But its not all about me! I also noticed that in the Symfony patch thread there is discussion of a development client (GUI OS like I'm doing here) which is destined to have Firefox, Chromium and Opera. Should Client Core include all 3? Or is it better to keep it to just one? (With a TKL Client Testing Environment as a separate appliance with all 3 preinstalled)
  • Following on from the web browser question, should there be any browser add-ons included by default? If so which ones?
  • Do you agree with my decision on package management (ie no Synaptic)? If not why?
  • Do you agree with my decision to keep TKL default of a single (root) user?  Is that ok? Or should the TKLClient have an additional (non-root) user?
  • Should I include other apps in Client Core such as PDF reader (ePDFView?) Word Processor (Abiword?) and Spreadsheet (Gnumeric? - although not sure about that as I'd guess it'd pull down lots of Gnome dependencies which I'd rather avoid.)

In my openion , choosing firefox is right.

Whenever i heard about a minimalist LXDE distro , what came to my mind is these two distros

Check these LXDE implementations , it may help

Jeremy Davis's picture

Firstly for reading my big long thread! But also for your opinion and links. I haven't had a good read of them yet.

I've also added a question above about package management.

Jeremy Davis's picture

moonOS is a very attractive looking OS, I really like the look of E17 (Enlightenof ment) but I think LXDE serves the purpose of functional and somewhat familar desktop better. I did read that they also are experimenting with LXDE version but i couldn't find many details.

I didn't realise that the new PuppyLinux (LucidPup) is using LXDE but it doesn't really surprise me. I will investigate it some more to see what they have. I have used Puppy before but not this version (previously it was independant - now Ubuntu based as I'm sure you realised).

Both of these distros seem to be quite highly customised (despite being based on Ubuntu) so I'm not sure how we'll go borrowing off them too heavily. But good for ideas.

In a client machine , a non-root user is always preferred..

Again the question about synaptic package manager and abiword stuff depends on the customer category we are targetting. Adding more and more GTK application increases the need of more and more GTK libraries as you said.

epdf and abiword are good lightweight applications to get included in a typical lightweight client machine.

What is your openion about a LTSP server which can be used to boot diskless thin clients , and provide an LXDE environment on clients

Jeremy Davis's picture

I have heard of it but never used it. I was under the impression the default Ubuntu LTSP install used a Gnome desktop though? Using LXDE would definately be the go! If it doesn't use LXDE as default then that may be another good idea for a TKL appliance?

Jeremy Davis's picture

Still I think a regardless that its been dona already, a preconfigured TKL appliance that will do that out of the box would be pretty neat!

My openion

>> Should I remove some of TKL Core

Byobu terminal (I don't like it )

>> Do you think a specifc TKL GUI theme is important


>> Is TKL ConfConsole running in a teminal window acceptable?

yes, but can think of wicd . For wireless network connectivity, i think conconsole will not be enough. Wicd is available in debain repo.

>> should we use Chromium

AFAIK,  chromium is not mature


Liraz Siri's picture

We tried it out with the Lucid Beta and discovered a few serious issues with nested byobu sessions and resource usage. Personally I also found byobu somewhat distracting. I don't really want all of that information under my eyeballs when I'm trying to focus on something. Maybe that means I have some form of ADHD but removing byobu is easier than medicating so....
Jeremy Davis's picture

Byobu terminal (I don't like it )
I've left it in but disabled it. I quite like it but I don't like the increased resource usage implications. Perhaps for TKL Client I could/should remove it altogether?
>>Do you think a specifc TKL GUI theme is important
I've already got my son on the job. He has designed a brown themed (he looked at the TKL website and has tried to make it tie-in) background which I quite like. He is also going to do a TKL Menu button (to replace the LXDE logo). We thought perhaps just use the letters 'TKL' in a similar colour and font to the logo in the top left corner of the web page. I guess it doesnlt need to tie in with the web page colours but I thought that'd be a good start. Initially that is all I'll do I reckon (ie leave the rest of the LXDE default theme).
>>Is TKL ConfConsole running in a teminal window acceptable?
yes , but can think of wicd . For wireless network connectivity, i think conconsole will not be enough. Wicd is available in debain repo
Ahh, yes I've heard of wicd I'll consider that. Its also in the Lucid repo (just checked). Perhaos its worth including but disabling autostart, so that those that may need it can use it, but it's not in the way for other users.
>> should we use Chromium
AFAIK ,  chromium is not mature
Inclined to agree. I haven't used it much but from what I've read, although its quick, its also poorly optimised and and is very resource (especially CPU) intensive.
Thanks for your feedback and ideas :)

Yes, chromium starts very quickly .

Designing a new theme ... wow..  starting from scratch ?? or tweaking an existing theme ? 


Good luck !

Jeremy Davis's picture

So to start with it'll have just a custom TKL inspired background and menu button. I'll consider how much further I go once I have a patch released. AFAIK LXDE uses GTK2+ themes so there is plenty of ideas around to use as a base.

I'll post my son's prototype background for apraisal when I have a copy handy. It's fairly simple but looks pretty sweet. I suggested he start with looking at the TKL website. I think he's done a great job with the design but I'm not 100% about the brown (reminiscent of previous Ubuntu iterations) but I'm not sure if the new Ubuntu purple would be much better. We'll see...

Thanks for your encouragement.

I'm assuming that you have heard about , a place where we can get some FREE graphic materials . It may help to find the required icons for your theme .

Jeremy Davis's picture

I'd rather hear about something that I already know of, than not hear about it at all! Especially a resource as valuable as! I will have a look there for icons for sure.

For now though I think I will just get the initial prototype patch together and focus more on the theme then.

As an aside: the current theme I run on my desktop at home (Ubuntu 10.04) was cobbled together from a (slightly modified) GTK2+ theme and an (also modified) emerald theme. Both came from I'm pretty happy with it all but now I need a GDM theme that matches (I'm still using the default so its inconsistent). Problem is that I only remember it when I start up, then promptly get sidetracked. Oh well, one day!

Liraz Siri's picture

First of all, let me clarify how important these investigations are, even if it doesn't lead (yet) to a working product. Client side applications are definitely in TurnKey's future. There is a ton of excellent open source software on the client-side and there's no reason to limit TurnKey to server oriented apps. In fact, I think the project could get a big boost going after client side apps. For every guy or gal geeky enough to want to run a server I'll bet there are 10 geeks looking to harness open source to solve problems on the client-side.

If we follow the model we've been using for server oriented applications then identifying the core subset of essential features that will serve as the common ground for all other client-side applications is an important first step.

Kudos for JedMeister for taking the bulls by the horn on this one.

Now a bit of feedback regarding the specific points raised by JedMeister:

  • Core was optimized to be the common ground for server side applications. It actually might make a lot of sense to use a different subset of basic functionality for cilent-side applications. In my mind the main distinction between a server and the client is the mode of interaction. With a server you're usually interacting through the network so stuff like SSH and Webmin are useful. But a basic client doesn't need all of that so I would in fact seriously consider removing it and instead configuring the system via client-side GUIs instead. The devil is in the details though.
  • Most users of client-side TurnKey appliances are likely to be put off by a terminal application such as ConfConsole. I'd take a hard look at the alternatives before using it. Client-side configuration GUIs are often superior in terms of usability anyhow.
  • OTOH, I think it would be super neat if out of the box the client-side GUI was accessible through the network. This would allow you (for example) to run a client-side application in a thin-client type usage scenario which is useful for many things. For example, say you know enough about security to be a bit paranoid. If you stick client-side TurnKey desktop on a VM host running in a DMZ and you can browse the Internet through it instead of directly from your workstation. If an attacker manages to exploit your browser and hack their way to the operating system hosting it, you're local computer is still safe. For added safety you could use different client appliances for different applications (e.g., banking vs random web browsing). Since this is all running on your VM host you don't actually have to dedicate resources to running virtualization software and VMs on your local netbook/laptop. It's convenient.
  • There are several ways to implement remote connectivity of client-side applications. Last I researched this field one of the most interesting was NX technology.
  • Theming is not very important. I'd take care of this last after the core functionality is there. When we do get to it I would prioritize usability and performance over eye-candy and attractiveness though sometimes it's possible to get both and if so that would be awesome.
  • Chrome and FireFox are both good open source browsers. Currently Chrome still has an edge in some areas but FireFox is quickly catching up. If they were about equal technically I would go with FireFox on account of my preference for idealistic open source foundations over for-profit corporations.
  • Core client should not include more than one browser. We need to choose what we think is the best default. If users want another one, they can get it through the package management system.
  • I'd add ad blocking software by default to any browser we go with. That and maybe FlashBlock or equivalent. IMHO it improves the user experience substantially. Flash has major security issues. But it's a can of worms we need to support. With FlashBlock at least we can add some safety measures.
  • User friendly package management would probably be a useful feature for most of our audience and would help make TurnKey client appliances more useful out of the box to people who aren't comfortable in a command line. OTOH, I wouldn't include this at any cost. It depends on how much dependencies we're adding...
  • I strongly recommend against running client-side applications as root by default. Client-side applications such as browsers are often many orders of magnitude more complex than server-side software and so are very difficult to implement correctly. We need some security in depth here. This is also consistent with what we're doing with the server appliances. Sure, you log in as root by default into TurnKey but if you look at the running daemon processes you'll see they're usually not running as root unless they have to (e.g., Apache running as www-data. mysql running as user mysql, etc.)
  • I wouldn't include productivity apps in the Core Client as that goes well beyond the likely common ground for all future client-side applications. Later I'd look into making a separate client appliance for that stuff (e.g., based on the Core Client) - let's call it TurnKey Desktop...

Whew by now your eyes are probably as tired as my fingers!

Jeremy Davis's picture

As you may well have guessed (from the unmet timeframe) my intial frezy of activity on this patch has disapated but it has not been forgotten. Although I think it is highly unlikely it will make the cut for the  next release I will plod along and hope to post my 'progress so far' patch with a hope that others may have an interest and wish to also contribute.

Thanks for your feedback guys.

Jeremy Davis's picture

Reading these comments and thinking a bit more about it I think that there are probably 2 (maybe more?) subsets of potential TKL Client users, and hence 2 directions for TKL Client to consider. Both of these subsets of TKL clients would need to be Linux newb friendly from an Admin and end user perspective, but with differing target markets. I think the 2 angles are: A development 'work bench' type desktop, loaded with useful development GUI tools, aimed more at 'tech' people. And a more 'pure' client, ie a GUI desktop environment to acheive a specific aim with the general public as the end user.

Thinking about it that way, makes me think that the TKL Core needs to start with stripping much of the current TKL Core from it and adding a very minimal amount on top of that.

Here's what I'm thinking (now) for TKL Client Core:

  • Remove Webmin & Webshell, I'm not completely convinced that we should remove SHH & SFTP but perhaps (as I still think they can be very handy fro remote admin & assistance).
  • Basic minimal LXDE desktop (as above - including LXDM probably) with a GUI network manager (Wicd seems a likely candidate at this point, although not sure how it goes handling ethernet?)
  • Web browser - Firefox I reckon
  • Synaptic Package manager
  • A basic, simple and clean theme, perhaps available in 3 different colours (but obviously this bit is least important ATM)

Anyway, I think this project will be quite a while away before its ready to be released as an appliance. If anyone else feels motivated, don't be scared to step up and have a crack.

Adrian Moya's picture

I've finished reading all this thread. I think I'm getting the idea of the TKL Client Core. Liraz hit some important points in here, which I was about to comment, but he already did in the difference between a server and a client management. I'll try to get out this one for the TKL 10.04 release. I'll be working on it a be in touch in this thread with questions/suggestions. 

I like chromium as web browser, for me it has been very stable, but I don't play to much with it, ie flash etc. I completely replaced firefox on my day to day usage. But when it comes to debug ajax/javascript/css, I have to go back to my old firefox. I feel it's too slow, but ok, that would be the default. 

In respect of a package manager, I'll research a bit more. I would be confortable with command line, but then again, the target will be people afraid of messing up in the console. 

Regarding remote conectivity, I'd go with a terminal services client. Because almost all windows pc have that client installed. Going with NX will add the need to install the client. I've tryed NX from Nomachine with success and find it wonderfull. But its a matter of simplicity. But I'm open for suggestions here.


On my job I had to deploy several ubuntu workstations for a bank, but they couldn't get rid of M$ Office. Those huge excel files! no medium to big enterprise can live without them! It's a permanent damage that M$ has made to the industry. So with that requirement, I tested ways to seamlessly integrate those apps in the ubuntu desktop. To make the history short, they ended up installing XP again. There was a lot of resistant to the change, mainly because of office files. (and they couldn't live without their viruses). But in that period of time, I ended up researching what it's call VDI and ended testing Ulteo Open Virtual Desktop. I don't know if this kind of appliance is pointing to something like this (or like Citrix XenApp).

To get more the idea, which kind of appliances can you imagine could be based on TKLClient Core? I'm a bit retired of client apps. Beside my Kmymoney which replaced Quicken for me, the other client app I use is chromium! 

Jeremy Davis's picture

but off the top of my head the packages I installed to get the minimalist desktop (without web browser, network manager, package manager etc) were:

apt-get install xorg lxde lxdm

It still pulls down a bit of stuff but not too bad in comparison to Gnome or KDE. Synaptic is in the repos, Chromium is too I think (AFAIK its the default browser for Lubuntu - LXDE based Ubuntu). From what I can gather LXDE has its own network manager (LXNM) but its not in the repos. Its probably worth checking what Lubuntu uses. Wicd seems like quite a good choice but is geared towards wireless connections and not sure how it goes with ethernet. I guess that will need a little testing?

As stated above, my preference for web browser is Firefox, but I'm open to Chromium as a possibility.

Jeremy Davis's picture

And I was on the right track. The most recent thing I had written (I think I'd played some more since, but didn't write it down) was xorg, lxde, lxdm along with firefox and epdfview (a nice lightweight pdf viewer). This still pulls down 200MB+ according to my notes! Although I included mention of plans to whittle it down, either by installing packages individually (rather than the metapackages) and thus not installing unneeded ones. Then installing the Client-Core using each individual package and/or by creating a specific tkl-core-client metapackage with just the bare essentials (if you install using a metapackage and then remove that metapackage and some of the other packages, Ubuntu will suggest you remove the remaining ones with autoremove. Not what we want). I'm not sure what the desired method would be.

Unfortunately despite the fact I thought I made pretty good notes, they aren't that great, so hopefully I didn't get your hopes up.

Dan Robertson's picture

Here are my thoughts:

The immediate use that comes to mind is for a web development workstation that includes a lamp stack along with an ide,phpunit, xdebug, multiple browsers, etc. as was discussed in the Symfony appliance thread.

Personally, I would want the desktop to be similar to standard Ubuntu, i.e. with Gnome/Nautilus, though there is obviously a lot of unnecessary cruft in the default Ubuntu desktop package.  I don't have as much experience with the other desktop alternatives, but I think that having something such as LXDE may put off the average user.  You may want to target that user with applications on top of your core.  Also, if someone uses this to test drive Ubuntu, they would be getting the same basic interface if they decided to convert to the full-fledged Ubuntu installation.

In terms of browser for the core, I would go with Firefox for the simple fact of Adblock + NoScript.  There are many sites that I couldn't imagine visiting without them, and it would be safer for the online banking use mentioned earlier.

I do like the idea of having a remote connectivity feature and agree with adrianmoya that RDP would be a plus, even if it isn't the more technically advanced protocol.  I would be connecting from different Windows systems and wouldn't always have the client installed.  If you do go with something that requires a client, I would make it available to install directly from the appliance.  This could be from a cifs share or even via http, as long as it could be retrieved by a Windows device easily.

Adrian Moya's picture

While I don't think something like LXDE will put the average user off (I havent tested it yet), if we are going to make appliances of software based on gnome libraries, probably we'll end up with the whole gnome-desktop downloaded. So it makes sense to try a minimal gnome installation. 

That's why I feel important to take a small look at the future of this kind of appliances. This would also help selecting the defaults components of core. I may be very server-oriented in my thinking, so maybe Jed that proposed the initial idea could explain some use cases. Or Liraz which seems to have a vision about this one (I'm sure its a superpower, these guys won't fool me with that tkl-core-developer-alter-ego). 

I'll be playing today with this one :)

Jeremy Davis's picture

actually if anything I think Win users would embrace it (very much like classic or XP desktop/GUI - but prettier than classic). From memory (sorry I still haven't double checked for you, like I said I would) LXDE pulls down about a quarter of what the Gnome desktop does. Although in fairness 'ubuntu-desktop' is pretty much the full standard Ubuntu install whereas LXDE is very minimal, comparing 'lubuntu-desktop' to 'ubuntu-desktop' would be a fairer comparison. Again though this was part of my rationale for using LXDE, it is available as a minimal desktop metapackage already (alhough maybe Gnome is too, I never actually checked). Trying to keep in the minimalist spirit of TKL (but with a keen eye for usability and performance) I thought LXDE was the ideal desktop (and Liraz agreed somewhere here on the forums FWIW). I think its a nice balance between asthetics and performance (it blows the doors off Gnome & KDE performance wise - I have it running on an old Dell laptop, XP is painful, Ubuntu w/Gnome is useable but Ubuntu with LXDE you wouldn't even recognise it as the same machine!). Also as it use GTK+ many Gnome apps seem to work ok with minimal dependancies - although some such as NM-applet (Gnome Network manager) pull down huge chunks of dependancies.

Please be aware though that this is all anecdotal and from memory and may well be tainted with large does of opinion not founded in reality :)

I won't promise anything (because I rarely seem to live up to my TKL promises) but I'll try to unearth some of the stuff i did around this for you tomorrow Adrian. Good luck mate!

Dan Robertson's picture

Sounds good. I honestly have never heard of LXDE before and didn't see Lubuntu anywhere on Ubuntu's derivative pages:

Jeremy Davis's picture

although apparently Canonical have given it some level of approval (hence the fact that it is allowed to continue being called Lubuntu when many other buntus have been told to rename or risk the wrath of Shuttleworth).

FYI here are some links:
The LXDE version isn't quite as polished as the Lubuntu version (as it just has standard LXDE artwork etc.) but functionally they should be the same because AFAIK they are both just metapackages using the standard Ubuntu repos (core LXDE packages have been in Ubuntu for a while, but only since 10.04 have the majority been included - and hence Lubuntu be possible from just Ubuntu repos).
Liraz Siri's picture

I've used LXDE on a media server I set up from a very old machine I found in the basement after my previous media box suffered a fatal meltdown. Poor little thing had just 256MB of RAM so running GNOME on it was out of the question (I tried). LXDE saved the day. I just published a blog post about that. It's nice!

We need to make the distinction between applications that depend on GTK2 and friends vs applications that actually depend on gnome/libgnome. Some applications which you might think of as part of GNOME don't actually depend on it and will happily run on an alternative desktop such as KDE or ... LXDE.

Granted LXDE isn't as polished or fully featured as GNOME (or KDE) but it's not bad. The main challenge is integrating the components that will work well with LXDE for a particular usage scenario. A regular user might have a bit of trouble with that. But like mighty mouse, TurnKey comes in to save the day!

In general, the less resources your windowing environment takes the more resources you have for the applications themselves, especially on low-end computers (e.g., netbooks).

Another way to approach this would be to do several Core client type appliances. That way if you do need/want GNOME-based system, you can start from a TurnKey GNOME Core, if you want a KDE-based system you can start from TurnKey KDE Core, etc.

The advantage here would be that appliance developers are then free to choose the client Core that is best aligned for the usage scenario they are trying to solve.

I still think we should strive for some degree of standardization, so users can expect to be able to take advantage of standard features such as:

  • TKLBAM: there's nothing server specific about TKLBAM. We could even build a client-side GUI for it. I don't have much experience with GTK but I did play with Tk back in the day so I might take a stab at this sometime. Anyone else who is familiar with GUI programming is welcome to step in and help.

    The potential is tantalizing, imagine loosing your netbook and being able to restore its contents to a virtual machine on your desktop to access them. Or even better, since there's no friction, you could create an instance of your old netbook in the cloud, access the stuff you need and then terminate the instance an hour later (costing you just a few cents). That way you wouldn't even need to install any virtualization software on your system. You could do it all through a web browser, and you could use TurnKey Hub to do it.  Then a few days later you finally get a new replacement netbook and after syncing automatically with the cloud backup it becomes indistinguishable from your old system.

    That's probably just the tip of the iceberg. Once we put this into the hands of users they'll probably discover a zillion other things this sort of functionality could be useful for.

    Another use case TKLBAM enables is migration across versions (e.g., Lucid to the next LTS), across distributions (e.g., Debian to Ubuntu and back), and even across hardware architectures (e.g., 32-bit to 64-bit or even other architectures such as ARM if we ever support them)
  • Remote desktop: I agree with Adrian that Rdesktop will be a good protocol to support as this is the closest thing to a standard thanks to Microsoft. Last time I took a look at NX it was pretty impressive so I get the feeling it will have a part to play in enabling this sort of functionality.

    In my mind the point in supporting remote desktops to begin with is that it enables useful usage cases like remote support and cloud-enabling a huge wealth of client-side software. 

    Also, I get the feeling we'll eventually work out how to enable NAT-traversable remote access so you'll be able to log into client-side machines securely from anywhere. That could be a big deal.
Jeremy Davis's picture

Now that sounds absolutely killer! I love the plan. Even if you forget your netbook, or didn't think you'd need it that day but then realise you do. No probs, load it up in a VM or even in the cloud. Now how cool is that! Yeah!

The options for migration are awesome too. When I migrate Ubuntu (desktop) I usually backup all my data then do a clean install then spend half a day getting it how I want. The main reason is because I've had a number of nasty experiences with upgrading Ubuntu (the first one, didn't include a backup first - ouch!) This way you could just 'drop' all your stuff straight into a new version, any sign of trouble, migrate back! Yay!

As to remote desktop, I must admit that that is probably the go. And yes a remote desktop scenario is infinitely more useful that just SSH when we are talking about a Client/Desktop distro.

Jomy Muttathil's picture

I just installed LXDE on TKL Lucid Core.

This is my first time using LXDE and I am very impressed and think it is the perfect fit for a TKL client.  I am primarily a Mac user with a background in web and graphic design and was not put off by the "prettiness" of the system or it's difference from standard Ubuntu desktop.

I am also excited by the idea of using TKLBAM to keep a desktop and laptop in sync.

Jeremy Davis's picture

BTW if you want a 'full' LXDE desktop environment (until we get TKL client sorted out) you can try Lubuntu (on top of TKL Lucid Core). The metapackage to install is 'lubuntu-desktop'. It has everything you need for a full desktop (unlike the 'lxde' package which is very minimal). I haven't tried it myself, but it does include a few Gnome bits and pieces (eg NM-applet - Gnome Network Manager) so I imagine it would be quite large (see full dependancy list here). It includes Chromium as the default web browser which is interesting for an Ubuntu variant. I'm not quite sure about Chromium yet, especially for mobile computing - while it is fast, the trade-off is significantly increased power usage (beyond whats reasonable for the speed increase IMO) and hence shorter battery life. I have read that this is due to poor optimisation which will catch up when development slows (apparently the devs are currently focusing on speed and not really considering CPU usage). We'll see I guess, and in fairness I haven't double checked that for a while now. The Lubuntu package also includes some specific artwork which I'd be interested to check out.

Otherwise I think 'lxde' is a good start if you want to play with some ideas of what would be good for TKL client. I think its cool to to have input from you as a Mac user. I have historically been a Windows user, but now consider myself more a Linux (Ubuntu) user. But Macs I have had very little to do with, so that perspective is really useful I think when we are trying to build an appliance such as this.

Liraz Siri's picture

As Adrian pointed out earlier the discussion would benefit from a list of usage scenarios we could build on top of this stuff. So off the top of my head here's a random list of ideas for non-server usage scenarios TurnKey could satisfy in the future:

  • TurnKey "Chromium": a minimal system optimized for browsing the web and running webapps. (e.g., the online banking usage scenario)
  • Media center: best of breed open source software optimized for use as a home entertainment / media center. Sort of the same usage scenario as Apple TVbut open source. None of the proprietary restrictions.
  • Development SDKs: Every year tens of thousands of people start learning a new language or development framework. One of the first things they all have to figure out is which collection of open source tools are available to help get them started. Imagine if TurnKey provides ready-to-use SDKs preloaded with all the tools you could want for web development, Gnome, KDE, Java (e.g., Eclipse),Android, even Mono/Moonlight.
  • Penetration testing: An important part of improving security involves doing penetration tests to try to simulate an attack by the bad guys. These usually require lots of specialized tools for information gathering, scanning (e.g., nmap), vulnerability assessment and exploitation (e.g., metasploit). Here too there is a key problem of aiding discovery and integrating the components to work nicely together. The best known distro in this space is BackTrack which is also based on Ubuntu, and I'd love to join forces with them, but even if they don't collaborate with us, we can take the best ideas and build an appliance which leverages the standard TurnKey advantages.
  • System rescue: Windows machines in your office start flaking out due to a malware infestation. Our hero walks in with a TurnKey System Rescue USB/Live CD that knows how to update itself with the latest AV/malware signatures, and cleans out the bad stuff from a safe, reliable computing environment.
  • HDD tools: sysadmin needs to resize partitions and such on a given system. You often need to boot into another independent system to be able to do that. Once you do there are nice open source tools that can manipulate partition and filesystem sizes and they even support NTFS if I"m not mistaken.
  • Audio/video editing: we can leverage the work done by Ubuntu Studio and start from there on a TurnKey version.
  • Game emulation: these days computers are powerful enough to faithfully emulate a huge range of old systems with the right software (e.g., MESS and MAME). Imagine an all in one device you can load with all those old videos games you spent so many hours playing with as a kid. The right appliance could help you set that up make it easier for retro-gaming enthusiasts to preserve history and even introduce a new generation to the video games of yore. If you're an "old timer" like me, and haven't yet had the pleasure of bringing your childhood video games to life you should try it sometime. It can be a lot of fun!
  • Evil Ubuntu: a version of stock Ubuntu that comes with all the packages the typical user needs to install but don't usually come with Ubuntu due to idealogical reasons. Evil stuff like video codecs, flash support, Skype, WINE for Windows compatibility, etc. Anything the typical user is likely to need that can legally be bundled into an appliance.
Adrian Moya's picture

I like the development and audio/video editing appliances. I'd also add a visual designers appliance (with GIMP and Inkscape and the like. The turnkey chromium seems like ubuntu netbook edition. I haven't looked at it (I liked the idea of the netbooks but I'll pass and buy myself a tablet next year when there are more opensource options). But this gave me the idea that we could take a look at that ubuntu edition to see if it has something we can copy. 

Retro-gaming? Liraz must be an old guy! What is he talking about? Me? I only know Wii and PS3... I've never played Double Dragon nor Ninja Gaiden in an 8 bit Nintendo! Nor Hard Hat Mack or Digger in an XT! So I don't find exciting this emulation appliance! 

The media center appliance is a wonderfull idea too. I hope to participate on this one in the future! 

Ok, I'll see what I can get for a first test-drive. 

Liraz Siri's picture

Think Digger on an XT is old? When I was a kid we played pong with an actual ball!

Seriously though I played most of the titles you mentioned and it brought back fond memories. It's kind of amazing to consider how much computers have changed in our lifetimes. It doesn't seem like such a long time ago that I played Bubble Bobble on a trusty 286 with a black and yellow Hercules screen.

Lucas Arts adventure games were my favorite. We called them quests back then. I finished most of them and the effect they've had on me remains to this day - anything that isn't bolted down I will pick up and put into my infinitely expandable pocket. It could be a piece of string, a dead fish, coins, a crowbar or a shrunken monkey head. Who knows? I mean need it later!

A bit sad that genre seems to have fallen out of favor. Kids these days with their new fangled 3D graphics accelerators playing endless variations of the same old first person shoot-em-up. Don't know what they're missing.

Now get off my lawn!

Jeremy Davis's picture

Have a look here if you're interested. It's basically a sumary of the details off here. If I've missed anything or you've got anything to add, it's a wiki! ;)

Adrian Moya's picture

Hi everyone, I'm working on this one, and wanted to share an status of what I've done so far:

- Removed server stuff (webmin, confconsole, openssh-server)

- Installed lxde + lxdm. Nice desktop! 

- Installed chromium as web browser (let's test with chromium, as I found it fastest than firefox). Note that as this is a Core system, I'm not installing any extra plugin to the browser, as this would be a customization better done in the final appliance. No flash or such things neither. 

- Installed wicd as network manager. Nice and it works with wired networks!

- Installed synaptic for package management. 

- Installed xrdp + tightvnc for remote access using terminal services client. 

- Created a non-privileged user "user" with pass "turnkey". To be used by default. Should I disable root? 

Everything is looking nice, I have some problems regarding permissions of the user with wicd but I'll see if I can resolve them today. This is a completely different world from servers, and it's been exiting working with a client side appliance! 


Other ideas: should we include helper scripts to install drivers for the most common hypervisors? I'd vote not, but performance has a lot to do with installing this extra drivers (vbox guest additions, vmware tools).

If anybody want's to suggest something, you're in time before the first release of this patch. 

Jomy Muttathil's picture

Adrian, the progress sounds good. Can't wait to get my hands on this.

I would recommend disabling the root account and just having an admin and user account.

I think this would be more appropriate for your most common deployment scenario.

If I remember correctly, LXDE includes a nice text editor. Does it include a PDF viewer?

I am happy to see tightvnc in there as well.

Jeremy Davis's picture

And I think you should run with it.

Although I think the baseline for browser is something that probably needs some more discussion. While a vanilla browser makes sense in some regards, how useful is it? How many people would ever run a browser with no plugins? I think there shouldn't be too many addons/plugins and no customisations, but I liked Liraz's suggestion of Flash, Adblock & perhaps Flashblock (not sure of the last one is available for Chromium). How many of the client appliances will have just a vanilla browser? If those others are added then I really think java should be there too.

@Jomy - LXDE includes LeafPad (text editor) by no PDF reader by default. ePDFReader is a nice light one.

Adrian Moya's picture

Please lets continue the brainstorming under this post. Thanks! Waiting some feedback!

Guest's picture

you guys have been going at it for months ... is there a way we regular users can make our own TKL core?

Jeremy Davis's picture

If you follow the link, in the post from Adrian - just above your post - you will find that Adrian has released a TKLPatch for TKLClient Core (as of about 9 days ago). You can apply that patch to the TKL Core Lucid ISO to make a TKL Client Core (Lucid) ISO. There's lots of info about TKLPatching on the forums and the wiki, have a search if you don't know how and ask some more if you get stuck or confused.

Then test it, fiddle with it, adjust it, whatever yoiu like and post feedback on that other thread (where the patch is). Most of all have fun with it :)

Post new comment