Build your own Watson Workspace Linux Client

· by Christoph Stoettner · Read in about 3 min · (544 words)

Watson Workspace Clients are only available for Windows and Mac OS. I’m a 100% Linux user on my devices and I use a Windows virtual machine only if I can’t avoid it. To communicate with colleagues, IBM and DNUG I need to use Watson Workplace, opening the web view is possible, but then I need to search the right tab or forget to open it. Since some weeks there is Zoom (Web / Video meetings) integrated with Watson Workspace too.:

Watson Workspace clients are based on Electron. I’m not a big fan of Electron clients, most of them are big and need tons of system resources. There is enough written about advantages and disadvantages, so I just leave it that way.

The last time I used Rambox and configured for Smartcloud, some Slack spaces and Watson Workplace, but I wasn’t completely satisfied. I’m a member of around 12 Slack spaces, so I switched back to the native Slack client and uninstalled Rambox. I just wanted something to use Watson Workplace outside of my browsers. One reason is the single sign-on feature within the IBM web pages. I use several IBM IDs to download software, use Smartcloud Connections or Developerworks. So an always logged in WW and the very sticky cookies around these services are a pain.

Today I found a new way!

I read about nativefier in my news feed and just wanted to try using it.

The project is based on Node.js and uses npm for installation. Node.js has lots of dependencies and I don’t want to have all that tools on my working machine. So I cloned the repository and build the docker image.

git clone https://github.com/jiahaog/nativefier.git
cd nativefier
docker build -t local/nativefier .

Now I can build everything from that docker container.

I downloaded a Watson logo and put it on the path where I want to build the client.

cd ~
mkdir -p ~/tools/watsonworkspace
cp Downloads/ww-logo.png ~/tools/watsonworkspace
cd ~/tools

Build the application

docker run --rm \ (1)
  -v $(pwd)/watsonworkspace:/target \ (2)
  local/nativefier \
  --icon /target/ww-logo.png \ (3)
  --name "Watson Workspace" \
  https://login.workspace.ibm.com/ \ (4)
  /target/
1 Start docker, run a container based on image local/nativefier and delete (--rm) the container after the run.
2 This maps a volume from local path /watsonworkspace and maps within the container to /target.
3 Adds an icon to the program and adds the name Watson Workspace.
4 Is the login URL of Watson Workspace. When you log in there and restart the client, you’re still logged on.

After running the container you find a new directory with ~/tools/watsonworkspace and you can start your personal build Electron client with ~/tools/watsonworkspace/watson-workspace-linux-x64/watson-workspace. I created an autostart entry to start it each time I log in, or you can add it to the menu or desktop. The best thing about nativefier is, it works on Mac OS and Windows too. So you can add every URL you want to have a separate login or browser window.

Selection 004 1

Zoom on Linux

Within the Workspace client, I can start a meeting (when I have a pro account) and I can open it directly with Zoom (which is available for Linux too). So it’s not integrated into my Workspace client, but it opens without prompting in a Zoom client window. Great stuff!