diff --git a/home-manager/users/sweetbread/modules/bundle.nix b/home-manager/users/sweetbread/modules/bundle.nix index 8ba5041..119ea0a 100644 --- a/home-manager/users/sweetbread/modules/bundle.nix +++ b/home-manager/users/sweetbread/modules/bundle.nix @@ -7,6 +7,7 @@ ./style.nix ./neofetch.nix ./syncthing.nix + ./yazi.nix ./wms/hyprland.nix ./wms/waybar.nix diff --git a/home-manager/users/sweetbread/modules/yazi.nix b/home-manager/users/sweetbread/modules/yazi.nix new file mode 100644 index 0000000..58d0b38 --- /dev/null +++ b/home-manager/users/sweetbread/modules/yazi.nix @@ -0,0 +1,56 @@ +{ pkgs, lib, ... }: let + yazi-plugins = pkgs.fetchFromGitHub { + owner = "yazi-rs"; + repo = "plugins"; + rev = "c5785059611624e20a37ba573620f30acc28a26a"; + hash = "sha256-wlSBtabIsEUJhuHmXwgpSnwZp9WaVQFBg6s1XXjubrE="; + }; +in { + programs.yazi = { + enable = true; + enableZshIntegration = true; + shellWrapperName = "y"; + + settings = { + manager = { + show_hidden = true; + }; + preview = { + max_width = 1000; + max_height = 1000; + }; + }; + + plugins = { + chmod = "${yazi-plugins}/chmod.yazi"; + full-border = "${yazi-plugins}/full-border.yazi"; + max-preview = "${yazi-plugins}/max-preview.yazi"; + starship = pkgs.fetchFromGitHub { + owner = "Rolv-Apneseth"; + repo = "starship.yazi"; + rev = "77a65f5a367f833ad5e6687261494044006de9c3"; + sha256 = "sha256-sAB0958lLNqqwkpucRsUqLHFV/PJYoJL2lHFtfHDZF8="; + }; + }; + + initLua = '' + require("full-border"):setup() + require("starship"):setup() + ''; + + keymap = { + manager.prepend_keymap = [ + { + on = "T"; + run = "plugin --sync max-preview"; + desc = "Maximize or restore the preview pane"; + } + { + on = ["c" "m"]; + run = "plugin chmod"; + desc = "Chmod on selected files"; + } + ]; + }; + }; +}