Commit Graph
100 Commits
Author SHA1 Message Date
Alexis Rouillard 8c4787bd88 Merge pull request #4529 from dimti/hyprland-language-class
Add css class to hyprland language module of short_name language code
2026-07-03 22:58:31 +02:00
Alexis Rouillard 45b3b0aadb Merge pull request #4193 from burbschat/output-classes
Add CSS classes for sway workspace indicators depending on associated output
2026-07-03 22:58:25 +02:00
Alexis Rouillard 67500c4f1d Merge pull request #4950 from Skyfrei/4655
feature: add on-click-copy clipboard functionality
2026-07-03 22:55:16 +02:00
Alexis Rouillard 825ce43088 Merge pull request #5073 from ar-turek/persistent_workspaces_by_monitor_make_and_model
[feat] `sway/workspaces`: refer to outputs by their monitor identifier in `persistent-workspaces`
2026-07-03 22:53:48 +02:00
Alexis Rouillard 3033e15868 Merge pull request #4958 from v-dermichev/feature/workspace-name-css-class
feat (hyprland/workspaces): expose workspace name as CSS class
2026-07-03 22:52:06 +02:00
Alexis Rouillard 168794b44b Merge pull request #4986 from maltherd/master
Add "ignore-workspaces" option to sway/workspaces module
2026-07-03 22:50:34 +02:00
Alexis Rouillard dca564ca52 Merge pull request #4463 from diego-velez/master
feat: Show Niri/window component when workspace is empty
2026-07-03 22:50:25 +02:00
Alexis Rouillard dd69400676 Merge pull request #5047 from awused/mpd-idle
mpd: Implement idle events for Playing state
2026-07-03 22:49:22 +02:00
Alexis Rouillard 9dfdedfd3c Merge pull request #5034 from Agnibha007/fix-tooltip-pango
feat: support Pango markup in remaining tooltips
2026-07-03 22:48:39 +02:00
Alexis Rouillard cb206a60f8 Merge pull request #4134 from Roc25/hide-active
Add hide-active
2026-07-03 22:47:15 +02:00
Alexis Rouillard 21fbb96446 Merge pull request #4683 from RaphaelKimmig/master
feat: allow sorting niri workspaces
2026-07-03 22:44:26 +02:00
Alexis Rouillard 6c87b1d9da Merge pull request #5078 from DreamMaoMao/mango
feat: add mango modules: workspace,language,keymode,window,layout
2026-07-03 22:44:04 +02:00
Alexis Rouillard 0094af54bf Merge pull request #4841 from Cprakhar/feat/first-day-of-week-calendar
feat: add support for configurable first day of the week in calendar
2026-07-03 22:43:11 +02:00
Alexis Rouillard 6e28b4ae54 Merge pull request #3436 from lilly-lizard/river-tags-monitor-focus
river/tags: Allow river tags to be styled based on monitor focus
2026-07-03 22:42:34 +02:00
Alexis Rouillard c354b9b568 Merge pull request #5015 from yui-915/compact-bandwidth
feat: add compact versions of bandwidthBytes to network module
2026-07-03 22:42:22 +02:00
Alexis Rouillard 7858d998ee Merge pull request #4993 from cebem1nt/master
feature: group - add reveal-delay config option for drawer
2026-07-03 22:35:29 +02:00
Alexis Rouillard 3cde8607a6 Merge pull request #3994 from jeevithakannan2/ppd-split-driver
power-profiles-daemon: split driver into cpu driver and platform driver
2026-07-03 22:33:20 +02:00
Alexis Rouillard a40c7e7035 Merge pull request #4719 from oisanjaya/encode_icon_inside_label
Encode icon inside label
2026-07-03 22:32:42 +02:00
Alexis Rouillard 421e85239b Merge pull request #4761 from Benji-clm/smooth-power
feat(battery): add option to smooth power for more stable time_remaining estimates
2026-07-03 22:32:31 +02:00
Alexis Rouillard 93ecfb9eb1 Merge pull request #5126 from iamcheyan/feat/wlr-taskbar-bar-css-states
feat(wlr/taskbar): expose active toplevel state on the bar window
2026-07-03 22:30:26 +02:00
Alexis Rouillard 8b14336b75 Merge pull request #4883 from Cprakhar/feat/custom-format-icons-keyboard
feat: add custom format-icons for each key in keyboard-state module
2026-07-03 22:27:24 +02:00
Alexis Rouillard caa65e9f7b Merge pull request #4747 from cartok/feat/sway-workspaces-format-for-negative-indices
feat(sway/workspaces): add format for negative indices
2026-07-03 22:27:14 +02:00
Alex 22f6e3c83c mpd: adapt Playing::on_io to post-refactor Context API
queryMPD() was removed from Context by the master-side dedup refactor
(perf(mpd): avoid duplicate playing-state updates). fetchState() is
already called earlier in on_io and emit() updates the GUI, so the
redundant queryMPD() call is dropped, matching the identical resolution
applied to Playing::on_timer on master.
2026-07-03 22:22:35 +02:00
Alexis Rouillard 5ff20943a9 Merge branch 'master' into hide-active 2026-07-03 22:22:24 +02:00
Alexis Rouillard 8ec7bd0939 Merge branch 'master' into hyprland-language-class 2026-07-03 22:22:11 +02:00
Alexis Rouillard 54d28d3949 Merge branch 'master' into persistent_workspaces_by_monitor_make_and_model 2026-07-03 22:22:09 +02:00
Alexis Rouillard 315dc106f5 Merge branch 'master' into master 2026-07-03 22:22:07 +02:00
Alexis Rouillard bbf6af23e7 Merge branch 'master' into output-classes 2026-07-03 22:22:04 +02:00
Alexis Rouillard 17b9dc2a94 Merge branch 'master' into master 2026-07-03 22:22:00 +02:00
Alexis Rouillard d618b4125d Merge branch 'master' into fix-tooltip-pango 2026-07-03 22:21:57 +02:00
Alexis Rouillard 57689fe96b Merge branch 'master' into feature/workspace-name-css-class 2026-07-03 22:21:54 +02:00
Alexis Rouillard e7d19ad60f Merge branch 'master' into 4655 2026-07-03 22:21:52 +02:00
Alexis Rouillard 2a91a7e31f Merge branch 'master' into master 2026-07-03 22:21:44 +02:00
Alexis Rouillard 13f59a38c7 Merge branch 'master' into feat/first-day-of-week-calendar 2026-07-03 22:21:36 +02:00
Alex 03da065e87 Merge remote-tracking branch 'origin/master' into mpd-idle 2026-07-03 22:20:41 +02:00
Alexis Rouillard ba90205986 Merge pull request #4723 from kaosuran/features/temperature-hwmon-by-name
feat(temperature): add hwmon-name option for stable sensor selection
2026-07-03 22:17:50 +02:00
Alexis Rouillard c3f4c0077b Merge pull request #4114 from Duncaen/cpu-loadavg
cpu: add load{1,5,15} format variables
2026-07-03 22:17:46 +02:00
Alexis Rouillard ed688659f4 Merge branch 'master' into mango 2026-07-03 22:17:29 +02:00
Alex fe0e1c139b power-profiles-daemon: preserve backward compatibility for driver
Keep the {driver} placeholder working and support older
power-profiles-daemon versions that only expose a single Driver DBus
property, while still reading the new CpuDriver/PlatformDriver fields.

