Files
nixos-dotfiles/modules/xdg.nix
2025-04-13 15:09:14 +08:00

64 lines
1.6 KiB
Nix

{
lib,
config,
pkgs,
...
}:
let
cfg = config.my.xdg;
in
{
options.my.xdg = {
enable = lib.mkEnableOption "xdg";
defaultApplications = lib.mkOption {
type = lib.types.attrs;
default = { };
};
extraBookmarks = lib.mkOption {
type = with lib.types; listOf str;
default = [ ];
};
};
config = lib.mkIf cfg.enable {
my.home =
let
homedir = config.my.home.home.homeDirectory;
in
{
home.packages = with pkgs; [
xdg-utils # `xdg-mime` `xdg-open` and so on
];
xdg = {
enable = true;
cacheHome = "${homedir}/.cache";
configHome = "${homedir}/.config";
dataHome = "${homedir}/.local/share";
stateHome = "${homedir}/.local/state";
userDirs.enable = true;
configFile."mimeapps.list".force = true;
mimeApps = {
enable = true;
inherit (cfg) defaultApplications;
};
};
gtk.gtk3.bookmarks = [
"file://${homedir}/Documents "
"file://${homedir}/Downloads "
"file://${homedir}/Pictures "
"file://${homedir}/Videos "
"file://${homedir}/Music "
"file://${homedir}/workspace "
"file://${homedir}/Documents/%E7%8F%AD%E7%BA%A7%E4%BA%8B%E5%8A%A1 "
"file://${homedir}/NAS NAS"
"file://${homedir}/NAS/imxyy_soope_ NAS imxyy_soope_"
"file://${homedir}/NAS/imxyy_soope_/OS NAS OS"
];
};
};
}