Commit Graph

2593 Commits

Author SHA1 Message Date
Alexis Rouillard e9d0f2254d
Merge pull request #1784 from ruanformigoni/issue-1681
exec runs after on-* events
2025-06-22 08:50:48 +01:00
Alexis Rouillard 71c6c6032b
Merge pull request #4133 from Roc25/persistent-only
Add persistent-only setting for hyprland/workspaces
2025-06-22 08:50:33 +01:00
Alexis Rouillard 780e96bd78
Merge pull request #4131 from belcaik/master
Add support for mouse side buttons (back/forward) to control track navigation in mpris module
2025-06-22 08:45:41 +01:00
Alexis Rouillard a563a3fceb
Merge pull request #4127 from iostapyshyn/master
niri/workspaces: Add empty icon
2025-06-22 08:45:13 +01:00
Alex 286cff2e3d fix: lint 2025-06-22 09:44:35 +02:00
Alexis Rouillard cbdbc492bb
Merge pull request #4097 from RobertMueller2/sway-window-marks
feat: sway/window: provide {marks} format replacement
2025-06-22 08:43:27 +01:00
Alexis Rouillard d6b6158ae9
Update custom.cpp 2025-06-22 09:42:14 +02:00
Alexis Rouillard f314150736
Merge branch 'master' into issue-1681 2025-06-22 08:41:15 +01:00
Alexis Rouillard 6206cebd75
Merge pull request #3887 from torstehu/fix-typo
Fix typos in function, variable names and in documentation
2025-06-22 08:39:23 +01:00
Alexis Rouillard 0cae53747e
Merge pull request #3881 from TripleTrable/AModules/fix-expand-fill-no-center
Fixes: Add stretching of modules and modules-center toggling
2025-06-22 08:38:08 +01:00
Alexis Rouillard 249b452829
Merge pull request #4040 from coreydoughty/hypr-submap-patch
hyprland/submap: allow pango markup.
2025-06-22 08:33:53 +01:00
Alexis Rouillard bfedb7c446
Merge pull request #4155 from Yutsuten/fix/wide-char-calendar
Fix calendar extra padding if there are wide characters
2025-06-22 08:32:50 +01:00
Alexis Rouillard 9ca04ee2fd
Merge pull request #4048 from LiterallyVoid/literallyvoid/fix-4047-deadlock
Fix signal safety deadlock
2025-06-22 08:32:36 +01:00
Alexis Rouillard eea9561525
Merge pull request #4092 from RobertMueller2/issue_3981
Issue 3981: try and fix memory leak in privacy module
2025-06-22 08:31:06 +01:00
Alexis Rouillard bef539e4de
Update privacy_item.cpp 2025-06-22 09:30:46 +02:00
Alexis Rouillard 456c3add4a
Merge pull request #4102 from edwin0cheng/style-sym
Use load_symbolic for gtk icon to support styling in tray icon
2025-06-22 08:29:42 +01:00
Alexis Rouillard 3d00c4bed4
Merge pull request #4160 from davidemanini/icon-label
AIconLabel.cpp: honour "rotation" property and add "swap-icon-label" propery
2025-06-22 08:27:07 +01:00
Alexis Rouillard 44a8910022
Merge pull request #4173 from S0nter/master
privacy: ignore some streams
2025-06-22 08:24:22 +01:00
Alexis Rouillard 341e39fbcf
Merge pull request #4210 from stkth/feat/display-systemd-system-state
Feat/display systemd system state
2025-06-22 08:24:04 +01:00
Alexis Rouillard 7b9db134dd
Merge pull request #4207 from markx86/fix/mpris
fix: MPRIS widget not hiding when no player is active
2025-06-22 08:23:09 +01:00
Alexis Rouillard 7d5905b38c
Merge pull request #4204 from stkth/feat/add-swap-state-to-memory-module
modules: memory: Add swapState format argument
2025-06-22 08:22:36 +01:00
Alexis Rouillard 5a013bdba0
Merge pull request #4209 from notpeelz/fix-formatting
Fix CI clang-format
2025-06-22 08:21:38 +01:00
Alexis Rouillard ae777c65a6
Merge pull request #4212 from notpeelz/fix-namespace-pollution
Fix namespace pollution
2025-06-22 08:21:24 +01:00
peelz 8daaad1e13 fix: don't use c++20 chrono literals
Unfortunately we can't use these yet because the freebsd build (clang)
still uses HowardHinnant/date, which doesn't provide literal suffixes.
2025-06-22 00:56:56 -04:00
peelz 25f432b0ce refactor: avoid Gio namespace pollution 2025-06-22 00:50:25 -04:00
peelz e4dd2ecc5a refactor: avoid namespace pollution in util/date.hpp 2025-06-22 00:50:25 -04:00
Steffen Kothe cfb47790ad modules: systemd_failed_units: Introduce systemd state variables
Systemd provides the status of a given user and system session as a
human readable string.

