83 lines
2.2 KiB
Nix
83 lines
2.2 KiB
Nix
{ machine, ... }@inputs:
|
|
let
|
|
browsers = [
|
|
"firefox.desktop"
|
|
];
|
|
|
|
defaultApps = {
|
|
text = [
|
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanvim.desktop"
|
|
];
|
|
image = [ "org.gnome.Loupe.desktop" ];
|
|
audio = [ "mpv.desktop" ];
|
|
video = [ "mpv.desktop" ];
|
|
directory = [
|
|
"nautilus.desktop"
|
|
"org.gnome.Nautilus.desktop"
|
|
];
|
|
mail = [ ] ++ browsers;
|
|
calendar = [ ] ++ browsers;
|
|
browser = [ ] ++ browsers;
|
|
office = [ "libreoffice.desktop" ];
|
|
pdf = [ ] ++ browsers;
|
|
ebook = [ ];
|
|
magnet = [ ];
|
|
signal = [ "signal.desktop" ];
|
|
};
|
|
|
|
mimeMap = import ./mimemap.nix;
|
|
|
|
associations =
|
|
with inputs.lib;
|
|
with builtins;
|
|
listToAttrs (
|
|
flatten (mapAttrsToList (key: map (type: attrsets.nameValuePair type defaultApps."${key}")) mimeMap)
|
|
);
|
|
removedAssociations = {
|
|
"text/plain" = "dev.zed.Zed.desktop";
|
|
"application/x-zerosize" = "dev.zed.Zed.desktop";
|
|
};
|
|
in
|
|
{
|
|
imports = machine.program {
|
|
name = "xdg";
|
|
inherit inputs;
|
|
requirements = [ ];
|
|
home-config =
|
|
{ config, pkgs, ... }:
|
|
{
|
|
home.packages = with pkgs; [ xdg-utils ];
|
|
|
|
xdg = {
|
|
enable = true;
|
|
mime.enable = true;
|
|
configHome = "${config.home.homeDirectory}/.config";
|
|
userDirs = {
|
|
enable = true;
|
|
documents = "${config.home.homeDirectory}/Documents";
|
|
desktop = "${config.home.homeDirectory}/Documents";
|
|
download = "${config.home.homeDirectory}/Downloads";
|
|
music = "${config.home.homeDirectory}/Documents/personal/music";
|
|
pictures = "${config.home.homeDirectory}/Documents/personal/pictures";
|
|
};
|
|
configFile."mimeapps.list".force = true;
|
|
mimeApps = {
|
|
enable = true;
|
|
associations.added = associations;
|
|
associations.removed = removedAssociations;
|
|
defaultApplications = associations;
|
|
};
|
|
};
|
|
};
|
|
system-config = _: {
|
|
xdg = {
|
|
mime = {
|
|
enable = true;
|
|
defaultApplications = associations;
|
|
addedAssociations = associations;
|
|
inherit removedAssociations;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|