aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-02-27Add sway-ipc.7.scd to document IPC protocolBrian Ashworth8-4/+1588
This add `sway-ipc.7.scd` that documents the IPC protocol. This also increased the minimum scdoc version from 1.8.1 to 1.9.0 to allow for table cells to be continued on the following line
2019-02-27config: remove double assignement to result in get_output_configRouven Czerwinski1-1/+1
2019-02-27cursor: intitialize sx and sy to zeroRouven Czerwinski1-2/+2
If node_at_coords does an early return without setting these values, they can be used uninitialized later. Initialize both to zero.
2019-02-27cursor: remove unused node assignementRouven Czerwinski1-1/+1
The node variable is not used before its reassigned later in the function, remove the assignement.
2019-02-26execute_command: do not strip qoutes for cmd_modeBrian Ashworth1-1/+2
`cmd_mode` performs its own quote stripping for the mode string to avoid double stripping quotes for `cmd_bindcode` and `cmd_bindsym` in `config_command` and `execute_command`. Stripping quotes in `execute_command` for `cmd_mode` will also result in double stripping, which will cause issues for any mode string with spaces, such as pango markup.
2019-02-25fix smart_borders description in manualCarlo Abelli1-3/+3
The wording for smart_borders was opposite the actual behavior.
2019-02-25Allow 0 degree transform (normal transform).Connor E1-1/+2
2019-02-24swaybar: add overlay mode (fix #1620)Milkey Mouse4-4/+21
Overlay mode puts the bar above normal windows and passes through/ignores any touch/mouse/keyboard events that would be sent to it.
2019-02-24add --i3 flag to hide_edge_bordersdb6-12/+33
Enables i3-compatible behavior regarding hiding the title bar on tabbed and stacked containers with one child. Related issues and merge requests: #3031, #3002, #2912, #2987.
2019-02-24Make load_include_configs void. Fix some cases where WD would not be restored.Connor E3-29/+17
2019-02-23Fix crash exiting fullscreened floating containerminus1-7/+0
container_floating_move_to_center and container_fullscreen_disable were calling recursively when the container spawned as a fullscreen floating container (via for_window). Such a window now doesn't crash sway anymore but is still configured with a wrong, zero size, making it not directly usable.
2019-02-23ipc: add missing fields to disabled outputsCaleb Bassi1-0/+10
i3 requires all outputs to have certain fields, including 'primary', 'current_workspace', and 'rect' which were missing on disabled outputs. https://i3wm.org/docs/ipc.html#_outputs_reply
2019-02-23swaybar: cycle workspaces on touch dragDrew DeVault1-37/+56
2019-02-23swaybar: process hotspots on touch tapDrew DeVault3-15/+138
2019-02-23Merge pull request #3700 from emersion/refactor-dndDrew DeVault3-19/+60
Update for swaywm/wlroots#1517
2019-02-23Update for swaywm/wlroots#1517emersion3-19/+60
2019-02-23handle_seat_node_destroy: update seat->workspaceBrian Ashworth1-0/+13
If an unmanaged or layer surface is focused when an output gets disabled and an empty workspace on the output was focused by the seat, the seat needs to refocus it's focus inactive to update the value of `seat->workspace`.
2019-02-23fish: improve completions a little bitTim Sampson3-22/+25
2019-02-23handle_layer_shell_surface: do not use noop outputBrian Ashworth1-1/+1
If the noop output is focused (all other outputs disabled/disconnected), do not auto assign a layer surface to it. The noop output is not enabled and does not have the `output->layers` list initialized. It also does not make sense to map the layer surfaces to something that is not visible.
2019-02-23view: set xdg_decoration->view to NULL, check decoration destroyRouven Czerwinski2-1/+7
Fixes heap-use-after-free: ==32046==ERROR: AddressSanitizer: heap-use-after-free on address 0x615000064d20 at pc 0x55571ce4d303 bp 0x7fff545c64c0 sp 0x7fff545c64b0 WRITE of size 8 at 0x615000064d20 thread T0 #0 0x55571ce4d302 in xdg_decoration_handle_destroy ../sway/xdg_decoration.c:13 #1 0x7f64009d6f36 in wlr_signal_emit_safe ../util/signal.c:29 #2 0x7f64009d3c46 in toplevel_decoration_handle_resource_destroy ../types/wlr_xdg_decoration_v1.c:65 #3 0x7f6400a19f8d (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x7f8d) #4 0x7f6400a19fed in wl_resource_destroy (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x7fed) #5 0x7f64009d3d1f in toplevel_decoration_handle_surface_destroy ../types/wlr_xdg_decoration_v1.c:82 #6 0x7f64009d6f36 in wlr_signal_emit_safe ../util/signal.c:29 #7 0x7f64009b059c in reset_xdg_surface ../types/xdg_shell/wlr_xdg_surface.c:453 #8 0x7f64009b0688 in destroy_xdg_surface ../types/xdg_shell/wlr_xdg_surface.c:483 #9 0x7f64009af08c in xdg_client_handle_resource_destroy ../types/xdg_shell/wlr_xdg_shell.c:71 #10 0x7f6400a19f8d (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x7f8d) #11 0x7f6400a1e211 (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0xc211) #12 0x7f6400a1e6fe (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0xc6fe) #13 0x7f6400a1a0ec in wl_client_destroy (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x80ec) #14 0x7f6400a1a1c4 (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x81c4) #15 0x7f6400a1b941 in wl_event_loop_dispatch (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x9941) #16 0x7f6400a1a569 in wl_display_run (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x8569) #17 0x55571ce4c7fd in server_run ../sway/server.c:214 #18 0x55571ce4ad59 in main ../sway/main.c:405 #19 0x7f640071109a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #20 0x55571ce2cfa9 in _start (/usr/local/bin/sway+0x35fa9) 0x615000064d20 is located 32 bytes inside of 504-byte region [0x615000064d00,0x615000064ef8) freed by thread T0 here: #0 0x7f6401531b70 in free (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedb70) #1 0x55571ce6c72b in destroy ../sway/desktop/xdg_shell.c:252 #2 0x55571cee3f7b in view_destroy ../sway/tree/view.c:60 #3 0x55571cee4090 in view_begin_destroy ../sway/tree/view.c:73 #4 0x55571ce6dd95 in handle_destroy ../sway/desktop/xdg_shell.c:464 #5 0x7f64009d6f36 in wlr_signal_emit_safe ../util/signal.c:29 #6 0x7f64009b059c in reset_xdg_surface ../types/xdg_shell/wlr_xdg_surface.c:453 #7 0x7f64009b0688 in destroy_xdg_surface ../types/xdg_shell/wlr_xdg_surface.c:483 #8 0x7f64009af08c in xdg_client_handle_resource_destroy ../types/xdg_shell/wlr_xdg_shell.c:71 #9 0x7f6400a19f8d (/usr/lib/x86_64-linux-gnu/libwayland-server.so.0+0x7f8d) previously allocated by thread T0 here: #0 0x7f6401532138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138) #1 0x55571ce6df39 in handle_xdg_shell_surface ../sway/desktop/xdg_shell.c:485 #2 0x7f64009d6f36 in wlr_signal_emit_safe ../util/signal.c:29 #3 0x7f64009b0167 in handle_xdg_surface_commit ../types/xdg_shell/wlr_xdg_surface.c:350 #4 0x7f64009ce2a5 in surface_commit_pending ../types/wlr_surface.c:372 #5 0x7f64009ce523 in surface_commit ../types/wlr_surface.c:444 #6 0x7f63ff63ddad in ffi_call_unix64 (/usr/lib/x86_64-linux-gnu/libffi.so.6+0x5dad) Fixes #3759
2019-02-22input/cursor: allow whole-window bindings on wsBrian Ashworth2-11/+18
To match i3's behavior, this allows mouse bindings to be triggered over a workspace when `--whole-window` is given.
2019-02-22Merge pull request #3740 from Emantor/fix/ipc_allocsIan Fan1-0/+2
Fix small memory leaks reported in #3658
2019-02-22move scratchpad: hide visible scratchpad containerBrian Ashworth1-4/+4
This makes it so running `move [to] scratchpad` on a container already in the scratchpad does not return an error. To match i3's behavior, a visible scratchpad container will be hidden and a hidden scratchpad container will be treated as a noop.
2019-02-22commands/move: reintroduce wrongly removed NULL checkRouven Czerwinski1-1/+1
Commit d3d7956576341bbbfb60d045175b0e8a44752e0b removed this NULL check, which leads to the following backtrace: #0 0x0000557bd201df46 in node_is_view (node=0x0) at ../sway/sway/tree/node.c:41 #1 0x0000557bd1ff5d4e in seat_get_focus_inactive (seat=0x557bd3fc7580, node=0x0) at ../sway/sway/input/seat.c:968 current = 0x557bd2033485 #2 0x0000557bd2009f24 in cmd_move_container (argc=3, argv=0x557bd46b19c0) at ../sway/sway/commands/move.c:557 new_output_last_focus = 0x0 error = 0x0 node = 0x557bd469f360 workspace = 0x557bd4572ee0 container = 0x557bd469f360 no_auto_back_and_forth = false seat = 0x557bd3fc7580 old_parent = 0x0 old_ws = 0x557bd4572ee0 old_output = 0x557bd411f740 destination = 0x557bd46a0cc0 new_output = 0x557bd411f740 new_output_last_ws = 0x0 focus = 0x557bd469f360 __PRETTY_FUNCTION__ = "cmd_move_container" new_workspace = 0x557bd4572ee0 […] Reintroduce the NULL check to fix the bug. Fixes #3746
2019-02-21Handle NULL from output_get_active_workspaceBrian Ashworth10-3/+50
This modifies the places where output_get_active_workspace is called to handle a NULL result. Some places already handled it and did not need a change, some just have guard off code blocks, others return errors, and some have sway_asserts since the case should never happen. A lot of this is probably just safety precautions since they probably will never be called when `output_get_active_workspace` is not fully configured with a workspace.
2019-02-21Merge pull request #3743 from RedSoxFan/fix-output-get-active-workspaceDrew DeVault1-0/+3
output_get_active_workspace: check workspaces length
2019-02-21output_get_active_workspace: check workspaces lengthBrian Ashworth1-0/+3
If an output's node was dirty and the transaction was committed before a workspace was moved to or created for the output, the instruction would have a bad value for `state->active_workspace` due to a missing length check in `output_get_active_workspace`. If there was no focus on the output, the first workspace was being returned. If the workspace list was currently empty, the value was either garbage, or in the case of an output being disabled and re-enabled, a workspace that may have been previously freed. This just adds the length check to avoid returning out of bounds value.
2019-02-21run_as_ipc_client: free response after running the IPC commandRouven Czerwinski1-0/+1
Fixes memory leaks in the form of: Direct leak of 24 byte(s) in 1 object(s) allocated from: #0 0x7f5f7c2f4f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30) #1 0x563c799569f2 in ipc_recv_response ../common/ipc-client.c:94 #2 0x563c79957062 in ipc_single_command ../common/ipc-client.c:138 #3 0x563c798a56cc in run_as_ipc_client ../sway/main.c:127 #4 0x563c798a6a3a in main ../sway/main.c:349 #5 0x7f5f7b4d609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
2019-02-21ipc-client: free payload after sending it over the socketRouven Czerwinski1-0/+1
Fixes memory leaks in the form of: Direct leak of 20 byte(s) in 1 object(s) allocated from: #0 0x7f5f7c2f4f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30) #1 0x563c7995b36a in join_args ../common/stringop.c:268 #2 0x563c798a6a1a in main ../sway/main.c:348 #3 0x7f5f7b4d609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
2019-02-20output_evacuate: call workspace_consider_destroyBrian Ashworth1-0/+9
This calls `workspace_consider_destroy` on the workspace that was visible on an output that a workspace was just evacuated to. This prevents having hidden empty workspaces.
2019-02-20Merge pull request #3735 from emersion/primary-selection-v1Drew DeVault1-2/+4
Add wp-primary-selection-unstable-v1
2019-02-20Add wp-primary-selection-unstable-v1emersion1-2/+4
2019-02-19Merge pull request #3728 from ljedrz/polish_readmeDrew DeVault2-1/+73
Add Polish README
2019-02-19layout cmd: always operate on parent container, like i3Fixes #3724Eric Drechsel1-4/+2
2019-02-19Don't use SOCK_CLOEXECemersion1-9/+27
Manually set the CLOEXEC flag instead, since SOCK_CLOEXEC isn't POSIX.
2019-02-19ci: add FreeBSDemersion1-0/+53
2019-02-19Add Polish READMEljedrz2-1/+73
2019-02-19Merge pull request #3726 from emersion/alpine-ciDrew DeVault2-9/+47
ci: add Alpine build
2019-02-19ci: add Alpine CIemersion2-9/+47
2019-02-18Merge pull request #3714 from emersion/fix-drag-icon-map-listenerDrew DeVault1-0/+1
Fix drag icon map listener not removed
2019-02-18Merge pull request #3715 from yorickvP/ipc-visibleDrew DeVault1-0/+3
Feature: Add 'visible' key to view json response
2019-02-18Add 'visible' key to view json responseYorick van Pelt1-0/+3
2019-02-18Fix drag icon map listener not removedemersion1-0/+1
2019-02-18Merge pull request #3712 from RedSoxFan/fix-typo-seat-cursorDrew DeVault1-1/+1
seat_cmd_cursor: fix typo in expected syntax
2019-02-18Merge pull request #3713 from RedSoxFan/fix-mouse-bindingsDrew DeVault2-9/+24
Use container under cursor for mouse bindings
2019-02-17Use container under cursor for mouse bindingsBrian Ashworth2-9/+24
This matches i3's behavior of executing mouse bindings in regards to the container under the cursor instead of what is focused.
2019-02-17seat_cmd_cursor: fix typo in expected syntaxBrian Ashworth1-1/+1
This just fixes a typo in the expected syntax for seat_cmd_cursor
2019-02-17workspace_next_name: fallback to next available numberBrian Ashworth1-10/+7
This changes `workspace_next_name` to use the next available number as the workspace name instead of the number of outputs. This fixes the case where a number that is already in use could be returned. The workspace numbers in use have no relation to the number of outputs so it makes more sense to use the lowest available number
2019-02-17Add workspace {prev,next}_on_output --createDrew DeVault3-16/+32
This creates the next workspace if you hit the end.
2019-02-17Remove refs to unimplemented debuglog commandDrew DeVault2-5/+0
Closes #3695