#compdef journalctl
-_outputmodes() {
- local -a _output_opts
- _output_opts=(short short-monotonic verbose export json json-pretty json-see cat)
- _describe -t output 'output mode' _output_opts || compadd "$@"
-}
-
_list_fields() {
local -a journal_fields
journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
{-n+,--lines=}'[Number of journal entries to show]:integer' \
'--no-tail[Show all lines, even in follow mode]' \
{-r,--reverse}'[Reverse output]' \
- {-o+,--output=}'[Change journal output mode]:output modes:_outputmodes' \
+ {-o+,--output=}'[Change journal output mode]:output modes:_sd_outputmodes' \
{-x,--catalog}'[Show explanatory texts with each log line]' \
{-q,--quiet}"[Don't show privilege warning]" \
{-m,--merge}'[Show entries from all available journals]' \
{-b+,--boot=}'[Show data only from the specified boot or offset]:boot id or offset:_journal_boots' \
+ '--list-boots[List boots ordered by time]' \
{-k,--dmesg}'[Show only kernel messages, Implies -b]' \
{-u+,--unit=}'[Show data only from the specified unit]:units:_journal_fields _SYSTEMD_UNIT' \
'--user-unit=[Show data only from the specified user session unit]:units:_journal_fields USER_UNIT' \