Commit Graph

1197 Commits

Author SHA1 Message Date
Alex
12caae8fd2
Merge pull request #1410 from ErikReider/reverse-tray
Reverse the tray icon order
2022-02-02 12:56:25 +01:00
gemmelos
6be741afc9
Fix disabled tooltip on clock module
Seems like the tooltip text should only be set if both `if (tooltipEnabled())` and `if (config_["tooltip-format"].isString())` passes.
2022-02-02 12:41:06 +01:00
Evyatar Stalinsky
895bc878f8 Properly initialize distance_scrolled members.
When they were uninitialized it caused getScrollDir() to incorrectly return SCROLL_DIR::NONE in some circumstances
2022-02-01 22:42:03 +02:00
Erik Reider
941cf47693 Add config option "reverse-direction" 2022-01-28 19:14:46 +01:00
Erik Reider
32d42749f9 use pack_end instead of pack_start 2022-01-28 18:42:52 +01:00
Oto Šťáva
f4f1267a71 sway/language: fix segmentation fault for layouts not found in XKBContext 2022-01-25 20:03:19 +01:00
Felix Weilbach
bcadf64031 Show application icon when using sway window module
Signed-off-by: Felix Weilbach <felix.weilbach@t-online.de>
2022-01-24 17:37:51 +01:00
Alex
1c08d26af0
Merge branch 'master' into master 2022-01-24 09:23:23 +01:00
Alex
c4cc7ae396
Update client.cpp 2022-01-24 09:22:47 +01:00
Alex
65dd245362
Update clock.cpp 2022-01-24 09:21:56 +01:00
Kevin Locke
27df7a9aa7 battery: read status with spaces
According to the [sysfs class power ABI],
/sys/class/power_supply/<supply_name>/status may contain "Not charging".
This is already handled by status_gt() and update() (where ' ' is
converted to '-' for use in config keys) but was not being read due to
skipws.  Read with std::getline() to handle this case.

[sysfs class power ABI]: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-power

Fixes: #1139
Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2022-01-23 18:36:59 -07:00
nullobsi
3a6e5be59d
Use locale when formatting clock 2022-01-14 10:36:24 -08:00
Alex
9ae99c2621
Merge pull request #1386 from Anakael/pr/anakael/add-swap-flags
[Memory] feat: Add swap flags
2022-01-12 11:08:50 +01:00
Aleksei Bavshin
7f6bef2049
fix(util): make waybar_time formatter compatible with fmt 8.1.0
Stop using private implementation details of the `formatter<std::tm>`.
We never needed anything from the class besides the format specifier,
which is easily obtainable with public API.
2022-01-07 22:34:00 -08:00
Aleksei Bavshin
c0d84853ea
refactor(clock): extract waybar_time to util/waybar_time.hpp 2022-01-07 18:09:44 -08:00
mazunki
2301788a81 created a hotfix for libfmt-8.1.0 and above 2022-01-08 01:44:46 +01:00
mazunki
d22d6a4522 Merge branch 'master' of github.com:Alexays/Waybar 2022-01-08 01:02:57 +01:00
Johannes Wienke
4a85ec0f59 fix: match sway workspace order with sway one
Ensure that sway workspaces are always displayed in the same order as
used internally by sway. The previous sorting code always sorted
unnumbered workspaces lexicographically. This isn't the order used by
sway internally. Therefore, commands such as "workspace next" might have
jumped arbitrarily in waybar.

This commit reworks the sorting code such that the internal order is
always obeyed. Additionally, numbered persistent workspaces are inserted
at their natural position at the front of the workspace list while
unnumbered ones are appended. This should match the expectations of
workspace ordering known from sway's behavior.

The changes make the configuration property "numeric-first" unnecessary
as this will always be the case now. There's also no reasonable way
around this behavior now. Otherwise, persistent workspaces would jump
around in the visual representation as soon as they become known to
sway.

