aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Merge commit '104057a7ea34ad3fa4b202668bb6d66550483f0b' into HEADHEADmasterLibravatar Jenkins CI2 days
|\
| * Override outputs with the workspace commandpatch-for/masterLibravatar Kristóf Marussy2024-01-27
| |
* | desktop/output: Fix check if config should be storedLibravatar Kenny Levinsen3 days
| | | | | | | | | | | | | | | | | | We want to check if a config_head existed for the current matched_output_config, so we should check cfg->output. sway_output is a temporary variable from a previous wl_list_for_each, and does not contain anything useful to us. Fixes: https://github.com/swaywm/sway/issues/8128
* | server: Use wlr_renderer_get_texture_formatsLibravatar Kenny Levinsen5 days
| | | | | | | | | | | | | | wlr_renderer_get_{dmabuf|shm}_texture_formats have been replaced by a unified wlr_renderer_get_texture_formats interface using buffer caps. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4644
* | config/output: drop fast path in store_output_config()Libravatar Simon Ser14 days
| | | | | | | | | | | | | | | | If there is no output currently connected, we still want to merge to any existing config. It shouldn't matter to iterate over the list of outputs to do nothing anwyays.
* | config/output: fix NULL derefs in store_output_config()Libravatar Simon Ser14 days
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ../sway/config/output.c:33:21: runtime error: member access within null pointer of type 'struct sway_output' AddressSanitizer:DEADLYSIGNAL ================================================================= ==7856==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000080 (pc 0x63da8558205c bp 0x7ffdc35881a0 sp 0x7ffdc3588160 T0) ==7856==The signal is caused by a READ memory access. ==7856==Hint: address points to the zero page. #0 0x63da8558205c in output_get_identifier ../sway/config/output.c:33 #1 0x63da855865c3 in store_output_config ../sway/config/output.c:220 #2 0x63da855d4066 in cmd_output ../sway/commands/output.c:106 #3 0x63da8547f2e3 in config_command ../sway/commands.c:425 #4 0x63da8548f3fc in read_config ../sway/config.c:822 #5 0x63da8548a224 in load_config ../sway/config.c:435 #6 0x63da8548b065 in load_main_config ../sway/config.c:507 #7 0x63da854bee8d in main ../sway/main.c:351 #8 0x77e2ea643ccf (/usr/lib/libc.so.6+0x25ccf) (BuildId: c0caa0b7709d3369ee575fcd7d7d0b0fc48733af) #9 0x77e2ea643d89 in __libc_start_main (/usr/lib/libc.so.6+0x25d89) (BuildId: c0caa0b7709d3369ee575fcd7d7d0b0fc48733af) #10 0x63da8547ad64 in _start (/home/simon/src/sway/build/sway/sway+0x372d64) (BuildId: 3fa2e8838c1c32713b40aec6b1e84bbe4db5bde8) Fixes: 1267e47de913 ("config/output: Refactor handling of tiered configs")
* | config/output: Refactor handling of tiered configsLibravatar Kenny Levinsen14 days
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Output configuration can be applied to a particular output in three ways: As a wildcard, by connector name and by identifier. This in turn means that three different configurations must be handled at any given time. In the current model, this is managed by merging new configuration into every other matching configuration. At the same time, an additional synthetic configuration is made which matchehes both identifier and name at the same time, further complicating logic. Instead, manage and store each configuration independently and merge them in order when retrieving configuration for an output. When changes are made to a less specific configuration, clear these fields from more specific configurations to allow the change to take effect regardless of precedence. Fixes: https://github.com/swaywm/sway/issues/8048
* | input: add Super as alternative for Mod4Libravatar Ferdinand Bachmann2024-04-05
| | | | | | | | This PR implements alternative human-readable names for the logo key (Mod4) as proposed in #8084.
* | sway-ipc(7): Escape backslashes correctly in GET_CONFIG outputLibravatar Daniel Kahn Gillmor2024-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this change, i see the following in the sway-ipc manpage: ``` 9. GET_CONFIG MESSAGE Retrieve the contents of the config that was last loaded REPLY An object with a single string property containing the contents of the config Example Reply: { "config": "set $mod Mod4nbindsym $mod+q exitn" } ```
* | input: pass wlr_seat_client to wlr_seat_touch_notify_cancel()Libravatar Simon Ser2024-03-28
| | | | | | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4613
* | commands/output/toggle: Use free_output_configLibravatar Kenny Levinsen2024-03-28
| |
* | output/config: Remove unused test_output_configLibravatar Kenny Levinsen2024-03-28
| |
* | config/output: Make merge_output_config staticLibravatar Kenny Levinsen2024-03-28
| |
* | output/config: Remove reset_outputs and co.Libravatar Kenny Levinsen2024-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | apply_output_config_to_outputs uses the specified output config to check which outputs to apply to, and to use as backup when no config is found. If any config matches the output, the specified config will be disregarded. The only remaining user of apply_output_config_to_outputs is reset_outputs, which called apply_output_config_to_outputs with either the first stored wildcard config, or a new empty wildcard config. Providing a stored or empty wildcard config is practically the same as calling `apply_all_output_configs`. Replace uses of `reset_outputs` with `apply_all_output_configs` and remove the now unused functions.
* | config/output: Remove apply_output_configLibravatar Kenny Levinsen2024-03-28
| |
* | desktop/output: Use apply_output_configs for output mgmtLibravatar Kenny Levinsen2024-03-28
| |
* | Use apply_all_output_configs to light up outputsLibravatar Kenny Levinsen2024-03-28
| | | | | | | | | | This allows us to test and if necessary degrade the entire backend configuration to light everything up.
* | output/config: Add apply_all_output_configsLibravatar Kenny Levinsen2024-03-28
| | | | | | | | | | | | Apply all output configs as they are. This differs from apply_output_config_to_outputs, which tries to apply a specific output config.
* | config/output: Introduce apply_output_configsLibravatar Kenny Levinsen2024-03-28
| | | | | | | | | | | | | | Introduce apply_output_configs, which applies the specified matched output configs as a single backend commit. Reimplement apply_output_config_to_outputs using apply_output_configs.
* | config/output: Split apply_output_configLibravatar Kenny Levinsen2024-03-28
| | | | | | | | | | | | | | | | | | Applying an output config has two stages: Atomic application of wlr_output_state, and applicaiton of non-atomic state like output layout. Split the latter out into finalize_output_config for use in a later commit.
* | man: document supported modifier namesLibravatar Ferdinand Bachmann2024-03-28
| |
* | Implement transient seat managementLibravatar Andri Yngvason2024-03-18
| |
* | man: document that the scale might be adjustedLibravatar Simon Ser2024-03-14
| | | | | | | | | | | | fractional-scale only supports representing fractions of 120. References: https://github.com/swaywm/sway/issues/8057
* | man: drop fractional scale warningLibravatar Simon Ser2024-03-14
| | | | | | | | | | With the fractional-scale protocol, clients can render without being downscaled.
* | Re-create renderer when lostLibravatar Simon Ser2024-03-14
| |
* | server: fix wlr_seat use-after-free on exitLibravatar Simon Ser2024-03-14
| | | | | | | | | | | | | | | | | | | | Same as [1]. I originally tried to properly handle seat destruction, but that turned out to be a can of worms [2]. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4590 [2]: https://github.com/swaywm/sway/pull/8034
* | Force bilinear scaling when scaling downLibravatar Alexander Orzechowski2024-03-09
| |
* | config/output: drop enabling flagLibravatar Simon Ser2024-03-08
| | | | | | | | | | This was useful when wlroots backends were updating the current mode on their own. This is no longer the case.
* | xdg-shell: send WM capabilitiesLibravatar Simon Ser2024-03-08
| |
* | xdg-shell: implement popup repositioningLibravatar Simon Ser2024-03-08
| |
* | Fetch input device vendor/product from libinputLibravatar Simon Ser2024-03-07
| | | | | | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4582
* | config: add fallback without env vars for keysym translation XKB keymapLibravatar Simon Ser2024-03-06
| |
* | config: error out on keysym translation XKB state failureLibravatar Simon Ser2024-03-06
| | | | | | | | | | | | | | | | If we can't create the XKB keymap used for keysym translation, gracefully error out instead of crashing. This can happen if the XKB_DEFAULT_LAYOUT is set to an invalid value, for instance. Closes: https://github.com/swaywm/sway/issues/7789
* | commands/move: do not force focus on the moved containerLibravatar Ronan Pigott2024-03-01
| | | | | | | | | | | | | | | | | | | | My code archaeology isn't good enough to determine what this is here for, but it isn't correct. We should be able to move containers in a direction without focusing them. AFAICT i3 doesn't do this, so we shouldn't either. This fixes ipc commands like move <dir> with criteria that apply to containers which are not the current focus.
* | input: Rename WLR_INPUT_DEVICE_TABLET_TOOL to WLR_INPUT_DEVICE_TABLETLibravatar Luofan Chen2024-03-01
| | | | | | | | | | | | | | wlroots has changed the naming, causing the following build errors when building: error: ‘WLR_INPUT_DEVICE_TABLET_TOOL’ undeclared
* | ipc: add `scratchpad_state` property to GET_TREELibravatar llyyr2024-02-29
| | | | | | | | See previous commit. This restores ipc parity with i3.
* | ipc: add `floating` property to GET_TREELibravatar llyyr2024-02-29
| | | | | | | | | | | | i3 has had this property for over a decade but it wasn't documented until a couple of years ago, so it was likely missed when developing sway. Add the property to get us closer to ipc parity with i3.
* | Convert to new pointer enumsLibravatar Simon Ser2024-02-28
| | | | | | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4575
* | text_input: don't destroy scene_node twiceLibravatar llyyr2024-02-28
| |
* | Add release scriptLibravatar Simon Ser2024-02-26
| |
* | Define _POSIX_C_SOURCE globallyLibravatar Simon Ser2024-02-23
| | | | | | | | See discussion in https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4555
* | input/text_input: fix dangling listenersLibravatar Simon Ser2024-02-23
| |
* | input/text_input: parent wlr_box may be uninitializedLibravatar llyyr2024-02-20
| |
* | text_input: Implement input-method popupsLibravatar Access2024-02-20
| | | | | | Co-authored-by: tadeokondrak <me@tadeo.ca>
* | xdg-activation: distinguish activation and urgency requestsLibravatar Aleksei Bavshin2024-02-17
| | | | | | | | | | | | | | | | | | Check if the app that requested a token has provided a valid input serial and a focused surface. Downgrade activation request to urgency otherwise. This is mostly in line with what other Wayland compositors decided to do, and offers a better security than the original logic.
* | launcher: track the seat in the launcher ctxLibravatar Ronan Pigott2024-02-17
| | | | | | | | | | This is a more suitable place to track the requesting seat, since we are able to respond appropriately to destroy notifications.
* | Drop unnecessary includes from sway/server.hLibravatar Simon Ser2024-02-15
| |
* | Fix build with wlroots DRM backend disabledLibravatar Simon Ser2024-02-15
| | | | | | | | | | | | | | The header is not installed by wlroots when the DRM backend is disabled. We don't need it here, so don't include it. Closes: https://github.com/swaywm/sway/issues/7943
* | view: drop ext_foreign_destroyLibravatar Kirill Primak2024-02-12
| | | | | | | | It's not used and causes a crash when a view is destroyed.
* | layer_shell: Handle popups through popup descriptorLibravatar Alexander Orzechowski2024-02-12
| | | | | | | | | | | | | | | | We tried to synchronize layer shell popups with the parent layer shell on commits, but this is subtly wrong because we would only update the position for one layer shell that was committed, but not any other layer that might be affected. By moving handling to the scene descriptor we can iterate all popups and ensure they are synchronized.