aboutsummaryrefslogtreecommitdiff
path: root/swaybar/ipc.c
AgeCommit message (Collapse)AuthorLines
2019-04-24swaybar: hide mode visibility improvementsBrian Ashworth-0/+9
This allows swaybar to become visible when the mode changes (to any mode other than the default). swaybar will be hidden again when the modifier is pressed and released or when switching back to the default mode. This also applies the same logic to visible by urgency to hide swaybar when the modifier is pressed and released. These changes are to match i3's behavior.
2019-01-23Make json-c include respect pkg-config --cflagsJan Beich-1/+1
json-c.pc contains `Cflags: -I${includedir}/json-c`, so `<json-c/json.h>` won't be found unless the parent directory is searched by default.
2019-01-22swaybar: fix command malloc in workspace commandBrian Ashworth-1/+1
This fixes a typo on the malloc line in ipc_send_workspace_command. The plus one to the size for the null-terminator was outside of the malloc call, which was causing the incorrect pointer to be freed later in the function.
2019-01-22swaybar: fix workspace commandIan Fan-4/+21
Escape quotes and backslashes, allowing switching to workspace names like "1" (including quotes) and \
2019-01-22util.c: remove numlen functionIan Fan-5/+6
Its uses have been replaced by snprintf, which is more in line with its usage.
2019-01-21Replace wlr_log with sway_logM Stoeckl-7/+7
This commit mostly duplicates the wlr_log functions, although with a sway_* prefix. (This is very similar to PR #2009.) However, the logging function no longer needs to be replaceable, so sway_log_init's second argument is used to set the exit callback for sway_abort. wlr_log_init is still invoked in sway/main.c This commit makes it easier to remove the wlroots dependency for the helper programs swaymsg, swaybg, swaybar, and swaynag.
2019-01-16Fixes for small existing bugs.Connor E-1/+1
2019-01-16Remove usage of VLAs.Connor E-1/+2
2019-01-16bar_cmd_tray_bind: Use mouse button helpersBrian Ashworth-5/+7
This modifies `bar_cmd_tray_bindsym` to use `get_mouse_bindsym` for parsing mouse buttons. This also introduces `bar_cmd_tray_bindcode`, which will use `get_mouse_bindcode` for parsing mouse buttons. Like with sway bindings, the two commands are encapsulated in a single file to maximize shared code. This also modifies tray bindings to work off of events codes rather than x11 buttons, which allows for any mouse buttons to be used. For `get_bar_config`, `event_code` has been added to the `tray_bindings` section and will include to event code for the button. If the event code can be mapped to a x11 button, `input_code` will still be the x11 button number. Otherwise, `input_code` will be `0`.
2019-01-13Merge pull request #3344 from RedSoxFan/bar-mouse-bindings-improvedDrew DeVault-1/+1
Improve mouse button parsing: bar mouse bindings
2019-01-11swaybar: add status_edge_padding commandBrian Ashworth-1/+6
This adds the bar subcommand `status_edge_padding <padding>` to set the padding used when the status line is on the right edge of the bar.
2019-01-11swaybar: add status_padding commandBrian Ashworth-1/+5
Adds the bar subcommand `status_padding <padding>` which allows setting the padding used for swaybar. If `status_padding` is set to `0`, blocks will be able to take up the full height of the bar.
2019-01-10bar_cmd_bind: utilize mouse button helpersBrian Ashworth-1/+1
This modifies `bar_cmd_bindsym` to use `get_mouse_bindsym` for parsing mouse buttons. This also introduces `cmd_bar_bindcode`, which will use `get_mouse_bindcode` for parsing mouse buttons. Like sway bindings, the two commands are encapsulated in a single file with shared code. This also modifies swaybar to operate off of event codes rather than x11 button numbers, which allows for any mouse button to be used. This introduces two new IPC properties: - For `get_bar_config`, `event_code` has been added to the `bindings` section and will include to event code for the button. If the event code can be mapped to a x11 button, `input_code` will still be the x11 button number. Otherwise, `input_code` will be `0`. - Likewise for `click_events`, `event` has been added and will include the event code for the button clicked. If the event code can be mapped to a x11 button, `button` will still be the x11 button number. Otherwise, `button` will be `0`.
2018-12-31swaybar: do not create tray if hiddenIan Fan-0/+1
2018-12-31swaybar: implement tray configIan Fan-0/+34
2018-11-28Implement bar gapsBrian Ashworth-1/+41
Adds the bar subcommand `gaps <amount>|<horizontal> <vertical>|<top> <right> <bottom> <left>` to set gaps for swaybar. Due to restrictions on margins for a layer_surface, only the sides that are anchored to an edge of the screen can have gaps. Since there is support for per-side outer gaps for workspaces, those should be able to be used instead for the last side.
2018-11-17Implement strip_workspace_name.Connor E-3/+26
2018-10-25swaybar: reverse order of workspaces listIan Fan-1/+1
This makes it congruent with its visual appearance, making it easier to reason about.
2018-10-14swaybar: show hidden bar on urgencyIan Fan-3/+9
2018-10-14swaybar: show hidden bar on key eventIan Fan-1/+18
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.
2018-10-14swaybar: handle mode/hidden_state changesIan Fan-2/+44
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.
2018-10-14swaybar: streamline ipc handlingIan Fan-13/+15
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.
2018-10-14swaybar: move mode & mode_pango_markup to bar structIan Fan-8/+3
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.
2018-10-14swaybar: only subscribe to required eventsIan Fan-2/+6
This adds barconfig_update to the list of subscribed events, as well as checking when the other events need to be subscribed to.
2018-10-14swaybar: save id upon startupIan Fan-3/+3
This adds an id property to the bar, which will be used to filter barconfig_update events
2018-10-09bar-bindsym: address ianyfan's commentsBrian Ashworth-0/+2
2018-10-09Implement bar bindsymBrian Ashworth-0/+24
2018-09-28swaybar: remove unused focused_output propertyIan Fan-1/+0
2018-09-28swaybar: fail if bar id is invalidIan Fan-3/+15
2018-09-03Change _XOPEN_SOURCE defines to _POSIX_C_SOURCEsghctoma-1/+1
2018-08-30Fix feature macros for FreeBSDsghctoma-1/+1
On FreeBSD, snprintf and vsnprintf are visible only if _XOPEN_SOURCE >= 600.
2018-07-17swaybar: Read urgent colors from IPCRyan Dwyer-0/+12
2018-07-09Update for swaywm/wlroots#1126emersion-2/+2
2018-04-24Fix a bunch of swaybar memory leaksemersion-11/+2
2018-04-10fix swaybar ipc handlingdb-2/+2
Swap return with break in IPC_EVENT_WORKSPACE case to free resp. Change default return value to true. This causes IPC_EVENT_MODE changes to be rendered instantly.
2018-04-06Fix workspaces not updated on swaybarDrew DeVault-1/+1
2018-04-05Handle output removal on swaybarDrew DeVault-1/+1
2018-04-02Render i3bar blocksDrew DeVault-1/+1
2018-03-30Implement scroll wheel workspace switchingDrew DeVault-0/+8
2018-03-30Fix issues with swaybar on DRMDrew DeVault-2/+4
2018-03-29Fixed laggy focused output booleanDrew DeVault-4/+3
2018-03-29Pixel-perfect renderingDrew DeVault-20/+42
2018-03-29Add binding mode indicatorDrew DeVault-0/+1
2018-03-29Re-render bar on IPC updatesDrew DeVault-2/+44
2018-03-29Round up workspaces on each outputDrew DeVault-1/+62
2018-03-29Only utilize the configured outputsDrew DeVault-0/+37
2018-03-29Wire up basic IPC supportDrew DeVault-0/+199
2018-03-29Start port of swaybar to layer shellDrew DeVault-410/+0
This starts up the event loop and wayland display and shims out the basic top level rendering concepts. Also includes some changes to incorporate pango into the 1.x codebase properly.
2017-06-07Implement Tray IconsCalvin Lee-2/+38
This commit implements the StatusNotifierItem protocol, and enables swaybar to show tray icons. It also uses `xembedsniproxy` in order to communicate with xembed applications. The tray is completely optional, and can be disabled on compile time with the `enable-tray` option. Or on runtime with the bar config option `tray_output none`. Overview of changes: In swaybar very little is changed outside the tray subfolder except that all events are now polled in `event_loop.c`, this creates no functional difference. Six bar configuration options were added, these are detailed in sway-bar(5) The tray subfolder is where all protocol implementation takes place and is organised as follows: tray/sni_watcher.c: This file contains the StatusNotifierWatcher. It keeps track of items and hosts and reports when they come or go. tray/tray.c This file contains the StatusNotifierHost. It keeps track of sway's version of the items and represents the tray itself. tray/sni.c This file contains the StatusNotifierItem struct and all communication with individual items. tray/icon.c This file implements the icon theme protocol. It allows for finding icons by name, rather than by pixmap. tray/dbus.c This file allows for asynchronous DBus communication. See #986 #343
2017-03-10UnGNUify the codebaseDrew DeVault-0/+2