Files
dotfiles/yazi_1/.config/yazi/plugins/dupes.yazi/README.md
T
liph a8a1b5a718 restertet yazi setup
new file:   herdr/.config/herdr/sessions/home/session-history.json
	new file:   herdr/.config/herdr/sessions/home/session.json
	new file:   kanata/.config/systemd/user/default.target.wants/duplicati.service
	new file:   pi/.pi/agent/extensions/atuin.ts
	new file:   yazi/.config/yazi/bookmark
	modified:   yazi/.config/yazi/init.lua
	modified:   yazi/.config/yazi/keymap.toml
	modified:   yazi/.config/yazi/package.toml
	renamed:    yazi/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE -> yazi/.config/yazi/plugins/chmod.yazi/LICENSE
	new file:   yazi/.config/yazi/plugins/chmod.yazi/README.md
	new file:   yazi/.config/yazi/plugins/chmod.yazi/main.lua
	new file:   yazi/.config/yazi/plugins/eza-preview.yazi/LICENSE
	new file:   yazi/.config/yazi/plugins/eza-preview.yazi/README.md
	new file:   yazi/.config/yazi/plugins/eza-preview.yazi/main.lua
	modified:   yazi/.config/yazi/plugins/fchar.yazi/README.md
	modified:   yazi/.config/yazi/plugins/fchar.yazi/main.lua
	deleted:    yazi/.config/yazi/plugins/file-extra-metadata.yazi/main.lua
	modified:   yazi/.config/yazi/plugins/mediainfo.yazi/LICENSE
	modified:   yazi/.config/yazi/plugins/mediainfo.yazi/README.md
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/adobe-old.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/adobe-stable.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/audio-old.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/audio-stable.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/const.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/image-old.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/image-stable.lua
	modified:   yazi/.config/yazi/plugins/mediainfo.yazi/main.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/none-media-preview-old.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/none-media-preview-stable.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/utils.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/video-old.lua
	new file:   yazi/.config/yazi/plugins/mediainfo.yazi/video-stable.lua
	modified:   yazi/.config/yazi/plugins/mime-ext.yazi/README.md
	new file:   yazi/.config/yazi/plugins/mime-ext.yazi/local.lua
	modified:   yazi/.config/yazi/plugins/mime-ext.yazi/main.lua
	new file:   yazi/.config/yazi/plugins/mime-ext.yazi/remote.lua
	modified:   yazi/.config/yazi/plugins/rich-preview.yazi/main.lua
	modified:   yazi/.config/yazi/plugins/smart-enter.yazi/README.md
	deleted:    yazi/.config/yazi/plugins/whoosh.yazi/.luarc.json
	modified:   yazi/.config/yazi/plugins/whoosh.yazi/LICENSE
	deleted:    yazi/.config/yazi/plugins/whoosh.yazi/README-RU.md
	modified:   yazi/.config/yazi/plugins/whoosh.yazi/README.md
	modified:   yazi/.config/yazi/plugins/whoosh.yazi/bookmarks
	deleted:    yazi/.config/yazi/plugins/whoosh.yazi/image/history.png
	deleted:    yazi/.config/yazi/plugins/whoosh.yazi/image/plugin.png
	modified:   yazi/.config/yazi/plugins/whoosh.yazi/main.lua
	modified:   yazi/.config/yazi/yazi.toml
	renamed:    yazi/.config/yazi/plugins/full-border.yazi/LICENSE -> yazi_1/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE
	renamed:    yazi/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE-tmtheme -> yazi_1/.config/yazi/flavors/catppuccin-mocha.yazi/LICENSE-tmtheme
	renamed:    yazi/.config/yazi/flavors/catppuccin-mocha.yazi/README.md -> yazi_1/.config/yazi/flavors/catppuccin-mocha.yazi/README.md
	renamed:    yazi/.config/yazi/flavors/catppuccin-mocha.yazi/flavor.toml -> yazi_1/.config/yazi/flavors/catppuccin-mocha.yazi/flavor.toml
	renamed:    yazi/.config/yazi/flavors/catppuccin-mocha.yazi/preview.png -> yazi_1/.config/yazi/flavors/catppuccin-mocha.yazi/preview.png
	renamed:    yazi/.config/yazi/flavors/catppuccin-mocha.yazi/tmtheme.xml -> yazi_1/.config/yazi/flavors/catppuccin-mocha.yazi/tmtheme.xml
	renamed:    yazi/.config/yazi/flavors/dracula.yazi -> yazi_1/.config/yazi/flavors/dracula.yazi
	renamed:    yazi/.config/yazi/flavors/everforest-medium.yazi/LICENSE -> yazi_1/.config/yazi/flavors/everforest-medium.yazi/LICENSE
	renamed:    yazi/.config/yazi/flavors/everforest-medium.yazi/LICENSE-tmtheme -> yazi_1/.config/yazi/flavors/everforest-medium.yazi/LICENSE-tmtheme
	renamed:    yazi/.config/yazi/flavors/everforest-medium.yazi/README.md -> yazi_1/.config/yazi/flavors/everforest-medium.yazi/README.md
	renamed:    yazi/.config/yazi/flavors/everforest-medium.yazi/flavor.toml -> yazi_1/.config/yazi/flavors/everforest-medium.yazi/flavor.toml
	renamed:    yazi/.config/yazi/flavors/everforest-medium.yazi/preview.png -> yazi_1/.config/yazi/flavors/everforest-medium.yazi/preview.png
	renamed:    yazi/.config/yazi/flavors/everforest-medium.yazi/tmtheme.xml -> yazi_1/.config/yazi/flavors/everforest-medium.yazi/tmtheme.xml
	new file:   yazi_1/.config/yazi/flavors/gruvbox-dark.yazi/LICENSE
	new file:   yazi_1/.config/yazi/flavors/gruvbox-dark.yazi/LICENSE-tmtheme
	new file:   yazi_1/.config/yazi/flavors/gruvbox-dark.yazi/README.md
	new file:   yazi_1/.config/yazi/flavors/gruvbox-dark.yazi/flavor.toml
	new file:   yazi_1/.config/yazi/flavors/gruvbox-dark.yazi/preview.png
	new file:   yazi_1/.config/yazi/flavors/gruvbox-dark.yazi/tmtheme.xml
	renamed:    yazi/.config/yazi/flavors/gruvbox-material.yazi/LICENSE -> yazi_1/.config/yazi/flavors/gruvbox-material.yazi/LICENSE
	renamed:    yazi/.config/yazi/flavors/gruvbox-material.yazi/LICENSE-tmtheme -> yazi_1/.config/yazi/flavors/gruvbox-material.yazi/LICENSE-tmtheme
	renamed:    yazi/.config/yazi/flavors/gruvbox-material.yazi/README.md -> yazi_1/.config/yazi/flavors/gruvbox-material.yazi/README.md
	renamed:    yazi/.config/yazi/flavors/gruvbox-material.yazi/flavor.toml -> yazi_1/.config/yazi/flavors/gruvbox-material.yazi/flavor.toml
	renamed:    yazi/.config/yazi/flavors/gruvbox-material.yazi/preview.png -> yazi_1/.config/yazi/flavors/gruvbox-material.yazi/preview.png
	renamed:    yazi/.config/yazi/flavors/gruvbox-material.yazi/tmtheme.xml -> yazi_1/.config/yazi/flavors/gruvbox-material.yazi/tmtheme.xml
	renamed:    yazi/.config/yazi/flavors/kanagawa.yazi/LICENSE -> yazi_1/.config/yazi/flavors/kanagawa.yazi/LICENSE
	renamed:    yazi/.config/yazi/flavors/kanagawa.yazi/LICENSE-tmtheme -> yazi_1/.config/yazi/flavors/kanagawa.yazi/LICENSE-tmtheme
	renamed:    yazi/.config/yazi/flavors/kanagawa.yazi/README.md -> yazi_1/.config/yazi/flavors/kanagawa.yazi/README.md
	renamed:    yazi/.config/yazi/flavors/kanagawa.yazi/flavor.toml -> yazi_1/.config/yazi/flavors/kanagawa.yazi/flavor.toml
	renamed:    yazi/.config/yazi/flavors/kanagawa.yazi/preview.png -> yazi_1/.config/yazi/flavors/kanagawa.yazi/preview.png
	renamed:    yazi/.config/yazi/flavors/kanagawa.yazi/tmtheme.xml -> yazi_1/.config/yazi/flavors/kanagawa.yazi/tmtheme.xml
	renamed:    yazi/.config/yazi/flavors/monokai.yazi/LICENSE -> yazi_1/.config/yazi/flavors/monokai.yazi/LICENSE
	renamed:    yazi/.config/yazi/flavors/monokai.yazi/LICENSE-tmtheme -> yazi_1/.config/yazi/flavors/monokai.yazi/LICENSE-tmtheme
	renamed:    yazi/.config/yazi/flavors/monokai.yazi/README.md -> yazi_1/.config/yazi/flavors/monokai.yazi/README.md
	renamed:    yazi/.config/yazi/flavors/monokai.yazi/flavor.toml -> yazi_1/.config/yazi/flavors/monokai.yazi/flavor.toml
	renamed:    yazi/.config/yazi/flavors/monokai.yazi/preview.png -> yazi_1/.config/yazi/flavors/monokai.yazi/preview.png
	renamed:    yazi/.config/yazi/flavors/monokai.yazi/tmtheme.xml -> yazi_1/.config/yazi/flavors/monokai.yazi/tmtheme.xml
	renamed:    yazi/.config/yazi/flavors/rose-pine-moon.yazi/LICENSE -> yazi_1/.config/yazi/flavors/rose-pine-moon.yazi/LICENSE
	renamed:    yazi/.config/yazi/flavors/rose-pine-moon.yazi/LICENSE-tmtheme -> yazi_1/.config/yazi/flavors/rose-pine-moon.yazi/LICENSE-tmtheme
	renamed:    yazi/.config/yazi/flavors/rose-pine-moon.yazi/README.md -> yazi_1/.config/yazi/flavors/rose-pine-moon.yazi/README.md
	renamed:    yazi/.config/yazi/flavors/rose-pine-moon.yazi/flavor.toml -> yazi_1/.config/yazi/flavors/rose-pine-moon.yazi/flavor.toml
	renamed:    yazi/.config/yazi/flavors/rose-pine-moon.yazi/preview.png -> yazi_1/.config/yazi/flavors/rose-pine-moon.yazi/preview.png
	renamed:    yazi/.config/yazi/flavors/rose-pine-moon.yazi/tmtheme.xml -> yazi_1/.config/yazi/flavors/rose-pine-moon.yazi/tmtheme.xml
	renamed:    yazi/.config/yazi/flavors/tokyo-night.yazi/LICENSE -> yazi_1/.config/yazi/flavors/tokyo-night.yazi/LICENSE
	renamed:    yazi/.config/yazi/flavors/tokyo-night.yazi/LICENSE-tmtheme -> yazi_1/.config/yazi/flavors/tokyo-night.yazi/LICENSE-tmtheme
	renamed:    yazi/.config/yazi/flavors/tokyo-night.yazi/README.md -> yazi_1/.config/yazi/flavors/tokyo-night.yazi/README.md
	renamed:    yazi/.config/yazi/flavors/tokyo-night.yazi/flavor.toml -> yazi_1/.config/yazi/flavors/tokyo-night.yazi/flavor.toml
	renamed:    yazi/.config/yazi/flavors/tokyo-night.yazi/preview.png -> yazi_1/.config/yazi/flavors/tokyo-night.yazi/preview.png
	renamed:    yazi/.config/yazi/flavors/tokyo-night.yazi/tmtheme.xml -> yazi_1/.config/yazi/flavors/tokyo-night.yazi/tmtheme.xml
	new file:   yazi_1/.config/yazi/init.lua
	new file:   yazi_1/.config/yazi/keymap.toml
	renamed:    yazi/.config/yazi/omp/omp.json -> yazi_1/.config/yazi/omp/omp.json
	renamed:    yazi/.config/yazi/omp/omp.toml -> yazi_1/.config/yazi/omp/omp.toml
	renamed:    yazi/.config/yazi/omp/omp2.toml -> yazi_1/.config/yazi/omp/omp2.toml
	renamed:    yazi/.config/yazi/omp/omp_rose-pine.toml -> yazi_1/.config/yazi/omp/omp_rose-pine.toml
	new file:   yazi_1/.config/yazi/package.toml
	renamed:    yazi/.config/yazi/plugins/bunny.yazi/LICENSE -> yazi_1/.config/yazi/plugins/bunny.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/bunny.yazi/README.md -> yazi_1/.config/yazi/plugins/bunny.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/bunny.yazi/main.lua -> yazi_1/.config/yazi/plugins/bunny.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/bypass.yazi/LICENSE -> yazi_1/.config/yazi/plugins/bypass.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/bypass.yazi/README.md -> yazi_1/.config/yazi/plugins/bypass.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/bypass.yazi/main.lua -> yazi_1/.config/yazi/plugins/bypass.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/dupes.yazi/LICENSE -> yazi_1/.config/yazi/plugins/dupes.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/dupes.yazi/README.md -> yazi_1/.config/yazi/plugins/dupes.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/dupes.yazi/main.lua -> yazi_1/.config/yazi/plugins/dupes.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/fazif.yazi/LICENSE -> yazi_1/.config/yazi/plugins/fazif.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/fazif.yazi/README.md -> yazi_1/.config/yazi/plugins/fazif.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/fazif.yazi/faziffd -> yazi_1/.config/yazi/plugins/fazif.yazi/faziffd
	renamed:    yazi/.config/yazi/plugins/fazif.yazi/faziffdr -> yazi_1/.config/yazi/plugins/fazif.yazi/faziffdr
	renamed:    yazi/.config/yazi/plugins/fazif.yazi/fazifrg -> yazi_1/.config/yazi/plugins/fazif.yazi/fazifrg
	renamed:    yazi/.config/yazi/plugins/fazif.yazi/fazifrga -> yazi_1/.config/yazi/plugins/fazif.yazi/fazifrga
	renamed:    yazi/.config/yazi/plugins/fazif.yazi/main.lua -> yazi_1/.config/yazi/plugins/fazif.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/fchar.yazi/LICENSE
	new file:   yazi_1/.config/yazi/plugins/fchar.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/fchar.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/file-extra-metadata.yazi/LICENSE -> yazi_1/.config/yazi/plugins/file-extra-metadata.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/file-extra-metadata.yazi/README.md -> yazi_1/.config/yazi/plugins/file-extra-metadata.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/file-extra-metadata.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/git.yazi/LICENSE -> yazi_1/.config/yazi/plugins/full-border.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/full-border.yazi/README.md -> yazi_1/.config/yazi/plugins/full-border.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/full-border.yazi/main.lua -> yazi_1/.config/yazi/plugins/full-border.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/mount.yazi/LICENSE -> yazi_1/.config/yazi/plugins/git.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/git.yazi/README.md -> yazi_1/.config/yazi/plugins/git.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/git.yazi/main.lua -> yazi_1/.config/yazi/plugins/git.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/git.yazi/types.lua -> yazi_1/.config/yazi/plugins/git.yazi/types.lua
	renamed:    yazi/.config/yazi/plugins/lazygit.yazi/LICENSE -> yazi_1/.config/yazi/plugins/lazygit.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/lazygit.yazi/README.md -> yazi_1/.config/yazi/plugins/lazygit.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/lazygit.yazi/main.lua -> yazi_1/.config/yazi/plugins/lazygit.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/open-with-cmd.yazi/LICENSE -> yazi_1/.config/yazi/plugins/mediainfo.yazi/LICENSE
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/adobe-old.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/adobe-stable.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/assets/2025-02-15-09-14-23.png
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/assets/2025-02-15-09-15-39.png
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/assets/2025-02-15-16-51-11.png
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/assets/2025-02-15-16-52-39.png
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/audio-old.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/audio-stable.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/const.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/image-old.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/image-stable.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/none-media-preview-old.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/none-media-preview-stable.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/utils.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/video-old.lua
	new file:   yazi_1/.config/yazi/plugins/mediainfo.yazi/video-stable.lua
	renamed:    yazi/.config/yazi/plugins/piper.yazi/LICENSE -> yazi_1/.config/yazi/plugins/mime-ext.yazi/LICENSE
	new file:   yazi_1/.config/yazi/plugins/mime-ext.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/mime-ext.yazi/local.lua
	new file:   yazi_1/.config/yazi/plugins/mime-ext.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/mime-ext.yazi/remote.lua
	renamed:    yazi/.config/yazi/plugins/rsync.yazi/LICENSE -> yazi_1/.config/yazi/plugins/mount.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/mount.yazi/README.md -> yazi_1/.config/yazi/plugins/mount.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/mount.yazi/cross.lua
	renamed:    yazi/.config/yazi/plugins/mount.yazi/main.lua -> yazi_1/.config/yazi/plugins/mount.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/mount.yazi/sudo.lua
	renamed:    yazi/.config/yazi/plugins/omp.yazi -> yazi_1/.config/yazi/plugins/omp.yazi
	renamed:    yazi/.config/yazi/plugins/open-git-remote.yazi/LICENSE -> yazi_1/.config/yazi/plugins/open-git-remote.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/open-git-remote.yazi/README.md -> yazi_1/.config/yazi/plugins/open-git-remote.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/open-git-remote.yazi/main.lua -> yazi_1/.config/yazi/plugins/open-git-remote.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/open-with-cmd.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/open-with-cmd.yazi/README.md -> yazi_1/.config/yazi/plugins/open-with-cmd.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/open-with-cmd.yazi/main.lua -> yazi_1/.config/yazi/plugins/open-with-cmd.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/ouch.yazi/LICENSE -> yazi_1/.config/yazi/plugins/ouch.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/ouch.yazi/README.md -> yazi_1/.config/yazi/plugins/ouch.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/ouch.yazi/main.lua -> yazi_1/.config/yazi/plugins/ouch.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/toggle-pane.yazi/LICENSE -> yazi_1/.config/yazi/plugins/piper.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/piper.yazi/README.md -> yazi_1/.config/yazi/plugins/piper.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/piper.yazi/main.lua -> yazi_1/.config/yazi/plugins/piper.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/projects.yazi/LICENSE -> yazi_1/.config/yazi/plugins/projects.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/projects.yazi/README.md -> yazi_1/.config/yazi/plugins/projects.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/projects.yazi/json.lua -> yazi_1/.config/yazi/plugins/projects.yazi/json.lua
	renamed:    yazi/.config/yazi/plugins/projects.yazi/main.lua -> yazi_1/.config/yazi/plugins/projects.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/recycle-bin.yazi/LICENSE -> yazi_1/.config/yazi/plugins/recycle-bin.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/recycle-bin.yazi/README.md -> yazi_1/.config/yazi/plugins/recycle-bin.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/recycle-bin.yazi/main.lua -> yazi_1/.config/yazi/plugins/recycle-bin.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/rich-preview.yazi/LICENSE
	new file:   yazi_1/.config/yazi/plugins/rich-preview.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/rich-preview.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/vcs-files.yazi/LICENSE -> yazi_1/.config/yazi/plugins/rsync.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/rsync.yazi/README.md -> yazi_1/.config/yazi/plugins/rsync.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/rsync.yazi/assets/demo.gif -> yazi_1/.config/yazi/plugins/rsync.yazi/assets/demo.gif
	renamed:    yazi/.config/yazi/plugins/rsync.yazi/assets/demo.webm -> yazi_1/.config/yazi/plugins/rsync.yazi/assets/demo.webm
	renamed:    yazi/.config/yazi/plugins/rsync.yazi/main.lua -> yazi_1/.config/yazi/plugins/rsync.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/simple-tag.yazi/LICENSE -> yazi_1/.config/yazi/plugins/simple-tag.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/simple-tag.yazi/README.md -> yazi_1/.config/yazi/plugins/simple-tag.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/simple-tag.yazi/main.lua -> yazi_1/.config/yazi/plugins/simple-tag.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/smart-enter.yazi/LICENSE
	new file:   yazi_1/.config/yazi/plugins/smart-enter.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/smart-enter.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/smart-paste.yazi/LICENSE -> yazi_1/.config/yazi/plugins/smart-paste.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/smart-paste.yazi/README.md -> yazi_1/.config/yazi/plugins/smart-paste.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/smart-paste.yazi/main.lua -> yazi_1/.config/yazi/plugins/smart-paste.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/toggle-pane.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/toggle-pane.yazi/README.md -> yazi_1/.config/yazi/plugins/toggle-pane.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/toggle-pane.yazi/main.lua -> yazi_1/.config/yazi/plugins/toggle-pane.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/vcs-files.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/vcs-files.yazi/README.md -> yazi_1/.config/yazi/plugins/vcs-files.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/vcs-files.yazi/main.lua -> yazi_1/.config/yazi/plugins/vcs-files.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/what-size.yazi/LICENSE -> yazi_1/.config/yazi/plugins/what-size.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/what-size.yazi/README.md -> yazi_1/.config/yazi/plugins/what-size.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/what-size.yazi/main.lua -> yazi_1/.config/yazi/plugins/what-size.yazi/main.lua
	new file:   yazi_1/.config/yazi/plugins/whoosh.yazi
	new file:   yazi_1/.config/yazi/plugins/wise-enter.yazi/LICENSE
	new file:   yazi_1/.config/yazi/plugins/wise-enter.yazi/README.md
	new file:   yazi_1/.config/yazi/plugins/wise-enter.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/yafg.yazi/LICENSE -> yazi_1/.config/yazi/plugins/yafg.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/yafg.yazi/README.md -> yazi_1/.config/yazi/plugins/yafg.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/yafg.yazi/main.lua -> yazi_1/.config/yazi/plugins/yafg.yazi/main.lua
	renamed:    yazi/.config/yazi/plugins/yaziline.yazi/LICENSE -> yazi_1/.config/yazi/plugins/yaziline.yazi/LICENSE
	renamed:    yazi/.config/yazi/plugins/yaziline.yazi/README.md -> yazi_1/.config/yazi/plugins/yaziline.yazi/README.md
	renamed:    yazi/.config/yazi/plugins/yaziline.yazi/main.lua -> yazi_1/.config/yazi/plugins/yaziline.yazi/main.lua
	renamed:    yazi/.config/yazi/tags/home/liph/.local/share/Trash/files/tags.json -> yazi_1/.config/yazi/tags/home/liph/.local/share/Trash/files/tags.json
	renamed:    yazi/.config/yazi/tags/home/liph/Downloads/tags.json -> yazi_1/.config/yazi/tags/home/liph/Downloads/tags.json
	renamed:    yazi/.config/yazi/tags/home/liph/programming/webdev/html/static/tags.json -> yazi_1/.config/yazi/tags/home/liph/programming/webdev/html/static/tags.json
	new file:   yazi_1/.config/yazi/tags/home/liph/scripts/tags.json
	renamed:    yazi/.config/yazi/tags/home/liph/tags.json -> yazi_1/.config/yazi/tags/home/liph/tags.json
	new file:   yazi_1/.config/yazi/yazi.toml
