Commit Graph
76 Commits
Author SHA1 Message Date
Leon Henrik PlickatandIsaac Freund e857631936 rivertile: Use saturating arithmetics to prevent over-/underflow when using user defined values 2022-02-26 16:19:15 +01:00
Leon Henrik PlickatandIsaac Freund 422cd3e01f input: Improve input device name format
The name now includes the type, for the case of a physical device
advertising more than one logical device.
2022-02-05 18:52:46 +01:00
Leon Henrik PlickatandIsaac Freund 53f84b76f3 input: keep applying input configs after first match
Device identifiers aren't so unique after all
2022-02-05 18:52:16 +01:00
Leon Henrik PlickatandGitHub 214ad65b72 Cursor: update image if needed on xcursor theme change 2022-01-29 15:40:29 +01:00
Leon Henrik PlickatandGitHub d93ee2c27e Cursor: improve output focus handling on button press
This patch allows to focus outputs by clicking on the empty background and by
clicking on layer surfaces without keyboard interactivity. This makes it
possible to use the cursor to focus outputs with no visible views.

This also fixes problems with pointer interactive layer surfaces (for example
launchers and docks) on non-focused outputs.
2021-12-10 23:40:48 +01:00
Leon Henrik PlickatandIsaac Freund 61d6aecb10 contrib: add python layout 2021-10-06 12:16:36 +02:00
Leon Henrik PlickatandIsaac Freund 196c52885f Decrease layout demand timeout to 100ms
Layout generators are generally pretty fast. The timeout is only reached when
the generator is faulty / stuck. In that case, freezing for 1 second is simply
bad UX.
2021-10-04 11:07:59 +02:00
Leon Henrik PlickatandIsaac Freund ab55ab8fc2 command: Use std.ComptimeStringMap to get impl. function from command string 2021-09-16 11:47:44 +02:00
Leon Henrik PlickatandIsaac Freund a3c6571326 cursor: reset state if needed on transaction commit
A transaction may move the current target of a cursor action to a
non-visible tag, make it fullscreen, or otherwise change things such
that the current cursor state no longer makes sense.

To handle this, check if we should reset cursor state every time a
transaction is committed.
2021-07-23 11:48:01 +00:00
Leon Henrik PlickatandIsaac Freund dfa2471141 contrib: update layout.c for river-layout-v3 2021-07-21 14:01:51 +02:00
Leon Henrik PlickatandIsaac Freund 968aef3459 river: make CSD-filters apply to existing views 2021-07-12 17:57:01 +00:00
Leon Henrik PlickatandIsaac Freund 9ec04c764e river: add commands to remove filter entries 2021-07-12 17:57:01 +00:00
Leon Henrik PlickatandIsaac Freund 61829d82fe completions: Add bash completion for set-cursor-warp commands 2021-06-26 19:03:49 +02:00
Leon Henrik PlickatandIsaac Freund 085cca0d5e cursor: add option to warp on output change
On output change, if the cursor is not already on the newly focused
output, it will now be warped to its center. The check is necessary,
since focusing outputs with the pointer will be implemented in
the future.
2021-06-26 19:03:49 +02:00
Leon Henrik PlickatandIsaac Freund d3a9e96f7d Add spacial output operations
List based output operations are tedious for complex output layouts.
2021-06-23 12:47:20 +02:00
Leon Henrik PlickatandIsaac Freund 3405e2a87c Ignore move and resize requests from fullscreened XDG toplevels 2021-06-16 10:03:30 -07:00
Leon Henrik PlickatandIsaac Freund 1fd8d4d828 add bash completion for input commands 2021-06-13 10:37:36 -07:00
Leon Henrik PlickatandIsaac Freund a267262a17 Add list-input-configs command 2021-06-13 10:37:36 -07:00
Leon Henrik PlickatandIsaac Freund 3f4fd97b6e Add list-inputs command 2021-06-13 10:37:36 -07:00
Leon Henrik PlickatandIsaac Freund c9c9901c5b doc: Document input config commands 2021-06-13 10:37:36 -07:00
Leon Henrik PlickatandIsaac Freund 833248e805 Add basic input configuration 2021-06-13 10:37:36 -07:00
Leon Henrik PlickatandIsaac Freund 6333e465d2 Allow changing output focus with pointer 2021-05-19 14:15:28 +02:00
Leon Henrik PlickatandIsaac Freund 6ab06120fa rivertile: clamp main_amount 2021-05-19 13:54:54 +02:00
Leon Henrik PlickatandIsaac Freund 7ffa2f4b9e contrib: Update layout.c for river-layout-v2 2021-05-07 00:34:41 +02:00
Leon Henrik PlickatandIsaac Freund 924a4707b7 contrib: update layouts for river-layout and river-options
- Remove old layouts which no longer work.
- Add new C layout.
2021-04-20 18:27:03 +02:00
Leon Henrik PlickatandIsaac Freund f72656b72e river-layout: create and implement protocol
Replace the current layout mechanism based on passing args to a child
process and parsing it's stdout with a new wayland protocol. This much
more robust and allows for more featureful layout generators.

