I combine work and study, so I need a separate set of tabs for each task. For example: for work it is chrome with work-related tabs, vscode, obsidian.md and others, and for study - chrome, but with others, overleaf, pycharm, todoist etc.

If you use built-in workspaces, the problem is that when you open the same application in one workspace, it opens a window of that application in another workspace, switching workspaces.

I would like tabs to be separate, and ideally -- and processes, so that multiple instances of, for example, telegram, spotify, and similar applications can be opened. One way to do this is to have separate users, but when you switch between them, one or the other user instance goes into hibernation or shuts down.

So my question is: how to isolate open applications or even processes, if it's possible, in Ubuntu workspace?

1 Answer 1


Couple of ways:

  1. *don't switch, still use separate users: You don't have to switch – you can run another Linux user's processes while logged in, and give it access to your display system (X11 or wayland). You're literally run things as different users.
  2. use XDG standard directories to separate config, runtime resources A lot of (most by now) applications store common resources in paths given by the environment variables (most importantly) XDG_CONFIG_HOME, XDG_RUNTIME_DIR, … without changing the user.
    When you change these, before starting a program, you have basically isolated the settings, sockets, caches and what not of that run from your default.
  3. Using flatpak as a containerizer: Combined with the methodology from 2., use flatpak, which is a nice frontend for containerized applications. Using that, you can install a lot of GUI applications (see flathub.com). Setting a FLATPAK_USER_DIR lets you essentially have separate sets of installations and configurations for these, but they might still share runtime resources, which might be problematic.
  4. Fully containerized applications where you control what files get and get not shared Certainly the most intense solution, but you can run GUI applications in fully fledged docker containers. That gives you explicit control over which parts of your main file system tree you make available, and these applications simply don't see each other at all. Jessie Frazelle has a pretty famous blog post about how she does that (and when it comes to containers, she's an authority), and a comprehensive collection of ready-to-use docker containers for said purpose.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .