Commit Graph

848 Commits

Author SHA1 Message Date
Michael Stapelberg 57438d270d append_layout: load floating containers correctly
fixes #1739
fixes #1271
2015-08-05 22:40:58 +02:00
Michael Stapelberg 21d4b2319f Properly clear the urgency hint when set by i3.
fixes #1825
2015-08-02 20:50:14 +02:00
hwangcc23 fc1477dfb5 Support config file line continuation
1. Allow to use the line continuation, which is indicated by \ before the new line character, in config files.
2. Add a new testcase "247-config-line-continuation.t" for
    a). testing line continuation
    b). making sure string escaping still works
    c). testing line continuations within a string
    b). testing line continuations with too many lines
2015-07-26 07:54:06 +08:00
Ingo Bürk be406d036d Implement new criterion 'workspace'.
If the match expression is a plain number (e.g., '99'), the number of a workspace will be compared strictly. Otherwise, the match expression is taken as a regular expression and compared against the workspace's name.
This allows all of the following:

for_window [workspace=5] ...
for_window [workspace="5:foo"] ...
for_window [workspace="foo"] ...

fixes #1769
2015-06-30 20:53:52 +02:00
Michael Stapelberg 8df7e4ecb9 Merge pull request #1747 from Airblader/feature-1723
Implement "title_format"
2015-06-29 00:24:59 -07:00
Ingo Bürk 55e8d06ee4 Added command directive 'title_format'.
This directive will be used to customize the window title.
2015-06-29 09:13:31 +02:00
Michael Hofmann bad4203755 Configurable tray padding. 2015-06-28 00:14:37 +02:00
Michael Stapelberg 696d844ffa Merge pull request #1697 from Airblader/feature-1695
Extend mouse commands on i3bar
2015-06-18 20:50:56 +02:00
Ingo Bürk 618b6744d5 Added testcase for #1695. 2015-06-18 19:28:24 +02:00
Michael Stapelberg 4d25d6a5a6 Merge pull request #1752 from Airblader/feature-test-cleanups-1
Silence "masks earlier declaration in same scope" warnings
2015-06-13 14:39:19 +02:00
Ingo Bürk 73a84886d1 Silence "masks earlier declaration in same scope" warnings when executing tests. 2015-06-12 18:19:43 +02:00
Ingo Bürk 9571200baa Remove dead documentation for non-existing feature "stack-limit". 2015-06-09 23:13:15 +02:00
Ingo Bürk 2b6f76852c Implement i3's logic for maintaining a list of 'bindsym' directives and passing it to i3bar through the IPC. 2015-06-05 12:30:53 +02:00
Ingo Bürk ab12d3fc74 Add new command skeleton 'bindsym <button> <command>' for 'bar' block. 2015-06-05 12:30:53 +02:00
Michael Stapelberg 6b505d8aca Merge pull request #1733 from Airblader/feature-1732
Added a separate color directive for the binding mode indicator
2015-06-02 08:35:14 +02:00
Ingo Bürk 9b691bcca2 Introduce a config directive 'binding_mode' in the 'bar' config, pass it through the IPC and parse it in i3bar. 2015-05-31 16:49:09 +02:00
Ingo Bürk 1454975981 Added a testcases for #1056 to test whether hovering over a window decoration causes the corresponding window to be
focused.
2015-05-29 23:49:22 +02:00
Michael Stapelberg da064cc08f Merge pull request #1698 from Airblader/feature-1696
Added 'move position mouse'
2015-05-17 15:02:50 +02:00
Ingo Bürk fbbe9cf2e8 Added testcases for 'move position mouse' 2015-05-14 13:04:58 -04:00
Michael Stapelberg 66a1fa7d46 Merge pull request #1638 from hwangcc23/fix-1489
Add a timeout: delay_exit_on_zero_displays
2015-05-05 00:43:43 -07:00
Deiz f0f906a52e Initialize workspace rect to the output's upon creation
The comment immediately following implied that this was the intended
behaviour. Not doing so means that compound commands that both move a
window to a new workspace as well as do something that depends on the
workspace's geometry (e.g. 'move position center' or 'floating enable'
on a tiled window) would use the workspace's calloc'd 0x0+0x0 geometry.
2015-04-28 15:09:58 -04:00
Tony Crisci 6cbe349774 Ignore InputHint when not in WM_HINTS
When InputHint is not in WM_HINTS (i.e., the flag is not set), treat the window
as if the InputHint was set (the default behavior). This means that i3 will
focus the window when it becomes managed.

