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 pkgs.xdg-desktop-portal-wlr
23 ];
24 config = {
25 common = {
26 default = [ "gtk" ];
27 "org.freedesktop.impl.portal.Screenshot" = [ "wlr" ];
28 "org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ];
29 };
30 };
31 };
32 mimeApps = lib.mkIf pro.gui.enable {
33 enable = true;
34 associations.added = {
35 "application/pdf" = [ "firefox.desktop" ];
36 "application/rdf+xml" = [ "firefox.desktop" ];
37 "application/rss+xml" = [ "firefox.desktop" ];
38 "application/xhtml+xml" = [ "firefox.desktop" ];
39 "application/xhtml_xml" = [ "firefox.desktop" ];
40 "application/xml" = [ "firefox.desktop" ];
41 "image/gif" = [
42 "viewnior.desktop"
43 "firefox.desktop"
44 ];
45 "image/jpeg" = [
46 "viewnior.desktop"
47 "firefox.desktop"
48 ];
49 "image/png" = [
50 "viewnior.desktop"
51 "firefox.desktop"
52 ];
53 "image/webp" = [
54 "viewnior.desktop"
55 "firefox.desktop"
56 ];
57 "text/html" = [ "firefox.desktop" ];
58 "text/xml" = [ "firefox.desktop" ];
59 "x-scheme-handler/http" = [ "firefox.desktop" ];
60 "x-scheme-handler/https" = [ "firefox.desktop" ];
61 "x-scheme-handler/about" = [ "firefox.desktop" ];
62 "x-scheme-handler/unknown" = [ "firefox.desktop" ];
63 "x-scheme-handler/mailto" = [
64 "thunderbird.desktop"
65 "firefox.desktop"
66 ];
67 "x-scheme-handler/webcal" = [
68 "firefox.desktop"
69 "thunderbird.desktop"
70 ];
71 };
72 defaultApplications = {
73 "application/pdf" = [ "firefox.desktop" ];
74 "application/rdf+xml" = [ "firefox.desktop" ];
75 "application/rss+xml" = [ "firefox.desktop" ];
76 "application/xhtml+xml" = [ "firefox.desktop" ];
77 "application/xhtml_xml" = [ "firefox.desktop" ];
78 "application/xml" = [ "firefox.desktop" ];
79 "image/gif" = [
80 "viewnior.desktop"
81 "firefox.desktop"
82 ];
83 "image/jpeg" = [
84 "viewnior.desktop"
85 "firefox.desktop"
86 ];
87 "image/png" = [
88 "viewnior.desktop"
89 "firefox.desktop"
90 ];
91 "image/webp" = [
92 "viewnior.desktop"
93 "firefox.desktop"
94 ];
95 "text/html" = [ "firefox.desktop" ];
96 "text/xml" = [ "firefox.desktop" ];
97 "x-scheme-handler/http" = [ "firefox.desktop" ];
98 "x-scheme-handler/https" = [ "firefox.desktop" ];
99 "x-scheme-handler/about" = [ "firefox.desktop" ];
100 "x-scheme-handler/unknown" = [ "firefox.desktop" ];
101 "x-scheme-handler/mailto" = [
102 "thunderbird.desktop"
103 "firefox.desktop"
104 ];
105 "x-scheme-handler/webcal" = [
106 "firefox.desktop"
107 "thunderbird.desktop"
108 ];
109 "x-scheme-handler/steam" = [
110 "steam-native.desktop"
111 "steam.desktop"
112 ];
113 "x-scheme-handler/steamlink" = [
114 "steam-native.desktop"
115 "steam.desktop"
116 ];
117 };
118 };
119 userDirs = {
120 enable = true;
121 createDirectories = true;
122 music = "$HOME/music";
123 publicShare = "$HOME/.xdg/share";
124 templates = "$HOME/.xdg/templates";
125 };
126 };
127}