old
 1{
 2  config,
 3  pkgs,
 4  ...
 5}: {
 6  home.packages = with pkgs; [
 7    xdg-utils # provides cli tools such as `xdg-mime` `xdg-open`
 8    xdg-user-dirs
 9  ];
10
11  xdg.configFile."mimeapps.list".force = true;
12  xdg = {
13    enable = true;
14
15    cacheHome = "${config.home.homeDirectory}/.cache";
16    configHome = "${config.home.homeDirectory}/.config";
17    dataHome = "${config.home.homeDirectory}/.local/share";
18    stateHome = "${config.home.homeDirectory}/.local/state";
19
20    userDirs = {
21      enable = true;
22      createDirectories = true;
23      # Use English user directroy path
24      desktop = "${config.home.homeDirectory}/Desktop";
25      documents = "${config.home.homeDirectory}/Documents";
26      download = "${config.home.homeDirectory}/Download";
27      music = "${config.home.homeDirectory}/Music";
28      pictures = "${config.home.homeDirectory}/Pictures";
29      publicShare = "${config.home.homeDirectory}/Public";
30      templates = "${config.home.homeDirectory}/Templates";
31      videos = "${config.home.homeDirectory}/Videos";
32      extraConfig = {
33        XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
34      };
35    };
36
37    mimeApps = {
38      enable = true;
39      defaultApplications = let
40        browser = ["firefox.desktop"];
41        editor = ["Helix.desktop" "code.desktop"];
42      in {
43        "application/json" = browser;
44
45        "text/html" = browser;
46        "text/xml" = browser;
47        "text/plain" = editor;
48        "application/xml" = browser;
49        "application/xhtml+xml" = browser;
50        "application/xhtml_xml" = browser;
51        "application/rdf+xml" = browser;
52        "application/rss+xml" = browser;
53        "application/x-extension-htm" = browser;
54        "application/x-extension-html" = browser;
55        "application/x-extension-shtml" = browser;
56        "application/x-extension-xht" = browser;
57        "application/x-extension-xhtml" = browser;
58
59        "x-scheme-handler/about" = browser;
60        "x-scheme-handler/ftp" = browser;
61        "x-scheme-handler/http" = browser;
62        "x-scheme-handler/https" = browser;
63        "x-scheme-handler/tg" = ["org.telegram.desktop.desktop "];
64        "x-scheme-handler/tonsite" = ["org.telegram.desktop.desktop "];
65
66        "application/pdf" = ["okularApplication_pdf.desktop"] ++ browser;
67        "application/epub+zip" = ["okularApplication_epub.desktop"];
68
69        "audio/*" = ["mpv.desktop" "deadbeef.desktop"];
70        "video/*" = ["mpv.desktop"];
71      };
72    };
73  };
74
75  # Auto starts
76  xdg.autostart = {
77    enable = true;
78    entries = [
79      "${pkgs.telegram-desktop}/share/applications/org.telegram.desktop.desktop"
80      "${pkgs.birdtray}/share/applications/com.ulduzsoft.Birdtray.desktop"
81    ];
82  };
83}