NixOS에서 기본 브라우저를 설정하는 방법은 무엇입니까?

NixOS에서 기본 브라우저를 설정하는 방법은 무엇입니까?

저는 Gnome과 함께 NixOS를 사용하고 있으며 Chromium을 기본 브라우저로 설정하고 싶습니다.

내 설정의 세부정보 섹션에 있는 기본 앱 아래에는 다음이 표시됩니다.

여기에 이미지 설명을 입력하세요.

Chromium과 Firefox가 모두 내 시스템에 설치되어 있지만(Chromium via ia $ nix-env -i chromium) "웹" 드롭다운 메뉴에는 표시되지 않고 하나의 옵션만 표시됩니다.

Chromium을 기본 브라우저로 설정하려면 어떻게 해야 하나요?

답변1

XDG 사양을 따르는 애플리케이션의 경우

NixOS 21.11 이상부터는 이제 를 설정할 수 있습니다 xdg.mime.defaultApplications. 예를 들어 Qutebrowser를 기본 웹 브라우저로 설정할 수 있습니다.

xdg.mime.defaultApplications = {
  "text/html" = "org.qutebrowser.qutebrowser.desktop";
  "x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop";
  "x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop";
  "x-scheme-handler/about" = "org.qutebrowser.qutebrowser.desktop";
  "x-scheme-handler/unknown" = "org.qutebrowser.qutebrowser.desktop";
}

xdg.mime.enableis가 true기본값인지 확인하세요 . 그렇지 않으면 위의 코드 조각이 작동하지 않습니다.

전자 응용 분야의 경우:

Electron 기반 데스크탑 애플리케이션은 기본 브라우저 인스턴스를 가져와서 DEFAULT_BROWSER환경 변수의 링크를 여는 것처럼 보입니다. 에서 찾을 수 있는 바이너리 PATH또는 사용할 바이너리의 전체 경로로 설정될 것으로 예상됩니다.

qutebrowser를 다시 설정하는 또 다른 예:

environment.sessionVariables.DEFAULT_BROWSER = "${pkgs.qutebrowser}/bin/qutebrowser"

답변2

NixOS는 사용자별 구성을 관리하지 않습니다. 기간.

구성 대화 상자에서 찾을 수 없는 브라우저의 /etc/nixos/configuration.nix경우 nix-env.

힌트

패키지를 선언적 및 명령적으로 설치하는 경우 결국 두 개의 종속성 트리를 관리해야 합니다. 하나는 통과하고 nixos-rebuild --upgrade boot, 다른 하나는 통과합니다 nix-channel --update && nix-env -u. 이는 업데이트 절차 중 하나라도 잊어버리면 결국 이전 패키지를 설치하게 된다는 의미입니다.

답변3

홈 관리자의 경우:

nrdxp의 답변에 대한 시스템 전체 설정은 어떤 이유로 무시될 수 있으므로 작동하지 않고 홈 관리자를 사용하는 경우 사용자별로 설정해 보십시오. 이렇게 하려면 기본적으로 비활성화되어 있으므로 mime로 바꾸고 mimeApps설정 해야 합니다. enable = true조각을 조정하면 다음과 같은 결과를 얻을 수 있습니다.

home-manager.users.<YOUR_USER_NAME>.xdg.mimeApps = {
  enable = true;
  
  defaultApplications = {
    "text/html" = "org.qutebrowser.qutebrowser.desktop";
    "x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop";
    "x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop";
    "x-scheme-handler/about" = "org.qutebrowser.qutebrowser.desktop";
    "x-scheme-handler/unknown" = "org.qutebrowser.qutebrowser.desktop";
  };
};

이 기능을 구성해야 하는 각 사용자에 대해 이 작업을 수행해야 합니다.

답변4

@nrdxp의 답변에 철자 오류가 있습니다. s가 너무 많습니다 sessionsVariables. 해야 할 것: 불행하게도 나는 논평할 만한 평판이 충분하지 않습니다.

environment.sessionVariables.DEFAULT_BROWSER = "${pkgs.qutebrowser}/bin/qutebrowser"

관련 정보