Retrieve this information via RequestSystemState and guard the
retrieve of failed units depending on this request.

The functionality is extended but does not change, which means that
failed units in any granularity are displayed as before.

Update documentation in the meantime.

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 16:53:12 +00:00
Steffen Kothe d5e3a9f894 modules: systemd_failed_units: Enforce visibility of event box on every update
Instead if guarding visibility in if condition, enforce visibility
regardless of the state of the current update.

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 16:51:13 +00:00
Steffen Kothe 0731117679 modules: systemd_failed_units: Introduce RequestFailedUnits member
Split-out request of failed units from systemd into a separate member
function.

This increases the readability and extendability, but preserves the
current functionality (non-functional change).

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 16:51:13 +00:00
Steffen Kothe 4bb06b86bc modules: systemd_failed_units: Use explicit g_variant_get_uint32
Determining of failed units can be done by usage of explicit uint32
function with direct return due to auto lambda expression.

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 16:47:27 +00:00
Steffen Kothe 74255d0c7e modules: systemd_failed_units: Move DBUS proxy check into lambda function
Checking for the availability of a given proxy member can be done in the
lambda function as well.

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 16:47:25 +00:00
Steffen Kothe 5c2cf4c65c modules: systemd_failed_units: Fail early if state did not change
Prefer early exit if last status matches the current status.

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 16:47:07 +00:00
Steffen Kothe dcbbe3bb97 modules: systemd_failed_units: Move nr_failed calculation to updateData
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 16:46:06 +00:00
Steffen Kothe 37a6106d3e modules: systemd_failed_units: Introduce nr_failed as member
Keeping nr_failed as member allows to split-out calculation of overall
failed units into updateData.

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-21 15:17:59 +00:00
peelz b8a985d606 style: fix formatting 2025-06-21 10:54:16 -04:00
Sonter 8f35dc17b8
Merge branch 'Alexays:master' into master 2025-06-20 18:30:56 +00:00
Alexis Rouillard 93d85a0cea
Merge pull request #4190 from notpeelz/fix-network-rfkill-update
fix: network module not displaying rfkill state
2025-06-20 16:14:38 +01:00
Alexis Rouillard 3abbdb849d
Merge pull request #4191 from notpeelz/fix-length-error-output-description
fix: length_error thrown in handleOutputDescription
2025-06-20 16:14:22 +01:00
Sonter 2f6f9620d2
Merge branch 'Alexays:master' into master 2025-06-20 14:32:05 +00:00
markx86 c266befe0a
fix: MPRIS widget not hiding when no player is active 2025-06-20 14:02:01 +02:00
Steffen Kothe bdcab011ee modules: memory: Add swapState format argument
Add an argument to the memory module which displays the state of the
swap configuration of the local system.

