Skip to content

Commit 49d0002

Browse files
committed
add yazi to replace ranger
1 parent 8b8a3a1 commit 49d0002

File tree

4 files changed

+257
-13
lines changed

4 files changed

+257
-13
lines changed

modules/home-manager/default.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
./ssh.nix
1818
./tldr.nix
1919
./tmux.nix
20+
./yazi
2021
./gnome.nix
2122
./nixpkgs.nix
2223
];
@@ -99,13 +100,13 @@
99100
nmap
100101
nodejs_20
101102
openldap
103+
ouch
102104
parallel
103105
pre-commit
104106
process-compose
105107
procps
106108
pv
107109
pyright
108-
ranger
109110
rclone
110111
restic
111112
rsync
@@ -124,7 +125,6 @@
124125
usage
125126
uv
126127
yadm
127-
yazi
128128
yq-go
129129
zoxide
130130
# python with default packages

modules/home-manager/nvim/default.nix

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,6 @@
7272
};
7373
meta.homepage = "https://github.com/NotAShelf/direnv.nvim";
7474
};
75-
ranger-nvim = pkgs.vimUtils.buildVimPlugin {
76-
name = "ranger.nvim";
77-
src = pkgs.fetchFromGitHub {
78-
owner = "kelly-lin";
79-
repo = "ranger.nvim";
80-
rev = "fd2cc999f3ef88f7cdcbcad5f26000c52b16c489";
81-
sha256 = "sha256-rqZjtPAAWaSavPCNtBI7vm627ZyffJOQ2Qs32M9uz3I=";
82-
};
83-
meta.homepage = "https://github.com/kelly-lin/ranger.nvim";
84-
};
8575
sanitizePluginName = input: let
8676
name = lib.strings.getName input;
8777
vimplugin_removed = lib.strings.removePrefix "vimplugin-" name;
@@ -150,7 +140,6 @@ in {
150140
lualine-nvim
151141
onedark-nvim
152142
direnv-nvim
153-
ranger-nvim
154143
friendly-snippets
155144
lazygit-nvim
156145
lazydev-nvim
Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
{
2+
pkgs,
3+
lib,
4+
...
5+
}: {
6+
programs.yazi = {
7+
enable = true;
8+
plugins = {
9+
inherit
10+
(pkgs.yaziPlugins)
11+
chmod
12+
diff
13+
full-border
14+
git
15+
jump-to-char
16+
lazygit
17+
mount
18+
ouch
19+
piper
20+
rsync
21+
smart-enter
22+
smart-filter
23+
smart-paste
24+
starship
25+
vcs-files
26+
;
27+
};
28+
extraPackages = with pkgs;
29+
[
30+
fd
31+
lazygit
32+
ouch
33+
ripgrep
34+
rsync
35+
]
36+
++ lib.optionals (pkgs.stdenvNoCC.isLinux) [util-linux];
37+
initLua = ./init.lua;
38+
theme = {
39+
mgr = {
40+
preview_hovered = {
41+
underline = false;
42+
};
43+
};
44+
};
45+
settings = {
46+
prepend_previewers = [
47+
# Archive previewer
48+
{
49+
mime = "application/*zip";
50+
run = "ouch";
51+
}
52+
{
53+
mime = "application/x-tar";
54+
run = "ouch";
55+
}
56+
{
57+
mime = "application/x-bzip2";
58+
run = "ouch";
59+
}
60+
{
61+
mime = "application/x-7z-compressed";
62+
run = "ouch";
63+
}
64+
{
65+
mime = "application/x-rar";
66+
run = "ouch";
67+
}
68+
{
69+
mime = "application/vnd.rar";
70+
run = "ouch";
71+
}
72+
{
73+
mime = "application/x-xz";
74+
run = "ouch";
75+
}
76+
{
77+
mime = "application/xz";
78+
run = "ouch";
79+
}
80+
{
81+
mime = "application/x-zstd";
82+
run = "ouch";
83+
}
84+
{
85+
mime = "application/zstd";
86+
run = "ouch";
87+
}
88+
{
89+
mime = "application/java-archive";
90+
run = "ouch";
91+
}
92+
];
93+
};
94+
keymap = {
95+
mgr.prepend_keymap = [
96+
{
97+
on = ["g" "r"];
98+
run = "shell -- ya emit cd \"$(git rev-parse --show-toplevel)\"";
99+
}
100+
{
101+
on = [
102+
"c"
103+
"m"
104+
];
105+
run = "plugin chmod";
106+
desc = "Chmod on selected files";
107+
}
108+
{
109+
on = "<C-d>";
110+
run = "plugin diff";
111+
desc = "Diff the selected with the hovered file";
112+
}
113+
{
114+
on = "M";
115+
run = "plugin mount";
116+
}
117+
{
118+
on = "f";
119+
run = "plugin jump-to-char";
120+
desc = "Jump to char";
121+
}
122+
{
123+
on = ["C"];
124+
run = "plugin ouch zst";
125+
desc = "Compress with ouch";
126+
}
127+
{
128+
on = "l";
129+
run = "plugin smart-enter";
130+
desc = "Enter the child directory, or open the file";
131+
}
132+
{
133+
on = "F";
134+
run = "plugin smart-filter";
135+
desc = "Smart filter";
136+
}
137+
{
138+
on = "p";
139+
run = "plugin smart-paste";
140+
desc = "Paste into the hovered directory or CWD";
141+
}
142+
{
143+
on = ["R"];
144+
run = "plugin rsync";
145+
desc = "Copy files using rsync";
146+
}
147+
{
148+
on = [
149+
"g"
150+
"i"
151+
];
152+
run = "plugin lazygit";
153+
desc = "run lazygit";
154+
}
155+
# sudo cp/mv
156+
{
157+
on = [
158+
"R"
159+
"p"
160+
"p"
161+
];
162+
run = "plugin sudo -- paste";
163+
desc = "sudo paste";
164+
}
165+
# sudo cp/mv --force
166+
{
167+
on = [
168+
"R"
169+
"P"
170+
];
171+
run = "plugin sudo -- paste --force";
172+
desc = "sudo paste";
173+
}
174+
# sudo mv
175+
{
176+
on = [
177+
"R"
178+
"r"
179+
];
180+
run = "plugin sudo -- rename";
181+
desc = "sudo rename";
182+
}
183+
# sudo ln -s (absolute-path)
184+
{
185+
on = [
186+
"R"
187+
"p"
188+
"l"
189+
];
190+
run = "plugin sudo -- link";
191+
desc = "sudo link";
192+
}
193+
# sudo ln -s (relative-path)
194+
{
195+
on = [
196+
"R"
197+
"p"
198+
"r"
199+
];
200+
run = "plugin sudo -- link --relative";
201+
desc = "sudo link relative path";
202+
}
203+
# sudo ln
204+
{
205+
on = [
206+
"R"
207+
"p"
208+
"L"
209+
];
210+
run = "plugin sudo -- hardlink";
211+
desc = "sudo hardlink";
212+
}
213+
# sudo touch/mkdir
214+
{
215+
on = [
216+
"R"
217+
"a"
218+
];
219+
run = "plugin sudo -- create";
220+
desc = "sudo create";
221+
}
222+
# sudo trash
223+
{
224+
on = [
225+
"R"
226+
"d"
227+
];
228+
run = "plugin sudo -- remove";
229+
desc = "sudo trash";
230+
}
231+
# sudo delete
232+
{
233+
on = [
234+
"R"
235+
"D"
236+
];
237+
run = "plugin sudo -- remove --permanently";
238+
desc = "sudo delete";
239+
}
240+
# sudo chmod
241+
{
242+
on = [
243+
"R"
244+
"m"
245+
];
246+
run = "plugin sudo -- chmod";
247+
desc = "sudo chmod";
248+
}
249+
];
250+
};
251+
};
252+
}

modules/home-manager/yazi/init.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
require("full-border"):setup({ type = ui.Border.ROUNDED })
2+
require("git"):setup()
3+
require("zoxide"):setup({ update_db = true })

0 commit comments

Comments
 (0)