Co-authored-by: Isaac Freund <ifreund@ifreund.xyz>
2021-04-20 18:27:03 +02:00
Leon Henrik PlickatandIsaac Freund e6f11fc5d2 Fix crash when layer surface dimensions or margins are unexpectedly large 2021-03-27 13:10:19 +01:00
Leon Henrik PlickatandIsaac Freund e43e58432f riverctl: Do not use std.debug.print() 2021-03-27 12:17:47 +01:00
Leon Henrik PlickatandIsaac Freund f99071f1da riverctl: Print error messages instead of error traces for common user mistakes 2021-03-27 12:17:47 +01:00
Leon Henrik PlickatandIsaac Freund eb1dd401f8 Add bash completion for riverctl 2021-03-14 17:06:43 +01:00
Leon Henrik PlickatandIsaac Freund 5887d54f04 Deny move/resize requests from tiled XdgToplevel Views 2021-02-17 14:42:23 +01:00
Leon Henrik PlickatandGitHub aeeae92611 riverctl: add mod-option command 2021-02-09 22:53:17 +01:00
Leon Henrik PlickatandIsaac Freund 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
Leon Henrik PlickatandIsaac Freund 0c5e5a7b4a doc: Remove outdated configuration instructions 2020-12-13 01:19:27 +01:00
Leon Henrik PlickatandIsaac Freund 58d9bfc766 contrib: Unify style
Unify indentation and variables and add link to non-standard programs
called.
2020-12-13 01:19:27 +01:00
Leon Henrik PlickatandIsaac Freund f08d37ab28 doc: unify scdoc style
This unifies the style of the man page source files. Most noticable are
the now consistent line endings at 80 chars (assuming a tabwidth of 8).
2020-12-13 01:19:27 +01:00
Leon Henrik PlickatandIsaac Freund 1626203c44 Add default config location 2020-11-18 15:15:22 +01:00
Leon Henrik PlickatandIsaac Freund 5407325400 Add tests for ViewStack.swap() 2020-10-26 22:58:09 +01:00
Leon Henrik PlickatandIsaac Freund ac1762567c Send zriver_seat_status_v1.focused_view when title of focused view changes 2020-10-25 17:28:13 +01:00
Leon Henrik PlickatandIsaac Freund dd92b05af0 Add mediakey maps for locked and normal mode to example config
The example config now additionally demonstrates how to use a shell loop
to create a mapping in multiple modes, how mediakeys can be mapped and
how to use the "None" modifier.
2020-10-22 21:10:12 +02:00
Leon Henrik PlickatandIsaac Freund 03a2da9690 Introduce mode "locked"
This mode is automatically entered when the screen is locked.
2020-10-19 16:00:17 +02:00
Leon Henrik PlickatandIsaac Freund 744e6b3052 Remove checking translated keysyms
Raw keysyms are enough to handle all possible keybinds
2020-10-18 16:36:11 +02:00
Leon Henrik PlickatandIsaac Freund 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 PlickatandIsaac Freund ec5d5e8826 Move Cursor.Mode impl functions to Cursor 2020-10-17 23:42:37 +02:00
Leon Henrik PlickatandIsaac Freund d5d1e87a95 Implement XDG-Toplevel move and resize request handlers 2020-10-17 23:42:37 +02:00
Leon Henrik PlickatandIsaac Freund 1e0ee3b146 Remove unused event parameter from Cursor.Mode.enter() 2020-10-17 23:42:37 +02:00
Leon Henrik PlickatandIsaac Freund b6861bc80b Update view.float_box when setting a floating view to fullscreen 2020-10-17 21:23:13 +02:00
Leon Henrik PlickatandIsaac Freund 036f9a1cb9 Always set fullscreen views to fully opaque 2020-10-08 18:41:47 +02:00
Leon Henrik PlickatandIsaac Freund d4ca5d7a88 introduce Output.getEffectiveResolution() 2020-10-07 21:03:59 +02:00
Leon Henrik PlickatandIsaac Freund b2f13f5bcc Implement "move", "snap" and "resize" commands 2020-10-07 21:03:59 +02:00
Leon Henrik PlickatandIsaac Freund 6f9ecd4eda Create wlr_viewporter 2020-10-06 20:19:07 +02:00
Leon Henrik PlickatandIsaac Freund 1e58e8b7f8 Create wlr_export_dmabuf_manager_v1 2020-10-06 20:19:07 +02:00
Leon Henrik PlickatandIsaac Freund 18f5fcb1ef Implement primary selection 2020-10-06 17:46:05 +02:00
Leon Henrik PlickatandIsaac Freund bb23464322 Send view tags when applying pending state in XdgToplevel.zig 2020-10-05 23:03:57 +02:00
Leon Henrik PlickatandIsaac Freund b67ea748a3 Implement configurable view opacity with fade effect 2020-10-05 23:03:57 +02:00
Leon Henrik PlickatandIsaac Freund 59d6432332 Implement "attach-mode" 2020-08-18 11:00:51 +02:00
Leon Henrik PlickatandIsaac Freund 946e4f21ba Enforce minimum window size also for views with constraints 2020-08-10 22:15:09 +02:00
Leon Henrik PlickatandIsaac Freund 45a730cbd3 Fix crashing bug for window size smaller than 2 * (border width + gap size) 2020-08-10 19:26:13 +02:00
Leon Henrik PlickatandIsaac Freund 228c2c372f Fix bug causing XDG toplevels with a parent to not respect the CSD filter 2020-07-16 21:24:08 +02:00
Leon Henrik PlickatandIsaac Freund a93c263502 Implement csd-filter-add and float-filter-add commands 2020-07-16 21:24:08 +02:00
Leon Henrik PlickatandIsaac Freund 76da7e2b0d Make float_filter a slice list 2020-07-16 21:24:08 +02:00
Leon Henrik PlickatandIsaac Freund be29b0ef95 Implement csd_filter list 2020-07-16 17:08:19 +02:00
Leon Henrik PlickatandIsaac Freund d77ac5ac7a cursor: close view on middleclick when pointer_modifier is active 2020-07-08 12:25:52 +02:00
Leon Henrik PlickatandIsaac Freund d292e61cfd cursor: implement moving views 2020-07-07 19:06:52 +02:00
Leon Henrik PlickatandIsaac Freund ec0631dcef Doc: Add layout documentation 2020-06-16 15:48:53 +02:00
Leon Henrik PlickatandIsaac Freund 4cbef71a8d Contrib: Add debug layouts 2020-06-16 15:48:53 +02:00
Leon Henrik PlickatandIsaac Freund 5de21d0d23 Commands: rework layout command 2020-06-16 15:48:53 +02:00
Leon Henrik PlickatandIsaac Freund 2fce8c7108 Output: Add layoutExternal() 2020-06-16 15:48:53 +02:00
Leon Henrik PlickatandIsaac Freund 754e24a710 Output: Rework layout switching in arrangeViews() 2020-06-16 15:48:53 +02:00
Leon Henrik PlickatandIsaac Freund bdc56517e9 Output: Remove layoutMasterStack() and rework layoutFull()
layoutFull() now enforces a minimum view size of 50x50
2020-06-16 15:48:53 +02:00
Leon Henrik PlickatandIsaac Freund 2575f642f1 Fix layout bugs
This fixes two bugs: First, the height of the slave stack was to high
when using the TopMaster or BottomMaster layouts with no views in the
master stack. Second, the view padding was not respected when using the
Full layout.
2020-05-22 11:21:36 +02:00
Leon Henrik PlickatandIsaac Freund 7934cbfaea Add layout command 2020-05-20 23:02:28 +02:00
Leon Henrik PlickatandIsaac Freund 3c5eaec50b Add layout variable to Output class
This variable in controls which layout is chosen when
arrangeViews() is called. The default is LeftMaster
2020-05-20 23:02:28 +02:00
Leon Henrik PlickatandIsaac Freund fd3f48c1a7 Switch to layoutFull() for one or no visible views 2020-05-20 23:02:28 +02:00
Leon Henrik PlickatandIsaac Freund 444cf77ad3 Add "full" layout
Similar to dwm's "monocle" layout
2020-05-20 23:02:28 +02:00
Leon Henrik PlickatandIsaac Freund b40c5d912e Modify default layout to allow master area on all four sides
Also move it into a separate function
2020-05-20 23:02:28 +02:00