Usage of swap does not necessarily indicate if swap is on or off.

Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
2025-06-19 18:44:31 +00:00
markx86 af9d61fa8f
fix: `cldMonShift_` not getting initialized in `Clock()` constructor
Initialize `cldMonShift_` member in the `clock` module constructor. This
fixes a bug where the calendar tooltip would break after a reload, when
in month mode.
2025-06-19 00:35:54 +02:00
Bahnschrift 800c4b56cc Merge remote-tracking branch 'source/master' 2025-06-18 18:42:23 +10:00
peelz bd28bb959f fix: use spdlog in zxdg_output_v1_listener callbacks 2025-06-13 22:57:31 -04:00
peelz f4496c9648 fix: length_error thrown in handleOutputDescription 2025-06-13 22:51:03 -04:00
peelz 07468357f4 fix: network module not displaying rfkill state 2025-06-13 21:40:18 -04:00
Taimase 3ebf2d96e5 fix continuousWorker in the custom module by capturing the buffer by reference. 2025-06-11 01:12:08 -06:00
Sonter 4d9403601a privacy: format with clang-format 2025-06-08 12:53:46 +03:00
Gregor Kleen 831602a913 privacy: default to ignoring all stream.monitor pw nodes 2025-06-08 12:23:50 +03:00
Gregor Kleen 703be13b00 privacy: introduce `ignore` option 2025-06-08 12:23:50 +03:00
gred 715503ec3e Rename vector to hiddenWorkspaces 2025-06-07 10:50:29 +03:00
Adrian Perez 81fb0daad2
feat: add a way to override electron app tray icons 2025-06-03 16:13:41 -07:00
Davide Manini 34484919d6 AIconLabel: honour `rotation' option; add `swap-icon-label' option 2025-06-03 14:54:41 +03:00
Mateus Eto 05cfd73804
Fix calendar extra padding if there are wide characters 2025-06-01 21:43:43 +09:00
gred 15f54cd6ef Fix hidden buttons 2025-05-21 01:38:03 +03:00
gred 24a30b7ffd Add sorting with centered special workspaces 2025-05-21 01:01:23 +03:00
gred 4f55d7da90 Add persistent-only setting for hyprland/workspaces 2025-05-20 23:00:09 +03:00
belcaik d41a664779 refactor: use command pattern for button actions 2025-05-19 23:12:42 -04:00
belcaik cdf3ca910d feat: Add support for side buttons mouse navigation in handleToggle
mapped buttons config on-click-backward and on-click-forward on mpris module to previous/next handle
GTK codes are 9 and 8
2025-05-19 22:52:01 -04:00
Illia Ostapyshyn 19d2430516
niri/workspaces: Add empty icon 2025-05-19 23:01:19 +02:00
Duncan Overbruck 47e0f42523
niri: add support for urgency indicators to workspaces 2025-05-14 20:33:11 +02:00
Khiet Tam Nguyen 6319569ed0
Merge branch 'Alexays:master' into hyprland/windowcount 2025-05-09 20:46:00 +10:00
Edwin Cheng 0340760e12 Use load_symbolic for gtk icon instead of load_icon. 2025-05-07 16:57:54 +08:00
Rene D. Obermueller f4b68f41e6 feat: sway/window: provide {marks} format replacement 2025-05-04 07:50:28 +02:00
Rene D. Obermueller ff4ed82693 memory leak: 2nd attempt 2025-05-03 11:29:53 +02:00
Pol Rivero 4ae2b6f1ba Implement ignore-list 2025-05-02 15:48:34 +02:00
Pol Rivero c9215ad818 Minor code cleanup 2025-05-02 14:29:44 +02:00
Rene D. Obermueller 72184b2205 Issue 3981: try and fix memory leak 2025-05-02 10:01:09 +02:00
Pol Rivero 61c5dad895 Fix some windows not being marked as active when opened
In some cases, the active event is arriving before the create event. We need to store the currently active address and initialize the windows accordingly
2025-05-01 21:03:46 +02:00
Pol Rivero 998fd7a192 Fix window title not being updated properly 2025-05-01 20:51:12 +02:00
Pol Rivero 72404a77f0 Initial implementation of active window
TODO:
- Sometimes the active event arrives before the create, in which case the window is not activated.
- The window title event also looks unreliable in some cases, will need to investigate
2025-05-01 20:22:34 +02:00
Pol Rivero 59c270ec06 Respect format-window-separator if workspace-taskbar is enabled 2025-05-01 19:26:44 +02:00
Pol Rivero a816812f81 Run clang-format 2025-04-30 16:20:11 +02:00
Pol Rivero 451d458545 Fix compilation errors after merge 2025-04-29 20:12:59 +02:00
Pol Rivero 4222032fa1 Merge remote-tracking branch 'upstream/master' 2025-04-29 19:59:42 +02:00
Rimsoo afeea62214
fixes #3676 including #3224 2025-04-24 23:32:47 +02:00
Alexis Rouillard 0332d2ebf8
Merge pull request #4046 from ebeem/sway-workspace-current-not-shown-fix
Sway Workspace: Fix workspace button not showing for tabbed/nested layouts
2025-04-24 11:32:56 +02:00
Alexis Rouillard 8b48982bf6
Merge pull request #4032 from RobertMueller2/issue_3974
wireplumber: fix potential nullpointer deref
2025-04-24 11:28:56 +02:00
Rimsoo 20642f47df
Fixed variant bug 2025-04-22 11:41:45 +02:00
Lena d0c6e91094 gps: add rfkill support 2025-04-18 22:56:47 +02:00
Lena 956e39d3d3 make gpsd receiver not poll 2025-04-18 22:56:47 +02:00
Lena 22ec8e0770 fix factory copy&paste typo 2025-04-18 22:56:47 +02:00
Lena d331331b76 add manpage 2025-04-18 22:56:47 +02:00
Lena dfa40d6a00 add all arguments 2025-04-18 22:56:47 +02:00
Lena 45ebf45343 Start GPS module 2025-04-18 22:56:36 +02:00
Austin Horstman 55f52c3457
treewide: clang and nix format 2025-04-15 14:56:28 -05:00
literallyvoid 517eb7651e Run `clang-format` on main.cpp 2025-04-14 12:31:23 -07:00
Alexis Rouillard 67272cc47f
Merge pull request #4042 from clemenscodes/wlr-taskbar-icon-title-fallback
wlr/taskbar: find icon by title as fallback
2025-04-14 20:53:06 +02:00
literallyvoid dbd3ffd732 Convert `reload` to a local 2025-04-12 17:54:10 -07:00
literallyvoid 97591c825a Remove `signalThread` and move reaping to `catchSignals` 2025-04-12 17:52:37 -07:00
literallyvoid b03ecb3d74 Move signal handling to main thread 2025-04-12 17:52:37 -07:00
Almarhoon Ibraheem 7e845f506e sway workspace: fix workspace button not shown in nested layouts 2025-04-12 18:31:34 +03:00
Austin Horstman afb1ee5422
audio_backend: fix crash
Getting crashes when called before we have proper information.
2025-04-11 14:53:47 -05:00
Corey Doughty 682492f7a9 This commit fixes #4023 2025-04-10 07:05:45 -04:00
Corey Doughty 633bf9e00f Hyprland submap allow pango markup. 2025-04-10 06:56:00 -04:00
Clemens Horn addf44d945
test 2025-04-07 20:51:35 +02:00
Clemens Horn e92b0a86b5
wlr/taskbar: find icon by title as fallback 2025-04-07 20:33:18 +02:00
Rene D. Obermueller 9ca52a48c8 wireplumber: fix potential nullpointer deref 2025-04-06 09:46:06 +02:00
Austin Horstman 91ef6e51ed
hyprland/workspaces: range find lint cleanup 2025-04-03 23:31:18 -05:00
Austin Horstman c5bc3bc59a
hyprland/workspaces: fix crash 2025-04-03 23:31:14 -05:00
Alexis Rouillard 4a8d527dd5
Merge pull request #3921 from bpandreotti/vertical-privacy
Add support for vertical orientation in privacy module
2025-03-28 09:52:48 +01:00
Alexis Rouillard b98e717433
Merge pull request #3941 from ChaosInfinited/features/systray-custom-icons
Features/systray custom icons
2025-03-28 09:46:22 +01:00
Alexis Rouillard fda7abb33d
Merge pull request #3878 from matt-fff/mw/hyprland-events-workspaces-v2
Migrate Hyprland workspace events to v2
2025-03-28 09:45:44 +01:00
Alexis Rouillard 2fdfd1028a
Merge pull request #3959 from voiceroy/ip-address-display
Provide an option to show ipv4, ipv6 or both
2025-03-28 09:25:44 +01:00
Alexis Rouillard a622dfd072
Merge pull request #3969 from LawnGnome/cffi-config-value-json
cffi: always return config values as JSON
2025-03-28 09:24:14 +01:00
Alexis Rouillard 775067f2da
Merge pull request #3995 from spectrum70/wip/login-proxy
add login-proxy option
2025-03-28 09:23:32 +01:00
Alexis Rouillard 508d3cd3dd
Merge pull request #3638 from RowanLeeder/ISSUE-3092
Resolves #3092 Add source support to wireplumber module
2025-03-28 09:23:01 +01:00
Loïc Bartoletti 4ba1947a50 fix(FreeBSD): Use dev.cpu temperature sysctl 2025-03-24 15:30:57 +01:00
Angelo Dureghello 6fd859c0c4 add login-proxy option
There are cases where systemd-logind is not used/running. Result is
that bcklight module will not run.

