diff --git a/hosts/skadi/home.nix b/hosts/skadi/home.nix index 0607d14..d6b633e 100644 --- a/hosts/skadi/home.nix +++ b/hosts/skadi/home.nix @@ -47,17 +47,15 @@ crony.wayland.enable = true; crony.hyprland.enable = true; crony.neovim.enable = true; - # crony.qutebrowser.enable = true; crony.mpv.enable = true; - # crony.browsers.enable = true; crony.desktop.enable = true; crony.shell-additions.enable = true; crony.home-secrets.enable = true; crony.restic.enable = true; crony.emulators.enable = true; - # crony.emacs.enable = true; crony.zen-browser.enable = true; crony.lnxlink.enable = true; + crony.yazi.enable = true; # DO NOT CHANGE ALSO home.stateVersion = "24.11"; # Please read the comment before changing. diff --git a/modules/cross-platform/home-manager/shell.nix b/modules/cross-platform/home-manager/shell.nix index 73b2689..b8ee7a0 100644 --- a/modules/cross-platform/home-manager/shell.nix +++ b/modules/cross-platform/home-manager/shell.nix @@ -39,6 +39,7 @@ email = "crony@cronyakatsuki.xyz"; }; }; + delta.enable = true; }; # Install fzf @@ -141,154 +142,5 @@ filter_mode = "directory"; }; }; - - # Install and setup yazi - programs.yazi = { - enable = true; - enableZshIntegration = true; - shellWrapperName = "y"; - settings = { - mgr = { - ratio = [0 4 4]; - sort_by = "natural"; - show_hidden = true; - show_symlink = false; - }; - plugin = { - prepend_fetchers = [ - { - id = "git"; - name = "*"; - run = "git"; - } - { - id = "git"; - name = "*/"; - run = "git"; - } - ]; - prepend_previewers = [ - # Archive previewer - { - mime = "application/*zip"; - run = "ouch"; - } - { - mime = "application/x-tar"; - run = "ouch"; - } - { - mime = "application/x-bzip2"; - run = "ouch"; - } - { - mime = "application/x-7z-compressed"; - run = "ouch"; - } - { - mime = "application/x-rar"; - run = "ouch"; - } - { - mime = "application/vnd.rar"; - run = "ouch"; - } - { - mime = "application/x-xz"; - run = "ouch"; - } - { - mime = "application/xz"; - run = "ouch"; - } - { - mime = "application/x-zstd"; - run = "ouch"; - } - { - mime = "application/zstd"; - run = "ouch"; - } - { - mime = "application/java-archive"; - run = "ouch"; - } - ]; - opener = { - extract = [ - { - run = "ouch -d -y \"$@\""; - desc = "Extract here with ouch"; - } - ]; - }; - }; - }; - plugins = { - full-border = pkgs.yaziPlugins.full-border; - smart-enter = pkgs.yaziPlugins.smart-enter; - smart-tab = ./yazi/smart-tab; - folder-rules = ./yazi/folder-rules; - toggle-pane = pkgs.yaziPlugins.toggle-pane; - parent-arrow = ./yazi/parent-arrow; - chmod = pkgs.yaziPlugins.chmod; - ouch = pkgs.yaziPlugins.ouch; - git = pkgs.yaziPlugins.git; - mount = pkgs.yaziPlugins.mount; - }; - initLua = ./yazi/init.lua; - keymap = { - mgr.prepend_keymap = [ - { - on = "l"; - run = "plugin smart-enter"; - desc = "Enter the child directory, or open the file"; - } - { - on = "t"; - run = "plugin smart-tab"; - desc = "Create a tab and enter the howered directory"; - } - { - on = ""; - for = "linux"; - run = "shell -- hyprctl hyprpaper reload , \"$0\""; - desc = "Set howered file as wallpaper"; - } - { - on = [" " "p"]; - run = "plugin toggle-pane min-preview"; - desc = "Show or hide the preview pane"; - } - { - on = "K"; - run = "plugin parent-arrow -1"; - } - { - on = "J"; - run = "plugin parent-arrow 1"; - } - { - on = ["g" "r"]; - run = "shell -- ya emit cd \"$(git rev-parse --show-toplevel)\""; - } - { - on = ["c" "m"]; - run = "plugin chmod"; - desc = "Chmod on selected files"; - } - { - on = "C"; - run = "plugin ouch tar.gz"; - desc = "Compress with ouch"; - } - { - on = "M"; - run = "plugin mount"; - desc = "Manage mounting disks"; - } - ]; - }; - }; }; } diff --git a/modules/cross-platform/home-manager/yazi.nix b/modules/cross-platform/home-manager/yazi.nix new file mode 100644 index 0000000..07cec18 --- /dev/null +++ b/modules/cross-platform/home-manager/yazi.nix @@ -0,0 +1,161 @@ +{ + config, + pkgs, + lib, + ... +}: { + options = { + crony.yazi.enable = lib.mkEnableOption "Enable and setup yazi file manager."; + }; + + config = lib.mkIf config.crony.yazi.enable { + # Install and setup yazi + programs.yazi = { + enable = true; + enableZshIntegration = true; + shellWrapperName = "y"; + settings = { + mgr = { + ratio = [0 4 4]; + sort_by = "natural"; + show_hidden = true; + show_symlink = false; + }; + plugin = { + prepend_fetchers = [ + { + id = "git"; + name = "*"; + run = "git"; + } + { + id = "git"; + name = "*/"; + run = "git"; + } + ]; + prepend_previewers = [ + # Archive previewer + { + mime = "application/*zip"; + run = "ouch"; + } + { + mime = "application/x-tar"; + run = "ouch"; + } + { + mime = "application/x-bzip2"; + run = "ouch"; + } + { + mime = "application/x-7z-compressed"; + run = "ouch"; + } + { + mime = "application/x-rar"; + run = "ouch"; + } + { + mime = "application/vnd.rar"; + run = "ouch"; + } + { + mime = "application/x-xz"; + run = "ouch"; + } + { + mime = "application/xz"; + run = "ouch"; + } + { + mime = "application/x-zstd"; + run = "ouch"; + } + { + mime = "application/zstd"; + run = "ouch"; + } + { + mime = "application/java-archive"; + run = "ouch"; + } + ]; + opener = { + extract = [ + { + run = "ouch -d -y \"$@\""; + desc = "Extract here with ouch"; + } + ]; + }; + }; + }; + plugins = { + full-border = pkgs.yaziPlugins.full-border; + smart-enter = pkgs.yaziPlugins.smart-enter; + smart-tab = ./yazi/smart-tab; + folder-rules = ./yazi/folder-rules; + toggle-pane = pkgs.yaziPlugins.toggle-pane; + parent-arrow = ./yazi/parent-arrow; + chmod = pkgs.yaziPlugins.chmod; + ouch = pkgs.yaziPlugins.ouch; + git = pkgs.yaziPlugins.git; + mount = pkgs.yaziPlugins.mount; + }; + initLua = ./yazi/init.lua; + keymap = { + mgr.prepend_keymap = [ + { + on = "l"; + run = "plugin smart-enter"; + desc = "Enter the child directory, or open the file"; + } + { + on = "t"; + run = "plugin smart-tab"; + desc = "Create a tab and enter the howered directory"; + } + { + on = ""; + for = "linux"; + run = "shell -- hyprctl hyprpaper reload , \"$0\""; + desc = "Set howered file as wallpaper"; + } + { + on = [" " "p"]; + run = "plugin toggle-pane min-preview"; + desc = "Show or hide the preview pane"; + } + { + on = "K"; + run = "plugin parent-arrow -1"; + } + { + on = "J"; + run = "plugin parent-arrow 1"; + } + { + on = ["g" "r"]; + run = "shell -- ya emit cd \"$(git rev-parse --show-toplevel)\""; + } + { + on = ["c" "m"]; + run = "plugin chmod"; + desc = "Chmod on selected files"; + } + { + on = "C"; + run = "plugin ouch tar.gz"; + desc = "Compress with ouch"; + } + { + on = "M"; + run = "plugin mount"; + desc = "Manage mounting disks"; + } + ]; + }; + }; + }; +}