Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
set_cloexec is defined by both sway and wlroots (and who-knows-else),
so rename the sway one for supporting static linkage. We also remove
the duplicate version of this in client/.
Fixes: https://github.com/swaywm/sway/issues/4677
|
|
container is checked for NULL in other conditions earlier, it's not
obvious that it can't be undefined here.
|
|
If allocation of bindings failed.
Found with clang-tidy
|
|
Found with clang-tidy
|
|
|
|
Currently commented lines ending in the backslash character will be
concatenated with the following line.
```
# with this comment \
exec swaynag -m 'will not run'
```
This change modifies `getline_with_cont` to stop reading when the
initial character is a '#'.
|
|
Closes: https://github.com/swaywm/sway/issues/4663
|
|
Closes: https://github.com/swaywm/sway/issues/4644
References: https://github.com/emersion/rootston/commit/1982106c9b0fbd48ee9fe20e013524125f6ca3cf
|
|
|
|
|
|
Calling wlr_output_manager_v1_set_configuration with an enabled output
and a NULL mode is incorrect if the output doesn't support modes.
When DPMS'ing an output, wlr_output_enable(output, false) is called.
This de-allocates the CRTC and sets wlr_output.current_mode to NULL.
Because we mark DPMS'ed outputs as enabled, we also need to provide a
correct output mode. Add a field to sway_output to hold the current
mode.
Closes: https://github.com/swaywm/wlroots/issues/1867
|
|
apply_output_config would call output_enable and always return true,
even if the output couldn't be enabled.
|
|
Fixes regression introduced in 2c1a11016ccb7646a74de51eff003c18e5aa7902
|
|
Fixes #4665.
|
|
In case a tray icon cannot be found or does not have a desirable size,
swaybar retries the search again and again, which increases load on disk
and CPU. This commit solves it by storing target_size for each icon, so
that swaybar does not search for an icon of some size if it already tried to.
Fixes #3789.
|
|
When applying config, value mode->refresh is mHz; convert it to Hz before
assigning it to the temporary output config. oc->refresh_rate will
be converted back to mHz in set_mode function.
Fix debug log printing GHz instead of Hz.
|
|
Following i3 support: https://github.com/i3/i3/pull/3407
|
|
When changing a surface from managed to unmanaged in handle_map(), the
call to handle_destroy(.., view) causes the sway_xwayland_view pointed
to by the untyped wlr_xwayland_surface.data field to become invalid
garbage, yet the untyped wlr_xwayland_surface.data continues to point
at it. In particular: view_get_*(view_from_wlr_surface(..)), even
with appropriate NULL checking, will crash sway when this codepath is
exercised (reliable test case: drop-down menus in Google Earth).
|
|
|
|
Usage:
grimshot copy|save win|screen|area [FILE]
Troubleshoot:
grimshot check
Requirements:
- `grim`: screenshot utility for wayland
- `slurp`: to select an area
- `swaymsg`: to read properties of current window
- `wl-copy`: clipboard utility
- `jq`: json uliity to parse swaymsg output
- `notify-send`: to show notifications
Those are needed to be installed, if unsure, run `grimshot check`
Examples:
`grimshot copy win` - to copy current window
`grimshot save area` - to select area and save it to default file (Pictures/Grimshot-$datetime.png)
`grimshot save screen ~/screenshot.png` - to save screenshot under ~/screenshot.png
`grimshot` - usage
`grimshot check` - verify if tools are installed
|
|
Don't use the latest tag, always use the project version for the version
string. Because of version branches, getting the version from Git can be
unreliable.
Closes: https://github.com/swaywm/sway/issues/4631
|
|
According to the source files, workspace_layout is a configuration only
command, move it to the correct section within the man page.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes an invalid option warning from Meson.
|
|
Some examples use comma to separate x and y for setting the output
position which is wrong.
Let's change it to spaces, as correctly demonstrated in the
`output <name> position|pos <X> <Y>` section.
|
|
Popups are positioned relative to local surface coordinates of the
parent surface. There's no need to consider values set with
xdg_surface.set_window_geometry for parent surfaces.
|
|
Sometimes when using direct scan-out, some flickering between the
fullscreen app and the regular desktop could be seen.
This happened because we called wlr_output_attach_render and then
wlr_output_attach_buffer for direct scan-out. wlr_output_attach_render
makes the OpenGL context current but also attaches the OpenGL buffer to
the primary plane apparently (all of this happens inside
eglMakeCurrent).
This patch moves the scan-out logic outside of output_render, before
wlr_output_attach_render. This lines it up with rootston's
implementation. This also makes more sense since no rendering is
involved when using direct scan-out.
Sorry about that, I should've tested this with more clients. The new
code has been tested with mpv and a GLFW demo.
|
|
Sway has basic support for drawing tablets, but does not expose
properties such as pressure sensitivity. This implements the wlr tablet
v2 protocol, providing tablet events to Wayland clients.
|
|
|
|
|
|
wlroots versions are incompatible with each other. Often our users struggle
with figuring out that their wlroots version is too old after a new release.
Use a more strict version check to prevent building sway with incompatible
wlroots versions.
|
|
|
|
Otehrwise it's pretty easy to misremember a flag and think damage=rerender is
enabled when it's not.
|
|
If the view was mapped as fullscreen or the view was assigned either a
workspace or output, the pid was not being populated since it was
occurring as part of the pid mapping check in select_workspace. This
extracts the pid population and makes it so it is always executed
|
|
Other components like workspace button, status line (error or plain
text) already render text at integer coords. This make status block
also render text at integer coords.
|
|
|
|
|
|
__foo__ is verbatim in scdoc, but we want the variable foo in italic,
i.e. _foo_.
|
|
|
|
|
|
|
|
This just clarifies that a mark can only be set for a single window
since they are used as unique identifiers
|
|
|