Add an option that, when set to false, allows backlight module to
work without systemd-logind.
2025-03-22 18:40:47 +01:00
Lars Niesen 8a15cbad5c
Fixes: Add stretching of modules and modules-center toggling
Thanks to tmccombs this commit fixes some inconsitencies in #3730.
These inconsitencies were:
- Fixed the oversight of missing the implementation of expand_center for
  center_ and right_
- Removes a last minut printf debugging statment I missed.
2025-03-09 16:15:39 +01:00
Pol Rivero e541936df9 Merge remote-tracking branch 'upstream/master' 2025-03-08 17:18:31 +01:00
Adam Harvey 906170400e
cffi: always return config values as JSON
Previously, string JSON values were special cased to be provided as
bare strings, which means that CFFI modules have to either know what
type each value is expected to be, or use a heuristic such as trying to
decode and then treating the value as a string on failure.

Instead, we can always return JSON, and let the downstream consumer
handle deserialising the value into whatever type is expected.

The new behaviour is gated on a new ABI version 2: modules built against
version 1 will continue to get the old behaviour.
2025-03-05 17:11:26 -08:00
Harishankar G 5e4dac1c0a
Newline as a seperator when displaying IPv4 and 6 at the same time 2025-03-05 15:29:21 +05:30
Matthew White f7b4451564
fix(hyprland): support additional v2 events 2025-03-04 10:23:19 -07:00
Harishankar G 4a6c417ef5
Add format replacements
For cidr6, netmask6
2025-03-04 19:09:21 +05:30
Matt White 17cee0d876
feat(hyprland): support workspacev2 2025-02-26 18:56:11 -07:00
Matt White 0c6ca8321c
feat(hyprland): support destroyworkspacev2 2025-02-26 18:56:11 -07:00
Matt White 26a344b131
feat(hyprland): support createworkspacev2 2025-02-26 18:56:11 -07:00
Harishankar G 8bd0285c88
Remove redundant if condition 2025-02-26 16:06:58 +05:30
Harishankar G 212c676251
Provide an option to show ipv4 or ipv6 or both of them 2025-02-26 15:59:33 +05:30
Alexis Rouillard 0b87af9372
Merge pull request #3922 from hansp27/niri-language-dont-ellipsize
turn off ellipsize for niri/language module
2025-02-20 09:11:33 +01:00
Alexis Rouillard fe3dda4c23
Merge pull request #3932 from rokiden/fix-urgent-special
hyprland/workspaces: fixed urgent for special workspaces
2025-02-20 09:11:07 +01:00
Alexis Rouillard 0d8d42573b
Merge pull request #3945 from zjeffer/fix/zjeffer/hyprland-ipc
Hyprland IPC improvements
2025-02-20 09:10:26 +01:00
Alexis Rouillard 533d5de243
Merge pull request #3942 from aruhier/pr_battery_module
fix: battery runtime estimation with negative sysfs values
2025-02-20 09:09:28 +01:00
zjeffer bcee548f5e Fix workspacerules not taking into account defaultName 2025-02-20 00:06:05 +01:00
zjeffer 37c6cd42f5 fix freebsd compilation 2025-02-19 21:15:18 +01:00
zjeffer a4989cedae formatting 2025-02-19 21:02:59 +01:00
zjeffer 5b8839ab5c Hyprland IPC improvements
Fixes IPC being blocked at shutdown
2025-02-19 20:45:47 +01:00
Anthony Ruhier 4be1f3bf42
fix: battery runtime estimation with negative sysfs values
Some drivers (example: qualcomm-battmgr, present on Snapdragon X1
laptops) expose the current_now and power_now values in sysfs as
negative int when the device is discharging, positive when charging.

