Michael Stapelberg
7ecdcb61f8
config: accept “smart” as popup_during_fullscreen parameter (Thanks supplantr)
...
This was the default, so explicitly setting it is not really necessary,
but of course it should be possible.
fixes #967
2013-02-24 17:23:37 +01:00
Michael Stapelberg
d5358a749e
Merge branch 'master' into next
2013-02-19 00:28:05 +01:00
Michael Stapelberg
9bfe6a6236
Bugfix: Properly parse commands like “move workspace torrent” (Thanks rasi)
...
fixes #955
2013-02-19 00:27:55 +01:00
Michael Stapelberg
2922603cc4
tests: correctly close stdout with IPC::Run
...
while IPC::Run supports <&-, it does not support >&- apparently.
2013-02-19 00:26:00 +01:00
Michael Stapelberg
9cd2d1fb8a
make t/205-ipc-windows require AnyEvent::I3 >= 0.15
...
Necessary due to the new event type
2013-02-18 10:59:32 +01:00
Piotr S. Staszewski
3facbbca5c
Add a new IPC event for changes on windows.
...
Added new event id (I3_IPC_EVENT_WINDOW) so that a an IPC client can
subscribe to events on windows. Added a basic window event that gets
triggered when a window gets successfully reparented. This new event
also dumps the container data, so that IPC clients can get the initial
window name. IPC clients wishing to see window events should subscribe
to 'window'.
2013-02-18 10:55:11 +01:00
Sebastian Ullrich
49979c9d15
Always auto center on 'scratchpad show' if window hasn't been repositioned by the user
...
This change ensures a scratchpad window is still centered on the screen
if it has first been shown on another screen of a different
resolution. Moving or resizing the scratchpad manually disables this
behavior.
2013-02-18 10:38:28 +01:00
Michael Stapelberg
7f0065e1b1
tests: unset $ENV{SHELL} to avoid breakage with fish (Thanks dRbiG)
2013-02-15 16:41:28 +01:00
Mats
fa4301e06d
Split workspace instead of changing orientation
...
Move all children of the workspace into a new container if there is more
than one otherwise simply change the orientation.
fixes #922
2013-02-15 03:16:02 +01:00
Sebastian Rachuj
b565bfca13
Bugfix: Do not move focus if a container is moved across outputs
...
fixes #809
This makes the moving behavior more consistent. If you want to focus the
workspace you are moving to, just chain the keybinding in your config
file:
bindsym $mod+Shift+1 move workspace 1; workspace 1
2013-02-10 17:38:17 +01:00
Michael Stapelberg
a1774e78fc
i3test: fix get_focused() docs (Thanks knopwob)
2013-02-07 15:57:15 +01:00
Sascha Kruse
0a0d66dc8a
put common part of error messages into variable
...
This makes future changes easier when new tokens are added to the
parser.
2013-02-01 11:50:52 +01:00
Sascha Kruse
bbede97966
scratchpad_show focus unfocused scratchpad window
...
When there's an unfocused scratchpad window on the current workspace
scratchpad_show will focus that scratchpad window.
2013-01-30 13:33:55 +01:00
Michael Stapelberg
03693bf0cc
add testcase for "move workspace <output>"
2013-01-30 13:31:20 +01:00
Vivien Didelot
1d22fe42f2
split main .gitignore and ignore more files
...
This patch splits the main .gitignore with a specific
testcases/.gitignore and also add 4 patterns to the ignore list:
i3-command-parser.stamp
i3-config-parser.stamp
testcases/-
testcases/i3-cfg-for-*
2013-01-26 19:30:10 +01:00
Michael Stapelberg
4796a61c31
add testcase for "move to output" wrapping
2013-01-26 19:28:11 +01:00
Francesco Mazzoli
3cd4b8c111
update tests to test the output wrapping
2013-01-26 19:08:41 +01:00
Adrien Schildknecht
76ef3a4ab8
remove the urgency indicator when a window is closed
2013-01-25 18:53:59 +01:00
Michael Stapelberg
a32d2d5d61
scratchpad: fix crash when moving last window of an invisible workspace (+test) (Thanks bafain)
...
It looks like the code which was removed with this commit was not
necessary anyways since con_move_to_workspace() by now checks on its own
whether it moves to the scratchpad.
fixes #913
2013-01-25 15:28:58 +01:00
Michael Stapelberg
c2061042e1
Merge branch 'master' into next
2013-01-25 13:56:26 +01:00
Michael Stapelberg
8bc771ac16
Bugfix: parse outputs as "word", not "string", to ignore trailing whitespace (Thanks leifarne)
...
fixes #921
2013-01-25 13:55:26 +01:00
Michael Stapelberg
2c249b6949
Merge branch 'master' into next
2013-01-01 16:31:27 +01:00
Michael Stapelberg
138e04fd4d
Bugfix: Fix for_window moving of assigned windows (Thanks bafain)
...
fixes #909
2013-01-01 16:31:08 +01:00
Michael Stapelberg
6856b232d6
t/175-startup-notification: use the testcases X11 connection
...
This needs X11::XCB >= 0.07 and will be skipped if that is not
installed.
This fixes a race condition in the testsuite.
2012-12-27 18:02:23 +01:00
Michael Stapelberg
1b62feccac
t/132-move-workspace: add missing sync_with_i3
2012-12-27 16:55:22 +01:00
Michael Stapelberg
baae706b87
t/166-assign: sync after mapping the window
2012-12-26 22:04:35 +01:00
Michael Stapelberg
c06d62887e
t/173-regress-focus-assign: sync after mapping the window
2012-12-26 22:04:15 +01:00
Michael Stapelberg
4d65cfc67d
t/189-floating-constraints: sync before getting window rects
2012-12-26 22:03:37 +01:00
Michael Stapelberg
27adbbff61
t/510-focus-across-outputs: fix sync order
...
syncing _after_ fresh_workspace makes no change, but we need to wait for
the WarpPointer request to be processed.
2012-12-26 22:03:02 +01:00
Michael Stapelberg
92e2190300
t/503-workspace: sync after switching focus to a different output
2012-12-26 22:02:43 +01:00
Simon Elsbrock
0045cfa637
move visible scratchpad window to focused workspace
...
If there is a visible scratchpad on another (non-internal) workspace,
bring it to the focused workspace instead of doing nothing.
closes #784
2012-12-24 19:20:47 +01:00
Michael Stapelberg
061d90f305
move scratchpad test to separate file, otherwise it is non-conclusive
2012-12-24 19:19:32 +01:00
Michael Stapelberg
ff9c2f0c46
new-test: add launch_with_config to multi-monitor template
2012-12-22 14:08:25 +01:00
Michael Stapelberg
a1ccca22e6
Merge branch 'master' into next
2012-12-22 14:08:14 +01:00
Michael Stapelberg
36b106a9d3
Bugfix: Ignore ConfigureRequests for scratchpad windows (Thanks MeanEYE)
...
fixes #898
2012-12-22 14:08:11 +01:00
Michael Stapelberg
3ca8299637
complete-run: clarify the message about missing ../i3 (Thanks Marcos)
2012-12-20 23:50:50 +01:00
Michael Stapelberg
6dfb08170c
fix bind[code|sym] --release (Thanks paolo)
...
fixes #890
2012-12-14 21:41:56 +01:00
Michael Stapelberg
1ae08b196a
Bugfix: Don’t move floating windows when their size constraints forbid resizing (Thanks aksr)
...
fixes #883
2012-11-27 09:26:31 +01:00
Adrien \"schischi\" Schildknecht
f41fa1baa1
The command to resize a floating window now checks the minimum and maximum size.
2012-11-25 20:52:56 +01:00
Michael Stapelberg
3cb909fa62
config parser: recover after invalid input
...
This is done by ignoring the rest of the current line and jumping to the
nearest <error> token.
fixes #879
2012-11-20 17:10:29 +01:00
Michael Stapelberg
773654dbb8
complete-run: run 000-load-deps as early as possible
2012-11-13 21:04:13 +01:00
Michael Stapelberg
5fb9b8ffb8
tests: 000-load-deps: bail out when dependencies are not found, test more of them
...
This should be a better hint for people who forgot to install the
testsuite dependencies :).
2012-11-13 21:03:44 +01:00
Michael Stapelberg
a3324a5e42
tests: 115-ipc-workspaces: ensure the i3 ipc socket is connected
2012-11-13 21:03:25 +01:00
Michael Stapelberg
e809bff1ab
t/115: make the test a little shorter by using helper functions
2012-11-13 09:40:29 +01:00
Francesco Mazzoli
a6b6bb670a
workspace events test
2012-11-13 09:40:29 +01:00
Michael Stapelberg
dece12bf18
Merge branch 'master' into next
2012-11-10 09:01:24 +01:00
Michael Stapelberg
81393c93c2
bugfix: fix workspace back_and_forth after displaying a scratchpad window
...
fixes #868
2012-11-10 09:01:04 +01:00
Quentin Glidic
783fd66b58
complete-run: Unset I3SOCK
2012-11-07 13:40:51 +01:00
Michael Walle
ae14fe9141
introduce new command to rename focused workspace
...
The corresponding command is 'rename workspace to <name>'. As a side-effect
this fixes the command 'rename workspace 1 to to'.
Signed-off-by: Michael Walle <michael@walle.cc>
2012-10-31 09:09:56 +01:00
Deiz
aefcb0b668
Skip floating windows in the focus stack when moving through the tree
...
Includes a test for the new behaviour
2012-10-16 20:03:40 +02:00
Deiz
c406b4c2fe
Skip floating cons in focus (child|parent) and stop them from being split
...
Focusing child from a workspace should now skip over the floating con and
go directly to its child. Focusing parent from that grandchild should leave
the workspace focused again.
2012-10-16 20:01:36 +02:00
Deiz
47de7375dd
Allow 'focus $dir' to move out of non-global fullscreen containers
2012-10-09 21:26:49 +02:00
Deiz
ca77c12dde
Allow workspace contents to be moved if there are only floating children
2012-10-09 21:25:13 +02:00
Deiz
e07803999f
Fix fullscreen focus bug and corresponding test flaw
...
As the workspace might be reached via recursion (e.g. moving from the edge
of a fullscreen split container), it's necessary to check for a fullscreen
container whenever a workspace is reached.
2012-10-09 21:24:04 +02:00
Michael Stapelberg
a06bf27c24
tests: fix error messages, add 'bind' as synonym to mode blocks
2012-10-09 14:11:35 +02:00
Michael Stapelberg
587b92b7a3
t/201-config-parser: test more directives, test error handling
2012-10-08 13:24:47 +02:00
Michael Stapelberg
a635945f85
tests: use new assign syntax, drop legacy test
2012-10-08 13:22:17 +02:00
Michael Stapelberg
00fca2dabd
add first bits of a (custom) config parser
2012-10-08 13:17:46 +02:00
Deiz
cae6fb627f
Improve startup sequence termination conditions
...
If a window with _NET_STARTUP_ID set is moved to another workspace, it
will delete any associated startup sequence immediately. This will also
occur if a window has a leader with _NET_STARTUP_ID set, if the leader
has no container (never been mapped).
A startup sequence may also be deleted if it's matched by
startup_workspace_for_window() and its 30-second timeout has elapsed.
2012-10-04 17:48:51 +02:00
Deiz
fdcba7b91a
Replace the discrete 'split' Con property with a simple function.
2012-10-04 17:48:08 +02:00
Deiz
d7e5da8b39
Un-fullscreen as needed when moving fullscreen containers
...
This avoids a case where a fullscreen container could be moved onto a
workspace that already had its own fullscreen container, leading to
two fullscreen containers on top of each other.
2012-10-04 17:46:54 +02:00
Michael Stapelberg
13147978c5
Merge branch 'master' into next
2012-10-03 15:08:31 +02:00
Sascha Kruse
507898484f
set workspace_layout in create_workspace_on_output
...
fixes #835
2012-10-03 15:08:21 +02:00
Michael Stapelberg
85dc1b0865
testsuite: add 'new-test' helper script
2012-10-03 00:13:30 +02:00
Michael Stapelberg
029d9040e1
add test for previous commit
2012-10-03 00:04:05 +02:00
Deiz
e89a25f81f
Implement moving workspaces as if they're regular containers
2012-09-29 00:17:36 +02:00
Michael Stapelberg
43d486441d
Bugfix: with one ws per output, don’t crash on cross-output moves (Thanks moju)
...
fixes #827
2012-09-28 23:04:37 +02:00
Michael Stapelberg
66b389cba1
Make the resize command honor criteria (Thanks Tblue)
...
fixes #816
2012-09-28 20:36:25 +02:00
Michael Stapelberg
5d8e3f58f6
Fix 'border toggle' (it "skipped" 1px border) (Thanks joepd)
...
fixes #818
2012-09-28 19:29:14 +02:00
Simon Elsbrock
da2b47c1e5
fix crash: send non-floating window with floating parent to scratchpad (thanks pkordy)
...
Fix a crash that occured when moving a window to the scratchpad that is
seemingly floating to the user, but actually a descendant of a floating
parent con (and itself non-floating). If that is the case, move the
floating parent container to scratchpad instead of the window.
fixes #740
2012-09-28 17:58:58 +02:00
Michael Stapelberg
0610964c22
add testcase for commit 87525ad
2012-09-27 12:37:38 +02:00
Michael Stapelberg
c31b3b296a
Bugfix: Correctly clear the urgency hint when the window is underneath a split-con (+test)
...
Previously, when you had an urgent container in a stack on some
invisible workspace (say urxvt) and you switched to it, the urgency hint
was not properly cleared.
2012-09-25 15:40:08 +02:00
Yaroslav Molochko
04c58c7325
Implement variable border widths for pixel/normal
...
fixes #325
2012-09-24 22:20:29 +02:00
Sascha Kruse
b741c49212
testcase for propagating urgency
2012-09-22 19:31:46 +02:00
Michael Stapelberg
1e143feab1
Close empty workspaces after cross-output move (+test) (Thanks chrysn)
...
fixes #795
2012-09-22 19:03:19 +02:00
Michael Stapelberg
11378b7012
t/506-focus-right: also verify that focus up/down is a no-op (Thanks swh)
2012-09-22 17:30:44 +02:00
Michael Stapelberg
19883108a9
Make get_output_next() work with non-aligned RandR setups (+test) (Thanks Feh, swh, Moritz)
...
A good visualization of the new algorithm is this:
+--------+
| |
+--------+=| S1 |========================
| | | |
| S0 | +--------+
| | +--------+
+--------+=========| |================
| S2 | +--------+
| | | |
+--------+ | S3 |
| |
+--------+
When focus is on S0, 'focus output right' will first match S1 (the
closest output which overlaps in the highlighted area), then S2, but not
S3 (since S3 does not overlap into the highlighted area).
fixes #669
fixes #771
2012-09-22 16:54:59 +02:00
Michael Stapelberg
2fba607e4d
tests: Bugfix: use exit_gracefully() in t/200-urgency-timer
2012-09-22 14:51:38 +02:00
Sebastian Ullrich
236f9f45e3
Make "[move] workspace number" accept a default ws name after the ws number
2012-09-22 14:34:05 +02:00
Michael Stapelberg
66d786762a
tests: rename double t/198, add boilerplate
2012-09-22 14:20:19 +02:00
Michael Stapelberg
9dbbe400a1
tests: fix t/113-urgent.t after previous commit
2012-09-22 14:19:20 +02:00
Simon Elsbrock
28104a480c
implement delayed urgency hint reset
...
If there is a client with an urgency hint on another workspace and
switching to this workspace would cause the urgency to be reset (by
moving the focusing to the client), delay the reset by some time. This
gives the user the chance to see it.
This commit adds the possibility to configure the urgency delay timer
duration using the 'force_display_urgency_hint' directive. Also,
documentation and a testcase was added to allow for automated checks of
the intended behavior.
fixes #482
2012-09-22 14:12:09 +02:00
chrysn
e15e37f922
fixes #776
...
this implements both the "move container to workspace back_and_forth" command
and movements to the same workspace when auto_back_and_forth is set.
it includes documentation and test suite additions by michael.
it also simplifies the workspace_show_by_name function (making use of
workspace_get accepting NULL pointers).
2012-09-22 13:35:31 +02:00
Michael Stapelberg
7a2e105931
tests: add testcase for the 'mode' IPC event
2012-09-22 13:20:53 +02:00
Michael Stapelberg
77134c0dbf
tests: add missing boilerplate
2012-09-22 12:56:01 +02:00
Sascha Kruse
f9c903ba62
complete-run.pl: Check for missing executables
2012-09-20 11:37:49 +02:00
Michael Stapelberg
cd4dd365e8
Allow changing the layout of workspaces by storing it (Thanks mhcerri)
...
Before commit 4976fa3350
, setting the
layout of workspaces to something else than the default would just mess
up the parent container of the workspace (the content container).
After that commit, it would create an unnecessary split container when
you change the layout _before_ opening any containers. To avoid this, we
now store the layout (similar to how the 'workspace_layout'
configuration directive works) and apply it when the first container is
attached to the workspace.
Fixes #796
2012-09-16 22:53:41 +02:00
Michael Stapelberg
794783defb
Merge branch 'master' into next
2012-09-14 13:18:04 +02:00
Michael Stapelberg
15499bf8e7
Bugfix: Don’t focus the wrong workspace when moving to scratchpad (+test) (Thanks loblik)
...
The problem was that scratchpad_move() didn’t check whether the source
workspace was focused. Therefore, 'move scratchpad' only worked reliably
interactively , but not when used with criteria.
2012-09-14 13:17:32 +02:00
Michael Stapelberg
338199913b
add boilerplate to all testcases with documentation references
2012-09-10 14:09:01 +02:00
Michael Stapelberg
d745b47269
fix typo
2012-09-10 14:08:52 +02:00
Michael Stapelberg
71607ccdd3
tests: document each and every i3test function
2012-09-10 13:30:47 +02:00
Michael Stapelberg
0626c637aa
tests: move does_i3_live to i3test::Test
2012-09-10 13:29:50 +02:00
Michael Stapelberg
6bfbec9da3
tests: make cmp_float a real test instruction
2012-09-10 13:24:11 +02:00
Michael Stapelberg
d644dbff64
bugfix: forgot to mark split containers as split = true (+test) (Thanks szalik)
...
When the workspace layout (formerly orientation) was forced to change
due to a move command, the split container we created was not marked as
split = true, which caused tree_flatten() to errnously kill the contents
of it and thus one window ended up unmanaged.
Also, the logic in tree_flatten() was inverted due to commit de94f6da
.
fixes #790
2012-09-05 22:26:52 +02:00
Michael Stapelberg
4976fa3350
con_set_layout: always use the parent container, handle workspaces properly
...
Previously, in case 'layout stacked' (for example) had been called
interactively, con_set_layout would be called with focused->parent,
while with for_window, it’d be called on the actual matching container.
This difference in behavior was the cause for the inability to use
'for_window [class="XTerm"] layout tabbed', which now works \o/, but
more on that below.
The change also allows us to handle the case of the user selecting a
CT_WORKSPACE container properly, that is, by using the special case and
creating a new split container on the workspace which gets all the
contents, but a new layout.
Now, before you are enthusiastic about the change and try to use
for_window magic in your config file, keep in mind: The 'layout' command
acts on the parent split container. That is, when using a line such as
this one:
for_window [class="XTerm"] layout tabbed
…and opening an XTerm when on a workspace with one single other window,
the whole workspace will be set tabbed (just as previously when you
opened an XTerm and sent 'layout tabbed' manually).
Therefore, to open XTerm in its own tabbed split container, you need to
split before:
for_window [class="XTerm"] split v, layout tabbed
The comma here is important! It says that the second command should not
be treated as an entirely unrelated command, but it should also relate
the matching window (while it does work with a ';', that is prone to
race-conditions and should be avoided).
fixes #358
2012-09-05 00:22:38 +02:00
Michael Stapelberg
232d6ccce9
tests: introduce is_num_children test
...
This makes it clearer what the tests are actually doing and kills quite
a bit of useless repetitions
2012-09-04 22:24:13 +02:00
Michael Stapelberg
48baf3bf65
testcases: add ExtUtils::PkgConfig as explicit dependency
...
This used to be a transitive dependency through X11::XCB, but the latter
dropped it in version 0.04.
2012-08-31 00:17:06 +02:00
Michael Stapelberg
6d8f61205d
accept slashes in RandR output names (+test) (Thanks dbp)
...
fixes #785
2012-08-28 13:26:12 +02:00
Michael Stapelberg
82b73c20c9
testcase for the previous commit
2012-08-22 17:57:58 +02:00
Michael Stapelberg
6e75dc7e0e
testsuite: add hint about missing DUMMY Xorg module
2012-08-22 17:22:20 +02:00
Michael Stapelberg
7cadc40846
testcase for the previous commit
2012-08-22 17:16:18 +02:00
Michael Stapelberg
4622cde7b7
Merge branch 'master' into next
2012-08-22 16:02:02 +02:00
Joel Stemmer
1089b0b201
fix resizing floating windows by height
...
When resizing floating windows, changing the height was not correctly
handled. This commit fixes that and adds testcases for shrinking and
growing the width and height of floating windows.
2012-08-22 16:01:40 +02:00
Michael Stapelberg
be6190a516
complete-run: check whether Xdummy dies, add a flag to keep the Xdummy output
2012-08-18 16:27:00 +02:00
Michael Stapelberg
68a23b9577
Bugfix: only honor _NET_ACTIVE_WINDOW for visible windows (+test) (Thanks Tucos)
...
fixes #774
2012-08-12 16:08:53 +02:00
Michael Stapelberg
b01d45e027
complete-run: handle bailouts
2012-08-12 13:46:54 +02:00
Michael Stapelberg
dd743f3b55
add testcase for previous bugfix (floating window size)
2012-08-12 00:36:44 +02:00
Michael Stapelberg
ae88accf6f
testworker: handle EAGAIN
...
Hopefully this fixes the case where a testworker would die and leave the
whole testsuite run hanging in the air, never completing.
2012-08-12 00:22:17 +02:00
Michael Stapelberg
d92626bc62
complete-run: enable autoflush (useful for debugging)
...
I used the following command to find hanging workers:
sort latest/complete-run.log|cut -f 2 -d ' '|uniq -c|grep -v '^[ \t]*2'
2012-08-12 00:20:52 +02:00
Michael Stapelberg
6ba0944430
scratchpad: fix moving scratchpad window
...
From the source:
When starting i3 initially (and after each change to the connected
outputs), this function fixes the resolution of the __i3
pseudo-output. When that resolution is not set to a function which
shares a common divisor with every active output’s resolution,
floating point calculation errors will lead to the scratchpad window
moving when shown repeatedly.
fixes #632
2012-08-08 18:45:40 +02:00
Michael Stapelberg
78f5f2204d
ipc: implement GET_VERSION to find out the i3 version
...
This is useful for third-party scripts which require certain features
and want to error out cleanly when they are run with an old i3 version.
Additionally, i3 --version might be different from what’s actually
running (an old version of the binary), so i3-msg -t get_version will be
the best way to figure out the i3 version you are actually running from
this commit on.
2012-08-05 14:30:05 +02:00
Michael Stapelberg
2f22fae119
i3-migrate-config-to-v4: use layout toggle split (Thanks eeemsi)
2012-08-04 12:46:37 +02:00
Michael Stapelberg
de94f6da1a
Introduce splith/splitv layouts, remove orientation
...
With this commit, the "default" layout is replaced by the splith and
splitv layouts. splith is equivalent to default with orientation
horizontal and splitv is equivalent to default with orientation
vertical.
The "split h" and "split v" commands continue to work as before, they
split the current container and you will end up in a split container
with layout splith (after "split h") or splitv (after "split v").
To change a splith container into a splitv container, use either "layout
splitv" or "layout toggle split". The latter command is used in the
default config as mod+l (previously "layout default"). In case you have
"layout default" in your config file, it is recommended to just replace
it by "layout toggle split", which will work as "layout default" did
before when pressing it once, but toggle between horizontal/vertical
when pressing it repeatedly.
The rationale behind this commit is that it’s cleaner to have all
parameters that influence how windows are rendered in the layout itself
rather than having a special parameter in combination with only one
layout. This enables us to change existing split containers in all cases
without breaking existing features (see ticket #464 ). Also, users should
feel more confident about whether they are actually splitting or just
changing an existing split container now.
As a nice side-effect, this commit brings back the "layout toggle"
feature we once had in i3 version 3 (see the userguide).
AFAIK, it is safe to use in-place restart to upgrade into versions
after this commit (switching to an older version will break your layout,
though).
Fixes #464
2012-08-04 03:13:24 +02:00
Michael Stapelberg
077e021e26
tests: implement --xtrace in complete-run.pl
2012-08-04 03:12:06 +02:00
Michael Stapelberg
cc7f16007a
Display i3-nagbar when commands lead to an error
...
e.g. pressing Mod1+x when having the following in your configfile:
bindsym Mod1+x some invalid command
will lead to an i3-nagbar instance popping up, offering you to view the
error log (which will contain parser errors from this commit on).
2012-08-02 17:45:09 +02:00
Michael Stapelberg
ac7278eb1a
resizing: traverse containers up properly (+test) (Thanks oblique)
...
In certain situations (when you have a h-split within a h-split) you
couldn’t properly resize previously. This commit makes the resize
command properly traverse up the containers.
fixes #754
2012-07-22 21:37:26 +02:00
Michael Stapelberg
a65394646c
tests: t/504: ensure cursor position
...
Otherwise, the cursor might be at (1025, 0) due to previous testcases
and we wouldn’t start up on the correct workspace.
2012-06-29 23:21:32 +02:00
Michael Stapelberg
f0f45aa84d
tests: t/166-assign.t: use wait_for_window
...
While it’s generally intended that wait_for_window is not called within
this testcase, in the first test instruction it was a mistake. The
window in fact gets mapped and therefore we should call wait_for_window.
2012-06-29 23:20:46 +02:00
Michael Stapelberg
daee3218c9
tests: make t/166-assign.t more robust
...
…by using the new syntax which will not trigger i3-nagbar. Checking for
i3-nagbar is inherently prone to race conditions since i3-nagbar does
not communicate in any way that it’s there.
2012-06-29 21:28:10 +02:00
Michael Stapelberg
19946ee14d
tests: make t/159-socketpath more robust
...
…by getting the socket path from i3 and then checking that it conforms
to what we expect. Previously we monitored /tmp, which can go wrong in
various ways, especially since i3’s directory within /tmp is not
predictable (by design).
2012-06-29 21:23:28 +02:00
Michael Stapelberg
a15fe0e332
Merge branch 'master' into next
2012-06-10 17:57:25 +02:00
Michael Stapelberg
f0b56c5e98
parser: reorder v/h/vertical/horizontal
...
This eliminates an error message upon split horizontal which did not
occur in older i3 versions. The command itself worked just fine.
2012-06-10 17:56:28 +02:00
Pavel Löbl
2afecaf355
Add a new command 'move to workspace current'
...
Added a new command 'move to workspace current' which can be used
with criteria to move a window to the current workspace.
2012-06-03 19:42:56 +02:00
Fernando Tarlá Cardoso Lemos
fffc53c246
Restrict "move to workspace" commands in fullscreen.
2012-06-03 16:24:53 +02:00
Fernando Tarlá Cardoso Lemos
4452bfb942
Prevent moving out of fullscreen containers.
2012-06-03 16:24:53 +02:00
Fernando Tarlá Cardoso Lemos
8bf4e9e059
Restrict directional focus in fullscreen.
...
This reuses the same fullscreen focus logic to ensure that focus
doesn't escape a fullscreen container.
2012-06-03 16:24:53 +02:00
Fernando Tarlá Cardoso Lemos
250c260eaa
Allow focus child/parent when in fullscreen.
...
This is now restricted according to the already defined fullscreen
focus constraints. Test case 157 was removed, as we don't prevent
level up/down in fullscreen anymore. Those commands are properly
tested in fullscreen by test case 156.
Fixes : #612
2012-06-03 16:24:53 +02:00
Fernando Tarlá Cardoso Lemos
da1e232757
Refined the fullscreen focus constraints.
...
Basically, a focus change can't escape a fullscreen container. The
only exception is per-output fullscreen containers, as you should
be able to focus a container in a different workspace in this case.
This is an improvement on 4eab046e
, now considering the difference
between global and per-output fullscreen and taking the tree
structure into account to determine what escaping the fullscreen
container means. It only affects targeted focus commands in the
form "for_window [...] focus", but it lays the foundation for
forthcoming fixes to all other focus commands.
2012-06-03 16:24:53 +02:00
Michael Stapelberg
1103f94c34
Merge branch 'master' into next
2012-05-28 23:37:26 +02:00
Fernando Tarlá Cardoso Lemos
485871ffdd
Get rid of references to level up/down.
...
In v4 syntax, that's focus parent/child.
2012-05-28 23:37:15 +02:00
Michael Stapelberg
ed957d60a7
Merge branch 'master' into next
2012-05-09 21:08:28 +02:00
Fernando Tarlá Cardoso Lemos
4eab046e8f
Allow focus w/ target when in fs in some cases.
...
If the target is in a different workspace, there's no reason why
we wouldn't allow the user to focus it. We already allow this when
focusing a workspace, for example.
2012-05-09 21:08:19 +02:00
Michael Stapelberg
eab9f46c33
Merge branch 'master' into next
2012-05-09 20:39:26 +02:00
Michael Stapelberg
ec4dddb608
tests: add test to verify workspace_auto_back_and_forth works with 'workspace number'
2012-05-09 20:33:41 +02:00
Michael Stapelberg
82e0eaa315
tests: Check that 'workspace number <number>' opens a new workspace
2012-05-09 20:33:11 +02:00
Pavel Löbl
8557b05a2c
t/141-resize.t: do not compare float values directly. use i3test.pm::cmp_float which compares using precision of 1e-6.
2012-05-05 19:15:43 +02:00
Michael Stapelberg
bbe607899c
Send proper error messages upon parser failures, use yajl for generating command replies
...
Fixes : #693
2012-05-02 22:01:50 +02:00
Michael Stapelberg
1bb165a29a
tests: warp the pointer to in multi-monitor tests to avoid flaky tests
2012-04-09 14:48:57 +02:00
Michael Stapelberg
983ba656fc
t/166-assign: wait until the window is definitely mapped
2012-04-09 14:48:25 +02:00
Michael Stapelberg
7210ab22d7
t/166-assign: remove unnecessary sleeps
2012-04-09 14:48:15 +02:00
Michael Stapelberg
0f10ccdf12
Implement fake-outputs option (cmdline, cfg) for multi-monitor testing
...
This kills the dependency on xdmx and makes the testsuite simpler
and more flexible (in the output sizes / configurations).
2012-04-09 14:28:36 +02:00
Michael Stapelberg
373b4ad74a
Implement 'rename workspace <old_name> to <new_name>'
2012-04-08 20:40:00 +02:00
Michael Stapelberg
ad513b4799
Implement 'move [container|window] to workspace number <number>'
2012-04-08 20:33:46 +02:00
Michael Stapelberg
72078c704e
Implement 'workspace number <number>' to switch to named workspaces
2012-04-08 19:17:46 +02:00
Michael Stapelberg
849e06f21e
Replace the old fullscreen container when requesting fullscreen
...
Fixes : #510
2012-04-08 17:53:37 +02:00
Michael Stapelberg
2d110c90e6
Implement resize <grow|shrink> <width|height>, use it in the default config
...
Fixes : #576
2012-04-08 16:00:15 +02:00
Michael Stapelberg
c0c2fd631b
add a testcase for the previous commit
2012-04-05 18:12:24 +02:00
Michael Stapelberg
941267e98e
testsuite: explicitly start Xdummy with -nolisten tcp
2012-03-26 17:00:44 +02:00
Pavel Löbl
f78f137ed0
Extends move command for floating windows
2012-03-25 11:06:49 +02:00
Michael Stapelberg
2abfb5a88b
Bugfix: Also clear the command parser’s stack upon invalid commands (Thanks helgikrs)
...
Fixes : #652
2012-03-21 17:20:07 +01:00
Michael Stapelberg
d085e88d02
t/158-wm_take_focus: use sync_with_i3 instead of a timeout
2012-02-21 14:37:55 +01:00
Michael Stapelberg
41400d8a16
t/164-kill-win-vs-client: get rid of sleep()s
2012-02-21 14:28:37 +01:00
Michael Stapelberg
bee1e90b1e
t/187-commands-parser: shave off a bit of time by consolidating calls
2012-02-21 14:22:26 +01:00
Michael Stapelberg
b21a675a9c
t/171-config-migrate: shave off a bit of time by consolidating migrate_config calls
2012-02-21 14:11:04 +01:00
Michael Stapelberg
06a9820b5f
t/166-assign: check for i3-nagbar in the process hierarchy instead of sleep(1)
2012-02-21 13:58:49 +01:00
Michael Stapelberg
7e05a0700a
tests: don’t wait for window map event in open_special
...
Since the window doesn’t get mapped at all in these tests (it’s assigned to an
invisible workspace), this saves us a timeout of 2 seconds :).
2012-02-21 13:40:53 +01:00
Michael Stapelberg
ab9ba6fcf9
Use gettimeofday() and struct timevals instead of time()
...
Initially I thought using the second precision time() function is good enough,
but to make t/113-urgent.t considerably faster (>2s vs. 0.08s), we put in a
little more effort and use gettimeofday. Otherwise, this test blocks the whole
testsuite from completing much faster on modern machines :).
2012-02-21 13:38:49 +01:00
Michael Stapelberg
a2d80c4ab9
tests: add a testcase for the floating size constraints
2012-02-16 18:43:47 +00:00
Michael Stapelberg
e114b3dba2
Refactor the interface of commands.c
...
This change has two implications:
1) tree_render() will now be called precisely once for input which consists of
multiple commands (like "focus left; focus right"). Also, the caller of
parse_command() has to call it. This makes us able to fix tickets such as
ticket #608 (where multiple tree_render() calls are noticable).
2) The output of a command is now a JSON array of return values of the
individual subcommands. In the case of "focus left; focus right", this is:
[{"success":true}, {"success":true}]
While this is incompatible with what i3 returned before, the return value of
commands was undocumented and therefore not subject to our API stability.
2012-02-15 20:57:25 +00:00
Michael Stapelberg
19f3f84d29
tests: add test for previous commit
2012-02-15 18:08:53 +00:00
Michael Stapelberg
6d0dcf06ef
tests: make t/504-move-workspace-to-output consistent with the previous commit
2012-02-15 18:02:02 +00:00
Michael Stapelberg
974e70459d
tests: add a test for the urgent= criteria
2012-02-14 22:47:40 +00:00
Michael Stapelberg
82247fd0ab
Bugfix: Correctly handle missing ending double quotes (+test) (Thanks mxf)
2012-02-10 19:49:38 +00:00
Michael Stapelberg
2f8d3d3390
Bugfix: Properly handle workspace names with double quotes (+test) (Thanks kvapen)
2012-02-07 22:50:27 +00:00
Michael Stapelberg
ed2bcc15e3
Merge branch 'master' into next
2012-02-07 17:42:58 -05:00
Michael Stapelberg
0fc459892e
Bugfix: Properly split when the current container is alone within a stacked/tabbed con (+test) (Thanks aksr)
...
Fixes : #630
2012-02-07 17:42:35 -05:00
Michael Stapelberg
4fe974408d
Merge branch 'master' into next
2012-02-07 17:41:36 -05:00
Michael Stapelberg
4f98bbf5ff
Bugfix: Obey workspace_layout when re-inserting floating containers (+test) (Thanks aksr)
...
The code wasn’t using con_attach and therefore didn’t obey workspace_layout.
Fixes : #631
2012-02-07 17:41:00 -05:00
Michael Stapelberg
efa1cada29
tests: Make i3 create its temporary files in /tmp/i3-testsuite
...
This behavior can be avoided by passing dont_create_temp_dir => 1 to
launch_with_config (or activate_i3).
This commit fixes t/159-socketpaths.t being flaky on non-systemd computers.
2012-02-07 17:38:45 -05:00
Michael Stapelberg
8a57cb48c8
testcases: requires Test::More >= 0.94 (for subtests)
2012-01-29 18:03:03 +00:00
Michael Stapelberg
d22458cde0
complete-run: make --valgrind, --strace, --coverage-testing work again
2012-01-27 21:36:40 +00:00
Michael Stapelberg
19dc92a9a5
new parser: correctly handle leading/trailing newlines (+test) (Thanks helgikrs)
2012-01-25 22:00:32 +00:00
Michael Stapelberg
318d4fdeef
make in-place restarts use socket activation, too (for faster/less flaky tests)
2012-01-21 23:03:09 +00:00
Michael Stapelberg
3b7f4d428e
Correctly restore focus after in-place restarts
...
Note: This change requires two in-place restarts when you are upgrading
in-place from an old version.
Fixes #611
2012-01-21 18:35:15 +00:00
Michael Stapelberg
fc27c19761
Merge branch 'master' into next
...
Conflicts:
testcases/t/005-floating.t
2012-01-21 14:22:29 +00:00
Michael Stapelberg
cb4c9b9d27
Bugfix: Position floating windows exactly where their geometry specified (Thanks B-Con)
...
Fixes #619
2012-01-21 14:20:55 +00:00
Michael Stapelberg
45b4d71a0b
handle the old bar color config syntax in a backwards-compatible way
2012-01-20 22:26:17 +00:00
Michael Stapelberg
31b7ec29fd
Re-implement bar borders (by Angelo Haller)
...
This re-introduces borders around the workspace buttons in i3bar.
No additional pixels will be consumed (you will not lose any space for your
windows).
2012-01-20 21:36:50 +00:00
Michael Stapelberg
a532f5ac39
Implement a new parser for commands. (+test)
...
On the rationale of using a custom parser instead of a lex/yacc one, see this
quote from src/commands_parser.c:
We use a hand-written parser instead of lex/yacc because our commands are
easy for humans, not for computers. Thus, it’s quite hard to specify a
context-free grammar for the commands. A PEG grammar would be easier, but
there’s downsides to every PEG parser generator I have come accross so far.
This parser is basically a state machine which looks for literals or strings
and can push either on a stack. After identifying a literal or string, it
will either transition to the current state, to a different state, or call a
function (like cmd_move()).
Special care has been taken that error messages are useful and the code is
well testable (when compiled with -DTEST_PARSER it will output to stdout
instead of actually calling any function).
During the migration phase (I plan to completely switch to this parser before
4.2 will be released), the new parser will parse every command you send to
i3 and save the resulting call stack. Then, the old parser will parse your
input and actually execute the commands. Afterwards, both call stacks will be
compared and any differences will be logged.
The new parser works with 100% of the test suite and produces identical call
stacks.
2012-01-14 21:29:57 +00:00
Michael Stapelberg
f81c89ac28
Refactor the code out of src/cmdparse.y to src/commands.c
...
This is the first step towards our new parser.
2012-01-14 16:59:52 +00:00
Michael Stapelberg
814695d8bb
Implement 'move workspace to output <output>'
...
Fixes : #541
2012-01-10 22:16:50 +00:00
Michael Stapelberg
a4a59a797f
tests: use open_window to avoid motion notifies which in turn trigger endless loops
...
Using 'open' will not create an X11 window (while open_window does), so we will
get spurious motion notify events when switching focus, leading to endless loops.
2012-01-10 22:16:09 +00:00
Michael Stapelberg
df9b338175
Introduce synonyms: 'move to workspace' and 'move container to workspace' and 'move window to workspace'
...
This makes the new 'move workspace to output' command much more clear
2012-01-10 22:16:09 +00:00
Michael Stapelberg
6585d289cf
add testcase for workspace next_on_output/prev_on_output
2012-01-08 16:33:16 +00:00
Michael Stapelberg
6e4a86b7d1
tests: make focused_ws multi-monitor-safe, document it
2012-01-08 16:32:58 +00:00
Michael Stapelberg
07d07719f0
add testcase for 'focus output'
2012-01-08 11:59:24 +00:00
Michael Stapelberg
470ee00012
Merge branch 'master' into next
2012-01-07 18:50:46 +00:00
Michael Stapelberg
d4238c778a
Bugfix: Open new windows in the correct place when assignments match (+test) (Thanks Don)
2012-01-07 18:50:00 +00:00
Michael Stapelberg
6345124049
Merge branch 'master' into next
...
Conflicts:
src/con.c
2012-01-07 18:21:12 +00:00
Michael Stapelberg
f78caf8c58
Bugfix: Don’t lose focus on fullscreen windows when another window gets moved to that workspace (+test) (Thanks rami)
...
Fixes : #606
2012-01-07 18:18:36 +00:00
Michael Stapelberg
0e1b1dd984
Bugfix: Correctly handle 'move scratchpad' on workspace level (+test) (Thanks mseed)
...
Fixes : #597
2012-01-07 17:36:30 +00:00
Michael Stapelberg
3254188cda
Bugfix: Show scratchpad on the correct output (+test)
...
Fixes : #596
2012-01-07 16:53:37 +00:00
Michael Stapelberg
ed37a63942
tests: add scratchpad test
2012-01-05 21:41:23 +00:00
Michael Stapelberg
91499ed2c7
properly serialize floating/scratchpad state when restarting
2012-01-05 21:41:20 +00:00
Michael Stapelberg
ec7ed75c01
tests: make t/143 actually verify floating windows are restored properly
2012-01-05 21:20:53 +00:00
Michael Stapelberg
dd9743b272
tests: Implement multi-monitor tests using Xdmx
2011-12-26 20:48:57 +01:00
Michael Stapelberg
08986a1798
Implement scratchpad functionality (see userguide)
2011-12-21 23:15:32 +00:00
Michael Stapelberg
311b9e24df
tests: implement restart testing (actual option still missing)
2011-12-21 23:15:30 +00:00
Michael Stapelberg
622b94f176
Merge branch 'master' into next
2011-12-20 18:44:26 +00:00
Michael Stapelberg
d963018990
Bugfix: Don’t close workspace when there are still floating windows on it (Thanks noxxun) (+test)
...
Fixes : #595
2011-12-20 18:44:15 +00:00
Michael Stapelberg
1f2c9306a2
Merge branch 'master' into next
...
Conflicts:
testcases/t/159-socketpaths.t
2011-12-18 18:02:08 +00:00
Michael Stapelberg
c21172a6f6
Create a secure temp path instead of a predictable one (Thanks Han)
...
With this commit, i3 will now use either $XDG_RUNTIME_DIR/i3 (XDG_RUNTIME_DIR
is only writable by the user, so this is not a problem) or a secure temporary
location in /tmp, following the pattern /tmp/i3-<user>.XXXXXX
2011-12-18 17:59:31 +00:00
Michael Stapelberg
2ba09f5419
Merge branch 'master' into next
2011-12-18 15:19:09 +00:00
Michael Stapelberg
ec28f3b982
Bugfix: Fix floating resize for floating split containers (+test)
...
Fixes : #588
2011-12-18 15:18:20 +00:00
Michael Stapelberg
a930994dc9
Merge branch 'master' into next
2011-12-17 17:16:39 +00:00
Michael Stapelberg
75c57c4eef
Bugfix: Ignore ConfigureRequests with out-of-bound coordinates (+test)
...
JDownloader seems to use these for its captcha popups when focus is not on the
same workspace, for some weird reason.
2011-12-17 17:15:52 +00:00
Michael Stapelberg
db174234ce
Merge branch 'master' into next
...
Conflicts:
debian/changelog
2011-12-17 15:28:51 +00:00
Michael Stapelberg
1ff321bc3f
Bugfix: Disallow focusing other windows when in fullscreen mode (Thanks aksr)
...
Fixes : #579
2011-12-17 15:28:17 +00:00
Michael Stapelberg
ef224cdb98
Merge branch 'master' into next
...
Conflicts:
testcases/t/173-get-marks.t
2011-12-17 14:22:57 +00:00
Michael Stapelberg
b46ab649f5
Bugfix: Fix setting the same mark repeatedly on different windows (+test)
...
Fixes : #582
2011-12-17 14:22:23 +00:00
Michael Stapelberg
69b143e5ca
complete-run: automatically display test output when running a single test
2011-12-17 11:20:32 +00:00
Michael Stapelberg
95508c3469
complete-run: fix uninitialized warning
2011-12-17 11:20:16 +00:00
Michael Stapelberg
81f4b6fc1a
complete-run: don’t parallelize more than the number of tests
2011-12-17 11:19:31 +00:00
Michael Stapelberg
da8d0baa74
tests: add test for previous commit
2011-12-17 11:18:43 +00:00
Michael Stapelberg
1c72e8b69e
Make complete-run store the timings, schedule tests and print time estimate
...
Yay for self-optimizing software and time estimates
2011-12-16 22:00:41 +00:00
Michael Stapelberg
87d98a128f
tests: disable SHM logging, we redirect anyways
2011-12-10 11:32:15 +00:00
Maik Fischer
9a7d7919a6
testcases: introduce TestWorker.pm
...
instead of executing a new perl interpreter (via TAP::Parser)
each time we start a testfile, fork a TestWorker for each display.
Each worker preloads i3test via 'require', blocking waits on its ipc
to get a new filename, forks itself upon arrival and 'do'es this
testscript.
2011-12-04 14:14:20 +01:00
Maik Fischer
55c474d864
testcases: move Xdummy cleanup code to StartXDummy
2011-12-04 14:14:20 +01:00
Maik Fischer
43b8b8356d
complete-run: add cleanup sighandler
2011-12-04 14:14:20 +01:00
Maik Fischer
2d188bfc9b
complete-run: reorder code to make code flow more clear
2011-12-04 14:14:20 +01:00
Maik Fischer
6a5ca32c5a
complete-run: die if X11::XCB couldn’t connect to a display
2011-12-04 14:14:20 +01:00
Maik Fischer
8349190e09
testcases: always start i3 through i3test::launch_with_config
...
this will pave the way to just call BAIL_OUT and stop the currently
running testfile if i3 died for whatever reason.
2011-12-04 14:14:20 +01:00
Maik Fischer
e8d2fbbac8
testcases: Makefile.PL: NAME =~ s/ /-/
...
since NAME is used to generate targets,
a space will lead to invalid syntax eg:
Makefile:547: warning: overriding commands for target `i3'
Makefile:536: warning: ignoring old commands for target `i3'
2011-12-04 14:14:20 +01:00
Maik Fischer
423b891995
StartXdummy.pm: make Xdummy startup a bit more robust
2011-12-04 14:14:20 +01:00
Michael Stapelberg
0f9fbcbd25
Merge branch 'master' into next
2011-11-29 22:37:11 +00:00
Michael Stapelberg
626e3efb48
Bugfix: Fix 'resize' command in nested containers (Thanks mseed)
...
Fixes : #559
2011-11-29 22:36:40 +00:00
Michael Stapelberg
f5dce848b8
Merge branch 'master' into next
2011-11-26 22:18:01 +00:00
Michael Stapelberg
31acb91d90
Bugfix: Fix crash on '[class="i3bar"] focus' (+test) (Thanks f8l)
...
Fixes #575
2011-11-26 22:17:34 +00:00
Michael Stapelberg
5c59c0296c
tests: add test for ticket #561 (floating window size when changing border)
2011-11-26 21:20:00 +00:00
Maik Fischer
475dc3c532
testcases: use open_window everywhere
2011-11-23 20:33:44 +00:00
Maik Fischer
ec877f2ec4
i3test.pm: add before_map hook to open_window
2011-11-23 20:33:44 +00:00
Maik Fischer
9b8d9f7303
i3test.pm: open_(floating_)window: take arguments as hashref or key-value list
2011-11-23 20:33:44 +00:00
Maik Fischer
c2229b905a
testcases: replace sleep with sync_with_i3 where appropiate
2011-11-23 20:33:44 +00:00
Maik Fischer
33e9c29022
testcases: t/144-*: use open_window instead of launching urxvt
2011-11-23 20:33:44 +00:00
Maik Fischer
6bf13b413e
testcases: t/116-*: reinvent ignore() from Test::Deep
2011-11-23 00:03:09 +00:00
Maik Fischer
2f36351ab3
testcases: Makefile.PL: fix tabbing
2011-11-23 00:03:06 +00:00
Maik Fischer
372b98d08e
testcases: drop EV dependency
2011-11-23 00:03:00 +00:00
Maik Fischer
8d83697cc2
testcases: use Test::More is_deeply, don't depend on Test::Deep
2011-11-23 00:02:57 +00:00
Maik Fischer
3a9d94bba4
testcases: don't sync_with_i3() before $x->input_focus
...
since input_focus calls it anyways
2011-11-23 00:02:54 +00:00
Maik Fischer
0702f1fb7b
testcases: drop sync_with_i3()s $x parameter, use global
2011-11-23 00:02:50 +00:00
Maik Fischer
293517fb2e
testcases: drop open_floating_window()s $x parameter, use global
2011-11-23 00:02:47 +00:00
Maik Fischer
fce7570f96
testcases: drop open_window()s $x parameter, use global one instead
2011-11-21 23:51:04 +00:00
Maik Fischer
e9acd36ce4
t/005-floating.t: fix potentional race condition
2011-11-21 23:51:01 +00:00
Maik Fischer
da403b3667
testcases: use $x in wait_for_(un)map change to wait_for_(un)map($win)
...
wait_for_unmap currently ignores its $window parameter, since
X11::XCB doesn't provide $event->{window} for unmap events yet.
2011-11-21 23:50:58 +00:00
Maik Fischer
65471a6b18
testcases: only export eq_deeply, cmp_deeply from Test::Deep
2011-11-21 23:50:55 +00:00
Maik Fischer
ea2aba4319
testcases: undo 0f386a96
t/144-regress-floating-resize.t
...
wait_for_map can't be used, since we don't set structure_notify
on the urxvts windows
2011-11-21 23:50:52 +00:00
Maik Fischer
db6de84d0b
testcases: use global $x in wait_for_event, drop $x parameter
2011-11-21 23:50:48 +00:00
Maik Fischer
30ea33decb
testcases: let i3test.pm export $x, adapt testcases
2011-11-21 23:50:43 +00:00
Maik Fischer
1b1d7941ec
testcases: correctly enable lexical pragmata
...
eval 'package foo; use strict;' enables strict within eval, it does
not leak into the surrounding scope.
Also fix various warnings/compile errors found due to now enabled
strict and warnings.
2011-11-21 23:50:39 +00:00
Maik Fischer
0a65b770e8
i3test.pm: bail_out if injection of exported modules fails
2011-11-21 23:50:36 +00:00
Maik Fischer
e72899efb6
testcases: move i3test::X11 from 170-force_focus_wrapping.t into i3test.pm
2011-11-21 23:50:33 +00:00
Maik Fischer
0f386a96e7
testcases: fix race conditions in various tests
2011-11-21 19:21:14 +00:00
Maik Fischer
af793c9030
complete-run: wait for all jobs to be finished
2011-11-21 19:20:52 +00:00
Maik Fischer
4f2b1c3a66
testsuite: Makefile.PL: do not rename Makefile while running make clean
2011-11-21 19:14:46 +00:00
Michael Stapelberg
8a9b093bc3
tests: replace left-over move before/after commands (Thanks mxf)
2011-11-21 18:54:20 +00:00
Michael Stapelberg
2783aa9fc9
tests: add t/180-fd-leaks to ensure i3 does not leak fds on exec
2011-11-20 10:52:21 +00:00
Michael Stapelberg
3abd7ab073
complete-run: close all fds except for 0, 1, 2
...
running in a VIM subshell leads to one more fd, for example
2011-11-20 10:51:21 +00:00
Michael Stapelberg
b0ee2dfd32
complete-run: close the old socket fd
2011-11-20 10:24:13 +00:00
Michael Stapelberg
b6e859787e
clarify comments about socket activation (Thanks mxf)
2011-11-16 23:14:57 +00:00
Michael Stapelberg
33ee4679e7
tests: store temp configs in /tmp/
2011-11-16 21:41:45 +00:00
Michael Stapelberg
3665f3e755
tests: Bugfix: Fix socket activation (see comment)
2011-11-16 21:41:00 +00:00
Michael Stapelberg
77a9e4b18f
complete-run: implement --strace, make --valgrind log to test-specific file
2011-11-15 23:30:17 +00:00
Michael Stapelberg
9cbf34ac14
lib/SocketActivation: Bugfix: remove old code which leaks the socket file descriptor to i3
2011-11-15 19:54:03 +00:00
Michael Stapelberg
60bfc3a600
Bugfix: Correctly handle --no-startup-id with quoted exec commands (Thanks aksr)
...
Parser changes shortly before a release. What could possibly go wrong.
2011-11-11 00:28:04 +00:00
Michael Stapelberg
e73538a56f
t/154-regress-multiple-dock: s/next v/focus right
2011-11-10 18:43:03 +00:00
Michael Stapelberg
bebd2fceb6
Bugfix: Correctly return to initial state after prev/next/back_and_forth (Thanks Brian)
...
Fixes : #552
2011-11-10 18:42:24 +00:00
Michael Stapelberg
2c48280017
complete-run: remove Carp::Always, slipped in when debugging
2011-11-09 22:41:56 +00:00
Michael Stapelberg
316318c1fc
complete-run: don’t print long logfile paths, they are useless by now anyway
2011-11-09 22:38:29 +00:00
Maik Fischer
7633aa67a1
complete-run: log verbose output, display statuslines instead
2011-11-09 23:00:10 +01:00
Michael Stapelberg
31b01798dd
lib/SocketActivation: don’t make POSIX export everything (Thanks mxf)
2011-11-07 23:45:28 +00:00
Michael Stapelberg
c8eb7b08ac
lib/StartXDummy: use close STDOUT, STDERR instead of POSIX::close (Thanks mxf)
2011-11-07 23:39:45 +00:00
Michael Stapelberg
bf12befd6d
lib/StartXDummy.pm: document why we use -config /dev/null
2011-11-07 23:07:08 +00:00
Michael Stapelberg
afc488021f
complete-run.pl: automatically start Xdummy instances unless -d is specified
...
This makes running the testsuite incredibly easy:
$ ./complete-run.pl
:)
2011-11-07 23:04:45 +00:00
Michael Stapelberg
8b887e8447
complete-run: Bugfix: return condvar when $dont_start is true
2011-11-07 22:38:06 +00:00
Michael Stapelberg
0615cb3595
complete-run.pl: implement --help
2011-11-07 21:21:51 +00:00
Michael Stapelberg
fdf7b1706c
complete-run: Bugfix: Don’t call recv inside a callback when cleanly exiting i3
2011-11-07 20:56:36 +00:00
Michael Stapelberg
dbd6440432
complete-run: Use Carp::Always to get nice stacktraces in case of errors
2011-11-07 20:56:04 +00:00
Michael Stapelberg
c75cc525f7
lib/SocketActivation: use single quotes (for consistency)
2011-11-07 20:54:33 +00:00
Michael Stapelberg
1c0d69d4e6
complete-run: implement --valgrind
2011-11-07 20:53:49 +00:00
Michael Stapelberg
389fdcf79f
complete-run: pass outdir (not only logpath) to activate_i3()
2011-11-07 20:52:14 +00:00
Michael Stapelberg
50d14718f4
fix t/120-multiple-cmds: open a window before moving
2011-10-27 23:30:29 +01:00
Michael Stapelberg
edfa9febae
extend t/124-move.t to test move for floating containers
2011-10-27 21:46:01 +01:00
Michael Stapelberg
ca0c2a46e4
t/124-move.t: re-activate test for useless move commands
2011-10-27 21:22:41 +01:00
Michael Stapelberg
e710477a07
Bugfix: properly handle comments in colors {} blocks of bar config (+test) (Thanks fernandotcl)
2011-10-25 22:31:57 +01:00
Michael Stapelberg
af6f8ca7c2
complete-run: clear the DESKTOP_STARTUP_ID environment variable before starting i3
2011-10-25 22:21:59 +01:00
Michael Stapelberg
91d589b176
tests: extend t/175-startup-notification to test the --no-startup-id flag
2011-10-25 22:21:37 +01:00
Fernando Tarlá Cardoso Lemos
d490bae8a2
Close empty workspaces if they're not visible.
...
Previously, we'd only close an empty workspace when we moved away
from it. Now we also close it when the last client exits, as long
as that workspace is not visible anymore.
2011-10-24 00:12:14 +01:00
Michael Stapelberg
29f9f8c090
Fix tests: s/i3bar/bar {/ and hash prefix for color codes in GET_BAR_CONFIG
2011-10-23 21:51:43 +01:00
Michael Stapelberg
3a99c914e0
tests: default bar mode changed
2011-10-21 23:00:38 +01:00
Michael Stapelberg
bf408c9a08
tests: depend on AnyEvent::I3 0.09 (for get_bar_config)
2011-10-20 20:31:44 +01:00
Michael Stapelberg
ab2d96ba48
tests: modify $PATH so that it prefers the compiled versions of everything in ../
2011-10-20 19:02:08 +01:00
Michael Stapelberg
ad0f13a0a9
Clean bars before reloading the config (+test)
...
While the configuration gets updated in i3, the i3bar processes will not pick
up these changes. We have to think about a good way to do that.
2011-10-20 18:47:09 +01:00
Michael Stapelberg
15bface10d
Create different IDs for each bar (+test)
2011-10-19 19:57:39 +01:00
Michael Stapelberg
d9f3a31cb7
tests: add a test to check that bar configs are parsed correctly
2011-10-18 22:15:48 +01:00
Michael Stapelberg
82ec0169cb
tests: add t/176-workspace-baf for the workspace back_and_forth feature
2011-10-17 23:34:29 +01:00
Maik Fischer
fce422d99e
i3test.pm: use strict; use warnings; and fix related bugs
2011-10-12 22:21:57 +01:00
Michael Stapelberg
27dadb4ad9
testcases/makefile: add modeline, add testsuite-* and latest to 'clean' target
2011-10-10 21:56:43 +01:00
Michael Stapelberg
71a3da1ef3
t/175-startup-notification: don’t wait for i3 mapping the window
...
It is on a different workspace and will therefore not get mapped.
Syncing is enough.
2011-10-10 16:00:34 +01:00
Michael Stapelberg
6ac098a45e
support _NET_STARTUP_ID on the client leader window
...
(necessary for GIMP, geeqie, …)
2011-10-10 15:54:17 +01:00
Michael Stapelberg
7750382b89
test: set the _NET_STARTUP_ID before mapping the window
2011-10-10 15:54:17 +01:00
Michael Stapelberg
198f16ece9
add testcase for the startup notification protocol
2011-10-10 15:54:17 +01:00
Maik Fischer
19b13a0af5
testcases: add Makefile.PL to automatically install deps via CPAN
2011-10-08 20:58:37 +01:00
Michael Stapelberg
ae1ab9eb27
tests: rename files (00x-*.t is basic stuff, >=100-*.t are tests using IPC)
2011-10-08 14:38:50 +01:00
Michael Stapelberg
c48a092e24
testsuite: delete obsolete makefile
2011-10-08 14:30:47 +01:00
Michael Stapelberg
1056ecc885
complete-run: eliminate dependency on EV
2011-10-05 23:52:19 +01:00
Michael Stapelberg
27a38a3917
complete-run: explicitly state why we need to overwrite SIGCHLD
2011-10-05 23:29:58 +01:00
Michael Stapelberg
3136573a70
tests: eliminate List::MoreUtils
2011-10-05 23:21:36 +01:00
Michael Stapelberg
b9224634dd
tests: eliminate Try::Tiny
2011-10-05 23:21:23 +01:00
Michael Stapelberg
689f3b8cf7
tests: Eliminate IO::Scalar
2011-10-05 23:17:09 +01:00
Michael Stapelberg
b9cd9132d0
tests: remove unused Proc::Background
2011-10-05 20:48:34 +01:00
Michael Stapelberg
bd33c09845
tests: move i3test.pm from t/lib to lib/
2011-10-04 23:39:36 +01:00
Michael Stapelberg
57484553e6
tests: use a lot higher timeouts
...
This makes the tests more robust on a machine which is loaded.
Also, it makes the tests run (significantly) longer if anything goes wrong.
2011-10-04 23:36:57 +01:00
Michael Stapelberg
359717970d
tests: don’t overwrite $timeout, kill timer when done
2011-10-04 23:36:43 +01:00
Michael Stapelberg
4e1d50fa3a
tests: Convert all testcases to use the new launch_with_config API
...
It now returns a pid directly, not a Proc::Background object.
2011-10-04 23:34:23 +01:00
Michael Stapelberg
8d9b4c3c04
tests: launch_with_config: use socket activation
2011-10-04 23:33:38 +01:00
Michael Stapelberg
bf33c8d7c9
tests: SocketActivation: append to the logfile, more comments
2011-10-04 23:31:33 +01:00
Michael Stapelberg
c8d42fbabe
tests: SocketActivation: only close() and dup2() if fileno(socket) != 3
2011-10-04 23:31:06 +01:00
Michael Stapelberg
6c7c4d52d0
tests: Refactor the socket activation into lib/SocketActivation.pm
2011-10-04 23:30:30 +01:00
Michael Stapelberg
a94ec5ee4e
tests: re-order dependencies in complete-run, make clear which are shipped with Perl
2011-10-04 20:10:11 +01:00
Michael Stapelberg
53121c746c
tests: remove unused dependency Proc::Background from complete-run
2011-10-04 20:05:12 +01:00
Michael Stapelberg
aa65b721b8
tests: eliminate dependency on the DateTime module by using POSIX::strftime
2011-10-04 20:03:08 +01:00
Michael Stapelberg
20d6ae4110
tests: make complete-run use POSIX::close(3) instead of reserving a file descriptor when starting
...
This makes it possible to run complete-run.pl with a "tainted" environment in
which fd 3 (and possibly others) are already present.
2011-10-04 19:58:17 +01:00
Michael Stapelberg
32ea923721
add a test for the 'move workspace next/prev' command
2011-10-02 22:18:21 +01:00
Michael Stapelberg
683bfa58d5
tests: Use AnyEvent::I3’s get_marks (requires AE::I3 >=0.08)
...
We also don’t bother with timeouts anymore. It’s expected to run the tests with
a sufficiently recent version of i3. The tests will just hang if it doesn’t
work.
2011-09-26 19:36:27 +01:00
Michael Stapelberg
1675499f15
docs/testsuite: a few corrections by fernandotcl
2011-09-25 14:23:47 +01:00
Michael Stapelberg
1eb011aae1
tests: make sure to leave no tempfiles behind
2011-09-24 16:28:21 +01:00
Michael Stapelberg
10a9d2a439
tests: Bugfix: 11-goto.t: use mktemp for generating a random mark, not base64
...
The base64 string could contain / and + which is treated specially since we
implemented PCRE support :)
2011-09-24 15:56:43 +01:00
Michael Stapelberg
761dac5514
tests: lib/i3test: Use //= instead of unless exists $args{key} (Thanks mxf)
2011-09-24 15:44:42 +01:00
Michael Stapelberg
378611c11c
tests: refactor t/58-wm_take_focus to use wait_for_event
2011-09-24 15:38:31 +01:00
Michael Stapelberg
de5286da59
tests: lib/i3test: Remove open_standard_window, introduce open_window
...
open_window has a better API than open_standard_window. It uses named
parameters and supplies default values for everything you don’t specify. This
way, you can use every feature which X11::XCB::Window supports.
2011-09-24 15:11:37 +01:00
Michael Stapelberg
c3eb9f6c45
tests: complete-run: remove debugging messages
2011-09-24 13:13:26 +01:00
Michael Stapelberg
1a438f12ed
tests: complete-run: display time i3 took for starting up
2011-09-24 13:13:09 +01:00
Michael Stapelberg
e244a75801
tests: complete_run: directly use X11::XCB instead of ::Connection
...
This saves about 0.5s wallclock time due to not starting up Moose/Mouse.
This is worthwhile when you develop a new feature and you are often invoking
complete_run for one specific test.
2011-09-24 13:09:20 +01:00
Michael Stapelberg
4da5b7e784
tests: use wait_for_{map,unmap} to eliminate more sleep()s
2011-09-24 13:08:02 +01:00
Michael Stapelberg
4821b13cae
tests: lib/i3test: provide wait_for_map and wait_for_unmap
...
These functions should be used instead of calling wait_for_event directly when
waiting for MAP_NOTIFY or UNMAP_NOTIFY
2011-09-24 13:07:05 +01:00
Michael Stapelberg
38a9eabff1
tests: implement sync_with_i3 and use it instead of sleep()
...
Also use open_standard_window() in a few more places where appropriate
2011-09-24 11:15:08 +01:00
Michael Stapelberg
3167e9ad2d
lib/i3test.pm: reformat exports list
2011-09-22 23:13:13 +01:00
Michael Stapelberg
83560c85d8
lib/i3test.pm: Don’t sleep(0.25), but wait until the window was mapped
...
This makes it faster and less racey
2011-09-22 23:13:12 +01:00
Michael Stapelberg
5542af316f
t/65-for_window: add tests for window_role
2011-09-18 16:05:54 +01:00
Michael Stapelberg
99168a84a9
tests: also make launch_with_config() log to LOGPATH
2011-09-18 15:35:04 +01:00
Michael Stapelberg
c8c95030ad
tests: extend t/35-floating-focus to use focus left/right on floating windows
2011-09-17 19:29:23 +01:00
Michael Stapelberg
7a38d8ac56
Merge branch 'master' into next
2011-09-17 14:13:05 +01:00
Michael Stapelberg
7a43af04af
Tests: fix floating size, add a test to check floating size when starting in tiling
2011-09-17 14:12:16 +01:00
Michael Stapelberg
717ae819c5
Merge branch 'master' into next
2011-09-11 22:52:44 +01:00
Michael Stapelberg
2a215fd7e2
Bugfix: Ignore for_window commands with empty (invalid) criteria (+test) (Thanks aksr)
2011-09-11 22:52:33 +01:00
Michael Stapelberg
d82698efa7
make the old assign syntax trigger an i3-nagbar warning (it’s deprecated), adjust test
2011-09-11 22:01:36 +01:00
Michael Stapelberg
b3e1fb1f3b
Make the old 'assign' case-insensitive again (+test) (Thanks aksr)
2011-09-11 21:16:45 +01:00
Michael Stapelberg
c1c1730516
pcre: enable UCP, UTF-8 (if available), extend t/19-match
2011-09-11 11:40:51 +01:00
Michael Stapelberg
8e04867e51
extend t/19-match to also test regular expressions
2011-09-10 23:52:39 +01:00
Michael Stapelberg
bf4d166330
extend t/17-workspace.t to check if the numbers are assigned correctly
2011-09-05 22:24:28 +02:00
Michael Stapelberg
f0a0236b7b
Merge branch 'master' into next
2011-08-28 17:02:19 +02:00
Michael Stapelberg
96b219f27b
migrate-config: use \s, be a bit more whitespace tolerant (+test) (Thanks sbedivere)
...
Fixes : #457
2011-08-28 17:01:59 +02:00
Michael Stapelberg
16188af8bf
Merge branch 'master' into next
2011-08-28 15:47:35 +02:00
Michael Stapelberg
0b0a2dad51
t/66-assign: check if i3 crashes when assigning a dock window to floating
2011-08-28 15:43:51 +02:00
Michael Stapelberg
8114ecda47
Merge branch 'master' into next
2011-08-27 13:47:57 +02:00
Michael Stapelberg
e97a7e34f7
Bugfix: Re-implement reconfiguring height of dock windows (+test) (Thanks thomasba)
2011-08-27 13:47:10 +02:00
Michael Stapelberg
6c42a179ec
Merge branch 'master' into next
2011-08-27 13:03:20 +02:00
Michael Stapelberg
4c01dbd726
Bugfix: Don’t always focus floating windows (fixes focus stealing with assignments) (+test) (Thanks aksr)
2011-08-27 13:02:44 +02:00
Michael Stapelberg
ff85023b08
Merge branch 'master' into next
2011-08-24 15:14:53 +02:00
Michael Stapelberg
0d35feb71b
Bugfix: Make the 'resize' command work inside tabbed/stacked cons (+test) (Thanks sbedivere)
...
Fixes #461
2011-08-24 15:14:04 +02:00
Michael Stapelberg
642a745004
Merge branch 'master' into next
2011-08-24 00:57:36 +02:00
Michael Stapelberg
b8a656bca7
Add test for the 'focus mode_toggle' issue ( #487 )
2011-08-24 00:57:25 +02:00
Michael Stapelberg
22e30061f3
Merge branch 'master' into next
2011-08-17 16:37:09 +02:00
Michael Stapelberg
f172359ba5
Bugfix: Don’t change focus when assigned windows start on invisible workspaces (+test) (Thanks ioflag)
...
Fixes #468
2011-08-17 16:36:19 +02:00
Michael Stapelberg
3af7692a92
Merge branch 'tests-optimize' into next
2011-08-10 15:57:28 +02:00
Michael Stapelberg
5524785877
testsuite: eliminate sleep, wait until i3 replies via IPC
2011-08-10 15:56:39 +02:00
Michael Stapelberg
f8d834c62d
Merge branch 'master' into next
2011-08-09 09:47:10 +02:00
Michael Stapelberg
98cc37e223
swap up/down, also modify the testcase
2011-08-09 09:46:02 +02:00
Michael Stapelberg
74687fa97c
tests: add t/74-border-config which checks new_window and new_float
2011-08-09 09:29:59 +02:00
Michael Stapelberg
dab3a0b85a
tests: add testcase for the GET_MARKS ipc request
2011-08-09 08:19:48 +02:00
Michael Stapelberg
51119c75c1
extend t/65-for_window to check for the 'instance' criterion
2011-08-04 20:11:01 +02:00
Michael Stapelberg
3ef7e3cee4
t/41-resize: also verify resize for floating windows
2011-08-03 14:48:33 +02:00
Michael Stapelberg
dcba8024de
also handle quoted workspace names, extend t/72 for that
2011-08-03 03:33:12 +02:00
Michael Stapelberg
72d2b2c9bd
add testcase to check if i3 starts on the first named workspace (ticket #449 )
2011-08-03 02:56:24 +02:00
Michael Stapelberg
003f7043c5
t/70-force-focus-wrapping: use launch_with_config
2011-08-03 02:12:29 +02:00
Michael Stapelberg
7956289c2b
t/67-workspace_layout: use launch_with_config
2011-08-03 02:04:52 +02:00
Michael Stapelberg
8734534b5c
t/66-assign: use launch_with_config
2011-08-03 02:03:26 +02:00
Michael Stapelberg
506d8797b2
tests: implement i3test::launch_with_config, use it in t/65-for_window
2011-08-03 00:03:13 +02:00
Michael Stapelberg
b57e8570c9
t/65-for_window: add a testcase for multiple criteria
2011-08-02 19:46:10 +02:00
Michael Stapelberg
56499d8374
tests: make t/65-for-window.t use separate i3 instances
2011-08-02 19:21:09 +02:00
Michael Stapelberg
3204caa98d
i3-migrate-config-to-v4: drop the .pl suffix
...
As lintian (a Debian package checker) mentions, it is more clever to install it
without the extension, since the implementation language might change.
2011-07-31 23:11:05 +02:00
Michael Stapelberg
eea804cd94
migrate-config: convert old 'with container' commands to 'focus parent; $command' (+test) (Thanks Marcus)
2011-07-27 14:36:22 +02:00
Michael Stapelberg
2b940296a8
tests: t/17-workspace.t: keep workspace 1 open
...
When not running i3 in a terminal from workspace 1, this would fail otherwise
2011-07-27 14:35:40 +02:00
Michael Stapelberg
26c1a463db
tests: keep an X11 connection open to every display, fixes races
...
Otherwise, i3 is the only client and thus the X server shuts down after i3
disconnects. Xdummy restarts an X server, but that takes some time and
therefore sometimes the next testcase was unable to connect.
2011-07-27 14:34:35 +02:00
Michael Stapelberg
44be907197
add Xdummy script to start a headless X11 server
2011-07-25 15:37:46 +02:00
Michael Stapelberg
4dde5bb863
testsuite: allow parallel runs. decreases the test time by 60% when using 4 displays
2011-07-25 15:37:13 +02:00
Michael Stapelberg
49ea805905
tests: get the socket path from the X11 atom I3_SOCKET_PATH
...
The hard-coded socket paths are not useful when running the test suite in
parallel.
2011-07-25 13:35:56 +02:00
Michael Stapelberg
34eb9b2664
ipc: make 'focused' a bool
2011-07-24 15:00:09 +02:00
Michael Stapelberg
b09bb0fc2a
ipc: make 'urgent' a bool
2011-07-24 14:54:30 +02:00
Michael Stapelberg
36fde6dbe1
ipc: send 'percent': null when percent is not relevant for the container
2011-07-24 14:47:28 +02:00
Michael Stapelberg
feaa161d2c
testcases: explicitly mark the (short) config files as v4
...
i3 won’t call i3-migrate-config and thus won’t add a call to i3bar this way.
It’s not necessary and can interfere with some tests sometimes.
2011-07-15 01:37:54 +02:00
Michael Stapelberg
e117a8a77f
migrate-config: mode foo → mode "foo" (+test) (Thanks cradle)
2011-07-15 00:22:26 +02:00
Michael Stapelberg
2d71102796
Bugfix: Switch to appropriate workspace when using 'focus' (+test) (Thanks rogutes)
...
Fixes #432
2011-07-14 23:45:36 +02:00
Michael Stapelberg
26d63fffc2
testcases: fix config-migrate test case after latest change
2011-07-14 23:07:10 +02:00
Michael Stapelberg
b63a559c28
migrate-config: also migrate border toggle (bt) (Thanks woddf2)
2011-07-09 01:02:13 +02:00
Michael Stapelberg
0fe564d122
tests: t/19-match needs a little delay
2011-07-09 01:01:52 +02:00
Michael Stapelberg
0add563448
Bugfix: multiple criteria should use a logical AND (+test) (Thanks f8l)
2011-07-08 00:21:29 +02:00
Michael Stapelberg
3e24b7170f
migrate-config: Bugfix: 'borderless' has to be 'none'
2011-07-06 20:21:39 +02:00
Michael Stapelberg
03aa95813e
migrate-config: also handle named workspaces correctly when their names come after the bindings (Thanks xpt)
2011-07-06 17:56:09 +02:00