Fixes #802
2022-01-07 10:26:27 +01:00
Alex
ce56a80792
Merge pull request #1353 from bd-g/master
Network Module Enhancements
2021-12-30 10:03:04 +01:00
ilkecan
548bd2ab1a Add fixed-center option
Resolves #957
2021-12-28 16:00:25 +03:00
bd-g
7b9b10afc6
Merge branch 'master' into master 2021-12-26 20:14:26 -07:00
Alex
8ec321ddaf
Merge pull request #1221 from Anakael/pr/anakael/add-name-to-taskbar
[Taskbar] feat: Add name format replacementf feat: Add app ids mapping (ready for review)
2021-12-23 23:01:21 +01:00
Brent George
13d25d403e add to network module - signalStrengthApp shows what applications can run at current signal strength 2021-12-14 11:37:39 -07:00
Brent George
3218612d3b change frequency to GHz 2021-12-14 11:36:46 -07:00
Brent George
9bc86347be change signal strength to penalize overly strong signals 2021-12-14 11:34:15 -07:00
Alex
9b399ea2bb
Merge pull request #1334 from bd-g/master
Adjust max wifi strength that is possible
2021-12-14 07:43:41 +01:00
Alex
9608e0dabf
Merge pull request #1341 from fhost/fhost/logind
Add logind feature, with its 'inhibitor' module
2021-12-14 07:43:15 +01:00
aashu
ad20c0af2d
Merge branch 'master' into master 2021-12-14 10:22:25 +05:30
Alexis Cellier
eae65099d0 Add logind feature, with its 'inhibitor' module
The logind feature adds a new inhibitor module which allows to acquire
the inhibitor locks that logind presents.

Signed-off-by: Alexis Cellier <kernelserror@gmail.com>
2021-12-12 17:52:26 +01:00
John Fredriksson
f573e32d0b bar: Fix crash when unplugging HDMI
There is a double delete situation which causes a SIGSEGV to happen
during destruction of bar.

This was introduced by the group feature patch.

The same object pointer is stored in two different vectors of
unique_ptr<AModule> element. Replace with shared_ptr to handle
reference counting correctly and avoid double delete.
2021-12-05 10:55:07 +01:00
Brent George
2240c79b1a Adjust max wifi strength that is possible 2021-12-01 18:24:35 -07:00
Sergey Mishin
ece86c96d7
Feature Clock: show list of time in other timezones in a tooltip
Introducing new tooltip placeholder: {timezoned_time_list}. It will be replaced with the list of times in different time zones.
I've found it useful to hover the mouse pointer on time and see time in all my timezones at once.
Current timezone excluding from the list, so if you will scroll over the time module and change the active timezone, this timezone will be excluded from the list and the previous active zone will be added.
2021-12-01 17:08:05 +00:00
Alex
9e8a71c4ef
Merge pull request #1277 from dartkron/master
Refactor Clock: generalize multi timezones and single timezone cases
2021-12-01 11:51:35 +01:00
Alex
7069429c03
Merge pull request #1229 from kraftwerk28/sway-language-country-flag
`sway/language` country flag
2021-12-01 11:49:39 +01:00
Alex
05f7727dae
Merge branch 'master' into swaybar-ipc 2021-12-01 11:48:03 +01:00
Patrick Nicolas
9dac851f6d Allow sink in addition to source for pulse icon 2021-11-30 16:31:41 +01:00
Alex
b6e24bd527
Merge pull request #1305 from njoyard/feat/groups
Add module group feature
2021-11-29 15:19:48 +01:00
Aleksei Bavshin
b6d0a4b63f
feat(bar): allow customization of bar modes
Allow changing existing modes and adding new ones via `modes`
configuration key.
`modes` accepts a JSON object roughly described by the following type
```typescript
type BarMode = {
    layer: 'bottom' | 'top' | 'overlay';
    exclusive: bool;
    passthrough: bool;
    visible: bool;
};
type BarModeList = {
    [name: string]: BarMode;
};
```
and will be merged with the default modes defined in `bar.cpp`.

Note that with absence of other ways to set mode, only those defined in
the `sway-bar(5)`[1] documentation could be used right now.

