Files
flameshot/data/shell-completion/flameshot.zsh
Jeremy Fleischman ff7028d8ab Fix documentation of flameshot gui --help (#2949)
In
6432490c31,
the format of `--print-geometry` changed from `W H X Y` to `WxH+X+Y`,
but it looks like we forgot to update the docs accordingly.
2022-10-16 07:50:44 -05:00

157 lines
4.0 KiB
Bash

#compdef flameshot
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for the flameshot command line interface
# (https://github.com/flameshot-org/flameshot).
#
# ------------------------------------------------------------------------------
# How to use
# -------
#
# Copy this file to /usr/share/zsh/site-functions/_flameshot
#
# gui
_flameshot_gui_opts=(
{-p,--path}'[Existing directory or new file to save to]':dir:_files
{-c,--clipboard}'[Save the capture to the clipboard]'
{-d,--delay}'[Delay time in milliseconds]'
"--region[Screenshot region to select <WxH+X+Y or string>]"
{-r,--raw}'[Print raw PNG capture]'
{-g,--print-geometry}'[Print geometry of the selection in the format WxH+X+Y. Does nothing if raw is specified]'
{-u,--upload}'[Upload screenshot]'
"--pin[Pin the capture to the screen]"
{-s,--accept-on-select}'[Accept capture as soon as a selection is made]'
)
_flameshot_gui() {
_arguments -s : \
"$_flameshot_gui_opts[@]"
}
# screen
_flameshot_screen_opts=(
{-n,--number}'[Define the screen to capture (starting from 0). Default: screen containing the cursor]'
{-p,--path}'[Existing directory or new file to save to]':dir:_files
{-c,--clipboard}'[Save the capture to the clipboard]'
{-d,--delay}'[Delay time in milliseconds]'
"--region[Screenshot region to select <WxH+X+Y or string>]"
{-r,--raw}'[Print raw PNG capture]'
{-u,--upload}'[Upload screenshot]'
"--pin[Pin the capture to the screen]"
)
_flameshot_screen() {
_arguments -s : \
"$_flameshot_screen_opts[@]"
}
# full
_flameshot_full_opts=(
{-p,--path}'[Existing directory or new file to save to]':dir:_files
{-c,--clipboard}'[Save the capture to the clipboard]'
{-d,--delay}'[Delay time in milliseconds]'
"--region[Screenshot region to select <WxH+X+Y or string>]"
{-r,--raw}'[Print raw PNG capture]'
{-u,--upload}'[Upload screenshot]'
)
_flameshot_full() {
_arguments -s : \
"$_flameshot_full_opts[@]"
}
# config
_flameshot_config_opts=(
{-a,--autostart}'[Enable or disable run at startup]'
{-f,--filename}'[Set the filename pattern]'
{-t,--trayicon}'[Enable or disable the tray icon]'
{-s,--showhelp}'[Define the main UI color]'
{-m,--maincolor}'[Show the help message in the capture mode]'
{-k,--contrastcolor}'[Define the contrast UI color]'
"--check[Check the configuration for errors]"
)
_flameshot_config() {
_arguments -s : \
"$_flameshot_config_opts[@]"
}
# Main handle
_flameshot() {
local curcontext="$curcontext" ret=1
local -a state line commands
commands=(
"gui:Start a manual capture in GUI mode"
"screen:Capture a single screen (one monitor)"
"full:Capture the entire desktop (all monitors)"
"launcher:Open the capture launcher"
"config:Configure Flameshot"
)
_arguments -C -s -S -n \
'(- 1 *)'{-v,--version}"[display version information]: :->full" \
'(- 1 *)'{-h,--help}'[[display usage information]: :->full' \
'1:cmd:->cmds' \
'*:: :->args' && ret=0
case "$state" in
(cmds)
_describe -t commands 'commands' commands
;;
(args)
local cmd
cmd=$words[1]
case "$cmd" in
(gui)
_flameshot_gui && ret=0
;;
(screen)
_flameshot_screen && ret=0
;;
(full)
_flameshot_full && ret=0
;;
(config)
_flameshot_config && ret=0
;;
(*)
_default && ret=0
;;
esac
;;
(*)
;;
esac
return ret
}
_flameshot
#
# Editor modelines - https://www.wireshark.org/tools/modelines.html
#
# Local variables:
# mode: sh
# c-basic-offset: 4
# tab-width: 4
# indent-tabs-mode: nil
# End:
#
# vi: set filetype=zsh shiftwidth=4 tabstop=4 expandtab:
# :indentSize=4:tabSize=4:noTabs=true:
#