Commit Graph
296 Commits
Author SHA1 Message Date
Alex 4ffc97efe9 Merge remote-tracking branch 'origin/master' into pr-4685
# Conflicts:
#	src/modules/sway/workspaces.cpp
2026-07-04 00:38:15 +02:00
Alexis Rouillard 889cff224b Merge pull request #5156 from Alexays/refactor/generic-tooltip
refactor(ALabel): generic label+tooltip helper to remove per-module duplication
2026-07-04 00:37:19 +02:00
Alex c0a0608c43 Merge remote-tracking branch 'origin/master' into pr-5068 2026-07-04 00:22:43 +02:00
Alex db4941efe7 refactor(tooltip): migrate modules to ALabel generic tooltip helper
Migrate idle_inhibitor, sway/language, sway/scratchpad,
hyprland/language and hyprland/window to the shared label/tooltip
setters. idle_inhibitor uses updateLabelAndTooltipForState; the others
keep their custom label/tooltip resolution (trim, precomputed tooltip,
rewriteString, per-lang/variant formats) and switch to the dedup-aware
setLabelMarkup/setTooltipMarkup.
2026-07-04 00:00:15 +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 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 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 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
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
Alexis Rouillard ac08a7e856 Merge branch 'master' into codex-label-update-hotpath 2026-07-03 21:47:47 +02:00
Alexis Rouillard 778ef49efd Merge branch 'master' into sayrus-gh/sway-workspaces-markup 2026-07-03 21:30:59 +02:00
Alexis Rouillard c43f9f25b8 Merge pull request #5039 from mil-ad/fix/sway-language-flag-disappears
fix(sway/language): keep flag visible across hot-plug and unknown layouts
2026-07-03 21:00:52 +02:00
Alexis Rouillard c8bcbfb057 Merge pull request #5072 from Lege19/master
(Fix) (sway workspace module) persistent workspaces always removed
2026-07-03 20:59:05 +02:00
Alexis Rouillard fa79b931e9 Merge branch 'master' into sayrus-gh/sway-workspaces-quotes 2026-07-03 20:45:01 +02:00
Alexey Ivanov 2190871a68 perf(label): skip redundant markup updates 2026-06-04 15:18:43 -07:00
Artur Ciesielski 415da7aef4 sway/workspaces: refer to outputs by their monitor identifier (make and model) 2026-05-26 19:39:03 +02:00
jacobs ec2651370e (Fix) (sway workspace module) persistent workspaces always removed 2026-05-26 11:09:45 +01:00
Carlo Teubner 3056bad95a Sway IPC: avoid reinterpret_cast 2026-05-24 08:22:22 +01:00
Carlo Teubner d8848a478b Sway IPC: code cleanups 2026-05-24 08:20:10 +01:00
Carlo Teubner 1bc633fc0e Sway IPC: more robust socket send/receive logic
Handle EINTR/EAGAIN, partial sends, etc.
2026-05-24 06:45:30 +01:00
Carlo Teubner 89b5456cd3 Sway IPC: fix socket path discovery
Ensure to only read actual "sway --get-socketpath" output, not
subsequent garbage in buffer.
2026-05-24 06:41:51 +01:00
Milad Alizadeh 0ec6d06472 Guard set_current_layout against unknown layout names (wtype, hot-plugged
devices) so transient events stop blanking layout_. Refresh layouts_map_
on "added"/"xkb_keymap" input events and union layouts across all
keyboards so new devices contribute their layouts. Release mutex_ before
the refresh sendCmd to avoid self-deadlock from the synchronous
signal_cmd emit.
2026-05-15 17:29:21 +01:00
Arnaud Gaudard 450b6a785f Add "ignore-workspaces" option to sway/workspaces module 2026-04-12 17:22:19 +02:00
Alexis Rouillard 100d4ec4a4 Merge pull request #4891 from khaneliman/bugfix/stab-003-test-001-hyprland-ipc
fix(hyprland-ipc): harden fd lifecycle and listener loop
2026-03-04 22:41:30 +01:00
Austin Horstman 4c71b2bf9f perf(memory): optimize C++ string operations to reduce heap fragmentation
- Replaced pass-by-value std::string parameters with const std::string&
or std::string_view to prevent SSO overallocations.