[1]: https://github.com/swaywm/sway/blob/master/sway/sway-bar.5.scd
2021-11-28 12:19:45 -08:00
Aleksei Bavshin
cf5ddb2a5e
fix(swaybar-ipc): avoid unnecessary copy of struct swaybar_config 2021-11-28 11:34:21 -08:00
dmitry
3c2fa1625d Finish 2021-11-28 01:12:35 +03:00
Nicolas Joyard
0c18e57937 add group feature 2021-11-25 12:01:17 +01:00
mazunki
bb7b376fa6 removed commented useless runtime errors 2021-11-24 01:37:21 +01:00
kraftwerk28
89afa8e149 Checking if emoji byte doesn't get out of bounds 2021-11-24 02:15:10 +02:00
kraftwerk28
59040c53e4 Move definition to .cpp 2021-11-24 02:15:10 +02:00
kraftwerk28
0472d279e4 Add {flag} format replacement 2021-11-24 02:15:10 +02:00
dmitry
166504256a Merge branch 'master' of https://github.com/Alexays/Waybar into pr/anakael/add-name-to-taskbar 2021-11-23 23:10:49 +03:00
Aleksei Bavshin
2290fe10aa
fix(bar): handle ipc connection errors.
Try to use the default bar id (`bar-0`) if none is set.
2021-11-23 08:46:58 -08:00
Alex
6712cd05a3
Merge branch 'master' into disk 2021-11-23 13:54:17 +01:00
Alex
0a4841371b
Merge branch 'master' into workspace-manager-implementation 2021-11-23 13:52:08 +01:00
Alex
c51a973d60
Revert "dont escape essid in tooltip" 2021-11-23 10:10:14 +01:00
Alex
5a5f8c3b9f
Merge pull request #1256 from WuerfelDev/patch-1
dont escape essid in tooltip
2021-11-23 10:04:59 +01:00
Alex
b1dc3005b7
Merge pull request #1294 from Anakael/pr/anakael/ignore-by-title
feat: Ignore by title
2021-11-23 10:03:41 +01:00
dmitry
98f7a10a51 Fix sort 2021-11-23 03:18:00 +03:00
dmitry
23991b6543 Finish 2021-11-23 03:10:44 +03:00
Alex
331dfa87da
Merge pull request #1230 from ciarand/if-changes-isolate
Switch network module to read /proc/net/dev
2021-11-22 08:00:54 +01:00
Aleksei Bavshin
6bfb674d1b
fix(swaybar-ipc): better logs 2021-11-21 17:28:47 -08:00
dmitry
ef4c6a9ba3 Update to proto. Fix displaying. Rename classes. 2021-11-22 01:12:55 +03:00
dmitry
ffeecf626c Update names 2021-11-21 15:01:25 +03:00
Anakael
60c1706273
Update taskbar.cpp 2021-11-19 18:54:37 +03:00
dmitry
15761ef802 Merge branch 'master' of https://github.com/Alexays/Waybar into workspace-manager-implementation 2021-11-16 21:44:50 +03:00
John Fredriksson
ad3f46214d river/tags: Add possibility for mouse clicks
Left mouse click - set-focused-tags
Right mouse click - toggle-focused-tags
2021-11-15 22:31:38 +01:00
Alex
9fda6695ea
Merge pull request #1314 from Scrumplex/fix-negative-mpd-vol
Ensure MPD volume is not negative
2021-11-12 09:04:21 +01:00
Sefa Eyeoglu
b24f9ea569
Ensure MPD volume is not negative
If the primary output does not support changing volume MPD will report
-1. Ensure that negative volume levels will be represented as 0 instead.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2021-11-11 21:42:05 +01:00
mazunki
e10c9dd011 changing want_route_dump to default to true, since we say we have gwaddr support 2021-11-09 19:04:05 +01:00
mazunki
b0eab5d793 maybe we shouldn't actually runtime error, but still doing a check 2021-11-09 19:03:15 +01:00
mazunki
17bb5643ae explicitly checking for errors to silence unused variable warnings when writing to fd 2021-11-09 18:38:07 +01:00
Alex
b511103fd9
Merge pull request #1301 from jonbakke/patch-1
Clarify less than/greater than in warning.
2021-10-29 13:23:28 +02:00
Alex
122fe33636
Merge pull request #1302 from marwing/master
Mark memory used by zfs arc as free in memory
2021-10-29 13:22:58 +02:00
Mohammad Amin Sameti
48117a2e97 Fix divide by zero (#1303) 2021-10-29 14:12:48 +03:30
Marwin Glaser
decb13eef0
mark zfs arc size as free in memory 2021-10-28 19:10:46 +02:00
jonbakke
a015b2e3db
Clarify less than/greater than in warning.
I was seeing "[warning] Requested height: 20 exceeds the minimum height: 30 required..."
Lines 114-134 are relevant; 133 overrides the requested height with the minimum height when GTK wants more pixels to work with. So, the code is behaving as expected, and "less than" matches the code's logic.
2021-10-28 09:37:11 -07:00
Robin Ebert
0b66454d5c
Add spacing config option
This option allows to add spaces between the modules. It uses Gtk:Box's spacing property.
2021-10-20 11:30:40 +02:00
dmitry
75a6dddea5 Finish 2021-10-20 01:23:00 +03:00
Ashutosh Malviya
08b4a83331 Add reverse scrolling config option for pulseaudio
When natural scrolling is enabled, the behaviour of scrolling on pulseaudio
module is reversed, this commit reverses the direction of scroll variable
if "reverse-scrolling" is set to 1 in config file.
2021-10-15 19:07:25 +05:30
Sergey Mishin
c5e4d26320
Fix working without timezone 2021-10-05 10:20:06 +00:00
Sergey Mishin
d8bc6c92bb
Fix style and spelling 2021-10-05 09:55:30 +00:00
Sergey Mishin
110c66dd32
Refactor Clock: generalize multi timezones and single timezone cases
After this refactoring:
1. Timezones parses only once on start and the we refer to saved values. All time_zone.isString() checks gone to the constructor.
2. Single timezone case handling as case of multi timezoned logic.
3. Scroll event seems more clear now.
4. Tooltip template parses on start to check if there calendar placeholder or not. To do not calculate calendar_text() if not necessary.
2021-10-03 16:57:55 +00:00
Alex
6eb9606f23
Merge pull request #1274 from RobertMueller2/master
sway/window: include floating_nodes when considering window count for class
2021-10-03 10:27:26 +02:00
Sergey Mishin
174db444d6
Fix Clock crash on empty string in timezones field
Also fixed timezones behavior: now waybar starting with the first timezone in timezones list and falling back to timezone field only if timezones omit or has no elements.
2021-10-03 03:27:54 +00:00
Rene D. Obermueller
9972384597 sway/window: include floating_nodes when considering window count for class 2021-10-02 18:35:38 +02:00
Elyes HAOUAS
f18eb71ad7 Fix spelling errors
Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr>
2021-10-02 18:13:17 +02:00
Aleksei Bavshin
fbedc3d133
fix(tray): fix visibility of Passive items
`show_all` call from `Tray::update` attempts to walk the widget tree and
make every widget visible. Since we control individual tray item
visibility based on `Status` SNI property, we don't want that to happen.

Modify `Tray::update` to control the visibility of a whole tray module
only and ensure that the children of `Item` are still visible when
necessary.
2021-10-02 00:08:45 -07:00
WuerfelDev
8d04da1551
dont escape essid in tooltip
just like https://github.com/Alexays/Waybar/pull/834 but for the network name.
2021-09-21 13:15:36 +02:00
Alex
8534175c59
Merge pull request #1252 from gavinbeatty/fix-sway-language-tabs
sway/language: remove tabs, indent with 2 spaces
2021-09-19 19:08:28 +02:00
Darkclainer
6e5a0bc80a Add cpu usage for every core 2021-09-19 14:02:25 +03:00
Gavin Beatty
fe547901fa sway/language: remove tabs, indent with 2 spaces 2021-09-18 15:28:45 -05:00
Alex
67c7302938
Revert "Add CPU usage for every core" 2021-09-18 13:50:16 +02:00
Alex
8489646b66
Merge pull request #1250 from Darkclainer/master
Add CPU usage for every core
2021-09-18 13:48:39 +02:00
Alex
6938921e92
Merge pull request #1239 from mazunki/default-gateway
Added support for {gwaddr} as a variable
2021-09-18 13:47:32 +02:00
mazunki
1c91c71dcd updated original debug message with gateway ip, similar, yet not identical to ip route 2021-09-18 02:09:25 +02:00
mazunki
5f083193e4 fixed tab indentation to spaces, removed debug 2021-09-18 01:12:58 +02:00
Darkclainer
a51ac59252 Merge remote-tracking branch 'origin/master' 2021-09-17 22:30:31 +03:00
Alex
ce9e8aead3
Merge pull request #1222 from mswiger/use_g_memdup2
Use g_memdup2 instead of g_memdup
2021-09-17 20:56:47 +02:00
Alex
73ce2a99ff
Merge pull request #1238 from Matan1x/master
round brightness
2021-09-17 20:56:28 +02:00
Darkclainer
4bf577e89b Add CPU usage for every core 2021-09-17 21:18:21 +03:00
Aleksei Bavshin
0c1d3e30b6
fix(config): preserve explicit null when merging objects 2021-09-15 22:20:44 +07:00
Aleksei Bavshin
ccc60b4245
refactor(config): more sensible multi-bar include behavior 2021-09-15 22:15:27 +07:00
Aleksei Bavshin
1f16d7955d
refactor(config): drop getValidPath 2021-09-15 21:34:54 +07:00
Aleksei Bavshin
1f7d399b8e
refactor(config): remove style handling from Config 2021-09-15 21:34:53 +07:00
Aleksei Bavshin
4fff2eaaa0
refactor(client): change config visibility to public 2021-09-15 21:34:10 +07:00
Aleksei Bavshin
b377520a38
refactor(client): extract config handling into a new class 2021-09-14 13:15:54 +07:00
Rolf Vidar Mazunki Hoksaas
2c380a53ca added support for the {gwaddr} variable 2021-09-09 20:05:18 +02:00
Matan1x
aacd0fcc65 round brightness 2021-09-08 17:12:30 +03:00
Michael Swiger
4f76c9bd43 Only use g_memdup2 for glib >= 2.68 2021-08-29 13:11:04 -07:00
dmitry
94e53c3777 Add swap flags 2021-08-29 16:34:29 +03:00
dmitry
12c42fc6e4 Merge branch 'master' of https://github.com/Alexays/Waybar into pr/anakael/add-name-to-taskbar 2021-08-27 01:43:31 +03:00
Ciaran Downey
5186dd27e6 Use while (getline) instead of a for loop
Also make the comments surrounding the /proc/net/dev parsing clearer and
remove the apparently redundant "is the netdev file still good?" check.
2021-08-26 11:33:52 -07:00
Ciaran Downey
9d9f959769 Switch network module to read /proc/net/dev
This fixes issue #610 by reading bandwidth usage per-interface from
/proc/net/dev instead of globally via /proc/net/netstat. It supports the
same matching logic as elsewhere, so setting interface to '*' should
display the same sum-total bandwidth usage as the previous
implementation.
2021-08-25 15:00:05 -07:00
Tobias Bengfort
7b4b5e55a2 support format-icon for cpu und memory 2021-08-23 07:30:19 +02:00
Michael Swiger
cb49650ea4 Use g_memdup2 instead of g_memdup
This fixes a compile warning.

See: https://discourse.gnome.org/t/port-your-module-from-g-memdup-to-g-memdup2-now/5538
2021-08-22 14:46:40 -07:00
dmitry
38afa345dd Finish 2021-08-22 20:18:03 +03:00
Gavin Beatty
9ee701974f
Fix memory leak and data race
- Delete previous Layout before creating next one, and in destructor
- Use stack XKBContext instead of local new+delete
- Lock mutex in update() as it is called from a different thread than onEvent(res)
2021-08-20 10:06:35 -05:00
Alex
8940c3bbe8
Merge pull request #1211 from mswiger/fix_multi_display_tray_icon_scaling
Fix tray icon scaling on multi-display setups
2021-08-20 17:00:41 +02:00
dmitry
c058a2d196 Add number to shortDescripton 2021-08-20 01:09:16 +03:00
Isaac Freund
024fd42e27
river/tags: support urgent tags
Upstream river has a concept of urgent views/tags as of commit e59c2a73.
Introduce a new urgent style to expose this in the waybar module.
2021-08-19 15:01:49 +02:00
Michael Swiger
2d80d31527 Fix tray icon scaling on multi-display setups 2021-08-16 23:33:29 -07:00
dmitry
a87a967a97 Fix leak 2021-08-17 05:29:35 +03:00
dmitry
a57e431437 Add shortDescription 2021-08-17 05:28:41 +03:00
dmitry
61783aafaa save 2021-08-17 04:31:17 +03:00
Michael Swiger
4f6a9b1bc2 Fix incorrect tray icon scaling 2021-07-31 18:01:31 -07:00
Alex
65166109c9
Merge branch 'master' into fix_power_calc 2021-07-25 15:07:01 +02:00
dmitry
68e4457f3a Add tooltip-formay 2021-07-24 17:24:37 +03:00
Alex
445ad22580
Merge branch 'master' into keyboard_state 2021-07-23 15:59:08 +02:00
Grant Moyer
88a5f713ed Prefer keyboard-state over keyboard_state 2021-07-23 09:45:07 -04:00
Alex
b47705ac21
Merge branch 'master' into pr/anakael/sway-language-impr 2021-07-23 09:07:43 +02:00
Aleksei Bavshin
a5fe6f40b8
feat(tray): handle Status property
On the `Passive` value of `Status` tray items would be hidden unless
`show-passive-items` is set to true.
On the `NeedsAttention` value of `Status` tray items will have a
`.needs-attention` CSS class.
2021-07-22 08:04:06 -07:00
Aleksei Bavshin
245f7f4b11
feat(tray): handle scroll events 2021-07-22 08:04:05 -07:00
Aleksei Bavshin
1418f96e46
feat(tray): fallback to Title for items without ToolTip 2021-07-22 08:04:04 -07:00
Aleksei Bavshin
84a8f79bbe
feat(tray): implement tooltips (text only) for tray items 2021-07-22 08:04:03 -07:00
Aleksei Bavshin
4b6253e810
refactor(tray): infer changed properties from signal name
Comparing two GVariants is too expensive; let's collect the set of
properties updated by each signal and apply them unconditionally.
2021-07-22 08:04:00 -07:00
Aleksei Bavshin
929fc16994
fix(tray): ignore unused WindowId property 2021-07-22 08:01:25 -07:00
Alex
100d4d3499
Merge branch 'master' into pr/anakael/sway-language-impr 2021-07-21 09:40:19 +02:00
Michael Swiger
1440ed29d4 Fix blurry tray icons for HiDPI displays 2021-07-20 22:29:34 -07:00
Grant Moyer
311c5779ea Remove unused variable 2021-07-20 23:03:41 -04:00
Grant Moyer
08e886ebc6 Search for device automatically if none given 2021-07-20 21:09:00 -04:00
Grant Moyer
40e6360722 Update css class when locked/unlocked 2021-07-20 21:09:00 -04:00
Grant Moyer
642e28166b Add more configuaration 2021-07-20 21:09:00 -04:00
Grant Moyer
6dfa31fb17 Basic keyboard state module 2021-07-20 21:09:00 -04:00
Lars Christensen
6f2bfd43bf Fix pulseaudio icon name compilation error 2021-07-20 15:25:05 +02:00
Alex
f43f8773c4
Merge pull request #1169 from roosemberth/pa-control-active-sink
pulseaudio: Control currently running sink
2021-07-20 14:01:23 +02:00
Roosembert Palacios
86a43b9042
pulseaudio: Control currently running sink
In a system with multiple sinks, the default sink may not always be
the once currently being used. It is more useful to control the
currently active sink rather than an unused one.

This patch does not make any difference if the system only uses the
default sink.

Signed-off-by: Roosembert Palacios <roosemberth@posteo.ch>
2021-07-20 10:16:53 +02:00
Alex
ad09072a6d
Merge branch 'master' into pr/anakael/sway-language-impr 2021-07-15 22:17:38 +02:00
Patrick Nicolas
9c2b5efe7b Support per-device icon in pulseaudio 2021-07-15 09:20:43 +02:00
dmitry
8310700bbb Improve sway/language 2021-07-13 04:33:12 +03:00
tiosgz
78aaa5c1b4 Do not fail to parse a multi-bar config 2021-07-10 20:22:37 +00:00
John Helmert III
368e4813de
libfmt >=8.0.0 compatibility 2021-06-30 13:12:38 -05:00
Oskar Carl
e62b634f72
Workaround for circular imports 2021-06-21 19:29:09 +02:00
Oskar Carl
e8278431d2
Proper formatting 2021-06-21 19:05:01 +02:00
Oskar Carl
14f626d422
Add recursive config includes 2021-06-21 19:05:01 +02:00
Anthony PERARD
194f4c2f18 network: Fix mix use of default and state specific format
Whenever the network module is configured with both "format" and
"format-$state" and when the module use "format-$state" once, it
override the value that was saved from "format".

For example, if both "format" and "format-disconnect" are configured,
and only those, as soon as the module show information about a
disconnected interface, it will keep showing the format for
disconnected, even if the interface is connected again later.

Fix that by always setting a value to default_format_ in update() and
thus use the intended default format when needed.

Fixes #1129
2021-06-08 18:50:32 +01:00
Alex
9e34be7b16
Merge pull request #1126 from tperard/fix-network-auto-detection
Fix network interface auto detection
2021-06-05 18:06:30 +02:00
Anthony PERARD
33617b67f0 network: Fix one case where default route is deleted without notification
When an interface's state is change to "down", all the route
associated with it are deleted without an RTM_DELROUTE event.

So when this happen, reset the module to start looking for a new
external interface / default route.

Fixes #1117
2021-06-05 16:52:04 +01:00
Anthony PERARD
efaac20d82 network: Handle ip route priority
When there's a new default route with higher priority, switch to it.
2021-06-05 16:51:54 +01:00
Anthony PERARD
ce97df34e6 network: Also clear ifname in clearIface()
Since we reset `ifid_`, clear `ifname_` as well.
2021-06-05 16:51:40 +01:00
Anthony PERARD
23b9923eeb network: Parse whole RTM_NEWROUTE msg before interpreting it
The check to figure out if we have the default route should be after
the for loop that parses the route attributes, to avoid acting on
incomplete information. We are going to use more fields from the
message.
2021-06-05 16:51:35 +01:00
Maxim Baz
999c1b6b81
sway-language: ignore events with empty layout 2021-06-05 15:03:52 +02:00
Amanieu d'Antras
1a98ecf6b0
Merge branch 'master' into fix_power_calc 2021-05-30 11:17:54 +01:00
Anthony PERARD
f49a7a1acb network: Update WiFi information when available
The module doesn't update the `essid_` as soon as a WiFi interface is
connected, but that happens at some point later, depending on
"interval" configuration.

Fix that by rerunning the get WiFi information thread when the
`carrier` state changes. Also, we will clear the state related to WiFi
when the connection is drop to avoid stale information.
2021-05-27 19:36:14 +01:00
Anthony PERARD
28dfb0ba41 network: Fix use of carrier information
Some RTM_NEWLINK messages may not have the IFLA_CARRIER information.
This is the case when a WiFi interface report scan result are
available. `carrier` is used regardless of if it is present in the
message or not. This would result in the interface appearing
"disconnected" in waybar when it isn't.

This patch now check that `carrier` is available before using it.

The same thing could potentially happen to `ifname` so check if it's
set before recording it.

Fixes: c1427ff (network: Handle carrier information)
Fixes #388
2021-05-26 19:23:20 +01:00
Aleksei Bavshin
7aaa3df701
feat(bar): add config flag to disable exclusive zone 2021-05-21 22:44:18 -07:00
Aleksei Bavshin
729553d3bc
feat(bar): add config flag for pointer event passthrough 2021-05-21 22:44:17 -07:00
Alex
f78a802d11
Merge pull request #1106 from tperard/network-module-reword
Network module rework
2021-05-21 17:02:28 +02:00
Yonatan Avhar
99918205ed Correct .json to .jsonc 2021-05-21 17:53:43 +03:00
Yonatan Avhar
c65ec9e14f Add options to use a .json extension for the config filename 2021-05-21 15:54:48 +03:00
Anthony PERARD
c1427ff807 network: Handle carrier information
IFLA_CARRIER allows to know when a cable is plugged to the Ethernet
card or when the WiFi is connected. If there's no carrier, the
interface will be considered disconnected.
2021-05-15 16:38:00 +01:00
Anthony PERARD
0bb436f949 network: Rework interface auto detection, handle route change events
Last part of the rework of handleEvents(), this time we take the
getExternalInterface() function and add it to the handleEvents()
function. That way, waybar can react immediately when a new "external
interface" is available and doesn't need to probe. Also that avoid to
have two different functions consuming from the same socket and we
don't need to recode some of the functions that are already available
via libnl (to send and receive messages).
2021-05-15 16:38:00 +01:00
Anthony PERARD
0fc7ef6685 network: Rework address lookup to use only events
In order to get the IP address of an interface, we can get the
information out of NEWADDR events without needed to call getifaddrs().
And when now events are expected, we can requests a dump of all
addresses and handle addresses changes the same way via handleEvents()
only.
2021-05-15 16:38:00 +01:00
Anthony PERARD
c9bbaa7241 network: Rework initial interface search by using a dump
Instead of using an alternative way to list all links in order to
choose one when an "interface" is in the configuration, we can ask for
a dump of all interface an reuse the handleEvents() function.

This patch also start to rework the handleEvents() function to grab
more information out of each event, like the interface name.
2021-05-15 16:38:00 +01:00
Anthony PERARD
63fdf66ad6 network: Read all available messages on ev_sock_
When more than one message is available to read on the ev_sock_
socket, only the first one is read.

Make some changes to be able to read all the messages available by
setting the socket to non-blocking. This way we can detect when
there's nothing left to read and loop back to wait with epoll.
2021-05-15 16:38:00 +01:00
Anthony PERARD
9357a6cb88 network: Start the module with some text in the label_
Fix modules starting with no text, but not hidding.

Start with some "text" in the module's label_, update() will then
update it. Since the text should be different, update() will be able
to show or hide the event_box_. This is to work around the case where
the module start with no text, but the the event_box_ is shown.
2021-05-15 16:38:00 +01:00
Anthony PERARD
dbc06abf18 network: Initialise cidr_ like clearIface() does 2021-05-15 16:38:00 +01:00
Amanieu d'Antras
4d067619a8 Fix power calculation when battery units are in μA instead of μW 2021-05-15 15:55:38 +01:00
Max1Truc
f3a6e2d494 fix: incorrect battery percentage on Pinebook Pro 2021-05-10 21:00:14 +02:00
Alex
71d7596b6f
fix: bluetooth status tooltip 2021-04-30 14:23:49 +02:00
Patrick Hilhorst
a03283d65f
rewriteTitle: allow multiple sequential rewrites 2021-04-26 20:26:43 +02:00
Gabe Gorelick
7e13e26c29
[modules/battery] allow format-discharging-full
`format-discharging-full` has been impossible since #923 made it
impossible to be full and discharging at the same time. This should
fix that by only making `format-charging-full` impossible. Whether
or not that should be allowed is a good question, but beyond the
scope of this change.

Fixes #1031
2021-04-25 22:00:24 -04:00
David96
2213380dc0 [modules/pulseaudio] fix bluetooth class for PipeWire
apparently, pipewire-pulse slightly changed the naming of the sink.
2021-04-25 11:19:35 +02:00
Matthias Richter
af3c868a5b Catch exception on erroneous rules
std::regex and std::regex_replace may throw an std::regex_error if the
expression or replacement contain errors.

Log this error and carry on with the next rule, so that the title is
shown even if the config contains errors.
2021-04-21 12:24:47 +02:00
Matthias Richter
b16c8972c7 Add option to rewrite sway/window title
Rewrites window title according to config option "rewrite".
"rewrite" is an object where keys are regular expressions and values are
rewrite rules if the expression matches. Rules may contain references to
captures of the expression. Regex and replacement follow ECMA-script
rules. If no regex matches, the title is left unchanged.

example:
"sway/window": {
  "rewrite": {
    "(.*) - Mozilla Firefox": " $1",
    "(.*) - zsh": " $1",
  }
}
2021-04-21 12:24:47 +02:00
Sefa Eyeoglu
fc89b01ba6
feat: implement mpd volume format template
Allow the user to show the current volume from MPD status via the
`format` and/or `tooltip-format` configuration options.

The values are provided by libmpdclient and are integers, generally
between 0-100 (without %). Values above 100 are also possible, as mpd
output plugins like `pulse` support volumes above 100%.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2021-04-20 08:35:47 +02:00
dmitry
ba278985e8 Add ignore-list param to wlr/taskbar 2021-04-18 21:34:29 +03:00
Alex
d0f60c47bf
Merge pull request #1070 from jgmdev/cpumodulefix
[Module CPU] fix crash due to empty frequencies.
2021-04-15 21:17:00 +02:00
Alex
07f2470e36
Merge pull request #974 from kamushadenes/patch-1
Improve Pulseaudio sink/source separation
2021-04-15 21:09:35 +02:00
jgmdev
f8f1e791a3 [Module CPU] fix crash due to empty frequencies.
On some systems (eg: ARM) the supported frequencies of the CPU are not
properly reported by /proc/cpuinfo so if that fails try to retrieve them
from /sys/devices/system/cpu/cpufreq/policy[0-9]/cpuinfo_[max|min]_freq.
2021-04-15 14:30:29 -04:00
Petri Lehtinen
c850212288 Use the correct battery status when multiple batteries are present 2021-03-28 20:07:35 +03:00
Alex
600afaf530
Merge pull request #1037 from Moonlight-Angel/cpu-frequency
Add cpu min/max/avg frequencies
2021-03-25 12:09:42 +01:00
nullobsi
bf3efdb89c
Merge branch 'master' into master 2021-03-14 21:34:25 -07:00
Antonin Reitz
a49b12b66b Fix CPU load values 2021-03-12 20:58:51 +01:00
nullobsi
1573e1eb97
change variable instead of substr(len) 2021-02-26 13:29:58 -08:00
nullobsi
9b9daaee6f
Merge branch 'master' into master 2021-02-26 13:22:34 -08:00
Genesis
99643ba2e6
Stub parseCpuFrequencies on *BSD platforms 2021-02-25 09:14:51 +01:00
Genesis
08ea5ebe1f
Add cpu frequency 2021-02-25 09:14:51 +01:00
Aleksei Bavshin
943ba3a2da
fix: schedule output destruction on idle callback
Defer destruction of bars for the output to the next iteration of the
event loop to avoid deleting objects referenced by currently executed
code.
2021-02-22 18:35:09 -08:00
nullobsi
b4728f2e1d
Merge branch 'master' into master 2021-02-16 21:51:31 -08:00
Alex
08e19602f7
Merge pull request #1015 from alebastr/rfkill-events
rfkill code refactoring
2021-02-11 10:20:13 +01:00
nullobsi
b12b500bfc
Merge branch 'master' into master 2021-02-10 09:39:03 -08:00
Aleksei Bavshin
e786ea601e
fix(rfkill): handle EAGAIN correctly 2021-02-10 08:26:21 -08:00
Aleksei Bavshin
6d5afdaa5f
fix(network): don't block the main thread on rfkill update
Moving rfkill to the main event loop had unexpected side-effects.
Notably, the network module mutex can block all the main thread events
for several seconds while the network worker thread is sleeping.

Instead of waiting for the mutex let's hope that the worker thread
succeeds and schedule timer thread wakeup just in case.
2021-02-09 21:27:22 -08:00
Aleksei Bavshin
52dd3d2446
refactor(bluetooth): remove interval and timer thread
The timer thread was always reading the same value from Rfkill state.
2021-02-09 21:27:21 -08:00
Aleksei Bavshin
ecc32ddd18
refactor(bluetooth): remove Bluetooth::status_
The string was always overwritten in `update()`; don't need to store
temporary value in the class.
2021-02-09 21:27:20 -08:00