Commit graph

152 commits

Author SHA1 Message Date
Ryan Dwyer
5dbbab7bdc Remove layout.c
When we have type safety we'll need to have functions for
workspace_add_tiling and so on. This means the existing container
functions will be just for containers, so they are being moved to
container.c. At this point layout.c doesn't contain much else, so I've
relocated everything and removed the file.

* container_swap and its static functions have been moved to the swap
command and made static.
* container_recursive_resize has been moved to the resize command and
made static.
* The following have been moved to container.c:
    * container_handle_fullscreen_reparent
    * container_insert_child
    * container_add_sibling
    * container_add_child
    * container_remove_child
    * container_replace_child
    * container_split
* enum movement_direction and sway_dir_to_wlr have been moved to util.c.

Side note: Several commands included layout.h which then included
root.h. With layout.h gone, root.h has to be included by those commands.
2018-08-26 12:05:16 +10:00
Ian Fan
c1af79532f commands: add nop 2018-08-18 15:50:26 +01:00
emersion
700941dde8 Listen to server-decoration mode changes 2018-08-06 15:20:30 +01:00
Ryan Dwyer
04489ff420 Separate root-related code
This creates a root.c and moves bits and pieces from elsewhere into it.

* layout_init has been renamed to root_create and moved into root.c
* root_destroy has been created and is called on shutdown
* scratchpad code has been moved into root.c, because hidden scratchpad
containers are stored in the root struct
2018-08-04 14:01:20 +10:00
Brian Ashworth
a7f7d4a488 Write to swaynag pipe fd directly on config errors 2018-08-03 10:37:35 -04:00
Michel Ganguin
d6095588a1 Link xcb dependency to meson options "enable_xwayland" (#2393)
* Link xcb dependency to meson options "enable_xwayland"

* Link xcb dependency to meson options "enable_xwayland"
2018-08-02 08:36:47 +01:00
ProgAndy
c7a3a03115 Add xkb_numlock/xkb_capslock commands (#2311) 2018-07-25 17:24:45 +02:00
Pascal Pascher
2bf893248a style fixes, exclude sway/desctop/xwayland.c when enable_xwayland: false 2018-07-24 23:37:41 +02:00
Ryan Dwyer
81e8f31cc6 Implement scratchpad
Implements the following commands:

* move scratchpad
* scratchpad show
* [criteria] scratchpad show

Also fixes these:

* Fix memory leak when executing command with criteria
(use `list_free(views)` instead of `free(views)`)
* Fix crash when running `move to` with no further arguments
2018-07-23 08:24:32 +10:00
Ryan Dwyer
9fbe13b9be Implement floating_modifier and mouse operations for floating views
This implements the following:

* `floating_modifier` configuration directive
* Drag a floating window by its title bar
* Hold mod + drag a floating window from anywhere
* Resize a floating view by dragging the border
* Resize a floating view by holding mod and right clicking anywhere on
the view
* Resize a floating view and keep aspect ratio by holding shift while
resizing using either method
* Mouse cursor turns into resize when hovering floating border or corner
2018-07-22 23:10:19 +10:00
Ryan Dwyer
c2ed3d8bd6 Implement force_display_urgency_hint
The directive sets the timeout before an urgent view becomes normal
again after switching to it from another workspace.

Also:

* When an xwayland surface removes the urgent hint while the timer is
active, we now ignore the request. This happens as soon as the view
receives focus, so it was effectively making the timer pointless.
* The timeout is now only applied when switching to it from another
workspace.
2018-07-21 10:28:07 +10:00
Ryan Dwyer
75c699db62 Implement default_floating_border command and adjust CSD behaviour 2018-07-17 10:14:33 +10:00
Drew DeVault
d6bd314dff
Merge pull request #2276 from RyanDwyer/urgency
Implement urgency base functionality
2018-07-16 15:39:08 -07:00
Ryan Dwyer
fc2484095a Implement no_focus command 2018-07-16 22:18:12 +10:00
Ryan Dwyer
315d5311b2 Implement urgency base functionality
Introduces a command to manually set urgency, as well as rendering of
urgent views, sending the IPC event, removing urgency after focused for
one second, and matching urgent views via criteria.
2018-07-16 08:19:25 +10:00
Brian Ashworth
13c6627ddb Implement tap_button_map for input devices 2018-07-14 01:01:47 -04:00
Robert Kubosz
41b80c28df
add scroll button option
This commit introduces a scroll_button option, which is intended to be
used with scroll_method. Now user can edit his sway config and add an
scroll_button option to device section.
2018-07-11 22:03:06 +02:00
Ryan Dwyer
f2d1cf3ceb Implement floating_minimum_size and floating_maximum_size 2018-07-11 22:16:48 +10:00
emersion
f9625d1d56
Split renderer 2018-07-07 10:30:52 +01:00
Dominique Martinet
e4bfb3bc98 Add idle inhibit unstable v1 support 2018-07-02 09:29:16 +09:00
Ryan Dwyer
a2fbb20a61 Merge remote-tracking branch 'upstream/master' into atomic 2018-06-29 20:04:24 +10:00
emersion
cda66e9a26
Automatically float xwayland windows 2018-06-18 22:52:10 +01:00
Ryan Dwyer
9e96cfd310 Merge remote-tracking branch 'upstream/master' into atomic 2018-06-11 11:03:43 +10:00
Nate Symer
6a910b9ba5 Implement gaps (PR #2047) 2018-06-09 09:34:56 -04:00
Ryan Dwyer
59c9488701 WIP: Atomic layout updates ground work 2018-06-09 10:08:43 +10:00
Brian Ashworth
5ea4a4d3ee Refactor cmd_output to use config_subcommand 2018-06-03 10:26:06 -04:00
Ryan Dwyer
1f2e399ade Implement floating 2018-06-01 23:14:58 +10:00
Drew DeVault
f3ab895916 Implement floating enable 2018-06-01 23:14:58 +10:00
Brian Ashworth
d76729af22 Implement config parser for workspace_layout 2018-05-28 22:55:06 -04:00
Brian Ashworth
c81d0ef1e8 Support i3's legacy force_focus_wrapping command 2018-05-28 11:09:46 -04:00
Brian Ashworth
46da1dc32b Implement focus_wrapping 2018-05-27 23:20:21 -04:00
Brian Ashworth
569f4e0e4c Implement swap command 2018-05-26 11:05:02 -04:00
Ryan Dwyer
0e2cc0af30 Implement show_marks 2018-05-17 08:29:14 +10:00
Ryan Dwyer
22d38600d0 Implement marks 2018-05-15 11:18:27 +10:00
emersion
95a10dd4f3
Kill wl_shell 2018-05-14 13:26:10 +01:00
emersion
88d9d43b36
Add xdg-shell stable support 2018-05-13 16:38:56 +01:00
Brian Ashworth
3db7fc2bb2 Implement hide_edge_borders 2018-05-11 18:44:56 -04:00
Ryan Dwyer
228c478e8d Implement title_format
This implements the title_format command, with a new placeholder %shell
which gets substituted with the view type (xwayland, xdg_shell_v6 or
wl_shell).

Example config:

    for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell)
2018-05-05 22:29:37 +10:00
Ryan Dwyer
b667298a0a Render titles 2018-05-03 15:12:00 +10:00
Ryan Dwyer
e67f354333 Implement borders
Implements rendering of borders. Title text is still to do.

Implements the following configuration directives:

* client.focused
* client.focused_inactive
* client.unfocused
* client.urgent
* border
* default_border
2018-04-30 21:24:13 +10:00
Ryan Dwyer
167c2e1aa9 Refactor arrange_windows()
Replaces arrange_windows() with arrange_root(), arrange_output(),
arrange_workspace() and arrange_children_of().

Also makes fullscreen views save and restore their dimensions, which
allows it to preserve any custom resize and is also a requirement for
floating views once they are implemented.
2018-04-28 11:26:14 +10:00
emersion
ff61df17ff
Add map_from_region command 2018-04-26 10:53:47 +01:00
Ryan Dwyer
72767e1cc3 Implement criteria commands
Implements the following commands:

* for_window [...] <cmdlist>
* assign [...] <workspace>
2018-04-24 20:08:32 +10:00
Ryan Dwyer
d956286b92 Implement rename workspace command
This implements the following commands:

* rename workspace to new_name
* rename workspace old_name to new_name
* rename workspace number n to new_name
2018-04-23 18:54:45 +10:00
Drew DeVault
21eb63cc9e
Merge branch 'master' into fullscreen 2018-04-19 08:56:03 -04:00
Ryan Dwyer
9d3739a6f7 Split repeat commands into separate files. 2018-04-19 13:47:29 +10:00
Ryan Dwyer
5b30391383 Make key repeat configurable
This creates two input commands for configuring the repeat delay and rate.

Example config:

    input "myidentifier" {
        repeat_delay 250
        repeat_rate 25
    }
2018-04-18 23:19:23 +10:00
Ryan Dwyer
52420cc24d Implement fullscreen. 2018-04-16 20:36:40 +10:00
Danny Bautista
1edb2bd892 Implement cursor event simulation with sway commands. 2018-04-10 12:40:50 -04:00
Drew DeVault
0e3ddf255e Add input "identifier" map_to_output "identifier" 2018-04-08 15:09:12 -04:00
db
042b80b9fa Add workspace_auto_back_and_forth command
This is the only missing piece - other code regarding this functionality has
already been ported from pre-wlroots source.
2018-04-08 16:44:59 +02:00
Drew DeVault
603e0e42c5 Add debug tree view 2018-04-06 11:49:27 -04:00
emersion
1c91d0c10f
Add damage tracking for xwayland unmanaged surfaces 2018-04-05 17:39:17 -04:00
Drew DeVault
f77986338f Implement resize command 2018-04-05 00:03:20 -04:00
Tony Crisci
fc9398a42e Implement opacity command 2018-04-04 21:57:05 -04:00
Tony Crisci
fa004dd0d7 move output create to its own file 2018-04-03 20:00:09 -04:00
Tony Crisci
cba258e16a move output code out of the tree 2018-04-03 12:40:11 -04:00
Tony Crisci
2187684bd0 Merge branch 'wlroots' into split-containers 2018-04-02 14:06:04 -04:00
Drew DeVault
b2d871cfe2 Partially implement move command
Works:

- move [container|window] to workspace <name>
    - Note, this should be able to move C_CONTAINER but this is untested
- move [workspace] to output [left|right|up|down|<name>]

Not implemented yet:

- move [left|right|up|down]
- move scratchpad
- move position
2018-04-02 11:12:18 -04:00
Tony Crisci
7706d83160 basic split containers 2018-03-31 15:37:16 -04:00
Drew DeVault
9b38ef950f Implement focus_follows_mouse
Also contains two other small changes:

- Clicking any button will focus the container clicked (not just left)
- Remove seamless_mouse (doesn't make sense on wlroots)
2018-03-31 13:05:45 -04:00
Drew DeVault
ae6d459000 Implement mouse warping 2018-03-31 13:05:45 -04:00
Drew DeVault
49379dd0fc Fix workspace deletion edge cases 2018-03-30 13:49:34 -04:00
Drew DeVault
69eb021767 Add default_orientation command 2018-03-30 10:43:55 -04:00
Drew DeVault
8efee109ad Implement modes 2018-03-29 22:11:08 -04:00
Drew DeVault
5c9cdbcdd2 Add swaybg_command 2018-03-29 22:11:08 -04:00
Drew DeVault
569b2bfd5d Move bar config into its own file 2018-03-29 22:11:08 -04:00
Drew DeVault
bf7a4cd0eb Add bar configuration commands 2018-03-29 22:11:08 -04:00
Drew DeVault
0c8a64942e Add initial layer shell skeleton 2018-03-28 15:47:22 -04:00
Tony Crisci
66d1e0b313 basic layout command 2018-02-22 18:37:14 -05:00
Tony Crisci
52670c636c basic focus (without direction) 2018-02-14 16:47:23 -05:00
Drew DeVault
b28602aa74 Implement workspaces 2018-01-30 23:09:21 -05:00
Dominique Martinet
869be4378d commands: add 'reload' command 2018-01-22 07:25:23 +01:00
Tony Crisci
0e3eae4baa view interface 2018-01-21 09:09:53 -05:00
Tony Crisci
6a1d71b8b8 basic command criteria 2018-01-20 16:21:45 -05:00
Tony Crisci
c353e01c85 add kill command 2018-01-20 14:10:11 -05:00
Dominique Martinet
c83900593d config: add 'set' command 2018-01-05 15:36:20 +01:00
Tony Crisci
ba69f06695 binding config 2017-12-27 12:31:06 -05:00
Tony Crisci
88bcd43ebf seat fallback config 2017-12-17 10:39:22 -05:00
Tony Crisci
f4a5a0ead4 put seat and input config in their own files 2017-12-16 11:25:59 -05:00
Tony Crisci
9fa70ce426 Merge branch 'wlroots' into feature/input 2017-12-16 07:33:23 -05:00
Tony Crisci
9eecbb5d8a xkb config 2017-12-15 05:22:51 -05:00
Tony Crisci
92fef27eaa basic configuration 2017-12-14 11:11:56 -05:00
Tony Crisci
c173d30b92 seat configuration 2017-12-12 10:55:20 -05:00
Tony Crisci
462a451328 input config 2017-12-11 07:55:01 -05:00
Tony Crisci
609f63934a basic keyboard 2017-12-10 15:01:09 -05:00
Tony Crisci
0fdecb4d3a Merge branch 'wlroots' into feature/input 2017-12-10 10:25:56 -05:00
Tony Crisci
ec7fc42a00 sway cursor 2017-12-08 08:04:03 -05:00
Tony Crisci
f6f63f60d6 basic input manager and seat 2017-12-07 09:58:32 -05:00
Tony Crisci
21ce20885a rename input to input-manager 2017-12-07 07:35:10 -05:00
emersion
c25ad5e7c4
Merge branch 'wlroots' into output-config 2017-12-06 19:11:46 +01:00
Tony Crisci
338a0399f8 input skeleton 2017-12-06 08:28:46 -05:00
emersion
aaae59026f
Add output config 2017-12-06 12:36:06 +01:00
emersion
9aeda82477
Add include command 2017-12-05 18:47:57 +01:00
emersion
90f7f1a0e6
Add minimal config subsystem 2017-12-05 10:40:55 +01:00
emersion
514c819ff9
Add exec and exec_always commands 2017-12-04 22:43:49 +01:00
Tony Crisci
0896b68675 Merge branch 'wlroots' into feature/xwayland 2017-12-04 07:32:25 -05:00
Tony Crisci
1870f116ba xwayland shell 2017-12-04 07:28:47 -05:00
Tony Crisci
8239067da4 basic wl-shell 2017-12-03 14:21:26 -05:00
Tony Crisci
2f3633433e add meson install files 2017-11-30 08:31:13 -05:00