Commit graph

1233 commits

Author SHA1 Message Date
Daniel Eklöf
8076a8da2a
Merge branch 'left-right-margin-typo' 2021-09-12 09:57:25 +02:00
Daniel Eklöf
3ff9fcab48
changelog: add new ‘unreleased’ section 2021-09-12 09:56:01 +02:00
Daniel Eklöf
dd19f070b3
Merge branch 'releases/1.7' 2021-09-12 09:55:25 +02:00
nogerine
ab0323e35e
config: fix incorrect attribute name in validation 2021-09-11 00:15:14 +00:00
Daniel Eklöf
42d944d020
meson/pkgbuild: bump version to 1.7.0 2021-09-03 20:39:01 +02:00
Daniel Eklöf
6fa118a5e5
changelog: prepare for 1.7.0 2021-09-03 20:38:26 +02:00
Daniel Eklöf
7a5ce73c94
Merge branch 'tag-formatters' 2021-09-01 19:12:42 +02:00
Daniel Eklöf
eff890ab9d
tag: add kib/mib/gib formatters 2021-09-01 19:12:29 +02:00
Daniel Eklöf
8c2e5d8bde
doc: yambar-tags: add missing last column to kb/mb formatters 2021-09-01 19:12:29 +02:00
Daniel Eklöf
f0b16033fe
doc: yambar-tags: codespell: mininum -> minimum 2021-09-01 19:12:28 +02:00
Daniel Eklöf
a6194c63e6
tag: add kb/mb/gb formatters 2021-09-01 19:12:27 +02:00
Daniel Eklöf
e201cc3d30
tag: add a ‘%’ formatter
Range tags can now be rendered as a percentage value, by using a ‘%’
formatter:

  {tag_name:%}
2021-09-01 19:12:16 +02:00
Daniel Eklöf
0da24198b3
Merge branch 'network-wifi' 2021-09-01 19:11:37 +02:00
Daniel Eklöf
4ab3263ebb
changelog: network: poll-interval 2021-09-01 19:11:14 +02:00
Daniel Eklöf
dabb2e1407
module/network: add support for periodically polling Wi-Fi stats
This adds a new ‘poll-interval’ option to the network module. When set
to a non-zero value, the following Wi-Fi stats will be updated:

* Signal strength
* RX+TX bitrate
2021-09-01 19:10:23 +02:00
Daniel Eklöf
d450bf12a1
module/network: re-request station info when we’re re-connected 2021-09-01 19:10:22 +02:00
Daniel Eklöf
e8a2f8df9a
module/network: reset signal strength and RX+TX bitrates on disconnect 2021-09-01 19:10:22 +02:00
Daniel Eklöf
066427d77a
examples: add ssid to wifi-network module 2021-09-01 19:10:22 +02:00
Daniel Eklöf
25379b7e1f
changelog: new network tags (ssid, signal rx+tx bitrate) 2021-09-01 19:10:22 +02:00
Daniel Eklöf
01ee028c4d
doc: network: document ssid, signal, rx-bitrate and tx-bitrate 2021-09-01 19:10:22 +02:00
Daniel Eklöf
a685dadb75
module/network: expose signal strength and rx+tx bitrates 2021-09-01 19:10:22 +02:00
Daniel Eklöf
b27eff36f9
module/network: nl80211: join the MLME mcast group, ignore messages not for us
This cleans up the nl80211 handling quite a bit, and adds initial
support for nl80211 notifications.

* We now join the nl80211 MLME multicast group (done by parsing the
  CTRL_ATTR_MCAST_GROUPS attribute in the reply to our
  CTRL_CMD_GETFAMILY request).  This gives us CONNECT and DISCONNECT
  notifications, allowing us to request and reset SSID that way, instead
  of detecting the link’s OPER state.

* Before parsing an nl80211 message, verify it’s for us, by looking
  for a NL80211_ATTR_IFINDEX attribute in the message (and comparing the
  contents with our previously detected ifindex).
2021-09-01 19:10:22 +02:00
Daniel Eklöf
9b3548736a
module/network: refactor: add foreach_nlattr()
This function iterates all attributes of a NETLINK_GENERIC message,
and calls the provided callback for each attribute.
2021-09-01 19:10:22 +02:00
Daniel Eklöf
5249d9ef79
module/network: use separate functions to connect to RT/GENL netlink 2021-09-01 19:10:21 +02:00
Daniel Eklöf
d39e6b8b94
module/network: initial support for Wifi extensions
Currently capable of getting the SSID.
2021-09-01 19:10:21 +02:00
Daniel Eklöf
e4e9587322
particle/progress-bar: fix regression in width calculation: = -> += 2021-08-30 18:00:41 +02:00
Daniel Eklöf
e9d762fa03
module/foreign-toplevel: disable debug logging 2021-08-27 10:14:54 +02:00
Daniel Eklöf
149798fe98
Merge branch 'alsa-capture-devices' 2021-08-27 06:42:42 +02:00
Daniel Eklöf
1079bca3eb
Silence “variable length array bound evaluates to non-positive value 0” 2021-08-26 13:27:29 +02:00
Daniel Eklöf
d1c7647b03
module/alsa: add support for capture devices
This mostly comes down to tracking whether each channel is a playback,
or capture channel, and using the appropriate APIs when dealing with
it.

Some cleanup related to this:

* Add a channel struct, for per-channel data. Previously, our channel
  list was just a list of ALSA channel IDs.
* We now store current volume per-channel (but volume min/max is
  per-device)
* Muted state is stored per-channel
* Track both the device’s playback and capture volume ranges, as well
  as whether the device *has* playback or capture volume.
* Get the playback/capture volume ranges once, during init, instead of
  at each update.
* Use struct pointers for the volume/muted channels. This way we don’t
  have to iterate all channels and to string comparisons on the name
  each time we update our state.
2021-08-26 11:03:12 +02:00
Daniel Eklöf
7c7c4e7ce9
module/alsa: rename {volume,muted}_channel -> {volume,muted}_name 2021-08-26 09:42:41 +02:00
Daniel Eklöf
b8dd247111
meson: run generate_version.sh in a C locale
Previously, only the date command inside the script was run with
LC_TIME=C.

But there’s no reason to be that conservative; we absolutely do not
want _anything_ in that script to generate locale dependent output.
2021-08-25 19:03:32 +02:00
Daniel Eklöf
427e0ce418
Merge branch 'zero-width-exposables-regressions' 2021-08-25 18:48:21 +02:00
Daniel Eklöf
7ca22a6dab
bar: don’t adjust spacing for left/center/right widths if all exposables are zero-width 2021-08-25 18:48:15 +02:00
Daniel Eklöf
af0b7e57d8
particle/ramp: don’t add margins if all sub-items are zero-width
That is, if all sub-items are zero-width, make sure *we* return a zero
width.
2021-08-25 18:48:15 +02:00
Daniel Eklöf
def90edde1
particle/progress-bar: don’t add margins if all sub-items are zero-width
That is, if all sub-items are zero-width, make sure *we* return a zero
width.
2021-08-25 18:48:15 +02:00
Daniel Eklöf
dab6428859
particle/map: don’t add margins if all sub-items are zero-width
That is, if all sub-items are zero-width, make sure *we* return a zero
width.
2021-08-25 18:48:15 +02:00
Daniel Eklöf
73e1d328c3
particle/list: don’t adjust spacing if all sub-items are zero-width
That is, if all sub-items are zero-width, make sure *we* return a zero
width, instead of a negative width.
2021-08-25 18:48:15 +02:00
Daniel Eklöf
ca43eb3016
particle/dynlist: don’t adjust spacing if all sub-items are zero-width
That is, if all sub-items are zero-width, make sure *we* return a zero
width, instead of a negative width.
2021-08-25 18:48:15 +02:00
Daniel Eklöf
0abc0f37dd
Merge branch 'river-rename-per-output-to-all-monitors' 2021-08-25 18:47:48 +02:00
Daniel Eklöf
103c3102a9
module/river: rename the ‘per-output’ option to ‘all-monitors’
This also inverts its meaning.
2021-08-25 18:47:33 +02:00
Daniel Eklöf
621f0e18e6
Merge branch 'foreign-toplevel' 2021-08-25 18:46:35 +02:00
Daniel Eklöf
9681e0aabe
module/foreign-toplevel: require version 3 of wl-output interface
The bar itself already does this, and doing so means we can always use
wl_output_release() (instead of wl_output_destroy()).
2021-08-25 18:46:19 +02:00
Daniel Eklöf
589a6f528a
module/foreign-toplevel: track outputs each toplevel is mapped on
* Bind the foreign-toplevel-manager object *after* the first round of
  global objects. This ensures we bind all pre-existing wl-output
  objects before binding the toplevel manager. This is important, since
  otherwise we wont get any output_enter() events for the initial set of
  toplevels.

* Bind xdg-output-manager, to be able to bind xdg-output objects for
  each wl-output.

* Add xdg-output-listener to each wl/xdg-output, to be able to get the
  outputs’ names.

* Add a list of outputs to each toplevel. The output_enter() event
  adds to this list, and output_leave() removes from it.

* Add option ‘all-monitors’. When not set (the default), toplevels are
  only included in the generated content if they are mapped on the same
  output as the bar itself. When *not* set, all toplevels are always
  included in the generated content.
2021-08-25 18:46:19 +02:00
Daniel Eklöf
01c6fc5f52
changelog: foreign-toplevel module 2021-08-25 18:46:19 +02:00
Daniel Eklöf
fe6cc43ad8
doc: river: provide -> provides 2021-08-25 18:46:19 +02:00
Daniel Eklöf
2173e0dc4d
doc: add man page for the new foreign-toplevel module 2021-08-25 18:46:19 +02:00
Daniel Eklöf
560d7464b4
module/foreign-toplevel: initial support
* ‘content’ is a template; the module returns a list of toplevels,
  each one instantiated using the content template.
* Each toplevel has 6 tags:
  - app-id (string)
  - title (string)
  - maximized (bool)
  - minimized (bool)
  - activated (bool)
  - fullscreen (bool)

To show the application name and title of the currently active window,
one can do:

    - foreign-toplevel:
        content:
          map:
            tag: activated
            values:
              false: {empty: {}}
              true: {string: {text: "{app-id}: {title}"}}
2021-08-25 18:46:18 +02:00
Nulo
eb94c8cceb
Add layer option
Only applies to Wayland and the default is still bottom.
2021-08-25 18:42:46 +02:00
Daniel Eklöf
7e7c011126
module/river: use wl_output_release() instead of wl_output_destroy() 2021-08-25 09:45:08 +02:00