2026-08-29 08:59:31 +02:00

222 lines
5.4 KiB
Markdown

# Dupes Plugin for Yazi
Duplicate files plugin for [Yazi](https://github.com/sxyazi/yazi) file manager, leveraging [jdupes](https://codeberg.org/jbruchon/jdupes) for fast and efficient duplicate detection.
> [!NOTE]
> The latest release of Yazi is required at the moment.
https://github.com/user-attachments/assets/1d87bb52-d326-4720-834c-baac74008d7d
## Features
- 🔍 **Fast Duplicate Detection** - Uses jdupes for high-performance scanning
- 👁️ **Visual Preview** - See duplicates directly in Yazi with deletion markers
- 🧪 **Dry Run Mode** - Preview what will be deleted before applying changes
- ⚙️ **Profile System** - Define custom scanning or override profiles for different use cases
- 💾 **Export Results** - Save scan results to JSON or text files
- 🔒 **Safe by Default** - Confirmation required for destructive operations
## Requirements
- [Yazi](https://github.com/sxyazi/yazi) file manager (v25.5.31+)
- [jdupes](https://codeberg.org/jbruchon/jdupes) command-line tool
## Installation
**Using yazi package manager:**
```sh
ya pkg add mshnwq/dupes
```
**Using nix home-manager (nixpkgs): (recommended)**
```nix
{ pkgs, ... }: {
programs.yazi = {
enable = true;
plugins = {
# jdupes is self contained within
dupes = pkgs.yaziPlugins.dupes
};
};
}
```
**Using nix home-manager (github):**
```nix
{ pkgs, ... }: {
home.packages = with pkgs; [ jdupes ];
programs.yazi = {
enable = true;
plugins = {
dupes = pkgs.fetchFromGitHub {
owner = "mshnwq";
repo = "dupes.yazi";
rev = "4666b6f299c2257c011f622319ae97fab8adbabe";
hash = "sha256-v9xuSY/i/trIHHbOPbijd0AmcUb2vufNL9BSjBE6+Vo=";
};
};
};
}
```
**Manual installation:**
```sh
git clone https://github.com/mshnwq/dupes.yazi.git ~/.config/yazi/plugins/dupes.yazi
```
## Usage
Configuration in `~/.config/yazi/init.lua`:
```lua
require("dupes"):setup {
-- Global settings
save_op = false, -- Save results to file by default
-- auto_confirm = true, -- Skip confirmation for apply (use with caution!)
profiles = {
-- Interactive mode: recursively scan and display duplicates
interactive = {
args = { "-r" },
},
-- Apply mode: recursively scan and DELETE duplicates
apply = {
args = { "-r", "-N", "-d" },
save_op = true, -- Save results before deletion
},
-- Custom profile example (uncomment to use)
-- custom = {
-- args = { "-r", "-s", }, -- Your custom jdupes flags
-- },
},
}
```
Keybindings in `~/.config/yazi/keymap.toml`:
```toml
[[manager.prepend_keymap]]
on = ["<A-J>", "i"]
run = "plugin dupes interactive"
desc = "Run dupes interactive"
[[manager.prepend_keymap]]
on = ["<A-J>", "o"]
run = "plugin dupes override"
desc = "Run dupes override"
[[manager.prepend_keymap]]
on = ["<A-J>", "d"]
run = "plugin dupes dry"
desc = "Run dupes dry"
[[manager.prepend_keymap]]
on = ["<A-J>", "a"]
run = "plugin dupes apply"
desc = "Run dupes apply"
# [[mgr.prepend_keymap]]
# on = ["<A-J>", "c"]
# run = "plugin dupes custom"
# desc = "Run dupes custom"
```
### Profiles
#### 🔍 Interactive Mode
Scans for duplicates and displays them in Yazi. Safe to use - no files are deleted.
```lua
interactive = {
args = { "-r" }, -- Recursive scan
}
```
#### 🧪 Dry Run Mode (inherits apply mode)
Shows what **would** be deleted using the same settings as apply mode. Files marked 'X' will be deleted. The first file in each duplicate set is kept.
- Normal files: displayed normally (will be kept)
- Files marked 'X': will be deleted
#### ⚠️ Apply Mode
**DESTRUCTIVE OPERATION** - Permanently deletes duplicate files.
```lua
apply = {
args = { "-r", "-N", "-d" },
save_op = true, -- Saves results to dupes.json
}
```
#### 🛠️ Override Mode
Opens an input dialog where you can enter custom jdupes arguments for one-time scans.
**Example inputs:**
- `-r -s` - Recursive, follow symlinks
## Configuration Options
### Global Settings
```lua
require("dupes"):setup {
save_op = false, -- Default: don't save results to file
auto_confirm = false, -- Default: prompt before deletion
profiles = {
-- Your profiles here
},
}
```
### Profile Settings
Each profile can have:
```lua
profile_name = {
args = { "-r", "-N" }, -- jdupes command arguments
save_op = true, -- Override global save_op for this profile
}
```
### Common jdupes Flags
| Flag | Description |
|------|-------------|
| `-r` | Recursive search in subdirectories |
| `-d` | **DELETE duplicates (DESTRUCTIVE!)** |
| `-j` | JSON output (added by plugin) |
| `-s` | Follows symbolic links |
See `jdupes --help` for complete flag list.
## Custom Examples
### Example: Find duplicates in current directory only
```lua
shallow = {
args = {}, -- No -r flag, current directory only
}
```
## Output Files
When `save_op = true`, results are saved to:
- **dupes.json** - JSON format
- **dupes.txt** - Text format (when destructive)
Files are saved in the current working directory.
## License
This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
## Credits
- [Yazi](https://github.com/sxyazi/yazi) file manager
- [jdupes](https://codeberg.org/jbruchon/jdupes) for duplicate detection
- [boydaihungst](https://github.com/boydaihungst) for help on Yazi's [Discord](https://discord.gg/qfADduSdJu) channel
## See Also
- [jdupes Documentation](https://codeberg.org/jbruchon/jdupes)
- [Yazi Plugins](https://yazi-rs.github.io/docs/plugins/overview)