링크를 열 때 사이트에 따라 다른 브라우저로 열기

less than 1 minute read

emacs에서 링크를 열 때, OS에서 정의한 웹 브라우저(web browser)를 사용해서 연다. 회사에서 사용하는 웹 브라우저를 기본 웹 브라우저로 세팅해서 개인적으로 사용하는 웹 브라우저와 분리해서 쓰고 있다. emacs에서 여는 링크도 기본 웹 브라우저로 열리는 게 불편해서 세팅하는 방법을 찾아봤다.

browse-url-chrome-program 변수 설정

(setq browse-url-chrome-program "run-chrome.bat")

디폴트 값이 chromium 이라 chrome을 사용한다면 설정해줘야 한다. 실제 경로를 입력하기보다 PATH로 잡혀있는 ~/bin 디렉터리에 run-chrome.bat 파일을 만들고 세팅했다. 뭔가 다른 작업이 필요할 때, 쉽게 추가할 수 있어서 스크립트 파일을 만들었는데, 막상 만들고 보니 따로 할 게 없다. 그냥 프로그램 경로를 입력해도 상관없다.

@ECHO OFF
"C:/Program Files/Google/Chrome/Application/chrome.exe" %*

run-chrome.bat 파일 내용이다. 별거 없다.

기본 웹 브라우저가 아닌 chrome으로 링크 열기

(setq browse-url-handlers 'browse-url-chrome)

browse-url-chrome 함수를 핸들러로 할당하면 된다. 이제 모든 링크가 크롬으로 열린다.

사이트에 따라 다른 웹 브라우저를 사용하기

(setq browse-url-handlers
      '(("my-office.com" . browse-url-default-browser)
        ("." . browse-url-chrome)))

browse-url-handlers 변수에 함수를 할당할 수도 있고 리스트를 할당할 수도 있다. 리스트 첫 번째 요소로 술어(predicate) 함수나 문자열을 넘기고 두 번째 요소로 웹 브라우저 핸들러 함수를 정의한다.

회사 관련 사이트는 기본 웹 브라우저로 열고 다른 모든 사이트는 크롬으로 열게 세팅할 수 있다.

참고

C-x C-s C-x C-c