如何在 Ubuntu 工作区中隔离打开的应用程序(最好是进程)?

如何在 Ubuntu 工作区中隔离打开的应用程序(最好是进程)?

我将工作和学习结合起来,因此每个任务都需要一组单独的选项卡。例如:对于工作,它是 chrome,带有与工作相关的选项卡、vscode、obsidian.md 等;对于学习,它是 chrome,但与其他标签、overleaf、pycharm、todoist 等。

如果您使用内置工作区,问题是当您在一个工作区中打开同一应用程序时,它会在另一个工作区中打开该应用程序的窗口,从而切换工作区。

我希望选项卡是独立的,并且最好是与进程分开,以便可以打开 telegram、spotify 和类似应用程序的多个实例。实现此目的的一种方法是拥有单独的用户,但当您在它们之间切换时,一个或另一个用户实例将进入休眠状态或关闭。

所以我的问题是:如果可能的话,如何在 Ubuntu 工作区中隔离打开的应用程序甚至进程?

答案1

有几种方法:

  1. *不要切换,仍然使用单独的用户:您不必切换 – 您可以在登录时运行另一个 Linux 用户的进程,并授予其访问您的显示系统(X11 或 wayland)的权限。您实际上是以不同的用户身份运行事物。
  2. 使用 XDG 标准目录来分隔配置、运行时资源许多(目前大多数)应用程序将公共资源存储在环境变量(最重要的)指定的路径中XDG_CONFIG_HOMEXDG_RUNTIME_DIR...而不更改用户。
    当您更改这些内容时,在启动程序之前,您基本上已经将设置、套接字、缓存以及不运行的内容与默认值隔离开来。
  3. 用作flatpak容器化工具:结合 2. 中的方法,使用flatpak,这是容器化应用程序的一个很好的前端。使用它,您可以安装许多 GUI 应用程序(请参阅 flathub.com)。设置 aFLATPAK_USER_DIR基本上可以让您为这些设备拥有单独的安装和配置集,但它们仍然可能共享运行时资源,这可能会出现问题。
  4. 完全容器化的应用程序,您可以控制哪些文件可以共享,哪些文件不可以共享当然是最强大的解决方案,但您可以在成熟的 Docker 容器中运行 GUI 应用程序。这使您可以明确控制主文件系统树的哪些部分可用,并且这些应用程序根本看不到彼此。杰西·弗雷泽尔有一篇非常著名的博客文章介绍了她如何做到这一点(当谈到容器时,她是权威),以及全面的收藏用于上述目的的即用型 docker 容器。

相关内容