- Read the legacy Driver property and fall back to it when CpuDriver or
  PlatformDriver are missing (older daemon).
- Derive {driver} from CpuDriver when the daemon no longer exposes
  Driver (recent daemon), so existing configs using {driver} keep
  working.
- Align the default tooltip-format in the constructor with the
  documented default.
2026-07-03 22:11:51 +02:00
Alex 31035890e6 Merge remote-tracking branch 'origin/master' into feat/sway-workspaces-format-for-negative-indices
# Conflicts:
#	src/modules/sway/workspaces.cpp
2026-07-03 22:11:45 +02:00
Alex b7e5805f4b Merge remote-tracking branch 'origin/master' into RaphaelKimmig/master
# Conflicts:
#	include/modules/niri/workspaces.hpp
2026-07-03 22:11:34 +02:00
Alexis Rouillard 69c09800d5 Merge branch 'master' into feat/custom-format-icons-keyboard 2026-07-03 22:11:13 +02:00
Alexis Rouillard 396e8b714f Merge branch 'master' into mpd-idle 2026-07-03 22:11:10 +02:00
Alexis Rouillard da91ca2457 Merge branch 'master' into smooth-power 2026-07-03 22:11:06 +02:00
Alexis Rouillard 96adf0ffe2 Merge branch 'master' into features/temperature-hwmon-by-name 2026-07-03 22:11:04 +02:00
Alexis Rouillard 9e9e16b7e4 Merge branch 'master' into cpu-loadavg 2026-07-03 22:11:02 +02:00
Alexis Rouillard fe653fef9d Merge branch 'master' into compact-bandwidth 2026-07-03 22:10:59 +02:00
Alex 6dc168c4f2 river/tags: fix memory leak of output_status_/seat_status_
The constructor created output_status_ and seat_status_ without adding any
listener, then handle_show() recreated both (leaking the constructor-created
objects) before destroying status_manager_. Additionally seat_status_ was
never destroyed in ~Tags().

