diff options
Diffstat (limited to 'modules/file-management')
| -rw-r--r-- | modules/file-management/yazi/assertions.nix | 13 | ||||
| -rw-r--r-- | modules/file-management/yazi/default.nix | 15 |
2 files changed, 27 insertions, 1 deletions
diff --git a/modules/file-management/yazi/assertions.nix b/modules/file-management/yazi/assertions.nix new file mode 100644 index 0000000..b100fca --- /dev/null +++ b/modules/file-management/yazi/assertions.nix @@ -0,0 +1,13 @@ +# Assertions - Validates kitty is enabled for yazi desktop entry +{ config, ... }: +{ + assertions = [ + { + assertion = !config.file-management.yazi.enable || config.terminal.kitty.enable; + message = '' + file-management.yazi is enabled but terminal.kitty.enable is not. + yazi's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty. + ''; + } + ]; +} diff --git a/modules/file-management/yazi/default.nix b/modules/file-management/yazi/default.nix index b43ed5e..f52943f 100644 --- a/modules/file-management/yazi/default.nix +++ b/modules/file-management/yazi/default.nix @@ -1,7 +1,10 @@ # yazi - Terminal file manager with native previews { config, lib, ... }: { - imports = [ ./theme.nix ]; + imports = [ + ./theme.nix + ./assertions.nix + ]; options.file-management.yazi = { enable = lib.mkEnableOption "Enables yazi."; @@ -25,6 +28,16 @@ }; }; + xdg.desktopEntries."yazi" = { + name = "Yazi"; + exec = "${lib.getExe config.terminal.kitty.package} -e ${lib.getExe config.file-management.yazi.package}"; + icon = "kitty"; + categories = [ "Utility" ]; + comment = "Terminal file manager"; + terminal = false; + type = "Application"; + }; + xdg.mimeApps.defaultApplications = { "inode/directory" = "yazi.desktop"; }; |
