aboutsummaryrefslogtreecommitdiffstats
path: root/modules/file-management/yazi
diff options
context:
space:
mode:
Diffstat (limited to 'modules/file-management/yazi')
-rw-r--r--modules/file-management/yazi/assertions.nix13
-rw-r--r--modules/file-management/yazi/default.nix15
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";
};