aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Peter Grayson <pete@jpgrayson.net>2019-03-08 12:43:04 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2019-03-11 10:56:20 -0400
commitbedf2ac2fbd24b8b2be9eb5a9f2dbf315a7dd7a3 (patch)
tree786586b3960f3d51f1f2c89600072351be3435f6
parentipc: describe libinput device configuration (diff)
downloadsway-bedf2ac2fbd24b8b2be9eb5a9f2dbf315a7dd7a3.tar.gz
sway-bedf2ac2fbd24b8b2be9eb5a9f2dbf315a7dd7a3.tar.zst
sway-bedf2ac2fbd24b8b2be9eb5a9f2dbf315a7dd7a3.zip
Add -p/--pretty option to swaymsg
This new option forces pretty (non-raw/non-JSON) output. By default, when not using a tty, swaymsg outputs using the "raw" format. This makes it impossible to, for example, pipe the pretty output to a pager such as `less` since piping does not use a tty. The new -p/--pretty option gives the user explicit control over the output format while retaining the default tty-dependent behavior. Signed-off-by: Peter Grayson <pete@jpgrayson.net>
-rw-r--r--completions/bash/swaymsg2
-rw-r--r--completions/fish/swaymsg.fish3
-rw-r--r--completions/zsh/_swaymsg7
-rw-r--r--swaymsg/main.c7
-rw-r--r--swaymsg/swaymsg.1.scd3
5 files changed, 17 insertions, 5 deletions
diff --git a/completions/bash/swaymsg b/completions/bash/swaymsg
index 20092bdc..0b011902 100644
--- a/completions/bash/swaymsg
+++ b/completions/bash/swaymsg
@@ -21,6 +21,7 @@ _swaymsg()
21 21
22 short=( 22 short=(
23 -h 23 -h
24 -p
24 -q 25 -q
25 -r 26 -r
26 -s 27 -s
@@ -30,6 +31,7 @@ _swaymsg()
30 31
31 long=( 32 long=(
32 --help 33 --help
34 --pretty
33 --quiet 35 --quiet
34 --raw 36 --raw
35 --socket 37 --socket
diff --git a/completions/fish/swaymsg.fish b/completions/fish/swaymsg.fish
index fd577413..37a24513 100644
--- a/completions/fish/swaymsg.fish
+++ b/completions/fish/swaymsg.fish
@@ -1,10 +1,11 @@
1# swaymsg(1) completion 1# swaymsg(1) completion
2 2
3complete -c swaymsg -s h -l help --description "Show help message and quit." 3complete -c swaymsg -s h -l help --description "Show help message and quit."
4complete -c swaymsg -s p -l pretty --description "Use pretty output even when not using a tty."
4complete -c swaymsg -s q -l quiet --description "Sends the IPC message but does not print the response from sway." 5complete -c swaymsg -s q -l quiet --description "Sends the IPC message but does not print the response from sway."
5complete -c swaymsg -s v -l version --description "Print the version (of swaymsg) and quit."
6complete -c swaymsg -s r -l raw --description "Use raw output even if using tty." 6complete -c swaymsg -s r -l raw --description "Use raw output even if using tty."
7complete -c swaymsg -s s -l socket -r --description "Use the specified socket path. Otherwise, swaymsg will ask where the socket is (which is the value of $SWAYSOCK, then of $I3SOCK)." 7complete -c swaymsg -s s -l socket -r --description "Use the specified socket path. Otherwise, swaymsg will ask where the socket is (which is the value of $SWAYSOCK, then of $I3SOCK)."
8complete -c swaymsg -s v -l version --description "Print the version (of swaymsg) and quit."
8 9
9complete -c swaymsg -s t -l type -fr --description "Specify the type of IPC message." 10complete -c swaymsg -s t -l type -fr --description "Specify the type of IPC message."
10complete -c swaymsg -s t -l type -fra 'get_workspaces' --description "Gets a JSON-encoded list of workspaces and their status." 11complete -c swaymsg -s t -l type -fra 'get_workspaces' --description "Gets a JSON-encoded list of workspaces and their status."
diff --git a/completions/zsh/_swaymsg b/completions/zsh/_swaymsg
index 0ba45d4a..c11fa990 100644
--- a/completions/zsh/_swaymsg
+++ b/completions/zsh/_swaymsg
@@ -28,10 +28,11 @@ types=(
28) 28)
29 29
30_arguments -s \ 30_arguments -s \
31 '(-v --version)'{-v,--version}'[Show the version number and quit]' \
32 '(-m --monitor)'{-m,--monitor}'[Monitor until killed (-t SUBSCRIBE only)]' \
33 '(-h --help)'{-h,--help}'[Show help message and quit]' \ 31 '(-h --help)'{-h,--help}'[Show help message and quit]' \
32 '(-m --monitor)'{-m,--monitor}'[Monitor until killed (-t SUBSCRIBE only)]' \
33 '(-p --pretty)'{-p,--pretty}'[Use pretty output even when not using a tty]' \
34 '(-q --quiet)'{-q,--quiet}'[Be quiet]' \ 34 '(-q --quiet)'{-q,--quiet}'[Be quiet]' \
35 '(-r --raw)'{-r,--raw}'[Use raw output even if using a tty]' \ 35 '(-r --raw)'{-r,--raw}'[Use raw output even if using a tty]' \
36 '(-s --socket)'{-s,--socket}'[Use the specified socket path]:files:_files' \ 36 '(-s --socket)'{-s,--socket}'[Use the specified socket path]:files:_files' \
37 '(-t --type)'{-t,--type}'[Specify the message type]:type:{_describe "type" types}' 37 '(-t --type)'{-t,--type}'[Specify the message type]:type:{_describe "type" types}' \
38 '(-v --version)'{-v,--version}'[Show the version number and quit]'
diff --git a/swaymsg/main.c b/swaymsg/main.c
index e51c00d9..a0ef7e3d 100644
--- a/swaymsg/main.c
+++ b/swaymsg/main.c
@@ -326,6 +326,7 @@ int main(int argc, char **argv) {
326 static struct option long_options[] = { 326 static struct option long_options[] = {
327 {"help", no_argument, NULL, 'h'}, 327 {"help", no_argument, NULL, 'h'},
328 {"monitor", no_argument, NULL, 'm'}, 328 {"monitor", no_argument, NULL, 'm'},
329 {"pretty", no_argument, NULL, 'p'},
329 {"quiet", no_argument, NULL, 'q'}, 330 {"quiet", no_argument, NULL, 'q'},
330 {"raw", no_argument, NULL, 'r'}, 331 {"raw", no_argument, NULL, 'r'},
331 {"socket", required_argument, NULL, 's'}, 332 {"socket", required_argument, NULL, 's'},
@@ -339,6 +340,7 @@ int main(int argc, char **argv) {
339 "\n" 340 "\n"
340 " -h, --help Show help message and quit.\n" 341 " -h, --help Show help message and quit.\n"
341 " -m, --monitor Monitor until killed (-t SUBSCRIBE only)\n" 342 " -m, --monitor Monitor until killed (-t SUBSCRIBE only)\n"
343 " -p, --pretty Use pretty output even when not using a tty\n"
342 " -q, --quiet Be quiet.\n" 344 " -q, --quiet Be quiet.\n"
343 " -r, --raw Use raw output even if using a tty\n" 345 " -r, --raw Use raw output even if using a tty\n"
344 " -s, --socket <socket> Use the specified socket.\n" 346 " -s, --socket <socket> Use the specified socket.\n"
@@ -350,7 +352,7 @@ int main(int argc, char **argv) {
350 int c; 352 int c;
351 while (1) { 353 while (1) {
352 int option_index = 0; 354 int option_index = 0;
353 c = getopt_long(argc, argv, "hmqrs:t:v", long_options, &option_index); 355 c = getopt_long(argc, argv, "hmpqrs:t:v", long_options, &option_index);
354 if (c == -1) { 356 if (c == -1) {
355 break; 357 break;
356 } 358 }
@@ -358,6 +360,9 @@ int main(int argc, char **argv) {
358 case 'm': // Monitor 360 case 'm': // Monitor
359 monitor = true; 361 monitor = true;
360 break; 362 break;
363 case 'p': // Pretty
364 raw = false;
365 break;
361 case 'q': // Quiet 366 case 'q': // Quiet
362 quiet = true; 367 quiet = true;
363 break; 368 break;
diff --git a/swaymsg/swaymsg.1.scd b/swaymsg/swaymsg.1.scd
index 523db6cc..1bcf956a 100644
--- a/swaymsg/swaymsg.1.scd
+++ b/swaymsg/swaymsg.1.scd
@@ -19,6 +19,9 @@ _swaymsg_ [options...] [message]
19 there is a malformed response or an invalid event type was requested, 19 there is a malformed response or an invalid event type was requested,
20 swaymsg will stop monitoring and exit. 20 swaymsg will stop monitoring and exit.
21 21
22*-p, --pretty*
23 Use raw output even when not using a tty.
24
22*-q, --quiet* 25*-q, --quiet*
23 Sends the IPC message but does not print the response from sway. 26 Sends the IPC message but does not print the response from sway.
24 27