Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion assets/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -3087,7 +3087,8 @@
"minimal": {
"description": "Show workspace id or name labels only, without animated pills",
"label": "Minimal Style",
"workspaces-description": "Text-only workspace labels without pill backgrounds or slide animation"
"workspaces-description": "Text-only workspace labels without pill backgrounds or slide animation",
"taskbar-description": "Text-only workspace labels without colored disc backgrounds"
},
"mirrored": {
"description": "Mirror the visualizer around its center",
Expand Down
1 change: 1 addition & 0 deletions src/shell/bar/widget_factory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -533,6 +533,7 @@ std::unique_ptr<Widget> WidgetFactory::create(
.hideEmptyWorkspaces = wc != nullptr ? wc->getBool("hide_empty_workspaces", false) : false,
.workspaceGroupCapsule = wc != nullptr ? wc->getBool("workspace_group_capsule", true) : true,
.focusedOutputOnly = wc != nullptr ? wc->getBool("focused_output_only", false) : false,
.minimal = wc != nullptr ? wc->getBool("minimal", false) : false,
.groupSingleIconPerApp = wc != nullptr ? wc->getBool("group_single_icon_per_app", false) : false,
.showActiveIndicator = wc != nullptr ? wc->getBool("show_active_indicator", true) : true,
.activeOpacity = wc != nullptr ? static_cast<float>(wc->getDouble("active_opacity", 1.0)) : 1.0f,
Expand Down
17 changes: 9 additions & 8 deletions src/shell/bar/widgets/taskbar_widget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,11 +166,12 @@ TaskbarWidget::TaskbarWidget(
)
: m_platform(platform), m_configService(config), m_output(output), m_configOptions(std::move(options)),
m_showAllOutputs(m_configOptions.showAllOutputs), m_focusedOutputOnly(m_configOptions.focusedOutputOnly),
m_showActiveIndicator(m_configOptions.showActiveIndicator), m_activeOpacity(m_configOptions.activeOpacity),
m_inactiveOpacity(m_configOptions.inactiveOpacity), m_focusedColor(m_configOptions.focusedColor),
m_occupiedColor(m_configOptions.occupiedColor), m_emptyColor(m_configOptions.emptyColor),
m_windowTitleMaxWidth(m_configOptions.windowTitleMaxWidth), m_taskbarMaxWidth(m_configOptions.taskbarMaxWidth),
m_barPosition(std::move(m_configOptions.barPosition)), m_shadowConfig(m_configOptions.shadowConfig) {
m_minimal(m_configOptions.minimal), m_showActiveIndicator(m_configOptions.showActiveIndicator),
m_activeOpacity(m_configOptions.activeOpacity), m_inactiveOpacity(m_configOptions.inactiveOpacity),
m_focusedColor(m_configOptions.focusedColor), m_occupiedColor(m_configOptions.occupiedColor),
m_emptyColor(m_configOptions.emptyColor), m_windowTitleMaxWidth(m_configOptions.windowTitleMaxWidth),
m_taskbarMaxWidth(m_configOptions.taskbarMaxWidth), m_barPosition(std::move(m_configOptions.barPosition)),
m_shadowConfig(m_configOptions.shadowConfig) {
syncWorkspaceGroupingCapability();
buildDesktopIconIndex();
}
Expand Down Expand Up @@ -607,7 +608,7 @@ void TaskbarWidget::buildTaskButtons(Renderer& renderer) {
const auto styleWorkspaceDisc = [this](Box& badge, float width, float height, const Workspace& workspace) {
badge.setFrameSize(width, height);
badge.setRadius(resolvedBarCapsuleRadius(width, height));
badge.setFill(workspaceFillColor(workspace));
badge.setFill(m_minimal ? clearColorSpec() : workspaceFillColor(workspace));
badge.clearBorder();
};

Expand Down Expand Up @@ -647,7 +648,7 @@ void TaskbarWidget::buildTaskButtons(Renderer& renderer) {
.fontSize = badgeFontSize,
.fontWeight = fontWeight,
.fontFamily = fontFamily,
.color = workspaceTextColor(ws.workspace),
.color = m_minimal ? workspaceFillColor(ws.workspace) : workspaceTextColor(ws.workspace),
});
badgeText->measure(renderer);
badgeText->setPosition(
Expand Down Expand Up @@ -693,7 +694,7 @@ void TaskbarWidget::buildTaskButtons(Renderer& renderer) {
.fontSize = badgeFontSize,
.fontWeight = fontWeight,
.fontFamily = fontFamily,
.color = workspaceTextColor(ws.workspace),
.color = m_minimal ? workspaceFillColor(ws.workspace) : workspaceTextColor(ws.workspace),
});
badgeText->measure(renderer);
badgeText->setPosition(
Expand Down
2 changes: 2 additions & 0 deletions src/shell/bar/widgets/taskbar_widget.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ struct TaskbarWidgetOptions {
bool hideEmptyWorkspaces = false;
bool workspaceGroupCapsule = true;
bool focusedOutputOnly = false;
bool minimal = false;
bool groupSingleIconPerApp = false;
bool showActiveIndicator = true;
float activeOpacity = 1.0f;
Expand Down Expand Up @@ -131,6 +132,7 @@ class TaskbarWidget : public Widget {
bool m_focusedOutputOnly = false;
bool m_wasFocusedOutput = true;
bool m_activeUsesFocusedColor = true;
bool m_minimal = false;
bool m_groupSingleIconPerApp = false;
bool m_showActiveIndicator = true;
float m_activeOpacity = 1.0f;
Expand Down
5 changes: 5 additions & 0 deletions src/shell/settings/widget_settings_registry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -851,6 +851,11 @@ namespace settings {
focusedOutputOnly.visibleWhen =
WidgetSettingVisibility{WidgetSettingVisibilityCondition{"show_workspace_label", {"true"}}};
add(std::move(focusedOutputOnly));
auto minimal = boolSpec("minimal", false);
minimal.descriptionKey = "settings.widgets.settings.minimal.taskbar-description";
minimal.visibleWhen =
WidgetSettingVisibility{WidgetSettingVisibilityCondition{"show_workspace_label", {"true"}}};
add(std::move(minimal));
}
{
auto singleIconPerApp = boolSpec("group_single_icon_per_app", false);
Expand Down
Loading