dotfiles/writing/.config/papis/papistui.yaml
Marty Oehme 248f171f48
papis: Improve tui table view rendering
Show read status, tags, attached documents and notes in a swift overview -
trying to somewhat mimic the JabRef table view since I like it quite a lot.
2023-08-31 12:20:08 +02:00

118 lines
3.6 KiB
YAML

base:
vimflavour: nvim
documentlist:
defaultstyle: multiline
marked-icon: ""
multilinestyle:
rows:
# TODO: show if already note attached; have info window display note content?
- "<cyan>{doc.alias('type')} {doc['ref']}</cyan>{' 󰘓 ' if doc['file'] else ''} {doc.alias('readstatus')}"
- "<white><bold>{doc.html_escape['title']}</bold></white>"
- "<blue>{doc.html_escape['author']}</blue>"
- "{doc.foreach('tags', '<lightgray>(</lightgray><gray><dim>{}</dim></gray><lightgray>)</lightgray>', split = ', ', sep = ' ')}"
tablestyle:
separator: " "
headerstyle: "underline|bold"
rowstyle: "white_bg"
cursorrowstyle: "black_white|bold"
columns:
- {
header: "󰑇",
content: "{'󰗠' if doc['readstatus'] == 'read' else '󰗡' if doc['readstatus'] == 'skimmed' else ' '}",
width: 1,
}
- {
header: "",
content: "{'󰎚' if doc['notes'] else '󰎛' if doc['note'] else ' '}",
width: 1,
}
- {
header: "󰉺",
content: "{doc.alias('type')}",
width: 1,
}
- { header: "Authors", content: "{doc['author']}", width: 25 }
- { header: "Year", content: "{str(doc['year'])}", width: 4 }
- { header: "Title", content: "{doc['title']}", width: 125 }
- { header: "Reference", content: "{doc['ref']}", width: 15 }
- {
header: "󰘓",
content: "{str(len(doc.get_files()) if len(doc.get_files()) > 0 else '')}",
width: 1,
}
- { header: "Tags", content: "{doc['tags'] if isinstance(doc['tags'], str) else doc.foreach('tags', '{}', sep=', ')}", width: 35 }
aliases:
type:
{
article: "",
book: "",
incollection: "󰪧",
inbook: "",
software: "",
presentation: "󰐨",
thesis: "",
_default_: "",
}
readstatus:
{
read: "<green>󰗠</green>",
skimmed: "<yellow>󰗡</yellow>"
}
keymappings:
q: quit
"?": help
S: toggle_style
/: search_mode
<key_down>: scroll_down
<key_up>: scroll_up
<ctrl-f>: page_down
<ctrl-b>: page_up
G: jump_to_bottom
gg: jump_to_top
j: scroll_down
k: scroll_up
o: open -r "pdf$"
O: open -d
r: view_reset
R: reload
e: edit
n: papis edit -n papis_id:{doc['papis_id']}
" ": mark_selected
mm: mark_selected
M: mark_down
mu: unmark_all
mv: mark_view
t: cmd "tag "
i:
- info_toggle
- "Toggle info window"
I:
- info_cycle
- "Cycle info windows"
# TODO look into https://github.com/supersambo/papis-tui vim-send mappings
infowindow:
default_on: False
views:
apa:
content: "{format_reference(doc)}"
abstract:
content: "{doc['abstract']}"
linewrap: True
height: 8
commandline:
search:
keyword_aliases: { a: "author:", t: "title:", y: "year:", k: "tags:" }
statusbar:
left:
default: "<black_green><bold> {info['mode_upper']} </black_green></bold><green_bg></green_bg>"
normal: "<black_green><bold> {info['mode_upper']} </black_green></bold><green_bg></green_bg>"
command: "<black_cyan><bold> {info['mode_upper']} </black_cyan></bold><cyan_bg></cyan_bg>"
select: "<black_red><bold> {info['mode_upper']} </black_red></bold><red_bg></red_bg>"
search: "<black_magenta><bold> {info['mode_upper']} </black_magenta></bold><magenta_bg></magenta_bg>"
right:
default: "<green>{info['sortkeys']} </green><cyan_bg></cyan_bg><black_cyan> {info['idx']} < {info['marked']} < {info['view']} < {info['items']} </black_cyan>"