blob: 0647cb94d28e0af199a4fadac02e3d23c5e1e45a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# Daffm
Dumb as fuck file manager is a minimal tui file manager

## Install
- Clone the repo and build it: `cabal build daffm` or `nix build`
- Nix flakes users can also install it as a flake: `github:phenax/daffm#daffm`
## Config
Configuration is managed in toml.
By default it will try to load `$XDG_CONFIG_HOME/daffm/config.toml`.
You can load config in a different path using `daffm -c <path-to-config>`.
You can also store alternate configs in `$XDG_CONFIG_HOME/daffm/config.custom-thing.toml` and load it as `daffm -c @custom-thing`.
Heres an example config for reference:
```toml
# `opener` runs when opening a file or selections
opener = """
echo "%F" | while IFS= read file; do
case "$(file --mime-type "$file" -bL)" in
text/*) $EDITOR "$file" ;;
*) xdg-open "$file" >/dev/null 2>&1 ;;
esac
done;
"""
[keymap]
gdl = "cd ~/Downloads"
gdc = "cd ~/Documents"
gp = "cd ~/Pictures"
rn = "!!echo '%F' | vidir -v -" # Uses vidir (moreutils) to rename selected files/directories
md = "cmdline-set !mkdir -p " # Prefills cmdline
mf = "cmdline-set !touch "
dd = "!rm -rfi %f"
sdd = "!sudo rm -rfi %f"
cp = "cmdline-set !cp -f % %"
# Copes file to clipboard
"<space>yy" = """!
xclip -selection clipboard -t $(file --mime-type '%' -bL) -i '%'
"""
```
The substituions (%,%f,%s,%F,%S) are replaced with absolute file paths
- `%`: File under cursor
- `%s`: Selected files separated by spaces
- `%S`: Selected files separated by newlines
- `%f`: Same as `%s` but if there are no selections, uses file under cursor
- `%F`: Same as `%S` but if there are no selections, uses file under cursor
## Default keys (no need to define these in config)
```toml
[keymap]
q = "quit"
rr = "reload"
"!" = "cmdline-set !"
":" = "cmdline-enter"
l = "open"
h = "back"
"<cr>" = "open"
"<bs>" = "back"
v = "selection-toggle" # select/unselect files
"<tab>" = "selection-toggle"
C = "selection-clear"
"~" = "cd ~"
gh = "cd ~" # Go home
"$" = "$SHELL" # drop to shell
gx = "!xdg-open % >/dev/null 2>&1" # Open externally
gcfg = "cd ~/.config/daffm" # Open default configurations directory
```
## Commands
WIP
|