This breaks the battery runtime estimation in Waybar, as it expects a
uint32 for power_now.

Change the battery module to use the absolute values of current_now and
power_now.
2025-02-16 18:33:03 +01:00
Kaosu d1998de47a add setCustomIcon and try to apply such when ID is known 2025-02-16 14:22:10 +01:00
Kaosu 78d5c3ef3a init custom icons from config per tray 2025-02-16 14:21:34 +01:00
Denis Kazimirov cc94278c4e
hyprland/workspaces: fixed urgent for special workspaces 2025-02-10 18:32:57 +05:00
hansi 0abb2166a4 turn off ellipsize for niri/language module 2025-02-08 00:29:09 +04:00
Bruno Andreotti a26ed50d0f
Add support for vertical bars in privacy module 2025-02-07 14:39:07 -03:00
Pol Rivero 4dbb874f7c Merge remote-tracking branch 'upstream/master' 2025-02-06 12:19:57 +01:00
Alexis Rouillard c32d5e3883
Merge pull request #3898 from Duckulus/master
[hyprland/window] enable tooltip for hyprland window module
2025-02-05 11:44:28 +01:00
Konstantin Vukolov e32a678478 Hide upower module when specified device disconnected 2025-02-05 00:02:29 +03:00
Pol Rivero 1a9f5aced7 workspace taskbars: Add button param to click command 2025-01-27 11:47:16 +01:00
Pol Rivero 7b854112ed workspace taskbars: Allow custom command on window click 2025-01-27 11:46:35 +01:00
Pol Rivero b4519c0819 workspace taskbars: Use sigc::mem_fun instead of lambda 2025-01-27 11:46:35 +01:00
Pol Rivero e0f3695523 workspace taskbars: Minor fixes
- Add missing CSS class to manpage
- Fix rare segfault when address is not found (seems to only happen when compiled for production)
2025-01-27 11:46:35 +01:00
Pol Rivero 5ee0d1c7fe workspace taskbars: Fix windows not showing
Windows were not being shown or updated unless the window-rewrite config were present.
2025-01-27 11:46:35 +01:00
Pol Rivero 3948c0d154 workspace taskbars: Focus window on click 2025-01-27 11:46:35 +01:00
Pol Rivero 53ca5a4883 workspace taskbars: Display windows in a consistent order
Use a vector instead of a map for for storing the workspace windows.
This orders the windows by the time they were added to the workspace, instead of sorting by address (which is effectively a random order). The new ordering seems to match the wlr/taskbar module
2025-01-27 11:46:35 +01:00
Pol Rivero e1649b001f workspace taskbars: Fix title not updating
Fix another older bug where the title of a window will not be updated after moving it to another monitor.
In onWindowMoved, when moving an orphan window to the display of the current bar, that window should no longer be an orphan.
2025-01-27 11:46:35 +01:00
Pol Rivero 5e1d6d1cc5 workspace taskbars: Fix title not updating
This seems to be an old bug that has been made visible with the new workspace taskbars feature.
Sometimes, when closing a window and re-opening a window of the same program, hyprland reuses the window address. Since m_orphanWindowMap was not being cleaned up on window close, the new window would not be updated properly.
2025-01-27 11:46:35 +01:00
Pol Rivero fdb9004048 workspace taskbars: More config options
- orientation
- icon-size
- icon-theme
2025-01-27 11:46:35 +01:00
Pol Rivero 1c07ca0099 workspace taskbars: Add config parsing
Use format from config instead of hardcoding
2025-01-27 11:46:35 +01:00
Pol Rivero 69e2e249a6 Initial implementation of workspace taskbars
Add a list of window titles and icons to each workspace (like wlr/taskbar but grouped by workspace).

