ctucx.git: nixfiles

ctucx' nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
{ config, pkgs, lib, ... }:

let
  cfg    = config.ctucxConfig.programs.firefox;

in {

  options = {
    ctucxConfig.programs.firefox = {
      enable = lib.mkEnableOption "firefox web browser";
    };
  };

  config = lib.mkIf cfg.enable {
    home-manager.users.katja = {
      home = {
        packages = [
          pkgs.firefoxpwa
        ];
        sessionVariables = {
          BROWSER = "firefox";
        };
      };

      programs = {
        firefox = {
          enable = true;
          package = pkgs.firefox;
          nativeMessagingHosts = with pkgs; [
            ff2mpv-rust
            firefoxpwa
          ];
        };
      };

      wayland.windowManager.sway.config.startup = [
        { command = "firefox"; }
      ];

      xdg = {
        enable          = true;
        mime.enable     = true;

        #force hm to override existing mimeapps.list file
        configFile."mimeapps.list".force = true;

        mimeApps = {
          enable              = true;
          defaultApplications = {
            "x-scheme-handler/http"       = "firefox.desktop";
            "x-scheme-handler/https"      = "firefox.desktop";
            "x-scheme-handler/chrome"     = "firefox.desktop";

            "image/svg+xml"               = "firefox.desktop";

            "text/html"                   = "firefox.desktop";
            "text/xml"                    = "firefox.desktop";
          };
        };
      };

    };
  };

}