Commit Graph
100 Commits
Author SHA1 Message Date
Leon Henrik PlickatandIsaac Freund b77b42f0d6 command/focus-view: add -skip-floating 2024-03-22 12:37:18 +01:00
Leon Henrik PlickatandIsaac Freund 3473d6c0be TabletTool: use "pencil" cursor shape
This makes tablet tool cursors visually distinct from pointer cursors by
default. Client may of course continue to set custom cursors for tablet
tools if they have focus.

Also fixes a custom cursor set by a client persisting after the tablet
exits the client's surface until proximity out.
2024-03-18 20:43:59 +01:00
Leon Henrik PlickatandIsaac Freund 4e48d68485 View: restore to previous output on reconnect 2024-03-14 11:07:15 +01:00
Leon Henrik PlickatandIsaac Freund 931b6268e7 command/input: support globs 2024-02-19 18:07:45 +01:00
Leon Henrik Plickat 653b5c6660 river: fix names of input config settings 2024-02-15 11:41:43 +01:00
Leon Henrik Plickat 0cae415a93 refactor input configuration 2024-02-14 14:54:36 +01:00
Leon Henrik PlickatandIsaac Freund dd9933b6a1 keyboard-groups: use globber for identifier matching 2024-01-07 12:37:03 -06:00
Leon Henrik PlickatandIsaac Freund c86f460135 Keyboard: Add new keyboards to groups if matched
Previously new keyboards would not be added to already existing
keyboard groups on (re-)connect. Only during the creation of
the groups themselves were devices added to them. This meant
that only keyboards connected during startup - before the init
is executed - would work with groups in a typical river session.
2024-01-04 11:00:16 -06:00
Leon Henrik Plickat c16628c7f5 river: fix spatial direction focusing / swapping 2023-07-11 01:11:40 +02:00
Leon Henrik Plickat b35d779122 river: focus-view and swap by spatial direction 2023-07-09 23:20:06 +02:00
Leon Henrik PlickatandIsaac Freund 5ce2ca1bc0 river: fix crash when trying to add tag rule without tag argument 2023-07-02 19:21:52 +02:00
Leon Henrik Plickat 0b142bd16b river: add tags rule 2023-06-28 15:38:32 +02:00
Leon Henrik Plickat a98de941d0 river: change order of colums in list-rules command
This will make it easier to extend the command later for new rules
2023-06-27 10:47:44 +02:00
Leon Henrik Plickat 9b5ea39580 river: allow settings child type of RuleList 2023-06-27 10:44:28 +02:00
Leon Henrik PlickatandIsaac Freund 93a567ca94 riverctl: Add error messages for failed connections 2023-06-05 20:01:27 +02:00
Leon Henrik PlickatandGitHub 701d16c2ea completions: add keyboard-layout 2023-01-06 16:36:00 +01:00
Leon Henrik Plickat 5d4c2f2fbd river: fix resize command
In 489a49735 the view.move() call, which is used to keep the view centered after
a resize, was accidentally removed.
2022-12-29 14:56:06 +01:00
Leon Henrik PlickatandIsaac Freund ad1dbb1180 river: add keyboard-layout command
This allows switching river's keyboard layout at runtime.
2022-12-28 20:20:36 +01:00
Leon Henrik PlickatandIsaac Freund b8e2ee2a0c river-status: expose current layout name 2022-12-01 15:51:00 +01:00
Leon Henrik Plickat 01f49bbbc1 river: add keyboard groups 2022-09-12 04:12:21 +02:00
Leon Henrik Plickat 29ae7ba311 river: advertise correct version of layout protocol 2022-08-19 00:04:16 +02:00
Leon Henrik PlickatandIsaac Freund 844ffce037 river-layout: add user_command_tags event
It is not guaranteed that the next layout_demand event after a user_command
event has the same active tags (for example when there are no views visible).
As an example, a user could trigger a user_command while no views are visible,
then switch to a different tag set which has active views. The active tags of
the previous layout_demand may also be different.

Therefore it is impossible to correctly implement a layout generator which has
user commands apply only to the currently active tag set, which is solved by
this patch.
2022-08-16 13:40:07 +02:00
Leon Henrik Plickat 765a3f4aff river: keep floating views within bounds when sending to output 2022-08-11 15:22:07 +02:00
Leon Henrik PlickatandGitHub 37da205be0 river: error out if default init is not executable 2022-06-06 21:53:55 +02:00
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