amarakon / dfm

Manage files using dmenu
https://amarakon.github.io/projects/dfm/
GNU Affero General Public License v3.0
24 stars 1 forks source link
dmenu dmenu-scripts file-manager

DFM – dmenu File Manager

Contents

Introduction

DFM is a simple file manager that uses dmenu. Instead of opening a slow graphical environment, you open dmenu and quickly choose whatever file you want to manipulate. It supports multiple selections and wildcards. DFM is the fastest file manager because it is only usable with the keyboard, unless you apply the mouse-support dmenu patch. Keep in mind that DFM is still not a finished project, meaning you will rarely encounter a bug. Please submit an issue or a pull request if you have any issues or want any changes.

Usage

`# user` dfm --print # Print the output of the selection
`# user` dfm --copy # Copy the output of the selection to the clipboard
`# user` dfm --open # Open the appropriate program for the selection
`# user` dfm --menu=fzf # Change the menu command from `dmenu` to `fzf`
`# user` dfm --restore # Restore the location of the previous run

The default is the open option.

To select one file, press the Return key. To use the input instead of the selection, press ShiftReturn (not necessary most of the time). To select multiple files, press ControlReturn on each selection and press Return when you are finished. (This requires the multi-selection dmenu patch.) To select all the files, type *. To go to the home directory, type ~. To go back a directory, type .. or press ShiftReturn without typing anything. To go to the / directory, type /.

Backtrack

A cool new feature I added is to quickly backtrack to any directory. This allows you to type a directory you passed in the prompt to return to it instead of constantly doing ... If you are in the /home/amarakon/.local/src/amarakon/dfm directory, you can type .local in the prompt and press Return to quickly backtrack to the /home/amarakon/.local directory. You do not even need to type the full name! You can type .l instead of .local for example. If there is more than one match, it will use the closest one. For example, if I was in the /home/amarakon/.local/src/amarakon/dfm directory and I chose to return to amarakon, It will return me to /home/amarakon/.local/src/amarakon.

Dependencies

  1. dmenu
  2. perl (for case-insensitive matching)
  3. sesame or xdg-utils (sesame is preferred because it supports multi-selection and it is faster.)
  4. xclip (if you want to use the copy or copy contents features.)

Most of these will probably already be installed on your system, with the exception of dmenu.

Installation

Universal

`# user` git clone https://github.com/amarakon/dfm
`# user` cd dfm
`# root` make install

Arch

Install the dmenu-dfm AUR package.

Gentoo

`# root` eselect repository add amarlay git https://github.com/amarakon/amarlay
`# root` emerge --sync amarlay
`# root` emerge x11-misc/dfm

Uninstallation

Universal

`# user` cd dfm
`# root` make uninstall

Arch

Uninstall the dmenu-dfm AUR package.

Gentoo

`# root` emerge -c x11-misc/dfm
# Remove my overlay (optional)
`# root` eselect-repository remove -f amarlay
`# root` emerge --sync

Configuration

You can change the default options for DFM via the configuration file. The configuration file is located in the configuration directory, so usually ~/.config/dfm/dfm.conf. Here is an example configuration:

copy=clipboard
cat=true
case_sensitivity=sensitive
menu=fzf
length=30
path=full

Credit

This project is based on clamiax/scripts. It is based on the dbrowse script.