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