1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 homeDir = config.home.homeDirectory;
9 pro = config.py.profiles;
10in
11{
12 xdg = {
13 enable = true;
14 mime.enable = lib.mkIf pro.gui.enable true;
15 configHome = lib.mkForce "${homeDir}/.config";
16 dataHome = lib.mkForce "${homeDir}/.local/share";
17 portal = lib.mkIf pro.gui.enable {
18 enable = true;
19 xdgOpenUsePortal = true;
20 extraPortals = [
21 pkgs.xdg-desktop-portal-gtk
22 ];
23 config = {
24 common = {
25 default = [
26 "hyprland"
27 "gtk"
28 ];
29 "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
30 };
31 };
32 };
33 mimeApps = lib.mkIf pro.gui.enable {
34 enable = true;
35 associations.added = {
36 "application/pdf" = [ "firefox.desktop" ];
37 "application/rdf+xml" = [ "firefox.desktop" ];
38 "application/rss+xml" = [ "firefox.desktop" ];
39 "application/xhtml+xml" = [ "firefox.desktop" ];
40 "application/xhtml_xml" = [ "firefox.desktop" ];
41 "application/xml" = [ "firefox.desktop" ];
42 "image/gif" = [
43 "viewnior.desktop"
44 "firefox.desktop"
45 ];
46 "image/jpeg" = [
47 "viewnior.desktop"
48 "firefox.desktop"
49 ];
50 "image/png" = [
51 "viewnior.desktop"
52 "firefox.desktop"
53 ];
54 "image/webp" = [
55 "viewnior.desktop"
56 "firefox.desktop"
57 ];
58 "text/html" = [ "firefox.desktop" ];
59 "text/xml" = [ "firefox.desktop" ];
60 "x-scheme-handler/http" = [ "firefox.desktop" ];
61 "x-scheme-handler/https" = [ "firefox.desktop" ];
62 "x-scheme-handler/about" = [ "firefox.desktop" ];
63 "x-scheme-handler/unknown" = [ "firefox.desktop" ];
64 "x-scheme-handler/mailto" = [
65 "thunderbird.desktop"
66 "firefox.desktop"
67 ];
68 "x-scheme-handler/webcal" = [
69 "firefox.desktop"
70 "thunderbird.desktop"
71 ];
72 };
73 defaultApplications = {
74 "application/pdf" = [ "firefox.desktop" ];
75 "application/rdf+xml" = [ "firefox.desktop" ];
76 "application/rss+xml" = [ "firefox.desktop" ];
77 "application/xhtml+xml" = [ "firefox.desktop" ];
78 "application/xhtml_xml" = [ "firefox.desktop" ];
79 "application/xml" = [ "firefox.desktop" ];
80 "image/gif" = [
81 "viewnior.desktop"
82 "firefox.desktop"
83 ];
84 "image/jpeg" = [
85 "viewnior.desktop"
86 "firefox.desktop"
87 ];
88 "image/png" = [
89 "viewnior.desktop"
90 "firefox.desktop"
91 ];
92 "image/webp" = [
93 "viewnior.desktop"
94 "firefox.desktop"
95 ];
96 "text/html" = [ "firefox.desktop" ];
97 "text/xml" = [ "firefox.desktop" ];
98 "x-scheme-handler/http" = [ "firefox.desktop" ];
99 "x-scheme-handler/https" = [ "firefox.desktop" ];
100 "x-scheme-handler/about" = [ "firefox.desktop" ];
101 "x-scheme-handler/unknown" = [ "firefox.desktop" ];
102 "x-scheme-handler/mailto" = [
103 "thunderbird.desktop"
104 "firefox.desktop"
105 ];
106 "x-scheme-handler/webcal" = [
107 "firefox.desktop"
108 "thunderbird.desktop"
109 ];
110 "x-scheme-handler/steam" = [
111 "steam-native.desktop"
112 "steam.desktop"
113 ];
114 "x-scheme-handler/steamlink" = [
115 "steam-native.desktop"
116 "steam.desktop"
117 ];
118 };
119 };
120 userDirs = {
121 enable = true;
122 createDirectories = true;
123 music = "$HOME/music";
124 publicShare = "$HOME/.xdg/share";
125 templates = "$HOME/.xdg/templates";
126 };
127 };
128}