Create these objects lazily (with listeners) only in handle_show(), and
destroy seat_status_ in the destructor.
2026-07-03 22:10:46 +02:00
Alex 68097dacd4 Merge remote-tracking branch 'origin/master' into feat/wlr-taskbar-bar-css-states 2026-07-03 22:10:26 +02:00
Alex c5cefb5520 AIconLabel: make regex static and initialize label_contains_icon
Compile the icon-extraction std::regex objects once via static locals
instead of rebuilding them on every update() of every AIconLabel-derived
module (custom, mpris, ...). Also default-initialize label_contains_icon
to false at its declaration.
2026-07-03 22:10:16 +02:00
Alex 31dfd44f0b Merge remote-tracking branch 'origin/master' into encode_icon_inside_label 2026-07-03 22:09:58 +02:00
Alex b9c82f5dd3 Merge remote-tracking branch 'origin/master' into ppd-split-driver 2026-07-03 22:09:51 +02:00
Alex 6cf6157048 Merge remote-tracking branch 'origin/master' into river-tags-monitor-focus 2026-07-03 22:09:45 +02:00
Alexis Rouillard fbb9a7eccd Merge pull request #5045 from finitemonkey/master
Additional options when muted for the PulseAudio-Slider module
2026-07-03 22:09:42 +02:00
Alexis Rouillard 7df62686bf Merge pull request #4724 from hallvardnmbu/master
Allow tooltip formatting the CPU module.
2026-07-03 22:04:34 +02:00
Alexis Rouillard 9735efec5d Merge pull request #4353 from shibjyoti555/feature/if-empty
added a "fallback" option to hyprland/window when no window in focus
2026-07-03 22:04:05 +02:00
Alexis Rouillard 8e64ac59df Merge pull request #5131 from rmt/master
Force layer-shell commit after configure
2026-07-03 22:02:56 +02:00
Alexis Rouillard 0d19d1e5c6 Merge pull request #4524 from Gskartwii/niri-language-hide
Hide niri/language widget if formatted string is empty
2026-07-03 22:02:05 +02:00
Alexis Rouillard 535250111e Merge pull request #4951 from B2krobbery/fix-height-type-warning
bar: warn on invalid height type in configuration
2026-07-03 22:01:28 +02:00
Alex 4bf82b88a0 style(pulseaudio): clang-format audio_backend helpers 2026-07-03 22:01:20 +02:00
Alexis Rouillard 1ef0204b9a Merge pull request #5139 from ccjmne/master
Document light and dark stylesheets in `man`ual
2026-07-03 22:01:06 +02:00
Alexis Rouillard d3d036531c Merge pull request #4035 from fkobi/patch-1
meson_options: improve sndio's description
2026-07-03 22:00:14 +02:00
Alex f837615de2 Merge remote-tracking branch 'origin/master' into finitemonkey/master 2026-07-03 21:59:43 +02:00
Alexis Rouillard 3ba23f7b53 Merge pull request #5148 from JangXa/master
Fallback formatting when format-paused is missing uses ALabel
2026-07-03 21:58:18 +02:00
Alexis Rouillard 1f0be19245 Merge pull request #4930 from B2krobbery/patch-1
docs: clarify global tooltip styling behavior
2026-07-03 21:54:37 +02:00
Alexis Rouillard 8d27a05b9b Merge pull request #4983 from B2krobbery/refactor-bool-cleanup
Refactor: simplify conditional expressions in Hyprland workspace module
2026-07-03 21:54:33 +02:00
Alexis Rouillard 63febd4f12 Merge pull request #5111 from SaveTheRbtz/codex-label-update-hotpath
perf(label): skip redundant markup updates
2026-07-03 21:54:29 +02:00
Alex 25e57bc625 fix(hyprland/window): use 2-space indentation for fallback block (clang-format) 2026-07-03 21:51:20 +02:00
Alex 26c834a59b cpu: respect tooltip-format-<state> without overwriting it
The tooltip selection block redundantly reassigned tooltip_format to
config_["tooltip-format"], overwriting the state-specific format (and
emptying it when no global tooltip-format was set). A lone
tooltip-format-<state> therefore produced an empty tooltip.

