Add yazi file manager config
This commit is contained in:
208
yazi.org
Normal file
208
yazi.org
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
#+TITLE: Yazi
|
||||||
|
#+SETUPFILE: ./setup/org-setup-file.org
|
||||||
|
|
||||||
|
* General configuration
|
||||||
|
#+begin_src conf :tangle ~/.config/yazi/yazi.toml
|
||||||
|
[preview]
|
||||||
|
tab_size = 4
|
||||||
|
image_filter = "nearest"
|
||||||
|
|
||||||
|
[opener]
|
||||||
|
onlyoffice = [
|
||||||
|
{ run = "onlyoffice-desktopeditors %s", block = false, desc = "Only-Office"},
|
||||||
|
]
|
||||||
|
nsxiv = [
|
||||||
|
{ run = "nsxiv %s", block = false, desc = "nsxiv"},
|
||||||
|
]
|
||||||
|
f3d = [
|
||||||
|
{ run = "f3d %s", block = false, desc = "F3D"},
|
||||||
|
]
|
||||||
|
inkscape = [
|
||||||
|
{ run = "inkscape %s", block = false, desc = "Inkscape"},
|
||||||
|
]
|
||||||
|
emacs = [
|
||||||
|
{ run = "emacsclient -c %s", block = false, desc = "Emacs"},
|
||||||
|
]
|
||||||
|
nvim = [
|
||||||
|
{ run = "nvim %s", block = true, desc = "neovim"},
|
||||||
|
]
|
||||||
|
freecad = [
|
||||||
|
{ run = "freecad %s", block = false, desc = "FreeCAD"},
|
||||||
|
]
|
||||||
|
qutebrowser = [
|
||||||
|
{ run = "qutebrowser %s", block = false, desc = "Qutebrowser"},
|
||||||
|
]
|
||||||
|
ics-add = [
|
||||||
|
{ run = "ics-add %s", block = false, desc = "Add ICS"},
|
||||||
|
]
|
||||||
|
xournal = [
|
||||||
|
{ run = "xournalpp %s", block = false, desc = "Xournalpp"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[open]
|
||||||
|
prepend_rules = [
|
||||||
|
{ url="*.step", use = "f3d" },
|
||||||
|
{ url = "*.org", use = ["emacs", "nvim"] },
|
||||||
|
{ mime = "text/plain", use = "nvim" },
|
||||||
|
{ mime = "image/bmp", use = ["nsxiv", "inkscape"] },
|
||||||
|
{ mime = "text/xml", use = "qutebrowser" },
|
||||||
|
{ mime = "text/calendar", use = "ics-add" },
|
||||||
|
{ mime = "application/pdf", use = ["open", "inkscape", "xournal"] },
|
||||||
|
{ mime = "application/zip", url = "*.FCStd", use = "freecad" },
|
||||||
|
{ mime = "application/zip", url = "*.3mf", use = "f3d" },
|
||||||
|
{ mime = "application/octet-stream", url = "*.stl", use = "f3d" },
|
||||||
|
{ mime = "application/octet-stream", url = "*.stp", use = "f3d" },
|
||||||
|
{ mime = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", use = "onlyoffice" },
|
||||||
|
]
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Keybindings configuration
|
||||||
|
|
||||||
|
#+begin_src conf :tangle ~/.config/yazi/keymap.toml
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = [ "g", "w" ]
|
||||||
|
run = "cd ~/Cloud/work-projects"
|
||||||
|
desc = "Cd to work-projects"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = [ "g", "p" ]
|
||||||
|
run = "cd ~/Cloud/personnal"
|
||||||
|
desc = "Cd to personnal"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = [ "g", "P" ]
|
||||||
|
run = "cd ~/Cloud/pictures/phone"
|
||||||
|
desc = "Cd to pictures"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = [ "g", "s" ]
|
||||||
|
run = "cd ~/Cloud/pictures/screenshots"
|
||||||
|
desc = "Cd to screenshots"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = [ "g", "T" ]
|
||||||
|
run = "cd ~/.local/share/Trash/files"
|
||||||
|
desc = "Cd to trash"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = [ "g", "m" ]
|
||||||
|
run = "cd ~/Cloud/meetings"
|
||||||
|
desc = "Cd to meetings"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = [ "g", "D" ]
|
||||||
|
run = "cd ~/Cloud/documents"
|
||||||
|
desc = "Cd to documents"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = "R"
|
||||||
|
run = "rename --empty=stem --cursor=start"
|
||||||
|
desc = "rename overwrite"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = "q"
|
||||||
|
run = "shell 'if [ -n \"$TMUX\" ]; then tmux detach; fi' --confirm"
|
||||||
|
desc = "Quit Yazi"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = "!"
|
||||||
|
run = 'shell "$SHELL" --block --confirm'
|
||||||
|
desc = "Open shell here"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = "<C-n>"
|
||||||
|
run = '''
|
||||||
|
shell 'dragon-drop -a -x "$@"' --confirm
|
||||||
|
'''
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src conf :tangle ~/.config/yazi/keymap.toml
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = ["e", "o"]
|
||||||
|
run = 'shell "nohup pcmanfm $(dirname \"$0\") &" --confirm'
|
||||||
|
desc = "Open directory"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = ["e", "x"]
|
||||||
|
run = 'shell "~/.config/yazi/scripts/extract.sh \"$0\"" --confirm'
|
||||||
|
desc = "Extract"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = ["e", "z"]
|
||||||
|
run = 'shell "~/.config/yazi/scripts/compress.sh \"$(basename $0)\"" --confirm'
|
||||||
|
desc = "Compress"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = ["e", "e"]
|
||||||
|
run = 'shell "convert-file \"$0\"" --confirm'
|
||||||
|
desc = "Convert File"
|
||||||
|
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = ["e", "b"]
|
||||||
|
run = 'shell "~/.config/yazi/scripts/add-reference.sh \"$0\"" --confirm'
|
||||||
|
desc = "Convert File"
|
||||||
|
[[mgr.prepend_keymap]]
|
||||||
|
on = ["e", "p"]
|
||||||
|
run = 'shell "print-esrf \"$0\"" --confirm'
|
||||||
|
desc = "Print"
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Color scheme configuration.
|
||||||
|
#+begin_src conf :tangle ~/.config/yazi/theme.toml
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Scripts
|
||||||
|
*** Extract DOI, create BibTeX and rename file
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args: :tangle ~/.config/yazi/scripts/add-reference.sh
|
||||||
|
:header-args+: :comments both :mkdirp yes
|
||||||
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
||||||
|
:END:
|
||||||
|
#+begin_src bash
|
||||||
|
add_reference () {
|
||||||
|
doi=$(pdf2doi $1 | sed 's/^DOI *//' | sed 's/ \+.*//')
|
||||||
|
|
||||||
|
# If empty DOI, ask manually
|
||||||
|
if [ -z $doi ]; then
|
||||||
|
doi=$(rofi -dmenu -p "DOI")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If DOI, add it to Emacs
|
||||||
|
if [ ! -z $doi ]; then
|
||||||
|
emacsclient --eval "(tdh-org-ref-import-pdf \"$doi\" \"$1\")" && \
|
||||||
|
dunstify --replace=49496 "BibTeX" "File copied."
|
||||||
|
else
|
||||||
|
dunstify --replace=49496 "BibTeX" "Failed to get DOI"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
add_reference "$1"
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Extract Script
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args: :tangle ~/.config/yazi/scripts/extract.sh
|
||||||
|
:header-args+: :comments both :mkdirp yes
|
||||||
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
||||||
|
:END:
|
||||||
|
#+begin_src bash
|
||||||
|
if [ $TMUX ]; then
|
||||||
|
tmux split -v -l 2 atool -x "$1" && tmux select-pane -U
|
||||||
|
else
|
||||||
|
atool -x "$1"
|
||||||
|
fi
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Compress Script
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args: :tangle ~/.config/yazi/scripts/compress.sh
|
||||||
|
:header-args+: :comments both :mkdirp yes
|
||||||
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
||||||
|
:END:
|
||||||
|
#+begin_src bash
|
||||||
|
if [ $TMUX ]; then
|
||||||
|
tmux split -v -l 2 apack "${1%.*}.zip" "$1" && tmux select-pane -U
|
||||||
|
else
|
||||||
|
apack "${1%.*}.zip" "$1"
|
||||||
|
fi
|
||||||
|
#+end_src
|
||||||
Reference in New Issue
Block a user