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