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}