fixes #1676
2015-04-25 22:43:46 -04:00
Ingo Bürk cd0cf9d651 Added testcases for setting _NET_WM_STATE_HIDDEN on unfocused containers in tabbed/stacked containers. 2015-04-21 09:14:22 +02:00
Michael Stapelberg 67ec2333ee Merge pull request #1665 from Airblader/feature-1658
Added criterion 'window_type'
2015-04-21 08:42:16 +02:00
Deiz 884214f14f Update copyright notices and get rid of ranges
The script used to make these changes can be found at:

   https://gist.github.com/Deiz/32322020f76d23e2bf8f
2015-04-20 17:50:21 -04:00
Ingo Bürk e4a86d4aef Cleanup: delete comments that were accidentally copy-pasted and are incorrect for these test cases 2015-04-20 19:27:43 +02:00
Ingo Bürk 09d1deda7f Small cleanups:
* Implement criterion specs just like it is done in the spec for the config
* Declare variables in test case early so the 'my' keyword can be dropped in the actual test cases
2015-04-20 19:27:43 +02:00
Ingo Bürk 761a8713df Added testcase for 'window_type' criterion when used as a command. 2015-04-20 19:27:43 +02:00
Ingo Bürk 18c45a7f09 Added testcase for changing _NET_WM_WINDOW_TYPE after the window is already managed. 2015-04-20 19:27:43 +02:00
Ingo Bürk a59fe0d3d2 Added test case for transfer of urgency flag when moving a window to a mark. 2015-04-19 20:57:49 +02:00
Ingo Bürk dc19ff9ec5 fix commands parser test 2015-04-19 20:57:49 +02:00
Ingo Bürk fbebd3479b Added testcase for moving a window to a workspace holding the mark 2015-04-19 20:57:49 +02:00
Ingo Bürk 283b231290 Disallow moving a container to itself since this would crash i3. 2015-04-19 20:57:49 +02:00
Ingo Bürk 05e8caab17 Added testcases for 'move window|container to mark <str>'
fixes #1643
2015-04-19 20:57:49 +02:00
Michael Stapelberg 8a608ee63a Merge pull request #1632 from Deiz/binding-border
Add a --border flag to enable mouse binds to trigger on border click
2015-04-19 09:28:08 -07:00
Ingo Bürk 7e424b2d71 Added testcase for criterion 'window_type'. 2015-04-19 14:08:39 +02:00
Michael Stapelberg 4958ca00ab Merge pull request #1654 from Deiz/complete-run-chdir
Allow complete-run.pl to be run from any directory
2015-04-12 10:46:54 -07:00
Deiz e2e949f331 Allow complete-run.pl to be run from any directory 2015-04-12 13:21:20 -04:00
Nikita Mikhailov 2a4524a1e1 Bump testsuite dependencies versions 2015-04-11 21:24:01 +06:00
hwangcc 2c77d7ceed Add a timeout: delay_exit_on_zero_displays
Outputs may disappear momentarily and come back later.
To prevent i3 from exit when no output is available momentarily, add a timeout delay_exit_on_zero_displays.
2015-04-11 22:13:10 +08:00
Deiz 547157d19b Add test cases for --border 2015-04-02 16:46:42 -04:00
Deiz ce48d5c5d7 Add a --border flag to enable mouse binds to trigger on border click 2015-04-02 16:24:05 -04:00
Ingo Bürk 42a666be3c Added testcases for --whole-window in a binding inside a mode (#1629) 2015-04-02 11:17:29 +02:00
Michael Stapelberg 15d516f58c Merge pull request #1628 from acrisci/feature/complete-run-coverage
complete-run: add coverage report generation
2015-04-02 00:33:05 -07:00
Tony Crisci d2d72acac4 complete-run: add coverage report generation
When `complete-run.pl` is given `--coverage-testing`, try to generate an
html coverage testing report for the run. This requires i3 to be
compiled with coverage testing support.
2015-04-01 15:10:27 -04:00
Ingo Bürk 18d6b24f8d Added testcase for the no_focus directive (#1416) 2015-04-01 20:46:56 +02:00
Ingo Bürk b5f7c132fc Added config directive 'no_focus <criteria>' (#1416) 2015-04-01 20:46:56 +02:00
Ingo Bürk 43204b43fd Added a testcase for #1614 2015-04-01 13:51:48 +02:00
Michael Stapelberg 3b81e40096 Merge pull request #1618 from Deiz/fix-1603
Allow single-child non-default layout cons to be moved between outputs
2015-04-01 09:08:22 +02:00
Deiz 4e88c10564 Allow single-child non-default layout cons to be moved between outputs
Includes a test case to verify the behaviour of 'move <direction>'.
Fixes #1603.
2015-03-31 13:58:29 -04:00
Ingo Bürk 245a29e233 Make show_marks configurable
Introduce a config directive "show_marks [yes|no]" to en- or disable drawing marks on window decorations.
To not change the look & feel of existing configurations, the default is "no".
2015-03-30 23:11:50 +02:00
Michael Stapelberg 0ad097ee67 Merge pull request #1613 from Airblader/feature-1426
Added focus_on_window_activation directive
2015-03-30 22:58:16 +02:00
Ingo Bürk e288938769 Added testcases for #1426 2015-03-30 22:09:36 +02:00
Ingo Bürk 9bf161710b Added 'focus_on_window_activation' directive
When a window receives a _NET_ACTIVE_WINDOW message, it can steal the focus. This may not be preferable to all users.
With this directive, the user can choose from one of the following:
1) 'smart' - focus the container if its workspace is visible, otherwise set the urgency flag (default)
2) 'urgent' - always set the urgency flag, do not steal focus
3) 'focus' - always switch focus, never set the urgency hint
4) 'none' - ignore the request entirely (do not switch focus, nor set the urgency hint)

