控制打开链接的应用程序

控制打开链接的应用程序

我的情况很简单 - 我有两个浏览器配置文件:个人和工作。现在我有两个获取网址的来源。

我的目标是有一种方法可以使用个人资料从一个来源(例如 Slack)打开网址,并使用工作资料从另一个来源(例如 Teams)打开网址。我已经在 /usr/share/applications 中创建了正确的条目,它在我的 bin 目录中运行脚本,它工作正常,但 ofc 打开具有相同配置文件的所有链接。我看到解决这个问题的三种方法:

  1. 我在过去的某个地方听说我可以使用shift-click/ctrl-click,它可以使用与单击不同的应用程序,但是找不到任何信息,然后内部发生了什么以及如何使用它。
  2. 使用一些全局变量,我可以通过一些快捷方式更改它,并在打开浏览器的脚本中使用它。可能可以使用 echo with script 将其写入某个文件并使用 rofi 运行它,但不确定它是否优雅。
  3. 以某种方式告诉操作系统我单击链接的上下文 - 如果它来自 Slack,则使用应用程序 A,如果 Teams 使用应用程序 B。

我在X11下使用bspwm和sxhkd。

您能否指导我一下,如果您是我,您会朝什么方向走,并提供详细信息,我应该在哪里进一步挖掘?

答案1

我不知道qutebrowser,但是您可以做什么来知道您与此浏览器包装器一起使用哪个配置文件:

#!/usr/bin/env bash

profileInUse=$(
    {
        lsof ~/.config/qutebrowser/*/* \
        ~/.mozilla/firefox/*/.parentlock \
        ~/.config/chromium/Profile*/Cookies 2>/dev/null
    } | grep -oPm1 '(qutebrowser|chromium|firefox)/[^/+]+'
)

case "$profileInUse" in
    qutebrowser/work*)
        qutebrowser --profile work "$@"
    ;;  
    qutebrowser/home*)
        qutebrowser --profile home "$@"
    ;;
    chromium/z*)
        chromium --user-data-dir=z "$@"
    ;;  
    firefox/x*)
        firefox -P x "$@"
    ;;
    *)
        echo >&2 "NOT implemented browser error ${profileInUse%/*}"
        exit 1
    ;; 
esac

将其保存browser在您的路径中,然后将您的系统设置为默认浏览器;前任:

xdg-settings set default-web-browser browser.desktop

(您需要创建一个browser.desktop文件)。

相关内容