mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-11 13:51:01 -05:00
ce59fa4165
This adds the ability to pass title and class over IPC via the create-window subcommand, so users can run only one instance for windows of different spurposes in the window managers of their choice.
142 lines
No EOL
4.7 KiB
Text
142 lines
No EOL
4.7 KiB
Text
#compdef alacritty
|
|
|
|
autoload -U is-at-least
|
|
|
|
_alacritty() {
|
|
typeset -A opt_args
|
|
typeset -a _arguments_options
|
|
local ret=1
|
|
|
|
if is-at-least 5.2; then
|
|
_arguments_options=(-s -S -C)
|
|
else
|
|
_arguments_options=(-s -C)
|
|
fi
|
|
|
|
local context curcontext="$curcontext" state line
|
|
_arguments "${_arguments_options[@]}" \
|
|
'--embed=[Defines the X11 window ID (as a decimal integer) to embed Alacritty within]' \
|
|
'--config-file=[Specify alternative configuration file \[default: $XDG_CONFIG_HOME/alacritty/alacritty.yml\]]' \
|
|
'--socket=[Path for IPC socket creation]' \
|
|
'*-o+[Override configuration file options \[example: cursor.style=Beam\]]' \
|
|
'*--option=[Override configuration file options \[example: cursor.style=Beam\]]' \
|
|
'--working-directory=[Start the shell in the specified working directory]' \
|
|
'*-e+[Command and args to execute (must be last argument)]' \
|
|
'*--command=[Command and args to execute (must be last argument)]' \
|
|
'-t+[Defines the window title \[default: Alacritty\]]' \
|
|
'--title=[Defines the window title \[default: Alacritty\]]' \
|
|
'--class=[Defines window class/app_id on X11/Wayland \[default: Alacritty\]]' \
|
|
'--print-events[Print all events to stdout]' \
|
|
'--ref-test[Generates ref test]' \
|
|
'(-v)*-q[Reduces the level of verbosity (the min level is -qq)]' \
|
|
'(-q)*-v[Increases the level of verbosity (the max level is -vvv)]' \
|
|
'--hold[Remain open after child process exit]' \
|
|
'-h[Prints help information]' \
|
|
'--help[Prints help information]' \
|
|
'-V[Prints version information]' \
|
|
'--version[Prints version information]' \
|
|
":: :_alacritty_commands" \
|
|
"*::: :->alacritty" \
|
|
&& ret=0
|
|
case $state in
|
|
(alacritty)
|
|
words=($line[1] "${words[@]}")
|
|
(( CURRENT += 1 ))
|
|
curcontext="${curcontext%:*:*}:alacritty-command-$line[1]:"
|
|
case $line[1] in
|
|
(msg)
|
|
_arguments "${_arguments_options[@]}" \
|
|
'-s+[IPC socket connection path override]' \
|
|
'--socket=[IPC socket connection path override]' \
|
|
'-h[Prints help information]' \
|
|
'--help[Prints help information]' \
|
|
'-V[Prints version information]' \
|
|
'--version[Prints version information]' \
|
|
":: :_alacritty__msg_commands" \
|
|
"*::: :->msg" \
|
|
&& ret=0
|
|
case $state in
|
|
(msg)
|
|
words=($line[1] "${words[@]}")
|
|
(( CURRENT += 1 ))
|
|
curcontext="${curcontext%:*:*}:alacritty-msg-command-$line[1]:"
|
|
case $line[1] in
|
|
(create-window)
|
|
_arguments "${_arguments_options[@]}" \
|
|
'--working-directory=[Start the shell in the specified working directory]' \
|
|
'*-e+[Command and args to execute (must be last argument)]' \
|
|
'*--command=[Command and args to execute (must be last argument)]' \
|
|
'-t+[Defines the window title \[default: Alacritty\]]' \
|
|
'--title=[Defines the window title \[default: Alacritty\]]' \
|
|
'--class=[Defines window class/app_id on X11/Wayland \[default: Alacritty\]]' \
|
|
'--hold[Remain open after child process exit]' \
|
|
'-h[Prints help information]' \
|
|
'--help[Prints help information]' \
|
|
'-V[Prints version information]' \
|
|
'--version[Prints version information]' \
|
|
&& ret=0
|
|
;;
|
|
(help)
|
|
_arguments "${_arguments_options[@]}" \
|
|
'-h[Prints help information]' \
|
|
'--help[Prints help information]' \
|
|
'-V[Prints version information]' \
|
|
'--version[Prints version information]' \
|
|
&& ret=0
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
;;
|
|
(help)
|
|
_arguments "${_arguments_options[@]}" \
|
|
'-h[Prints help information]' \
|
|
'--help[Prints help information]' \
|
|
'-V[Prints version information]' \
|
|
'--version[Prints version information]' \
|
|
&& ret=0
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
}
|
|
|
|
(( $+functions[_alacritty_commands] )) ||
|
|
_alacritty_commands() {
|
|
local commands; commands=(
|
|
"msg:Available socket messages" \
|
|
"help:Prints this message or the help of the given subcommand(s)" \
|
|
)
|
|
_describe -t commands 'alacritty commands' commands "$@"
|
|
}
|
|
(( $+functions[_alacritty__msg__create-window_commands] )) ||
|
|
_alacritty__msg__create-window_commands() {
|
|
local commands; commands=(
|
|
|
|
)
|
|
_describe -t commands 'alacritty msg create-window commands' commands "$@"
|
|
}
|
|
(( $+functions[_alacritty__help_commands] )) ||
|
|
_alacritty__help_commands() {
|
|
local commands; commands=(
|
|
|
|
)
|
|
_describe -t commands 'alacritty help commands' commands "$@"
|
|
}
|
|
(( $+functions[_alacritty__msg__help_commands] )) ||
|
|
_alacritty__msg__help_commands() {
|
|
local commands; commands=(
|
|
|
|
)
|
|
_describe -t commands 'alacritty msg help commands' commands "$@"
|
|
}
|
|
(( $+functions[_alacritty__msg_commands] )) ||
|
|
_alacritty__msg_commands() {
|
|
local commands; commands=(
|
|
"create-window:Create a new window in the same Alacritty process" \
|
|
"help:Prints this message or the help of the given subcommand(s)" \
|
|
)
|
|
_describe -t commands 'alacritty msg commands' commands "$@"
|
|
}
|
|
|
|
_alacritty "$@" |