Commit graph

154 commits

Author SHA1 Message Date
Mikkel Oscar Lyderik 5a13cb0ed1 Implement borders
The borders are implemented as a surface/buffer attached to each view
which is sent to and rendered by wlc in the view_pre_render callback.

All the drawing logic is handled in sway/border.c and all the logic for
calculating the geometry of the border/view is handled in
`update_geometry` in sway/layout.c (same place as gaps are calculated).
2016-03-30 00:47:58 +02:00
Drew DeVault b903f7f655 Implement some more on borders
Note that this segfaults ALL THE TIME in wlc code. Paging @Cloudef for
help, I'm at a loss.
2016-03-30 00:47:58 +02:00
Mikkel Oscar Lyderik 2935e24cf5 Implement 'smart_gaps' feature from i3-gaps 2016-03-20 12:29:47 +01:00
Mikkel Oscar Lyderik 8ddafeeaae Fix assigning workspaces to outputs
It's possible to assign workspaces to certain outputs using the command:

    workspace <name> output <output>

However, this did not work in some cases where the workspace was
assigned before the given output was made available to sway.

This patch fixes those cases.
2016-03-04 16:44:49 +01:00
Mikkel Oscar Lyderik bad4e22f3b Make sway spawn only one bar per bar config 2016-02-27 22:12:35 +01:00
Mikkel Oscar Lyderik ee32bc3aef Send workspace ICP event on ws destroy/empty.
There is no 'destroy' change type in the i3 IPC so this uses `empty` to
notify about empty workspaces (which will be destroyed from sway right
after).
2016-02-25 12:59:22 +01:00
Mikkel Oscar Lyderik 016a77424a Prefer named output config over wildcard config.
This makes sure that a named output config is applied before the
general wildcard config when a new output is created. This ensures that
the config:

    output * ...
    output NAME ...

behaves the same way as:

    output NAME ...
    output * ...
2016-02-12 13:45:47 +01:00
Mikkel Oscar Lyderik fa0526f3df Fix rendering of view when moving to new workspace
This is a possible fix for #384.

