dotfiles/nixcfgs/users/js0ny/programs/duti.nix
2025-11-22 20:38:22 +00:00

31 lines
709 B
Nix

{
pkgs,
lib,
...
}: let
gvim = "com.neovide.neovide";
iina = "com.colliderli.iina";
# firefox = "org.nixos.firefox";
keka = "com.aone.keka";
defaultApps = {
"${gvim}" = ["md" "json" "js" "txt" "xml"];
"${iina}" = ["mp4" "mkv"];
# "${firefox}" = ["html"];
"${keka}" = ["7z" "zip" "rar" "tar"];
};
duti = "${pkgs.duti}/bin/duti";
mkDutiCommands = app: extensions:
map (ext: "${duti} -s ${app} ${ext} all") extensions;
in {
home.packages = [pkgs.duti];
home.activation.setOSXDefaultApps = lib.hm.dag.entryAfter ["writeBoundary"] ''
${
lib.concatStringsSep "\n" (
lib.flatten (lib.mapAttrsToList mkDutiCommands defaultApps)
)
}
'';
}