diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/people-settings-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/people-settings-filled.svg new file mode 100644 index 000000000..0bcd7d12d --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/people-settings-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/people-settings.svg b/dots/.config/quickshell/ii/assets/icons/fluent/people-settings.svg new file mode 100644 index 000000000..8ff1df32a --- /dev/null +++ b/dots/.config/quickshell/ii/assets/icons/fluent/people-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml b/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml index af656d8d6..802add786 100644 --- a/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml +++ b/dots/.config/quickshell/ii/modules/waffle/looks/Looks.qml @@ -17,8 +17,8 @@ Singleton { property string iconsPath: `${Directories.assetsPath}/icons/fluent` property bool dark: Appearance.m3colors.darkmode - property real backgroundTransparency: 0.13 - property real panelBackgroundTransparency: 0.12 + property real backgroundTransparency: 0.16 + property real panelBackgroundTransparency: 0.14 property real panelLayerTransparency: root.dark ? 0.9 : 0.7 property real contentTransparency: root.dark ? 0.87 : 0.5 function applyBackgroundTransparency(col) { diff --git a/dots/.config/quickshell/ii/modules/waffle/startMenu/SearchResults.qml b/dots/.config/quickshell/ii/modules/waffle/startMenu/SearchResults.qml index 14627e54a..a9e83929e 100644 --- a/dots/.config/quickshell/ii/modules/waffle/startMenu/SearchResults.qml +++ b/dots/.config/quickshell/ii/modules/waffle/startMenu/SearchResults.qml @@ -125,6 +125,10 @@ RowLayout { entry: modelData firstEntry: index === 0 width: ListView.view?.width + checked: resultListView.currentIndex === index + onRequestFocus: { + root.forceCurrentIndex(index); + } } } diff --git a/dots/.config/quickshell/ii/modules/waffle/startMenu/TagStrip.qml b/dots/.config/quickshell/ii/modules/waffle/startMenu/TagStrip.qml index ce7475815..a1deb0027 100644 --- a/dots/.config/quickshell/ii/modules/waffle/startMenu/TagStrip.qml +++ b/dots/.config/quickshell/ii/modules/waffle/startMenu/TagStrip.qml @@ -12,7 +12,7 @@ import qs.modules.waffle.looks RowLayout { id: root property StartMenuContext context - + WPanelIconButton { implicitWidth: 36 implicitHeight: 36 @@ -27,6 +27,7 @@ RowLayout { orientation: Qt.Horizontal spacing: 4 model: root.context.categories + clip: true delegate: WBorderedButton { id: tagButton required property var modelData @@ -38,7 +39,7 @@ RowLayout { if (modelData.prefix != "") { return LauncherSearch.query.startsWith(modelData.prefix); } else { - return !tagListView.model.some(i => (i.prefix != "" && LauncherSearch.query.startsWith(i.prefix))) + return !tagListView.model.some(i => (i.prefix != "" && LauncherSearch.query.startsWith(i.prefix))); } } contentItem: Item { @@ -54,9 +55,27 @@ RowLayout { } } WPanelIconButton { + id: optionsButton implicitWidth: 36 implicitHeight: 36 iconSize: 24 iconName: "more-horizontal" + + onClicked: accountsMenu.open() + + WMenu { + id: accountsMenu + x: -accountsMenu.implicitWidth + optionsButton.implicitWidth + y: optionsButton.height + 10 + downDirection: true + Action { + icon.name: "people-settings" + text: Translation.tr("Manage accounts") + onTriggered: { + Quickshell.execDetached(["bash", "-c", Config.options.apps.manageUser]) + GlobalStates.searchOpen = false; + } + } + } } } diff --git a/dots/.config/quickshell/ii/modules/waffle/startMenu/WSearchResultButton.qml b/dots/.config/quickshell/ii/modules/waffle/startMenu/WSearchResultButton.qml index 4cd28fa9a..b7fb1df14 100644 --- a/dots/.config/quickshell/ii/modules/waffle/startMenu/WSearchResultButton.qml +++ b/dots/.config/quickshell/ii/modules/waffle/startMenu/WSearchResultButton.qml @@ -15,6 +15,8 @@ WChoiceButton { required property LauncherSearchResult entry property bool firstEntry: false + signal requestFocus() + checked: focus animateChoiceHighlight: false implicitWidth: contentLayout.implicitWidth + leftPadding + rightPadding @@ -29,17 +31,65 @@ WChoiceButton { root.entry.execute(); } + horizontalPadding: 0 + verticalPadding: 0 + contentItem: RowLayout { id: contentLayout - spacing: 8 + spacing: 0 - SearchEntryIcon { - entry: root.entry - iconSize: 24 - } - EntryNameColumn { + WButton { + id: launchButton Layout.fillWidth: true - Layout.alignment: Qt.AlignVCenter + Layout.fillHeight: true + horizontalPadding: 10 + verticalPadding: 11 + implicitHeight: root.firstEntry ? 62 : 36 + implicitWidth: entryContentRow.implicitWidth + leftPadding + rightPadding + topRightRadius: 0 + bottomRightRadius: 0 + onClicked: root.click() + contentItem: Item { + RowLayout { + id: entryContentRow + anchors { + left: parent.left + verticalCenter: parent.verticalCenter + } + spacing: 8 + + SearchEntryIcon { + entry: root.entry + iconSize: 24 + } + EntryNameColumn { + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + } + } + } + } + Rectangle { + id: separator + opacity: (root.hovered && !root.checked) ? 1 : 0 + Layout.fillHeight: true + implicitWidth: 1 + color: ColorUtils.transparentize(Looks.colors.fg, 0.75) + } + WButton { + visible: !root.checked + Layout.fillHeight: true + implicitWidth: 47 + topLeftRadius: 0 + bottomLeftRadius: 0 + onClicked: root.requestFocus() + contentItem: Item { + FluentIcon { + anchors.centerIn: parent + icon: "chevron-right" + implicitSize: 14 + } + } } }