Only implemented on hyprland for now.
2025-01-27 11:46:35 +01:00
Pol Rivero bc2e143ac5 Extract icon loading logic to separate class 2025-01-27 11:46:35 +01:00
Alex 481b01d9af fix: lint 2025-01-25 09:31:32 +01:00
Alexis Rouillard bb2c67ebad
Revert "Make battery module update on plugging/unplugging again (refs #2519)" 2025-01-25 09:24:48 +01:00
Alexis Rouillard dc64b3542b
Merge pull request #3474 from schmop/battery-plugging-instant-updates
Make battery module update on plugging/unplugging again (refs #2519)
2025-01-25 09:20:02 +01:00
Duckulus ba12ca71c0 enable tooltip for hyprland window module 2025-01-22 18:39:50 +01:00
Torstein Husebø 6004316f1a Fix typos in function, variable names and in documentation 2025-01-16 13:25:19 +01:00
Khiet Tam Nguyen 36a1c89e30
Merge branch 'Alexays:master' into hyprland/windowcount 2025-01-13 10:33:05 +11:00
Alexis Rouillard a4241d7008
Merge pull request #3823 from thetwistedlogic/feature/river-hide-vacant
Hide vacant tags config option on River
2025-01-12 11:32:45 +01:00
Alexis Rouillard ab0acd07fe
Merge pull request #3862 from emar10/config-include-wildcards
Allow using wildcards in config include paths
2025-01-12 11:29:26 +01:00
Pol Rivero 0992bf1b87 Escape tray tooltip text
Fix errors when the tooltip set by the tray apps contains markup characters
2025-01-10 16:41:33 +01:00
Alex Murkoff 6a29abb49e fix: never sleep cava when sleep_timer is 0 2025-01-10 15:27:41 +07:00
Sv. Lockal 865121b21d
Fix compilation with libc++
This file uses std::sort and does not import correct header.
Compilation with libstdc++ worked due to some indirect import, but compilation with LLVM libc++ fails.
2025-01-04 10:28:14 +00:00
YamaD d7e4a7d91f
add module wayfire/window, wayfire/workspaces 2025-01-03 15:22:46 +09:00
Ethan Martin d1dac2854a Allow using wildcards in config include paths
Updates `Config::tryExpandPath()` to return a vector of expanded path
matches instead of a single path wrapped in an optional, with an empty
vector indicating no matches.

`Config::resolveConfigIncludes()` iterates over all of these matches,
while other instances of path expansion (such as finding the base config
path) retain their existing behavior and only use the first match.
2025-01-02 20:50:39 -05:00
Khiet Tam Nguyen 565602114e
Merge branch 'Alexays:master' into hyprland/windowcount 2025-01-03 12:18:38 +11:00
Stefan Haan d100e78872 mpd: add uri and filename format arguments 2024-12-28 13:58:19 +01:00
Alexis Rouillard 5346649fc6
Merge pull request #3827 from pope/master
Escape markup characters in dwl/window
2024-12-26 09:37:00 +01:00
Alexis Rouillard 6ce881abd5
Merge pull request #3826 from DreamMaoMao/fix-hyprland-window-crash
fix: hyprland/window get empty ipc json data
2024-12-26 09:36:33 +01:00
Khiet Tam Nguyen d29a17d703
Merge branch 'Alexays:master' into hyprland/windowcount 2024-12-22 17:12:54 +11:00
Bahnschrift cf64b2c88c fix: un-hide tray when new icons are added 2024-12-19 12:29:58 +11:00
Bahnschrift 622f22d6b5 fix: hide tray when there are no non-passive icons 2024-12-19 12:09:31 +11:00
Carlo Teubner 8e276bb3f6 sway: fix "Mapping is not an object" warning
Fixes #3763.

Also a little code simplications while we're at it.
2024-12-17 22:05:16 +00:00
K. Adam Christensen 157ea44510
Escape markup characters in dwl/window
Without this, markup characters like [&><] will be injected directly
into the Label. Escaping them makes sure that the values will be printed
exactly as they appear in the window title or layout symbol.

Signed-off-by: K. Adam Christensen <pope@shifteleven.com>
2024-12-14 09:06:13 -08:00
DreamMaoMao 01ae117cfe fix: hyprland/window get empty ipc json data 2024-12-14 21:02:10 +08:00
twistedlogic 8e0964ad15 feat: is visible and urgent checks as well 2024-12-12 10:11:11 -04:00
twistedlogic 8024df0430 fix: edge case where tags get hidden after all views are killed
This fixes an edge case where focused tags would get hidden if all
clients on a tag get killed
2024-12-11 22:50:01 -04:00
twistedlogic 43af1b9ea0 feat: implement hide vacant for river 2024-12-11 22:18:00 -04:00
Alexis Rouillard e959f1d230
Merge pull request #3808 from Nambers/master
Using 'auto' instead of 'self' in backlight module
2024-12-07 09:58:30 +01:00
Alexis Rouillard 347c44209d
Merge pull request #3806 from meithecatte/livelock-fix
Add locking for interacting with the pulseaudio thread
2024-12-07 09:56:28 +01:00
Alexis Rouillard 758c14c5d8
Merge pull request #3801 from majutsushi/sway-workspaces-x11-class
sway/workspaces: use X11 class for XWayland windows
2024-12-07 09:55:57 +01:00
Gustaf Ullberg db943dae98 Let network module handle ipv4 and ipv6 simultaneously 2024-12-05 15:31:40 +01:00
eritque0arcus 6bac784b51
fix: use auto and add self as fallback 2024-12-04 12:46:09 -06:00
Maja Kądziołka 6d28740896
Add locking for interacting with the pulseaudio thread
Before this commit, Waybar would sometimes get into a state
where it would consume 100% of a CPU core, and the pulseaudio widget
would stop responding to volume adjustments.

In this state, the pulseaudio mainloop thread would spin, with the
counter of enabled defer events at 1, but no actual enabled defer
event in the list to get the counter back to zero after an iteration
in the mainloop.

This could happen if the unsynchronized interactions with the mainloop
thread happened to modify the list of deferred events at the same
time as the mainloop.

This commit introduces locking in accordance with the PulseAudio
documentation on the threaded mainloop:

> The lock needs to be held whenever you call any PulseAudio function that
> uses an object associated with this main loop. Those objects include
> pa_mainloop, pa_context, pa_stream and pa_operation, and the various event
> objects (pa_io_event, pa_time_event, pa_defer_event).
2024-12-03 19:37:36 +01:00
Jan Larres 4e05659109 sway/workspaces: use X11 class for XWayland windows
When using `window-rewrite`, the `class<>` rule would previously only
match against the `app_id` of a window. However, XWayland windows don't
have an app ID.

This change falls back to checking the `class` window property if there
is no app ID to support matching against XWayland windows.
2024-12-01 12:48:07 +13:00
Khiet Tam Nguyen 334fc6e0e4
Merge branch 'Alexays:master' into hyprland/windowcount 2024-11-30 19:37:29 +11:00
Alexis Rouillard 20ca48c3b8
Merge pull request #3768 from deprekated/fix_privacy_null_deref
fix null-deref due to unconstructed PrivacyNodeInfo
2024-11-20 09:02:38 +01:00
Lars Niesen 1e481b7ac0
fix broken clang-format to run pipeline 2024-11-20 00:00:51 +01:00
Lars Niesen f9acc1fed9
Add stretching of modules and modules-center toggling
This Patch allows the stretching of modules-{left,center,right} as well
add a "expand" flag to AModule. This allows one module to consume the
leftover space.
To allow the left or right modules to fully consume the center, the
changes also include a way to remove the center box (center_)
altogether.
2024-11-20 00:00:27 +01:00
Khiet Tam Nguyen 17d7cea4fd
Merge branch 'Alexays:master' into hyprland/windowcount 2024-11-17 08:37:04 +11:00
Kate Adkins 86ce9f7278 fix null-deref due to unconstructed PrivacyNodeInfo
This would cause Waybar to crash if the privacy module ever got
e.g. a empty (but properly null-terminated) string for the
application_name.
2024-11-15 12:32:55 -07:00
Ricardo Nogueira ddb3016440 add rewrite to wlr tooltip 2024-11-12 17:10:05 -03:00
Aqa-Ib 77b50b4c7a
fix hyprland's grouped window flags
Both flags are wrong, because:
- the active group member can be fullscreened.
- technically, a grouped window can be solo as well, because only the active group member is shown, the other members are hidden. Also you can have a group consisting of only one window.
2024-11-06 13:07:09 +00:00
Alexis Rouillard 5f260516af
Merge pull request #3674 from PassiHD2004/master
Add warning threshold to temperature module
2024-10-25 08:52:44 +02:00
Alexis Rouillard 9d89ddae9b
Merge pull request #3464 from findus/pulseaudio-default-sink
pulseaudio: volume indicator update on default output switch
2024-10-25 08:52:18 +02:00
Christian Fillion 92242f0b9d
hyprland: fix a data race at startup between sockets 1 and 2
`Workspaces::*` and `IPC::startIPC` may both call `getSocketFolder` at the same time.

This randomly causes crashes and/or corruption of the socket path.

Typical crash A:

    [2024-10-16 07:42:09.987] [info] Hyprland IPC starting
    malloc(): unaligned tcache chunk detected
    [2024-10-16 07:42:09.987] [error] Hyprland IPC: Unable to connect?
    Thread 1 "waybar" received signal SIGABRT, Aborted.
    (gdb) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
    (omitted for brievety)
    #9  0x00007ffff64ae745 in operator new (sz=sz@entry=296) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/new_op.cc:50
    #10 0x00007ffff65ab1f1 in std::filesystem::__cxx11::path::_List::_Impl::copy (this=0x555555a23350) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++17/fs_path.cc:249
    #11 0x00007ffff65ab3bd in std::filesystem::__cxx11::path::_List::_List (this=0x7fffffff9d30, other=<optimized out>) at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:454
    #12 0x00005555556f4ab1 in waybar::modules::hyprland::IPC::getSocket1Reply(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
    #13 0x00005555556f5e3d in waybar::modules::hyprland::IPC::getSocket1JsonReply(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
    #14 0x000055555571289c in waybar::modules::hyprland::Workspaces::setCurrentMonitorId() ()

Typical crash B:

    [2024-10-16 10:01:15.859] [info] Hyprland IPC starting
    [2024-10-16 10:01:15.859] [info] Loading persistent workspaces from Hyprland workspace rules
    Thread 8 "waybar" received signal SIGSEGV, Segmentation fault.
    (gdb) bt
    #0  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy
        (__d=0x5555558fbca8 "/", __s=0x2973961a26d35726 <error: Cannot access memory at address 0x2973961a26d35726>, __n=1)
        at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:433
    (omitted for brievety)
    #15 waybar::modules::hyprland::IPC::getSocketFolder[abi:cxx11](char const*)
        (instanceSig=0x7fffffffe604 "4520b30d498daca8079365bdb909a8dea38e8d55_1729051218_1982280648") at ../src/modules/hyprland/backend.cpp:41
    #16 0x000055555564230f in waybar::modules::hyprland::IPC::startIPC()::{lambda()#1}::operator()() const ()
        at ../src/modules/hyprland/backend.cpp:70
    #17 0x00007ffff64e1c34 in std::execute_native_thread_routine (__p=0x5555558119c0) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104
    #18 0x00007ffff62a339d in start_thread (arg=<optimized out>) at pthread_create.c:447
2024-10-17 06:46:07 -04:00
Christian Fillion 0e03c7a811
fix a segfault on signals received after main returns
The waybar process does not exit instantaneously.
Signals may be recevied after main has started freeing resources.

When a worker thread is in `fgets` this time window can last forever.
An easy way to duplicate the crash is pressing ^C twice with a Hyprland module.

    Thread 1 "waybar" received signal SIGSEGV, Segmentation fault.
    spdlog::sinks::sink::should_log (this=0x5f620b542ca5,
        msg_level=spdlog::level::info)
        at /usr/src/debug/spdlog/spdlog-1.14.1/include/spdlog/sinks/sink-inl.h:13
    13	  return msg_level >= level_.load(std::memory_order_relaxed);
    (gdb) p $_siginfo._sifields._sigfault.si_addr
    $1 = (void *) 0x5f620b542cad
2024-10-16 10:04:04 -04:00
PassiHD 6df26ccba7
feat: add warning threshold to temperature module
Signed-off-by: PassiHD <passihd@phoenixts.eu>
2024-10-09 20:22:58 +02:00
Khiet Tam Nguyen 278588b1a3
Merge branch 'Alexays:master' into hyprland/windowcount 2024-10-06 00:34:20 +10:00
Lars Niesen d684a6de21
Backlight: Set default to 0 to prevent breaking existing setups 2024-09-25 16:37:21 +02:00
Lars Niesen 04bda9f443
Backlight: Add minimum brightness
As currently it is possible to turn the brightness to zero which may not
be desirable, this patch add a configurable brightness check.
2024-09-25 06:24:03 +02:00
Rowan Leeder 2dfef1c213 Issue-3092 Add node type to wireplumber logs
- The module only fetches nodes for "node-type". This causes the 'onMixerChanged' log to spam whenever two or more
  wireplumber modules were registered on different nodes. To reduce this the unknown node warning will now only print
  if the node is not the focus of any current module.
2024-09-25 05:06:15 +10:00