Age | Commit message (Collapse) | Author |
|
Implement common event loop for swaybar and swaylock
|
|
|
|
|
|
|
|
timerfd doesn't work on the BSDs, so this replaces it with a timespec
for the expiry and uses a poll timeout to check the timers when needed.
|
|
|
|
|
|
|
|
|
|
* The loop functions are now prefixed with `loop_`.
* It is now easy to add timers to the loop.
* Timers are implemented using pollfd and timerfd, rather than manually
checking them when any other event happens to arrive.
|
|
|
|
Bar mode/hidden_state events
|
|
|
|
Previously, when the bar was hidden, the height would be set to 0.
This meant that if the bar was empty upon reshow, it would not render
since the height was still 0, which made it seem there was a problem.
Now, the height is not reset, but the width is, to indicate upon reshow
that the layer surface needed reconfiguring.
|
|
|
|
|
|
Since wayland does not currently allow swaybar to create global
keybinds, this is handled within sway and sent to the bar using a custom
event, so as not to pollute existing events, called bar_state_update.
|
|
As well as adding the hidden_state property to the bar config struct,
this commit handles barconfig_update events when the mode or
hidden_state changes, and uses a new function determine_bar_visibility
to hide or show the bar as required, using, respectively,
destroy_layer_surface, which is also newly added, and add_layer_surface,
which has been changed to allow dynamically adding the surface.
|
|
The received json is handled outside of the case statement, which will
allow better extensibility.
This commit also introduces the variable bar_is_dirty, the return value
signifying whether the bar requires rendering.
|
|
This distinguishes the binding mode from the distinct config mode, as
well as removing mode_pango_markup from the config struct where it
should not be present.
|
|
|
|
|
|
This adds barconfig_update to the list of subscribed events, as well as
checking when the other events need to be subscribed to.
|
|
|
|
This adds an id property to the bar, which will be used to filter
barconfig_update events
|
|
Previously, if a change was sent to all bars, it would only actually
change the first bar it encountered, due to return value handling
|
|
Fix bar subcommand handler structs and selection
|
|
Fix clear_password_buffer
|
|
|
|
|
|
Fix edge gaps
|
|
|
|
|
|
Allows bar-subcommand to be a valid bar-ids
Destroys runtime created bar if trying to use a config only subcommand
Allow subcommands (except for id) to be ids
|
|
While allowing negative values for the outer gaps it is still prevented that negative values move windows out of the container. This replaces the non-i3 option for edge_gaps.
|
|
Ideally, this will be replaced with an IPC barconfig_update event in the
near future
|
|
|
|
Fix crash when view maps while locked
|
|
When locked, there is no active workspace so it must find the
focus_inactive workspace instead.
Additionally, this adds a check for if a view maps while there are no
outputs connected and handles it gracefully.
|
|
Fix pixel leaks when using fractional scaling
|
|
The basic idea here is to apply rounding after scaling. It's not as
simple as this, though, and I've detailed it in the comments for a
function.
In order to fix some pixel leaks in the title bar, I found it easier to
change how we place rectangles to fill the area. Instead of placing two
rectangles across the full width above and below the title and having
shorter rectangles in the inner area, it's now pieced together in
vertical chunks. This method involves drawing two less rectangles per
container.
|
|
fix: cmd_sticky crash sway with empty container
|
|
|
|
|
|
Fix documentation of output
|
|
|
|
Add libinput send_events config for touch
|
|
|
|
add libinput config for keyboard
|
|
Implement bar bindsym
|