| Commit message (Collapse) | Author | Age |
... | |
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
config: do not reset pos when braces found
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
When a brace is found, the config file should not seek back to before
the brace, otherwise the brace will be read multiple times.
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | | |
Implements customization for the indicator as proposed in #2788 with comments from #3367 in mind.
The default behaviour does not change exept for the caps lock text color.
|
|\ \ \ \
| |_|/ /
|/| | | |
config.c: fix brace detection at end of file
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Improve mouse button parsing: helpers and bind{code/sym}
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This modifies `bindcode` and `bindsym` to use `get_mouse_bindcode` and
`get_mouse_bindsym`, respectively, to parse mouse buttons. Additionally,
the `BINDING_MOUSE` type has been split into `BINDING_MOUSECODE` and
`BINDING_MOUSESYM` to match keys and allow for mouse bindcodes to be
used. Between the two commands, all button syms and codes should be
supported, including x11 axis buttons.
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The following helper functions have been added to aid with parsing mouse
buttons from a string:
1. `get_mouse_bindsym`: attempts to parse the string as an x11 button
(button[1-9]) or as an event name (ex BTN_LEFT or BTN_SIDE)
2. `get_mouse_bindcode`: attempts to parse the string as an event code
and validates that the event code is a button (starts with `BTN_`).
3. `get_mouse_button`: this is a conveniency function for callers that
do not care whether a bindsym or bindcode are used and attempts to parse
the string as a bindsym and then bindcode.
None of these functions are used in this commit. The sole purpose of
this commit is to make the larger set more granular and easier to
review/manipulate. There will be a series of commits following this one
that will modify any command which uses a mouse button to use these
helpers.
|
|\ \ \ \
| | | | |
| | | | | |
swaybar: fix rendering of border and background
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes the rendering of borders and backgrounds for blocks. This
also makes the following changes:
* both borders and padding are scaled with the output
* both lines and rectangles are rendered without an antialiasing to
avoid bleeding outside the desired area
|
|\ \ \ \
| | | | |
| | | | | |
Fix segfaults on output destruction
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes two causes of segfaulting when an output is destroyed.
The first occurred when an output was never enabled. The issue was that
the destroy signal was never initialized so when it was emitted, sway
segfaulted. This was fixed by moving the initialization into
`output_create` since all outputs, regardless of whether they have ever
been enabled, will be destroyed at some point.
The second occurred when the cursor was on an output that was being
destroyed. The sway output would have already been removed, but if there
are other outputs, a cursor rebase would still occur. Since the
wlr_output still existed and the sway output was destroyed, the cursor
could be over nothing, resulting in a segfault when trying to get the
sway output, which was destroyed.
|
|\ \ \ \
| |/ / /
|/| | | |
cursor: allow scrolling tabs/stack on title border
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
This allows tabbed and stacked containers to be scrolled through when
the cursor is over the border of the title bar. The borders around the
other three edges of the contents should not be affected by this change.
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Simplify FreeBSD build
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
evdev-proto is installed by a dependency, so some files have been missed:
In file included from ../sway/input/cursor.c:3:
/usr/local/include/libevdev-1.0/libevdev/libevdev.h:30:10: fatal error: 'linux/input.h' file not found
#include <linux/input.h>
^~~~~~~~~~~~~~~
../swaybar/i3bar.c:3:10: fatal error: 'linux/input-event-codes.h' file not found
#include <linux/input-event-codes.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|\ \
| | |
| | | |
reload: apply seat cfgs after reading entire cfg
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Wait until all seat configs have been read before applying them on
reload. This prevents unnecessary attachment/detachment of input
devices and therefore creation/destruction of seat devices as
individual lines are read.
|
|\ \ \
| | | |
| | | | |
cmd_bind: pass the seat to execute_command
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`seat_execute_command` was incorrectly setting
`config->handler_context.seat` before calling `execute_command`. Since
`execute_command` was being called with a `NULL` seat argument,
`execute_command` was setting `config->handler_context.seat` to the
default seat. This resulted in all bindings being executed on the
default seat and causing undesired behavior for devices on other seats.
|
|\ \ \
| | | |
| | | | |
swaybar: handle SNI signals better
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes a crash caused by callbacks not matching the right sender,
and frees old values later, before they are re-assigned.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Also added a comment to make more obvious the reason for comparing
sni->status[0] == 'N'
|
|\ \ \ \
| | | | |
| | | | | |
cmd_swap: use handler context seat
|
| | |/ /
| |/| |
| | | |
| | | | |
Use the handler context seat instead of the default seat
|
|\ \ \ \
| |/ / /
|/| | | |
keyboard: update repeat timer before execution
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Since the keyboard can be destroyed by executing a binding (reloading
with a different seat attachment config), update the repeat timer before
executing the binding.
|
|\ \ \
| |/ /
|/| | |
cursor: allow mapping to all outputs
|
| | |
| | |
| | |
| | | |
Running `input "<input>" map_to_output *` resets the mapping to all outputs
|
|\ \ \
| | | |
| | | | |
Rewrite strip_whitespace and remove readline.c
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
All occurrences of read_line have been replaced by getline.
peek_line has been absorbed into detect_brace.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
seat_cmd_cursor: work on seat name provided
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of simulating events on the current seat, this makes it so
seat_cmd_cursor respects the seat name provided by `seat <name> cursor
<args>`. It also adds support for simulating events on all seats when
the wildcard is given.
This also defers the command when reading the config, which allows the
user to set the initial position of the cursor when the command is
included in the config file.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Unhide the cursor if container warping is enabled.
Also set the image_surface to NULL during view_unmap, otherwise the cursor will
try to access the surface which is currently being unmapped.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The view_unmap function contained an open coded version of
seat_consider_warp_to_focus, replace it with a call to the function.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The unhide and timeout retrieval functions are needed in a later commit. No
functional changes.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
swayidle: Fix sleep inhibitor not being acquired
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes #3377.
The sleep lock file descriptor was immediately closed after it was
acquired due to the dbus message being freed. Now the fd is duplicated
before the message is freed so the inhibitor stays active.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Unbreak build on 32bit platforms
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
../sway/desktop/transaction.c:367:17: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat]
transaction, transaction->num_waiting);
^~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/wlr/util/log.h:56:72: note: expanded from macro 'wlr_log'
_wlr_log(verb, "[%s:%d] " fmt, _wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
^~~~~~~~~~~
../sway/desktop/transaction.c:477:5: error: format specifies type 'long' but the argument has type 'unsigned int' [-Werror,-Wformat]
transaction->num_configures - transaction->num_waiting + 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/wlr/util/log.h:56:72: note: expanded from macro 'wlr_log'
_wlr_log(verb, "[%s:%d] " fmt, _wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
^~~~~~~~~~~
../sway/desktop/transaction.c:478:5: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat]
transaction->num_configures, ms,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/wlr/util/log.h:56:72: note: expanded from macro 'wlr_log'
_wlr_log(verb, "[%s:%d] " fmt, _wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
^~~~~~~~~~~
|
|\ \ \ \ \
| | | | | |
| | | | | | |
swaylock: Fix caps lock not updating immediately
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Partially fixes #2788. This change makes it so the lock screen is
redrawn whenever the caps lock modifier state changes, rather
on relying on the keypress event. This didn't work because
caps lock is disabled when the key is released, not pressed,
so the caps lock indicator does not go away until the next
keypress event.
|
| | | | | | |
|