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-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}