Commit Graph
163 Commits
Author SHA1 Message Date
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 778ef49efd Merge branch 'master' into sayrus-gh/sway-workspaces-markup 2026-07-03 21:30:59 +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
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
Arnaud Gaudard 450b6a785f Add "ignore-workspaces" option to sway/workspaces module 2026-04-12 17:22:19 +02: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
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
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 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
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
Austin Horstman 08c5df3633 modules/sway/workspaces: clang-format fix 2024-06-09 13:05:47 -05:00
Peter Jones 637b220f82 sway/workspaces: Correct behavior when "current-only" is set
The `current-only` workspace setting should display only the active
workspace name as determined by its `focused` attribute.  However,
according to the `get_tree` output, workspaces that contain a focused
window will report `"focused": false` and the window will report
`"focused": true.` In this case, Waybar will not display a workspace
name at all.

This change updates the logic for determining if a workspace is
focused by also looking for a focused window.
2024-06-06 15:29:33 -07:00
vawvaw f75b2ae91f sway/workspaces: Fix scroll on unfocused monitor 2024-04-18 22:56:49 +02:00
Raphael Nestler 133dfc2e85 Remove unused variable in Workspaces::updateWindows 2024-04-15 13:50:41 +02:00
Alex a9088c7e7d fix: lint 2024-04-10 10:20:21 +02:00
kvark 9b4fc6d16b fix(sway/workspaces): floating_nodes and focused icon
Floating nodes are not taken into account for visible and empty workspaces

And fix focused icon (#3095)
2024-03-31 21:53:56 +07:00
Mauro Guida 7cd2a6c003 fix(sway/workspaces): Visible class doesn't work on visible and empty workspaces 2024-03-23 13:02:39 +01:00
Alexis Rouillard 38634a0ca8 Merge pull request #3034 from wispl/master
Add empty workspace style for Sway
2024-03-22 23:13:29 +01:00
Mauro Guida c841bf567b fix(sway/workspaces): visible class doesn't work 2024-03-20 15:03:25 +01:00
wispl cf3389e5d7 Add empty workspace style for Sway 2024-03-19 22:56:20 -04:00
Alexis Rouillard cbe42a8536 Merge pull request #3037 from grimpy/fixperistentclass
Fix peristent class on buttons
2024-03-19 22:56:37 +01:00
hrdl 856a34e16d Also consider floating nodes when checking for flags
Fixes #3030
2024-03-19 11:53:04 +01:00
Jo De Boeck 2ffd9a94a5 Fix peristent class on buttons
Fixes: #3009

Signed-off-by: Jo De Boeck <deboeck.jo@gmail.com>
2024-03-19 08:22:33 +02:00
Jo De Boeck 7b3d155608 Fix peristant workspaces for sway
Fixes: #2998

Signed-off-by: Jo De Boeck <deboeck.jo@gmail.com>
2024-03-12 04:40:54 +02:00
Erik Reider 9de0e393ab Sway-Workspaces: Fixed scrolling not working
Fixes regression in bb843e0 that caused scrolling over the bar not working
2024-03-02 23:08:21 +01:00
Jo De Boeck 5a887fe1ef Filter out special output __i3 which contains scratchpad
Fixes: #2966

Signed-off-by: Jo De Boeck <deboeck.jo@gmail.com>
2024-02-27 23:43:00 +02:00
Jo De Boeck bb843e0494 Implement windows formating in sway/workspaces
This implementation mimics to some extend the implementation of hyprland

Signed-off-by: Jo De Boeck <deboeck.jo@gmail.com>
2024-02-20 19:12:26 +02:00
Alexis Rouillard ee2407496f Revert "Implement windows formating in sway/workspaces" 2024-02-19 23:28:08 +01:00