Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alexluigit/dirvish

A polished Dired with batteries included.
https://github.com/alexluigit/dirvish

dired emacs file-manager

Last synced: about 1 month ago
JSON representation

A polished Dired with batteries included.

Awesome Lists containing this project

README

        

#+AUTHOR: Alex Lu
#+EMAIL: [email protected]
#+startup: content
#+html:
-----
#+html:

A polished Dired with batteries included

* Introduction

#+begin_quote
The experience of dirvish is surreal and even bizarre after all these years of
trying to use dired. Like how professionals make their craft look easy, dirvish
does something similar with how it builds on dired. Dirvish is paradoxical in
that it provides a completely different experience while still fundamentally
being dired at its core.

-- @noctuid ([[https://github.com/alexluigit/dirvish/issues/34][source]])
#+end_quote

Dirvish is an improved version of the Emacs inbuilt package [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html][Dired]]. It not only
gives Dired an appealing and highly customizable user interface, but also comes
together with almost all possible parts required for full usability as a modern
file manager.

* Screenshots

[[https://user-images.githubusercontent.com/16313743/189978788-900b3de7-b3e5-42a6-9f28-426e1e80c314.png][https://user-images.githubusercontent.com/16313743/189978788-900b3de7-b3e5-42a6-9f28-426e1e80c314.png]]

[[https://user-images.githubusercontent.com/16313743/189978802-f6fb09ea-13a2-4dc9-828b-992523d51dd5.png][https://user-images.githubusercontent.com/16313743/189978802-f6fb09ea-13a2-4dc9-828b-992523d51dd5.png]]

[[https://user-images.githubusercontent.com/16313743/190370038-1d64a7aa-ac1c-4436-a2a3-05cd801de0a4.png][https://user-images.githubusercontent.com/16313743/190370038-1d64a7aa-ac1c-4436-a2a3-05cd801de0a4.png]]

* Prerequisites

This package requires =GNU ls= (~gls~ on macOS), and /optionally/:

+ =fd= as a faster alternative to =find=
+ =imagemagick= for image preview
+ =poppler= | =pdf-tools= for pdf preview
+ =ffmpegthumbnailer= for video preview
+ =mediainfo= for audio/video metadata generation
+ =tar= and =unzip= for archive files preview

@@html:@@
@@html:@@ @@html:@@Toggle install instructions@@html:@@ @@html:@@

@@html:

@@macOS@@html:

@@
#+begin_src bash
brew install coreutils fd poppler ffmpegthumbnailer mediainfo imagemagick
#+end_src

@@html:

@@Debian-based@@html:

@@
#+begin_src bash
apt install fd-find poppler-utils ffmpegthumbnailer mediainfo imagemagick tar unzip
#+end_src

@@html:

@@Arch-based@@html:

@@
#+begin_src bash
pacman -S fd poppler ffmpegthumbnailer mediainfo imagemagick tar unzip
#+end_src

@@html:

@@FreeBSD@@html:

@@
#+begin_src bash
pkg install gnuls fd-find poppler ffmpegthumbnailer ImageMagick7 gtar
#+end_src

@@html:

@@Windows (untested)@@html:

@@
#+begin_src bash
# install via Scoop: https://scoop.sh/
scoop install coreutils fd poppler imagemagick unzip
#+end_src

@@html:@@

* Installation

Dirvish is available on [[https://melpa.org/#/dirvish][Melpa]]. Just type =M-x package-install RET dirvish RET=
into Emacs 27.1+. =el-get= users can get the recipe from [[https://github.com/alexluigit/dirvish/issues/90][here]].

For straight.el users, it is simply:
#+begin_src emacs-lisp
(straight-use-package 'dirvish)
#+end_src

* Quickstart

After installation, let Dirvish take over Dired globally:
#+begin_src emacs-lisp
(dirvish-override-dired-mode)
#+end_src

+ =M-x dirvish RET=

Welcome to Dirvish! Press =?= for help.

+ =M-x dired= | =dired-jump= | ... =RET=

Dirvish takes care all of your Dired entries.

+ =M-x dirvish-dwim RET=

If the selected window is the only window, open Dirvish, otherwise open Dired.

* Resources

+ [[file:docs/CUSTOMIZING.org][Customizing]]
+ [[file:docs/EXTENSIONS.org][Extensions]]
+ [[file:docs/COMPARISON.org][Related projects]]
+ [[file:docs/CHANGELOG.org][Changelog]]
+ [[file:docs/EMACS-NEWCOMERS.org][Absolute beginner's guide]]
+ [[https://github.com/alexluigit/dirvish/discussions][Discussions]]

* Acknowledgements

This package took inspiration from the terminal file manager [[https://github.com/ranger/ranger][ranger]] and [[https://github.com/Alexander-Miller/treemacs][treemacs]]
from Alexander Miller. Some of the extensions was initially a rewrite of
packages provided by [[https://github.com/Fuco1/dired-hacks][dired-hacks]]. These extensions have been greatly enhanced in
comparison to the original versions.

Thanks Fox Kiester (@noctuid) for the awesome [[https://github.com/alexluigit/dirvish/issues/34][summary]] of Dirvish.

*Code contributions*:

@@html:@@
@@html:@@
@@html:
@@

*Useful advice and discussions*:

- [[https://github.com/noctuid][Fox Kiester]]
- [[https://github.com/jdtsmith][JD Smith]]
- [[https://github.com/karthink][karthink]]
- [[https://github.com/gcv][gcv]]
- [[https://github.com/aikrahguzar][aikrahguzar]]
- [[https://github.com/minad][Daniel Mendler]]

The name *dirvish* is a tribute to [[https://github.com/justinmk/vim-dirvish][vim-dirvish]].
-----
[[https://melpa.org/#/dirvish][file:https://melpa.org/packages/dirvish-badge.svg]]
[[https://stable.melpa.org/#/dirvish][file:https://stable.melpa.org/packages/dirvish-badge.svg]]
[[https://github.com/alexluigit/dirvish/actions/workflows/melpazoid.yml][file:https://github.com/alexluigit/dirvish/actions/workflows/melpazoid.yml/badge.svg]]