Isaac Freund
9e3e92050e
river: update for wlroots 0.13.0
2021-04-08 00:21:17 +02:00
Isaac Freund
3c1f1df0c0
render: don't schedule new frame on output commit failure
...
This reverts commit c457b12cf3
.
This attempted workaround seems to work fine if the output commit only
fails with EBUSY, but enters an infinite loop otherwise.
2021-03-28 13:55:22 +02:00
Qiu
c457b12cf3
render: schedule new frame on output commit failure
...
This seems to fix issues with rendering freezing described in
https://github.com/ifreund/river/issues/153 .
2021-03-27 16:17:24 +01:00
Leon Henrik Plickat
e6f11fc5d2
Fix crash when layer surface dimensions or margins are unexpectedly large
2021-03-27 13:10:19 +01:00
Isaac Freund
27cac16ced
build: fix if wlroots x11 backend is disabled
2021-03-01 14:54:36 +01:00
Bonicgamer
26b0acddb7
river: pointer-constraints and relative-pointer
2021-02-22 14:47:31 +01:00
Isaac Freund
4beb39920a
river-control: fix various bugs
...
It kinda shows that this was the first protocol I ever implemented
server-side:
- Use client as well as ID for keys in the hashmap as IDs might
(and will) be the same between clients.
- Clear saved args after running a command.
2021-02-19 19:58:44 +01:00
Isaac Freund
3d66cbd2d4
toplevel-management: send output enter on map
2021-02-17 22:01:45 +01:00
Leon Henrik Plickat
5887d54f04
Deny move/resize requests from tiled XdgToplevel Views
2021-02-17 14:42:23 +01:00
Marten Ringwelski
870f0b746e
Implement pointer-gestures-unstable-v1
2021-02-15 18:18:18 +01:00
Isaac Freund
6470d8c776
command: silently ignore re-declaring a mode
...
This change is made in the interest of allowing users to simply re-run
their init script at runtime without errors. Making this an error
doesn't really gain us anything.
2021-02-14 18:13:15 +01:00
Isaac Freund
5c0be25142
command: allow map/map-pointer overwrite existing
...
The ergonomics of remapping keys are currently quite bad as unmap
must first be called for every mapping before defining a new one.
Any benefit that might be gained by the current strictness of map/
map-pointer is outweighed by this fact.
In a similar spirit, silently ignore unmapping a non-existent mapping.
2021-02-14 18:08:55 +01:00
Isaac Freund
fb7d50a019
xdg shell: use XdgSurface.getGeometry()
...
This is important to use instead of direct access as clients are not
strictly required to set a geometry, in which caese the dimensions
of the wl_surface are used instead.
2021-02-14 16:55:24 +01:00
Alexey Yerin
945b7dc986
swap: use correct direction for it_wrap
...
Always using .forward results in a crash when running `swap previous` on
the first view in stack which should be wrapped.
2021-02-10 10:53:00 +01:00
foxfromabyss
98d51f6d24
Use std.log instead of log.zig
2021-02-08 18:35:11 +01:00
Isaac Freund
1834bd4bd0
river-options: fix setting null string options
2021-02-02 18:16:36 +01:00
Leon Henrik Plickat
7029a5cd3e
output: add output_title default option
...
Outputs now have a default option, "output_title". If this changes, the
outputs title is set to the option value. This title is currently only
relevant when run nested in a wayland/X11 session.
Co-authored-by: Isaac Freund <ifreund@ifreund.xyz>
2021-02-02 01:14:06 +01:00
Isaac Freund
5e09b853f7
xwayland: allow setting size if unmapped/floating
...
This effectively allows unmapped and floating xwayland views to set
their own dimensions, which seems to make some popups less broken.
2021-01-31 18:24:21 +01:00
Isaac Freund
cd005e15f8
river-options: free options of destroyed outputs
...
This is done when river's internal Output struct is destroyed, not when
the advertised wl_output global is removed. This means that options will
persist when an output is disabled and re-enabled.
2021-01-21 10:43:18 +01:00
Isaac Freund
8cbccbfb6e
river-options: implement
2021-01-16 23:51:15 +01:00
Isaac Freund
a586c1ad71
code: remove unneeded c.zig @import()s
2021-01-12 10:28:11 +01:00
Isaac Freund
41e52065cc
cursor: ensure output focus before focusing layer
2021-01-08 22:27:52 +01:00
Isaac Freund
a029105f15
cursor: focus output before view on follow cursor
2021-01-08 10:58:08 +01:00
Isaac Freund
7249f5c9c3
xwayland: use layout coords for configures
2021-01-07 22:15:42 +01:00
Isaac Freund
11e1c4791f
XwaylandUnmanaged: remove dead code
2021-01-07 21:48:55 +01:00
Isaac Freund
e7442e53c1
XdgPopup: fix unconstrainFromBox coordinates
2021-01-07 21:22:11 +01:00
Isaac Freund
a672738603
render: iterate subsurfaces of popups manually
...
wlr_xdg_surface_for_each_popup() fails to do this and
wlr_xdg_surface_for_each_popup_surface() is not yet merged, so implement
a workaround for now.
2021-01-07 16:11:48 +01:00
Isaac Freund
b468f0aa85
cursor: fix down mode motion event coords
...
These are required to be surface local and we need to take the output's
layout coords into account as the cursor itself is in layout coords.
2021-01-07 11:19:22 +01:00
Isaac Freund
751b63f6fa
render: pass Output by constant pointer
...
This is semantically what we want as we store a pointer to the output in
the SurfaceRenderData struct.
2021-01-06 17:53:04 +01:00
Isaac Freund
b73cb7bb69
render: draw popups over borders
2021-01-05 20:05:35 +01:00
Marten Ringwelski
30ba87fa15
command: Implement spawn-tagmask
2021-01-02 11:39:09 +01:00
Alex Mohr
75588a553c
build: derive default config path from install prefix
...
- Add `default_config_path` build option for the river executable
2021-01-01 23:23:44 +01:00
Isaac Freund
d2e2dad09c
view: fix build with xwayland disabled
2021-01-01 13:34:19 +01:00
Isaac Freund
a2ef687e51
view: fix handling of title/app_id change
2021-01-01 13:29:57 +01:00
Isaac Freund
4984944c60
Config: move opacity settings to sub struct
2020-12-31 15:52:03 +01:00
Isaac Freund
cc08be2dee
code: clean up listener initialization
2020-12-31 15:35:35 +01:00
Isaac Freund
ba9df86472
command: s/master/main/g (breaking change)
...
main is a better term to use here for several reasons:
1. It is more accurate: "master" implies that the designated views have
some kind of control over the other views, which is not the case. "main"
better expresses that the difference between the "main" view and others
is one of importance/focus.
2. It is a shorter word. 2 whole characters saved!
3. It reduces the chance of future development time being lost to
good-intentioned people complaining about usage of the word master as
has recently happened with regards to the default git branch name.
2020-12-30 18:15:47 +01:00
Isaac Freund
5f4ba06566
docs: improve explanation of tags
...
"tagmask" is a misleading term as the arguments are used much more like
a set of tags than a mask.
2020-12-30 14:25:37 +01:00
Isaac Freund
ac20f5aa1d
root: improve handling of 0 -> 1 output transition
...
Recover more gracefully from being hotplugged down to 0 outputs and then
gaining a new one. Move all views to the new output and restore the
focused output tags of the last output to be removed.
2020-12-30 13:19:40 +01:00
Isaac Freund
a098bbe03a
root: stop tracking xwayland views in transactions
...
Frame perfection for xwayland views would require too much complexity
to support and would bleed all over the codebase.
2020-12-29 20:38:30 +01:00
Isaac Freund
055fba5c3c
cursor: fix motion coords sent in down mode
...
We need to subtract the coords of the actual surface as they may not
alingn with the current box if using CSD.
2020-12-27 16:11:52 +01:00
Isaac Freund
4be1d59861
OutputManager: delete
...
Somehow I failed to do this in the previous commit.
2020-12-27 15:27:28 +01:00
Isaac Freund
3438c05332
root: merge in OutputManager
...
These two files were primarily dealing with the same things. Merging
them removes some indirection from the code and keeps things simpler.
2020-12-27 15:24:20 +01:00
Isaac Freund
c51f2176b3
view: unify clamped move logic, fix overflow
2020-12-27 01:06:18 +01:00
Isaac Freund
1732c69442
keyboard: set repeat_info to config values on creation
2020-12-26 19:17:24 +01:00
Isaac Freund
760c88b094
foreign-toplevel-management: basic implementation
...
We do no yet set the parent of toplevels. We also only honor activate
requests if the target view is already visible on the focused output.
2020-12-24 13:07:59 +01:00
Isaac Freund
386316bdbd
output: get rid of active field
...
The less state that needs to be maintained, the better
2020-12-21 16:19:44 +01:00
Isaac Freund
518fb96604
xwayland: handle hinted dimension < View.min_size
...
This avoids an assertion failure in std.math.clamp() when applying the
constraints.
2020-12-18 18:59:13 +01:00
Isaac Freund
6cf01f3624
OutputManager: get rid of output_config_pending
2020-12-14 16:25:16 +01:00
Isaac Freund
20d804cdb5
code: switch to custom wlroots/libwayland bindings
...
This is a big step up over @cImport() for ergonomics and type safety.
Nearly all void pointer casts have been eliminated!
2020-12-13 22:53:33 +01:00
Marten Ringwelski
b2b1a1f5e1
render: remove unnecessary call to wlr_output_effective_resolution
2020-12-12 16:35:33 +01:00
Isaac Freund
d099b167d2
config: free filter list items
2020-12-10 19:42:53 +01:00
Marten Ringwelski
49bf0e679f
focus-follow-cursor: Change output focus when needed
2020-12-07 13:51:06 +01:00
Marten Ringwelski
0fecdf60cb
Ignore custom mode requests
2020-12-07 11:47:55 +01:00
Marten Ringwelski
c3b8986054
Implement wlr_output_management_unstable_v1
2020-12-07 11:47:55 +01:00
Marten Ringwelski
4b7246685f
code: Fix render call width and height
2020-12-07 11:47:55 +01:00
Marten Ringwelski
157dccbbbb
code: Add Root.all_outputs
2020-12-07 11:47:55 +01:00
Marten Ringwelski
10373da634
code: Add Root.removeOutput
2020-12-07 11:47:55 +01:00
Marten Ringwelski
fc549d6249
code: Refactor Root.addOutput
2020-12-07 11:47:55 +01:00
Marten Ringwelski
0dd8197f03
code: Introduce OutputManager
2020-12-07 11:47:55 +01:00
Isaac Freund
dae6c06e0c
screencopy: add workaround for wlroots bug
...
Currently screencopy's copy_with_damage request is broken for
compositors not submitting damage. As a workaround simply damage
the whole output each frame.
2020-12-05 01:10:06 +01:00
Isaac Freund
807d4a4212
keyboard: handle destruction
2020-11-29 21:05:27 +01:00
Isaac Freund
f1e5f1aacb
style: fix zig fmt regression
...
CI works now so this shouldn't happen again
2020-11-21 11:53:37 +01:00
Marten Ringwelski
7d0014cd38
code: Set wlroots loglevel based on -l flag
2020-11-19 21:18:43 +01:00
Bonicgamer
cbd4a2807b
control: implement set-repeat
2020-11-18 15:28:33 +01:00
Leon Henrik Plickat
1626203c44
Add default config location
2020-11-18 15:15:22 +01:00
Isaac Freund
f80992e329
meta: make copyright headers more maintainable
...
- list all files as copyright "The River Developers"
- add an AUTHORS file to acknowledge contributors
2020-11-11 20:33:43 +01:00
Isaac Freund
77d3eb1bf0
layer-shell: render all popups over top layer
...
This means the popups belonging to e.g. a surface in the background
layer will be rendered over views.
2020-11-10 12:12:56 +01:00
Isaac Freund
a90ddd305b
code: use zig 0.7.0 and wlroots 0.12.0
2020-11-10 11:46:03 +01:00
Isaac Freund
2b24e55375
server: drop gtk-primary-selection support
2020-11-03 16:10:50 +01:00
Marten Ringwelski
d23b8a7f27
code: Move wlr_output_layout_add from Output.init to Root.addOutput
2020-11-02 14:08:00 +01:00
Marten Ringwelski
30b1675fe8
render: Print a log message when wlr_output_commit fails
2020-10-31 19:11:22 +01:00
Marten Ringwelski
d821f6b0dc
Implement wlr-output-power-management-unstable-v1 protocol
2020-10-31 19:11:22 +01:00
Marten Ringwelski
773c5ff687
Implement virtual_keyboard_unstable_v1 protocol
2020-10-31 17:02:08 +01:00
Marten Ringwelski
76217970f5
Implement wlr_virtual_pointer_unstable_v1 protocol
2020-10-31 09:47:57 +01:00
Marten Ringwelski
1bd6f6bed1
code: Remove most of the hack around @cImport and flexible arrays
2020-10-30 15:23:52 +01:00
Marten Ringwelski
9a2e11620c
Implement unmap-pointer
2020-10-27 00:32:20 +01:00
Marten Ringwelski
882a271d81
Implement unmap
2020-10-27 00:32:20 +01:00
Leon Henrik Plickat
5407325400
Add tests for ViewStack.swap()
2020-10-26 22:58:09 +01:00
Leon Henrik Plickat
ac1762567c
Send zriver_seat_status_v1.focused_view when title of focused view changes
2020-10-25 17:28:13 +01:00
Marten Ringwelski
3f1b0dfaa9
control: implement swap
2020-10-25 12:41:19 +01:00
Marten Ringwelski
16c8752de2
code: Remove allocator argument from Mapping.init
2020-10-25 12:22:25 +01:00
Isaac Freund
e4a3698d86
view: update comments
...
These should have been moved in the previous commit
2020-10-22 19:24:01 +02:00
Bonicgamer
79dc9cc49a
xwayland: make behavior more like xdg toplevels
...
- float fixed size xwayland windows by default
- align configure handling with that of xdg toplevel views
2020-10-22 19:22:54 +02:00
Isaac Freund
e179690a9c
code: update os.waitpid usage for breaking change
2020-10-22 18:20:09 +02:00
Isaac Freund
3e4743e9a2
Revert "Remove checking translated keysyms"
...
This reverts commit 744e6b3052
.
This broke VT switching and likely other keysyms which don't have
a "raw" equivalent.
2020-10-21 15:24:11 +02:00
Leon Henrik Plickat
03a2da9690
Introduce mode "locked"
...
This mode is automatically entered when the screen is locked.
2020-10-19 16:00:17 +02:00
Leon Henrik Plickat
744e6b3052
Remove checking translated keysyms
...
Raw keysyms are enough to handle all possible keybinds
2020-10-18 16:36:11 +02:00
Leon Henrik Plickat
4b4f7c464c
Allow "None" as modifier string for bindings without modifiers
...
This is more userfriendly than the empty string approach.
2020-10-18 16:36:11 +02:00
Leon Henrik Plickat
ec5d5e8826
Move Cursor.Mode impl functions to Cursor
2020-10-17 23:42:37 +02:00
Leon Henrik Plickat
d5d1e87a95
Implement XDG-Toplevel move and resize request handlers
2020-10-17 23:42:37 +02:00
Leon Henrik Plickat
1e0ee3b146
Remove unused event parameter from Cursor.Mode.enter()
2020-10-17 23:42:37 +02:00
Leon Henrik Plickat
b6861bc80b
Update view.float_box when setting a floating view to fullscreen
2020-10-17 21:23:13 +02:00
Leon Henrik Plickat
036f9a1cb9
Always set fullscreen views to fully opaque
2020-10-08 18:41:47 +02:00
Leon Henrik Plickat
d4ca5d7a88
introduce Output.getEffectiveResolution()
2020-10-07 21:03:59 +02:00
Leon Henrik Plickat
b2f13f5bcc
Implement "move", "snap" and "resize" commands
2020-10-07 21:03:59 +02:00
Leon Henrik Plickat
6f9ecd4eda
Create wlr_viewporter
2020-10-06 20:19:07 +02:00
Leon Henrik Plickat
1e58e8b7f8
Create wlr_export_dmabuf_manager_v1
2020-10-06 20:19:07 +02:00
Leon Henrik Plickat
18f5fcb1ef
Implement primary selection
2020-10-06 17:46:05 +02:00
Leon Henrik Plickat
bb23464322
Send view tags when applying pending state in XdgToplevel.zig
2020-10-05 23:03:57 +02:00