-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Expand file tree
/
Copy pathflameshot.zsh
More file actions
159 lines (135 loc) · 4.22 KB
/
flameshot.zsh
File metadata and controls
159 lines (135 loc) · 4.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#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>]"
"--last-region[Repeat screenshot with previously selected region]"
{-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>]"
"--last-region[Repeat screenshot with previously selected region]"
{-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>]"
"--last-region[Repeat screenshot with previously selected region]"
{-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:
#