fixes #1426
2015-03-30 22:09:36 +02:00
Deiz c6581a5fd6 Handle floating centering in one function and test for consistency 2015-03-30 16:03:35 -04:00
Michael Stapelberg 2759a308a2 Merge pull request #1608 from mh21/renaming-empty-ws-startup
Update old_name when renaming current workspace
2015-03-30 22:01:18 +02:00
Tony Crisci e3ad16e65f complete-run: fix pod errors
Close `=over` with `=back` and use ascii apostrophe for "don't" to avoid
pod errors on `complete-run` docs.
2015-03-30 11:04:45 -04:00
Michael Hofmann e6267a684c Testcase for non-null-terminated WM_CLASS.
- fails most of the time
2015-03-30 08:56:46 +02:00
Michael Stapelberg 9718640622 Merge pull request #1589 from Deiz/fix-center
Make center coordinates relative to current workspace
2015-03-30 08:47:04 +02:00
Michael Hofmann 54dc87fb83 Testcase for #1607.
- crash in startup_sequence_rename_workspace because of NULL old_name
2015-03-30 08:28:36 +02:00
Michael Stapelberg b338e25317 Merge pull request #1595 from Deiz/fix-1484
Fix percents when attaching a window to a ws creates a new split con
2015-03-29 23:14:37 +02:00
Ingo Bürk 7a75cb7e0b Added test cases for 'mark --toggle' (#1463) 2015-03-29 21:21:50 +02:00
Ingo Bürk c5fad4f579 Added a regression test for #1187 2015-03-28 19:23:59 +01:00
Deiz 48d2acd8f6 Fix percents when attaching a window to a ws creates a new split con
Fixes #1484 and includes a test case.
2015-03-27 22:20:28 -04:00
Deiz bae66a9dae Add a test case for #1211 2015-03-27 14:29:53 -04:00
Michael Stapelberg fb0573e183 Merge pull request #1582 from shdown/allow-escaping-backslashes
Allow escaping backslashes
2015-03-27 09:40:09 +01:00
shdown 4e871c75f9 Add tests for backslash unescaping 2015-03-26 17:18:17 +03:00
Tony Crisci 49510427b9 Handle strut partial changes for dock clients
Handle changes to the property _NET_WM_STRUT_PARTIAL by reallocating
screen space in the dock area when the dock client requests a new
position.

This will allow changes to the bar config directive `position` to be
effective on the `reload` command.

fixes #1294
2015-03-25 19:45:42 -04:00
Ingo Bürk 80da100ac8 Add support for a custom separator symbol
This introduces a "separator_symbol" property for the i3bar configuration.
If set, the specified string will be used as a separator instead of a vertical line. Since it is an optional configuration, complete backwards compatibility is given.

fixes #1472
2015-03-25 21:38:55 +01:00
Michael Stapelberg 822cd3bf1b Revert "Workspace command number selection"
This reverts commit cbd51ce664.

If you’ve started using this feature, I’m very sorry, but I think it’s
better to revert it entirely, as it will only cause more problems in the
future as more and more people upgrade and get bitten by this if we
didn’t revert it…

fixes #1536
2015-03-24 09:28:30 +01:00
Tony Crisci e5317fc4e9 testcases: dont run valgrind verbose 2015-03-23 13:03:57 -04:00
Michael Stapelberg 2772c377ec increase timeouts for travis
See https://travis-ci.org/i3/i3/jobs/55319961 (line 4064) for a job
where the window could not be mapped within 2 seconds.
2015-03-21 22:23:51 +01:00
Michael Stapelberg d1f99abf75 fix warnings when CONTINUOUS_INTEGRATION env var is unset 2015-03-16 22:38:39 +01:00
Michael Stapelberg c35b3160f6 relax timings of t/200-urgency-timer.t to reduce flakiness 2015-03-16 22:37:45 +01:00
Michael Stapelberg 56f420c3dd Merge pull request #1539 from mh21/wsrename-1527
Rename workspaces in startup sequences
2015-03-14 04:56:19 -07:00
Michael Stapelberg f0ef712ed0 tests: exit with status 1 when tests fail 2015-03-14 12:34:34 +01:00
Michael Stapelberg aa4aec41f5 tests: don’t print interactive status when running on travis
(or without a tty)
2015-03-14 12:33:54 +01:00
Michael Hofmann 5776edcc84 Test: startup workspaces updating on rename. 2015-03-13 10:35:20 +01:00
Michael Stapelberg a5939f3edc Merge pull request #1513 from Airblader/defect-1473
Move workspace to assigned output when renaming it
2015-03-13 00:52:52 -07:00
Michael Stapelberg d551618cf0 Revert "Handle WM_CHANGE_STATE requests for iconic state"
This reverts commit 136b3e345b.

fixes #1516
2015-03-07 11:47:01 +01:00
Ingo Bürk 25ec389ecb Added tests for #1473 2015-03-04 10:54:58 +01:00
Michael Stapelberg 3f126c61c4 Merge branch 'master' into next 2015-01-31 22:56:08 +01:00
Michael Stapelberg 13220e75d8 Bugfix: actually parse client.placeholder (Thanks Ingo)
fixes #1400
2015-01-31 22:55:45 +01:00
Michael Stapelberg dd5be77d1d Merge branch 'master' into next 2015-01-31 22:42:54 +01:00
Michael Stapelberg 55b5f491a4 Bugfix: correctly restore workspaces regardless of where “type” is (Thanks dsargrad)
fixes #1395
2015-01-31 22:42:47 +01:00
Tony Crisci 74b69d6d02 Add mouse binding pointer position configuration
Add the `--whole-window` switch for mouse bindings. This switch controls
what part of the container the pointer must be over to trigger a mouse
binding. The default is to only trigger mouse bindings over the
titlebars. With this switch, a mouse binding will be triggered over the
main part of the window as well.

This is a breaking change to the previous behavior, which would trigger
a mouse binding with a modifier over any part of the window.

fixes #1429
2015-01-31 21:29:48 +01:00
Tony Crisci 823b46a544 Include workspace con in workspace event
Send the affected workspace in the "current" property for each workspace
event for any type of workspace event that affects a particular
workspace.

fixes #1411
2014-12-22 09:47:31 +01:00
Mats e59a76e456 Extend the fullscreen command
Rather than just toggling the fullscreen modes, allow to set them
directly with:

    fullscreen enable|toggle [global]
    fullscreen disable

For compatibility, retain the previous command and its toggling behavior:

    fullscreen [global]

fixes #1120
2014-12-10 20:42:52 +01:00
Mats dc351fb291 Prevent workspace change during global fullscreen
While in global fullscreen, the workspace could be changed leaving the
fullscreen container still visible on top but losing its focus.
2014-12-10 20:24:32 +01:00
cornerman 58c65a64fe add deco_rect property to con in ipc response 2014-11-29 18:19:39 +01:00
Tony Crisci 8d031bfbf8 Handle _NET_CLOSE_WINDOW client message requests
> Pagers wanting to close a window MUST send a _NET_CLOSE_WINDOW client
> message request to the root window.

We interpret this message as a request to close the con for the given
window.

See: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472668896

fixes #1396
2014-11-17 09:08:42 +01:00
Tony Crisci bb1f857b00 bugfix: copy binding before run
Copy the binding struct before running it and use this copy to emit the
binding event.

This fixes a crash when the command `reload` is used in a binding when
the binding event is emitted.
2014-11-16 23:36:27 +01:00
Mats a66c6b8b6d t/234-layout-restore-output: Remove unused import
List::MoreUtils is imported but not used.
2014-10-23 22:54:51 +02:00
Mats 1d60e48c73 Makefile.PL: Add Inline::C dependency
Inline::C is no longer shipped with Inline.
2014-10-23 22:54:46 +02:00
Tony Crisci ecca0baff3 Testcases: rename StartXDummy to StartXServer
Rename the package StartXDummy to StartXServer in the testcases library
because XDummy is no longer used.

No logic changes.
2014-10-05 21:06:37 +02:00
Michael Stapelberg 3e841ac5b6 check for AnyEvent::I3 ≥ 0.16 in the binding event test 2014-10-03 09:40:22 +02:00
Tony Crisci fbaf084426 Implement the ipc 'binding' event
The binding event will be triggered when a binding is run as a result of
some a user action. The binding event has the following properties:

change: (str) Currently this will only be "run" but may be expanded in
the future. Included for consistency with other events.

binding: (map) the serialized binding

The "binding" member will have these properties:

input_type: (str) either "keyboard" or "mouse"

input_code: (int) the xcb keycode of the keyboard binding if it was
provided or the mouse button if it is a mouse binding.

symbol: (str) the string representation of the input code

command: (str) the bound command

mods: (list of str) a list of the modifiers that were pressed as string
symbols

fixes #1210
2014-10-03 09:35:37 +02:00
Michael Stapelberg 3cf413492f t/114-client-leader: fix race by waiting until the window is mapped 2014-10-02 23:07:50 +02:00
Tony Crisci 2ddbc71e2b Testcases: Use Xephyr instead of XDummy
Replace the XDummy script with Xephyr. This is done because of some
changes in the Xorg server that make XDummy difficult to use.

Rename library internal variables and function names to replace "xdummy"
with "xserver" to show this change (except for renaming the package and
lib file for better git history).

Rename the switch `--keep-xdummy-output` to `--keep-xserver-output`.
This switch should now be rarely used because Xephyr requires less set
up.

Replace "xdummy" with "xephyr" in comments and utility help
information. Update docs to show the new dependency.

fixes #1367
2014-10-02 23:05:00 +02:00
Michael Stapelberg ea2552e852 Bugfix: use the command parser to properly extract workspace names
fixes #1377
2014-10-01 22:50:48 +02:00