- Refactored static mapping functions in UPower to return
std::string_view instead of constructing std::string literals, enabling
perfect cache locality.

- Optimized string concatenation in hot loops (network IPs, inhibitor
lists, sway window marks) by using std::string::append() and
pre-reserving capacity instead of overloaded operator+ which produces
temporary heap instances.

These optimizations reduce high-frequency memory churn and overall heap
fragmentation within the main rendering loops.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-02 22:54:07 -06:00
Austin Horstman 8d22d3e07a refactor(sway): use shared ScopedFd for IPC sockets
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-02 08:23:06 -06:00
Prakhar Chhalotre 3e7976c8eb fix: use pango markup for consistent formatting in format and tooltip-format 2026-02-13 02:23:16 +05:30
Alex 47fb21a2c1 chore: upgrade to clang-format@21 2026-02-04 09:24:14 +01:00
Dennis Weiershaeuser 9e53174ef5 feat(sway/workspaces): add format for negative indices 2026-01-01 02:42:56 +01:00
Mathis Raguin c2a038c222 fix(sway/workspaces): escape markup in workspace if enabled 2025-12-31 16:16:38 +01:00
Mathis Raguin da4367df2f fix(sway/workspaces): use number when available to avoid parsing issues 2025-12-31 15:40:31 +01:00
Mathis Raguin 0a5da13fbf fix(workspaces/sway): handle workspaces with quotes 2025-12-31 15:28:10 +01:00
Axel Dahlberg 7777be0da6 feat: allow not switching output when clicking sway/workspace 2025-12-07 19:43:25 +01:00
mliszcz e362550e27 fix(sway/workspaces): window-rewrite: do not check for window-format
Remove check for unused window-format option.

Fixes #3797.
2025-12-02 17:19:44 +01:00
xb-bx 4d74bb3004 sway/workspaces: implement reverse-scroll 2025-07-07 14:17:18 +03: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 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
peelz b8a985d606 style: fix formatting 2025-06-21 10:54:16 -04:00
burbschat d6f9dc911a Apply format according to .clang-format 2025-06-14 22:59:32 +09:00
burbschat 9b6590b972 Add CSS classes for sway workspace indicators depending on associated output
Allows for different styles of workspace indicators (buttons) depending
on the output the workspace is located at.
Using this one can for example color the indicators depending on the
output making it easy to infer on which output a workspace is located.

Example config:

"sway/workspaces": {
    "all-outputs": true,
    "format": "{name}",
    "output-classes": {
        "DP-1": "output1",
        "LVDS-2": "output2"
    }
}

Example CSS:

#workspaces button.output1{
    background-color: green;
}
#workspaces button.output2{
    background-color: blue;
}
2025-06-14 22:40:58 +09:00
Rene D. Obermueller f4b68f41e6 feat: sway/window: provide {marks} format replacement 2025-05-04 07:50:28 +02:00
Almarhoon Ibraheem 7e845f506e sway workspace: fix workspace button not shown in nested layouts 2025-04-12 18:31:34 +03:00
Torstein Husebø 6004316f1a Fix typos in function, variable names and in documentation 2025-01-16 13:25:19 +01: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
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
Austin Horstman 90ac7d5d2c sway/workspaces: support ignore window-rewrite
Similar to hyprland implementation to ignore "" empty rules
2024-07-16 22:50:26 -05:00
Austin Horstman 9c40137d05 sway/workspaces: clang-tidy 2024-07-16 18:33:43 -05:00
Austin Horstman 17132b250d sway/workspaces: remove deprecated field
Was deprecated a long time ago, we removed the Hyprland version.
Removing this, as well.
2024-07-16 18:33:43 -05:00