To be honest I don't fully understand why this bug is happening, but I
have narrowed it down to the view stack in wlc and how sway orders views
in very specific situations (those described in #384).

Anyway this should fix the problem by eliminating the call to
`wlc_view_bring_to_front` which isn't really needed anyway since sending
all invisible views to the back is the same as bringing all visible
views to the front (rotating the view stack).
2016-01-21 22:28:26 +01:00
Mikkel Oscar Lyderik 364e37a1eb Fix whitespace issues. 2016-01-05 23:42:40 +01:00
Mikkel Oscar Lyderik 16b8c2e915 Handle SIGTERM sent to sway
This makes sway handle and gracefully shut down everything when
receiving a SIGTERM.

Fix #416
2015-12-29 13:03:53 +01:00
S. Christoffer Eliesen ce54b4ff2e container: Fix inner gaps against screen edge. 2015-12-20 21:23:20 +01:00
Mikkel Oscar Lyderik 90ff36cab8 Terminate children when freeing output container 2015-12-18 18:27:54 +01:00
Mikkel Oscar Lyderik ede27eabc5 Reload swaybar/swaybg on config reload.
This works by tracking the pids of the child processes in the related
output container and terminating the processes and spawning new ones on
a config reload.

Should solve: #347
2015-12-18 18:27:44 +01:00
progandy 76c520a04b sway: insert numbered workspaces in order
fixes #308

Ordered by number ascending, with insert before same numbers.
Workspaces without numbers are appended at the end of the list.

Example order:
1 2:named 3:the_second 3:the_first 9 FIRST_NAME SECOND_NAME ...
2015-12-18 01:22:07 +01:00
Drew DeVault f6da4dda4b Bring unmanaged windows to front on output arrange
Fixes #312
2015-12-16 19:20:34 -05:00
Kevin Hamacher d77d03ce84 Make destroy_workspace behave as expected 2015-12-13 18:19:24 +01:00
Christoph Gysin bf5244b49c Fix using last output config if none matched 2015-12-02 23:05:04 +02:00
Drew DeVault 1661edee28 Allow output config for output named *
Which will match any output.
2015-11-28 10:18:37 -05:00
S. Christoffer Eliesen 2d0f78c0d6 workspace: Learn sticky.
A floating window that's sticky will move to the new active workspace
whenever the workspace on the same output changes.
2015-11-27 17:58:10 +01:00
S. Christoffer Eliesen 4367e6d3e3 container: Store app_id attribute for views. 2015-11-24 16:00:41 +01:00
S. Christoffer Eliesen 47c313fe3e container: Store class attribute for views. 2015-11-24 16:00:41 +01:00
Drew DeVault 95442dac8d We wlc_point now
cc @Cloudef
2015-11-14 11:30:29 -05:00
S. Christoffer Eliesen 5ba47d4a44 input_state: Remove mouse_origin (x&y). Query wlc instead. 2015-10-29 18:02:02 +01:00
S. Christoffer Eliesen 865b30f138 container: Move container_under_pointer here from handlers. 2015-10-29 16:37:19 +01:00
S. Christoffer Eliesen ca862a5bd4 config: Apply output config also during config reload. 2015-10-21 23:24:06 +02:00
S. Christoffer Eliesen 6eb8da0e14 commands,container: Tweak debug output to better reflect reality. 2015-10-21 22:22:01 +02:00
taiyu 0d51f62224 merge + no c_extensions 2015-09-18 07:23:04 -07:00
taiyu d2e2b04bfd minor fix 2015-09-18 06:52:04 -07:00
Drew DeVault 318e1be240 Fix warnings introduced by prior commit 2015-09-18 07:27:35 -04:00
Drew DeVault e505abfe75 Revert "new_workspace null behavior + testmap functions + regex"
This reverts commit e1d18e42a8.

Fixes #180

cc @taiyu-len
2015-09-13 19:46:16 -04:00
taiyu e1d18e42a8 new_workspace null behavior + testmap functions + regex 2015-09-12 02:38:03 -07:00
taiyu f25c6b312b gap resize 2015-09-05 20:48:52 -07:00
taiyu dbeca88dee default gap value 2015-09-04 16:14:59 -07:00
taiyu 09c9ee76c3 properly remove children in loops 2015-08-31 08:49:24 -07:00
taiyu 4757ea6a12 forgot visibility of floating containers 2015-08-27 23:42:26 -07:00
taiyu 5678d824e4 update visibility + container info functions 2015-08-27 23:18:28 -07:00
taiyu dfe0dda8d0 proper visibility update 2015-08-27 20:55:48 -07:00
taiyu da79bd65de use previous outputs 2015-08-27 20:32:56 -07:00
Luminarys acb3fbdfb5 Added in default_orientation handling 2015-08-27 21:52:59 -05:00
taiyu 0a74364656 update visibility for moved workspaces 2015-08-27 08:32:06 -07:00
taiyu d115335951 move workspace from dead output to other output 2015-08-26 21:25:57 -07:00
taiyu 4df64127e9 slight fix 2015-08-26 16:50:47 -07:00
minus 6bbfd65735 fixed container_map
applies to the passed in container now as well.
fixes workspaces staying always marked visible.
also set workspaces to not visible by default; happens when you move a
container to a new workspace that thus is not visible
2015-08-27 00:44:47 +02:00
taiyu 357af228d6 some function documentation, fixed gaps on config reload 2015-08-26 13:35:22 -07:00
taiyu 1fa7a91bfb move_container_to fixup 2015-08-26 11:01:26 -07:00
taiyu 225c2fbe5b fixed segfault on exit + a little fixup of that floatfocus pr 2015-08-25 13:29:33 -07:00
minus 9535305137 fixed moving to other output and visibility 2015-08-25 20:43:37 +02:00
minus ca89ba83a8 changed view visibility to be bool
view_visibility enum remains with one constant that is the mask to wlc's view masking
2015-08-25 20:13:35 +02:00
minus f22c937953 refactored view visibility
- replace visibilty mask integers with an enum
- set output's visibilty mask on creation
- added update_visibility to manually update a containers visibility (e.g. when it moved to an invisible workspace)
2015-08-25 18:24:15 +02:00
taiyu dbad30a409 add limit to swayc_in_direction 2015-08-24 01:11:21 -07:00
Luminarys e01cf0b566 Added in glitchy disabling 2015-08-23 12:23:01 -05:00
Luminarys 98fad060e2 Added in glitchy disabling 2015-08-23 12:23:01 -05:00
taiyu 36cd180f02 fixed vanishing floating view 2015-08-22 18:25:05 -07:00
Drew DeVault 07229edfe6 Implement output positioning
🎉
2015-08-22 15:19:02 -04:00
Drew DeVault eac0920f49 Set x/y positions for output containers 2015-08-22 14:44:47 -04:00
Drew DeVault 232940f813 Whoops
Regards to @Cloudef
2015-08-22 14:03:51 -04:00
Drew DeVault b7f4607544 Implement output configuration through config
Do not use `output res WIDTHxHEIGHT` yet, wlc has issues with it (cc
@Cloudef)
2015-08-22 11:18:55 -04:00
taiyu b05317c3a6 style 2015-08-21 12:41:54 -07:00
taiyu de5196dc1e comments + fixed leak 2015-08-21 12:19:29 -07:00
taiyu 1a1ac64662 bugfixes, renames 2015-08-21 10:28:37 -07:00
taiyu 36e07e9ebc find_parent_by_type 2015-08-20 09:52:54 -07:00
taiyu 927ef0a5ec Merge branch 'master' of https://github.com/SirCmpwn/sway
merging
2015-08-20 05:08:04 -07:00
Drew DeVault 95f5660897 Merge pull request #97 from taiyu-len/master
setup for resizable windows, drop weight
2015-08-20 08:07:16 -04:00
taiyu f5fde7c45c style 2015-08-20 05:06:22 -07:00
taiyu f6e002fb8b small fix, default width/height 0 2015-08-20 04:57:01 -07:00
taiyu fbaa9111a8 setup for resizable windows, drop weight 2015-08-20 04:47:36 -07:00
KoffeinFlummi 3c124d9e7d Change gap behaviour to more closely match i3-gaps
Previously, when only using inner gaps, the gap between a window at the
edge of the output was only half the size of the gaps between views.

Additionally, the gaps between the actual windows was twice as wide as
it was on i3-gaps.
2015-08-20 08:47:51 +02:00
Drew DeVault 74c9df0c07 Fix error with workspace/output name matching 2015-08-19 19:29:55 -04:00
taiyu 6f424ff6b8 fixed default active_workspace, and more use of set_focused_container_for(...) 2015-08-19 16:15:17 -07:00
taiyu c5a6982893 fixed some more bugs, moved layout_log into log.ch, restored focus_parent 2015-08-19 01:06:15 -07:00
taiyu 1bf02144e5 fixed floating_modifier related things 2015-08-18 23:52:42 -07:00
Luminarys f718556a85 Removed debugging, added in proper gap resets for config reloads 2015-08-18 21:05:58 -05:00
Drew DeVault cf916bbf6f Improvements to gaps 2015-08-18 18:44:50 -04:00
KoffeinFlummi c75d5ceba4 Merge remote-tracking branch 'upstream/master' into gaps 2015-08-19 00:05:18 +02:00
KoffeinFlummi 4c688cba4e Add support for gaps option 2015-08-18 23:53:57 +02:00
taiyu 03e83c7ef9 restored fullscreen/focus behavior 2015-08-18 11:22:52 -07:00
Drew DeVault a64b10df83 Fix switching between focused outputs 2015-08-18 08:30:21 -04:00
Drew DeVault 2139001c9f Coding style enforcement
This was done by hand, so I might have missed things. If anyone knows of
a good C style enforcement tool, let me know.
2015-08-18 07:20:34 -04:00
taiyu 63bc0d3b54 more changes 2015-08-18 02:46:14 -07:00
taiyu 11321ca2dd changed handling of focus, handling of view by type 2015-08-18 00:28:44 -07:00
Drew DeVault 780893a933 Add support for workspace [name] output [name] 2015-08-17 20:34:53 -04:00
taiyu f832c02065 fixed when views dont have names. 2015-08-17 10:02:09 -07:00
Luminarys c9ce8bf1bd Style and other minor fixes 2015-08-17 10:34:39 -05:00
Luminarys 47ec999e71 Fixes to floating and umanaged views 2015-08-17 10:18:06 -05:00
Luminarys 05f969074e Added in basic floating toggling 2015-08-17 00:38:34 -05:00
Drew DeVault be2635daa6 Fix format warnings 2015-08-16 22:16:09 -04:00
taiyu f1d5305dc6 fix 2015-08-16 19:06:31 -07:00
taiyu 498cf268f7 unmanaged views handled better 2015-08-16 18:24:46 -07:00
taiyu 5b860c67c3 fixed split [vh], small memory leak, unescape_strings handle \xnn 2015-08-16 13:38:54 -07:00
Drew DeVault 4a5828370c Log output name when added to tree 2015-08-16 14:51:53 -04:00
Drew DeVault e64e61779e Set C_OUTPUT name to name from wlc 2015-08-16 13:07:43 -04:00
Drew DeVault ae536c21d3 Revert "get/set_userdata stores swayc_t *, fixed memory leak, minor changes." 2015-08-16 08:10:56 -04:00
taiyu eefc76b39e set userdata for handler to swayc_t container 2015-08-16 00:46:58 -07:00
taiyu 083d1eed1f fixed 2 small memory leaks & adds format attribute to log. 2015-08-15 21:21:20 -07:00
Drew DeVault f606508bcc Fix switching focus between outputs 2015-08-15 16:03:45 -04:00
Drew DeVault 8b90f283bc Merge pull request #31 from Luminarys/master
Multi output fixes
2015-08-15 15:13:24 -04:00
Luminarys b97d8756a8 Minor style fix 2015-08-15 14:12:42 -05:00
Luminarys 9ba914747e Removed alignment 2015-08-15 14:10:44 -05:00
Luminarys 9b0196e7ed Style fixes 2015-08-15 14:02:03 -05:00
Luminarys 618b3df051 Fixed workspace switching in multimonitor layouts 2015-08-15 13:55:06 -05:00