Consolidate the tooltip handling into a single block that prefers
tooltip-format-<state>, falls back to the global tooltip-format, then to
the computed default tooltip, reusing the existing format arg store.
2026-07-03 21:51:07 +02:00
Alexis Rouillard c5ecfa4ce7 Merge pull request #5060 from EzequielColungaAcha/fix-wlr-taskbar-title-ellipsize
fix(wlr/taskbar): let task titles shrink within available space
2026-07-03 21:51:06 +02:00
Alexis Rouillard 2d368bb325 Merge pull request #4483 from jaschiu/patch-1
Fix clang build error
2026-07-03 21:50:11 +02:00
Alex cbc70d10f8 pulseaudio_slider: keep zero-on-mute applied on every update while muted
The zero-on-mute display_value = min_ assignment was nested inside the
!previously_muted transition branch, so subsequent updates while still
muted re-displayed the real volume. Apply it on every update as long as
the target is muted, keeping the CSS class add/remove on transitions only.
2026-07-03 21:49:54 +02:00
Alex 1c5ce111e1 Merge remote-tracking branch 'origin/master' into hallvardnmbu/master 2026-07-03 21:49:31 +02:00
Alex 8f7ed880c4 bar: fix indentation of height type warning 2026-07-03 21:49:25 +02:00
Alex 504ebfba62 Merge remote-tracking branch 'origin/master' into finitemonkey/master 2026-07-03 21:49:16 +02:00
Alex 4bba01c258 Merge remote-tracking branch 'origin/master' into feature/if-empty 2026-07-03 21:49:04 +02:00
Alex b88f88b457 Merge remote-tracking branch 'origin/master' into fix-height-type-warning 2026-07-03 21:49:00 +02:00
Alexis Rouillard 6f1d9d754e Merge branch 'master' into niri-language-hide 2026-07-03 21:47:57 +02:00
Alexis Rouillard 41dc297e6f Merge branch 'master' into patch-1 2026-07-03 21:47:54 +02:00
Alexis Rouillard 83f924fa8e Merge branch 'master' into patch-1 2026-07-03 21:47:51 +02:00
Alexis Rouillard e852360106 Merge branch 'master' into refactor-bool-cleanup 2026-07-03 21:47:49 +02:00
Alexis Rouillard ac08a7e856 Merge branch 'master' into codex-label-update-hotpath 2026-07-03 21:47:47 +02:00
Alexis Rouillard bd178458e9 Merge pull request #4837 from Cprakhar/fix/format-plugged-gt-format-full
fix: prioritize `plugged` status over `full` when battery is full and plugged in
2026-07-03 21:47:45 +02:00
Alexis Rouillard 4b7786811a Merge branch 'master' into master 2026-07-03 21:47:44 +02:00
Alexis Rouillard 5e9e880339 Merge branch 'master' into master 2026-07-03 21:47:42 +02:00
Alexis Rouillard dae3d1c9a8 Merge branch 'master' into master 2026-07-03 21:47:39 +02:00
Alexis Rouillard 0b50f654ca Merge pull request #5093 from oqlatulesba3/fix/sni-host-proxy-retry
fix(sni): retry Host proxy creation on transient errors
2026-07-03 21:47:39 +02:00
Alexis Rouillard ee9737bf94 Merge pull request #4692 from aaronred345/hyprland-special-workspaces-multi-monitor
fix(hyprland/workspaces) Special Workspace Multi-Monitor Support
2026-07-03 21:46:43 +02:00
Alexis Rouillard 683b704de1 Merge pull request #4649 from OlivierNeyret/FixFormattingPowerMenuXML
Fix indentation formatting in power_menu.xml
2026-07-03 21:45:10 +02:00
Alexis Rouillard f3ba57942a Merge pull request #4672 from Mental-Vortex/master
fix: Return when ID doesn't exist, we only care about the interest list.
2026-07-03 21:44:13 +02:00
Alexis Rouillard 4079c162eb Merge pull request #4957 from 85ae/fix-4955
fix: issue #4955 wrong behaviour of regex for sway/window 'rewrite'
2026-07-03 21:44:07 +02:00
Alexis Rouillard f57decf81c Merge pull request #4984 from Mervius/master
Fix timeout created by most recent gtk-layer-shell release when creating bars for multiple monitors.
2026-07-03 21:43:08 +02:00
Alexis Rouillard bc315b5a6f Merge pull request #5048 from Praczet/fix/hyprland-workspace-taskbar-hover
fix(hyprland): keep workspace hover over taskbar icons
2026-07-03 21:42:50 +02:00
Alexis Rouillard e1efa7473d Merge pull request #4992 from VlkrS/openbsd
fix: USR1/USR2 handling on OpenBSD
2026-07-03 21:41:12 +02:00
Alex 9ac3f9b951 clock: make calendar padding portable across FormatStream char types
std::setfill is templated on the fill char type, which must match the
Glib::ustring FormatStream's char type. That type is wchar_t with
libstdc++/glibmm but char with libc++, so no fixed literal (' ' or L' ')
compiles everywhere. The stream's default fill is already a space, so
drop std::setfill entirely; std::setw/std::left/std::right are
char-type-agnostic and keep the exact padding behavior.
2026-07-03 21:41:10 +02:00
Alex 31a3d7e1bb fix(battery): gate Full-as-Plugged behind full-at-plugged option, drop debug output
Reporting a full battery on AC as 'Plugged' is now opt-in via the
'full-at-plugged' config option (default false), so existing format-full /
tooltip-format-full setups keep working. Also documents the option.
2026-07-03 21:40:41 +02:00
Alex 5181f84648 fix(sni): prevent use-after-free and infinite retry in Host proxy retry
Store the retry timeout connection in a Host member and disconnect it in
~Host, so a Host destroyed within the retry window no longer invokes the
timeout callback on freed memory. Cap the retries (MAX_RETRIES) so a
watcher that never reappears no longer spins forever every 200ms; reset
the counter on success and when the watcher name vanishes.
2026-07-03 21:39:36 +02:00
Alex eff483de1f Merge remote-tracking branch 'origin/master' into fix/format-plugged-gt-format-full 2026-07-03 21:39:32 +02:00
Alexis Rouillard 0d3f393ae8 Merge pull request #5088 from cogwheel/cogwheel/fix-untitled
custom_modules: Fix mediaplayer.py handling untitled track
2026-07-03 21:39:13 +02:00
Alex 806f633318 hyprland/workspaces: refresh locally instead of reloading Hyprland config
Replace the getSocket1JsonReply("reload") call in onSpecialWorkspaceActivated
with the module's normal local refresh path: the state update to
m_activeSpecialWorkspaceName is picked up by the update() render (triggered by
the dp.emit() already issued at the end of onEvent), which re-evaluates active
state, icons and CSS classes. This avoids reloading the entire Hyprland config
on every special workspace activation while keeping the special-active icon and
CSS improvements.
2026-07-03 21:38:46 +02:00