Michael Stapelberg
39415fe16d
docs/ipc: "urgent": complete the list of container types ( #2967 )
...
Thanks chressie!
2017-09-18 16:36:34 +02:00
Kent Fredric
54a7e559ed
Migrate tooling to ExtUtils::MakeMaker ( #2963 )
2017-09-18 13:03:54 +02:00
Michael Stapelberg
607e97e651
ipc: rename COMMAND to RUN_COMMAND for consistency ( #2956 )
...
All other message types are verbs, only our first-ever message COMMAND wasn’t.
While we’re here, also change the message type dictionary into a table with
clickable links to the corresponding reply type.
Authors of downstream IPC libraries are encouraged to keep the old name around
so as to not break existing code, but mark it as deprecated.
2017-09-17 15:25:00 +02:00
Orestis Floros
a35854ddf4
Allow assign to output
...
Implements the "assign" part of issue #2764 .
2017-09-17 15:37:17 +03:00
Orestis Floros
45d1e51857
Fix userguide formatting error
2017-09-17 15:37:17 +03:00
Orestis Floros
716a5b3660
166-assign.t: improve open_special call
2017-09-17 15:37:17 +03:00
Orestis Floros
1c975a1b8c
166-assign.t: fix typo
2017-09-17 15:37:17 +03:00
Orestis Floros
e2bacc7df8
Add con_move_to_output_name function
2017-09-17 15:37:17 +03:00
Ingo Bürk
d726d09d49
Merge pull request #2960 from orestisf1993/next
...
Fix possible errors related to free()
2017-09-17 12:05:04 +02:00
Orestis Floros
91c8c00afc
Fix use of err after it is freed
2017-09-17 01:14:47 +03:00
Orestis Floros
f7a7c7778b
Fix wrong call to free
...
To confirm, assign n to a constant value and try to use the
append_layout command.
Without the change i3 crashes.
2017-09-17 00:24:15 +03:00
Orestis Floros
205dd76096
Prevent freeing of uninitialized pointer
...
> variable 'buf' is used uninitialized whenever 'if' condition is true
Note: freeing a NULL pointer is fine.
2017-09-16 23:54:12 +03:00
Michael Stapelberg
5062dd61bc
ipc: tree reply: document focus, nodes and floating_nodes ( #2955 )
...
These haven’t ever changed, but were only included in the example, not in the
list, so people might not have realized that these are safe for use.
2017-09-16 17:28:44 +02:00
Ingo Bürk
9a9ade88ef
Merge pull request #2902 from orestisf1993/swap-for-fullscreen
...
Make swap work with fullscreen windows
2017-09-16 13:07:21 +02:00
Orestis Floros
fa5d8a0209
Make swap work with fullscreen windows
...
Swap works like normal with fullscreen windows but swaps the fullscreen
mode of the 2 containers after it's done.
Fixes #2811
2017-09-16 13:49:20 +03:00
Orestis Floros
71e309597c
Add SWAP util macro
2017-09-16 13:49:19 +03:00
Ingo Bürk
8cad1c1fa6
Merge pull request #2887 from orestisf1993/next
...
Allow assign to workspace by number
2017-09-15 21:26:35 +02:00
Michael Stapelberg
6b8e3560ef
Merge pull request #2950 from CyberShadow/pull-20170914-153533
...
Fix erratic behavior with single container child jumping outputs
2017-09-15 11:31:33 +02:00
Vladimir Panteleev
480f688b44
Fix erratic behavior with single container child jumping outputs
...
This fixes a regression introduced in commit
4e88c10564ca5366c2578908f62ec56625a26718: when attempting to move the
single child of a container in the direction of another output, i3
would move the window to the output, despite the window not being at
the edge of its output, instead of moving it to its parent container.
The bug occurred because the check for moving containers across
outputs with non-default workspace layouts (issue #1603 ) did not
actually verify that the moved window lies at the edge of the
workspace, despite what its comment said.
Fixes issue #2466 .
2017-09-15 09:27:32 +00:00
Orestis
00912add46
Use numeric comparison in sort for $displaynum ( #2952 )
...
Eg in the case of sockets:
- X0
- X99
- X100
X99 would be picked instead of X100.
2017-09-15 11:21:35 +02:00
Orestis Floros
eaf7a49e28
Allow assign to workspace by number
...
Makes "assign [<criteria>] workspace number <number>" work in the same
manner as "move to workspace number <number>" instead of assigning the
window to a workspace named "number <number>".
config.spec is modified to expect a 'number' string and an extra
argument is used in cfg_assign.
For workspaces that don't exist yet, workspace_get is used as a
fallback. This also allows the user to assign to "<number> <workspace>"
eg "2: work" and the full name will be used if workspace number 2
doesn't exist yet.
Fixes #2590 .
2017-09-15 03:38:13 +03:00
Vladimir Panteleev
bfa76016de
Fix typo in con_parent_with_orientation description
2017-09-15 00:07:40 +00:00
Orestis
6411130c85
Add -name argument for Xephyr ( #2937 )
...
This way you can assign the test windows to an empty workspace to avoid
interacting with them (when xvfb-run is not an option):
assign [instance="i3test"] workspace testing
2017-09-14 22:10:16 +02:00
Michael Stapelberg
98a7baf16e
Merge pull request #2945 from stapelberg/i3-config
...
simplify tests which use launch_with_config precisely once
2017-09-14 22:08:36 +02:00
Michael Stapelberg
24462f98ae
tests: unflake tests by not starting i3bar
2017-09-14 21:46:20 +02:00
Michael Stapelberg
363417e010
tests: remove the (broken) exit_gracefully check
...
I previously tried to fix the check, but could only come up with a fix which
required removing our module pre-loading, which makes the tests considerably
more expensive. Instead, let’s just remove the check.
2017-09-14 21:46:20 +02:00
Michael Stapelberg
02786155dc
tests: use i3_config arg instead of precisely one launch_with_config
...
This way, tests are shorter, and i3test’s invocation of launch_with_config
parallelizes work better, using dont_block => 1.
2017-09-14 21:46:20 +02:00
Michael Stapelberg
53e7f18710
i3test::XTEST: don’t “use i3test” to avoid clobbering state
...
Before this commit, the $i3_autostart variable was accidentally overridden.
2017-09-14 21:45:48 +02:00
Michael Stapelberg
3a31a76b2a
Reorder tests to not use the same number ( #2947 )
...
Distinct numbers make re-running individual tests easier by helping with
tab-completion.
Completeness verified using:
% for i in $(seq 0 600)
do
files=$(ls testcases/t/$(printf "%03d" $i)-*.t 2>&- | wc -l)
[ "$files" != "0" ] && [ "$files" != "1" ] && echo "clash: $i"
done
2017-09-14 17:49:02 +02:00
Michael Stapelberg
a5aed10d09
tests: unflake t/257-keypress-group1-fallback.t ( #2946 )
...
fixes #2944
2017-09-14 17:48:37 +02:00
Michael Stapelberg
d0b8f93d4f
travis: install xrandr in Docker container for t/533-randr15.t ( #2949 )
2017-09-14 17:48:22 +02:00
Michael Stapelberg
75d118203b
Merge pull request #2942 from stapelberg/append
...
Improve append_layout’s invalid JSON handling
2017-09-13 18:38:47 +02:00
Michael Stapelberg
100fad741f
Add .editorconfig (see editorconfig.org) ( #2943 )
...
This file uses the same settings which we currently have in our vim modeline,
but can be picked up by many different editors without having to add and
maintain editor-specific modelines in all of our source files.
2017-09-13 18:38:27 +02:00
Michael Stapelberg
c45c002bad
validate JSON before loading
...
This commit also introduces slurp() which reads a file in its entirety. Using
this function instead of doing IO in the functions in load_layout.c again and
again makes the code cleaner (fixing at least two memory leaks) and avoids
re-reading the same file 3 times.
related to #2755
2017-09-13 17:41:05 +02:00
Michael Stapelberg
72c972a36c
AnyEvent-I3: use Carp for easier debugging (includes stacktraces)
2017-09-13 16:39:44 +02:00
Michael Stapelberg
b23e1f644f
Bugfix: free incomplete containers when JSON parsing fails
...
related to #2755
2017-09-13 16:39:13 +02:00
Michael Stapelberg
17627a5861
Merge pull request #2935 from orestisf1993/issue-2934
...
Make sure that parse_config input terminates with '\0'
2017-09-13 15:07:21 +02:00
Orestis Floros
7b0f4abf4f
scalloc parse_config input to make sure it terminates with '\0'
...
Otherwise strchr() can crash for files that don't end with '\n' because
it won't find a null char to terminate at.
Fixes #2934
2017-09-13 15:31:53 +03:00
Orestis Floros
fd7319683d
Don't insert newline at end of config with launch_with_config
2017-09-13 15:30:37 +03:00
Michael Stapelberg
44e4ad52f6
Merge pull request #2920 from CyberShadow/monitor-output-names
...
Consider RandR 1.5's monitors' output names in addition to monitor names
2017-09-13 10:58:38 +02:00
Vladimir Panteleev
3b75be1334
docs/userguide: Document that i3 can accept RandR output names
2017-09-13 08:23:27 +00:00
Vladimir Panteleev
9be4199e13
533-randr15.t: Add test for bar output name canonicalization
2017-09-13 08:23:27 +00:00
Vladimir Panteleev
fbeded23a9
533-randr15.t: Stop hard-coding the output name
...
Refactor away all mentions of DP3.
2017-09-13 08:23:27 +00:00
Vladimir Panteleev
8a0e5f89f9
533-randr15.t: Add a fake output connected to the fake monitor
...
Add an output ID to the simulated RRGetMonitors reply, then add a
simulated RRGetOutputInfo reply describing the added output.
2017-09-13 08:23:27 +00:00
Vladimir Panteleev
c6e3fbcf19
testcases/lib: Add inject_randr15_outputinfo argument
...
Allow tests to specify a file name for inject_randr15's
--getoutputinfo_reply command-line parameter.
2017-09-13 08:23:26 +00:00
Vladimir Panteleev
de1b578f75
inject_randr1.5: Intercept X11 error responses in addition to replies
...
Allow clients to send garbage to the server, then intercept the
server's error response and substitute it with the supplied simulated
reply data.
2017-09-13 08:23:26 +00:00
Vladimir Panteleev
f88f4fb5d4
inject_randr1.5: Add RRGetOutputInfo reply injection
...
Add a --getoutputinfo_reply switch to indicate a filename containing
the RRGetOutputInfo reply data to inject.
2017-09-13 08:23:26 +00:00
Vladimir Panteleev
dfc5ad9850
inject_randr1.5: Refactor reading and storing reply buffer to a struct
...
Allows easier introduction of additional reply buffers in upcoming
changes.
2017-09-13 08:23:26 +00:00
Vladimir Panteleev
6de9cdd96f
ipc: Canonicalize output names in bar configuration
...
Convert the output names specified in the "output" and "tray_output"
fields in bar blocks in i3's configuration to the referred output's
primary name. This allows specifying names other than the primary
output's name in the given fields without changing the IPC protocol.
2017-09-13 08:23:26 +00:00
Vladimir Panteleev
ae8f3c2679
randr: Look up alternative output names when searching outputs
...
Update get_output_by_name to look at all additional names added by the
change in the previous commit, not just the primary one.
2017-09-13 08:23:26 +00:00