링크를 여는 앱 제어

링크를 여는 앱 제어

내 상황은 간단합니다. 개인용과 업무용이라는 두 가지 브라우저 프로필이 있습니다. 이제 URL을 가져올 수 있는 소스가 두 개 있습니다.

내 목표는 개인 프로필을 사용하여 한 소스(예: Slack)에서 URL을 열고 직장 프로필을 사용하여 다른 소스(예: Teams)에서 URL을 여는 방법을 갖는 것입니다. /usr/share/applications에 올바른 항목을 만들었고 bin 디렉토리에서 스크립트를 실행하면 제대로 작동하지만 ofc는 동일한 프로필을 가진 모든 링크를 엽니다. 이 문제를 해결하는 세 가지 방법이 있습니다.

  1. 과거 어딘가에서 Shift-클릭/Ctrl-클릭을 사용할 수 있고 클릭과 다른 응용 프로그램에서 작동하지만 내부적으로 무슨 일이 일어나고 있는지, 어떻게 사용하는지에 대한 정보를 찾을 수 없다고 들었습니다.
  2. 일부 전역 변수를 사용하면 몇 가지 단축키로 이를 변경할 수 있으며 브라우저를 여는 스크립트에서 사용할 수 있습니다. 스크립트와 함께 echo를 사용하여 일부 파일에 쓰고 rofi를 사용하여 실행할 수 있지만 그것이 우아한지는 확실하지 않습니다.
  3. 링크를 클릭한 컨텍스트를 OS에 알리려면 Slack에서 가져온 경우 앱 A를 사용하고 Teams에서 앱 B를 사용하면 앱 A를 사용하세요.

저는 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.)

관련 정보