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
+ }
+ }
}
}