Twitter [1] is one of these relatively “recent” proprietary platforms that make a few things a lot easier:

  • sharing interesting articles
  • sharing links
  • sharing ideas - short ideas <= 140 chars :)
  • ask someone from another country their feedback on something
  • you can give feedback, in almost real-time, to the maintainers of some piece of software you use
  • spam everybody with every single thing you do at every hour of the day ;) …

That being said, the status of the twitter desktop clients on Linux is close to unusable.

Current status of twitter clients for linux

I’ve personally used for long periods of time ( months ), but was never satisfied with the quality of:

  • hotot which it has been discontinued , one of the best ones in my opinion
  • choqok - specially made for KDE
  • gwibber - was integrated with ubuntu Unity when I used to use Unity

Why tweetdeck in wine in docker ?

Get ready for inception++

Docker

Why build a twitter client in docker I hear you ask ?

Because it is easy for people to download it and test it.

If they like it, then the Dockerfile used to build the container, contains all the commands needed for anybody to replicate this build locally, on their favourite distro so they can use it without Docker.

If there would be a way of automatically and programatically generating rpm/deb/tgz … packages in an automated fashion from a github repo I would probably do that too. I just don’t know of a public service that can do that bit for multiple packaging formats.

For now a docker container allows for:

  • the easiest distributable packaging system ( all distros use the same format - established by docker )
  • easily and automatically rebuilds when I change something in the source of the package - docker hub rebuilds the docker image for me

Tweetdeck

Why use tweetdeck I hear you ask ?

Because it is the only twitter client that I’ve found, maintained by twitter, which would mean that it evolves and grows togheter with the platform that it is built for.

How does it work ?

Tweetdeck is installed via wine, inside a docker container that also contains an openssh daemon and a full Xubuntu desktop.

The x2goclient software is used to spawn, on your laptop/desktop, over ssh the Xubuntu desktop running on the docker container.

This setup gives you:

  • a windows binary
    • running inside wine on Xubuntu
      • running inside a docker container
        • a container running on your linux distro

I’ve said it before, inception level 4 achieved !

The docker container has been shared on the docker hub - https://registry.hub.docker.com/u/stefancocora/tweetdeck-in-docker/ [4]

If you don’t want to pull it from the docker hub then use this github page to clone the bits of software needed to build your own local image - tweetdeck-in-docker [5]

What do you need to be able to try it

What will you need to try this out:

  • You’ll need a modern linux distro, with kernel 3.13 or newer(as per the docker requirements)
Tested on my laptop - sh
1
2
3
4
5
6
7
8
9
§ uname -a
Linux thoth 3.16.0-031600-generic #201408031935 SMP Sun Aug 3 23:36:11 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
...
§ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.2 LTS
Release:        14.04
Codename:       trusty
  • You’ll need docker - I’ve tested against docker 1.5.0 - here are the docker install docs if you’re distro doesn’t package the latest docker
1
2
§ docker --version
Docker version 1.5.0, build a8a31ef
1
2
3
4
5
§ dpkg -l x2goclient
...
||/ Name                                                          Version                             Architecture                        Description
+++-=============================================================-===================================-===================================-========================================================
ii  x2goclient                                                    4.0.3.2-0~800~ubuntu14.04.1         amd64                               X2Go Client application (Qt4)

Youtube video of these software bits working togheter

I’ve put togheter a video on youtube [6] to guide you on how to use these pieces of software that I’ve put togheter.

How is tweetdeck working for me ?

I’ve used tweetdeck installed in wine(via playonlinux), without docker, on my day to day laptop since approximatively Dec 2014 when I’ve first built this experiment.

I’ve not had any major issues whatsoever, although I must say that I’ve not looked at RAM consumption or any other issues like these since I have more than enough CPU and RAM resources on my laptop.

One small issue exists, although this small issue is the same even for full fledged browsers. I have to restart tweetdeck after I’ve not restarted it for ~2 weeks and I’ve put the laptop to sleep and woken it up repeatedly, this is a minor inconvenience.

Issues

Please report issues on the github repo

Comments

If you have any comments please use twitter, I’ve not enabled any comments on this blog yet.

Resources and inspiration

[1] - https://en.wikipedia.org/wiki/Twitter

[2] - https://www.reddit.com/r/linux/comments/2a0zf3/scarcity_of_linux_twitter_client/

[3] - http://wiki.x2go.org/doku.php/doc:installation:x2goclient

[4] - https://registry.hub.docker.com/u/stefancocora/tweetdeck-in-docker/

[5] - https://github.com/stefancocora/tweetdeck-in-docker

[6] - youtube video - https://www.youtube.com/watch?v=O4TJmsnYhqQ

[7] - somebody else playing with docker and full X11 sessions https://github.com/paimpozhil/DockerX2go

[8] - another very interesting approach to running GUI apps in docker without x2go https://blog.jessfraz.com/posts/docker-containers-on-the-desktop.html