From d1dc89b9f275ad102a09f209304dce7afab5eed1 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Sun, 8 Mar 2026 21:51:54 +0100 Subject: [PATCH] hefty: bar: make battery vertical-compatible --- .../common/widgets/ChoreographerLoader.qml | 2 +- .../topLayer/bar/widgets/HSystemInfo.qml | 58 +++--- .../quickshell/ii/translations/en_US.json | 183 +++++++++++++++++- 3 files changed, 218 insertions(+), 25 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/ChoreographerLoader.qml b/dots/.config/quickshell/ii/modules/common/widgets/ChoreographerLoader.qml index c2950146f..198fd7138 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/ChoreographerLoader.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/ChoreographerLoader.qml @@ -3,5 +3,5 @@ import QtQuick FadeLoader { id: root - onActiveChanged: item.shown = true + onActiveChanged: if (active) item.shown = true } diff --git a/dots/.config/quickshell/ii/modules/hefty/topLayer/bar/widgets/HSystemInfo.qml b/dots/.config/quickshell/ii/modules/hefty/topLayer/bar/widgets/HSystemInfo.qml index 64966abda..a07026371 100644 --- a/dots/.config/quickshell/ii/modules/hefty/topLayer/bar/widgets/HSystemInfo.qml +++ b/dots/.config/quickshell/ii/modules/hefty/topLayer/bar/widgets/HSystemInfo.qml @@ -27,20 +27,11 @@ HBarWidgetWithPopout { contentImplicitWidth: activeItem.implicitWidth contentImplicitHeight: activeItem.implicitHeight onClicked: root.showPopup = !root.showPopup - property var activeItem: vertical ? verticalContent : horizontalContent + property var activeItem: sysInfoContent - Loader { - id: horizontalContent + SysInfoContent { + id: sysInfoContent anchors.fill: parent - active: !contentRoot.vertical - sourceComponent: HorizontalSysInfo {} - } - - Loader { - id: verticalContent - anchors.fill: parent - active: contentRoot.vertical - sourceComponent: HorizontalSysInfo {} } SysInfoPopupContent { @@ -56,23 +47,40 @@ HBarWidgetWithPopout { } } - component HorizontalSysInfo: Item { - implicitWidth: row.implicitWidth + row.anchors.leftMargin + row.anchors.rightMargin - implicitHeight: row.implicitHeight + row.anchors.topMargin + row.anchors.bottomMargin + component SysInfoContent: Item { + implicitWidth: contentGrid.implicitWidth + contentGrid.anchors.leftMargin + contentGrid.anchors.rightMargin + implicitHeight: contentGrid.implicitHeight + contentGrid.anchors.topMargin + contentGrid.anchors.bottomMargin - RowLayout { - id: row + GridLayout { + id: contentGrid + columns: root.vertical ? 1 : -1 anchors.fill: parent - anchors.leftMargin: root.startSide ? 8 : 6 - anchors.rightMargin: root.endSide ? 0 : -3 - Battery {} + Battery { + Layout.leftMargin: !root.vertical ? (root.startSide ? 8 : 6) : 0 + Layout.rightMargin: !root.vertical ? (root.endSide ? 0 : -3) : 0 + Layout.bottomMargin: root.vertical ? (root.endSide ? 4 : 2) : 0 + Layout.topMargin: root.vertical ? 2 : 0 + Layout.fillWidth: root.vertical + Layout.fillHeight: !root.vertical + } } } - component Battery: Row { - spacing: 1.5 + component Battery: Item { + implicitWidth: !root.vertical ? battShape.implicitWidth : battShape.implicitHeight + implicitHeight: !root.vertical ? battShape.implicitHeight : battShape.implicitWidth + + BatteryShape { + id: battShape + anchors.centerIn: parent + } + } + + component BatteryShape: Row { Layout.fillHeight: true + spacing: 1.5 + rotation: -90 * root.vertical W.ClippedProgressBar { id: batteryProgress @@ -89,6 +97,7 @@ HBarWidgetWithPopout { layer.enabled: true width: batteryProgress.valueBarWidth height: batteryProgress.valueBarHeight + RowLayout { anchors { horizontalCenter: parent.horizontalCenter @@ -102,6 +111,7 @@ HBarWidgetWithPopout { Layout.alignment: Qt.AlignVCenter Layout.leftMargin: -2 Layout.rightMargin: -2 + rotation: 90 * root.vertical fill: 1 * (text == "bolt") fillAnimation: null text: { @@ -116,7 +126,9 @@ HBarWidgetWithPopout { visible: root.chargingAndNotFull || root.powerSaving } W.VisuallyCenteredStyledText { + visible: batteryProgress.value < 1 Layout.fillHeight: true + rotation: 90 * root.vertical font: batteryProgress.font text: batteryProgress.text } @@ -152,7 +164,7 @@ HBarWidgetWithPopout { width: parent.width W.CircularProgress { - implicitSize: notSoImportantBatteryStats.implicitHeight + implicitSize: Math.max(notSoImportantBatteryStats.implicitHeight, 44) lineWidth: 3 value: S.Battery.percentage W.MaterialSymbol { diff --git a/dots/.config/quickshell/ii/translations/en_US.json b/dots/.config/quickshell/ii/translations/en_US.json index 2fbdc8e6d..67cc2faf4 100644 --- a/dots/.config/quickshell/ii/translations/en_US.json +++ b/dots/.config/quickshell/ii/translations/en_US.json @@ -604,5 +604,186 @@ "Recognize music": "Recognize music", "Stroke width": "Stroke width", "Use varying shapes for password characters": "Use varying shapes for password characters", - "Battery full": "Battery full" + "Battery full": "Battery full", + "Fonts": "Fonts", + "Desktop %1": "Desktop %1", + "Balance brightness based on content": "Balance brightness based on content", + "Polkit": "Polkit", + "Online | Google's model\nPro-level intelligence at the speed and pricing of Flash.": "Online | Google's model\nPro-level intelligence at the speed and pricing of Flash.", + "Widget: Weather": "Widget: Weather", + "Used for headings and titles": "Used for headings and titles", + "Shut down": "Shut down", + "Wi-Fi": "Wi-Fi", + "Used for reading large blocks of text": "Used for reading large blocks of text", + "Off": "Off", + "Enable update checks": "Enable update checks", + "Font weight": "Font weight", + "Show only when locked": "Show only when locked", + "Command": "Command", + "Numbers font": "Numbers font", + "Use adaptive alignment": "Use adaptive alignment", + "Task View": "Task View", + "%1 mins": "%1 mins", + "Copy region (LMB) or annotate (RMB)": "Copy region (LMB) or annotate (RMB)", + "Media": "Media", + "No new notifications": "No new notifications", + "Enable opening zoom animation": "Enable opening zoom animation", + "Font family": "Font family", + "Window": "Window", + "Move to front": "Move to front", + "Health:": "Health:", + "Manage accounts": "Manage accounts", + "Sound effects": "Sound effects", + "Video Recording Path": "Video Recording Path", + "Last refresh: %1": "Last refresh: %1", + "Move left": "Move left", + "Check interval (mins)": "Check interval (mins)", + "Apps": "Apps", + "Open": "Open", + "Main font": "Main font", + "Show hidden icons": "Show hidden icons", + "Pin to Start": "Pin to Start", + "Snip": "Snip", + "Digital": "Digital", + "Monospace font": "Monospace font", + "Aligns the date and quote to left, center or right depending on its position on the screen.": "Aligns the date and quote to left, center or right depending on its position on the screen.", + "Adjust the color temperature": "Adjust the color temperature", + "Quick markup (Ctrl+E)": "Quick markup (Ctrl+E)", + "Least busy": "Least busy", + "Right to left": "Right to left", + "More Internet settings": "More Internet settings", + "Reading font": "Reading font", + "Text extractor": "Text extractor", + "Used for code and terminal": "Used for code and terminal", + "Restart": "Restart", + "Font family name (e.g., Google Sans Flex)": "Font family name (e.g., Google Sans Flex)", + "Recognize text": "Recognize text", + "Not secured": "Not secured", + "Get the latest features and security improvements with\nthe newest feature update.\n\n%1 packages": "Get the latest features and security improvements with\nthe newest feature update.\n\n%1 packages", + "Image source": "Image source", + "Close (Esc)": "Close (Esc)", + "Cookie": "Cookie", + "Do you want to allow this app to make changes to your device?": "Do you want to allow this app to make changes to your device?", + "Discharging": "Discharging", + "+%1 notifications": "+%1 notifications", + "Command-line-invoked Action": "Command-line-invoked Action", + "Saving...": "Saving...", + "Font family name (e.g., Readex Pro)": "Font family name (e.g., Readex Pro)", + "Productivity": "Productivity", + "Font width and roundness settings are only available for some fonts like Google Sans Flex": "Font width and roundness settings are only available for some fonts like Google Sans Flex", + "Anti-flashbang": "Anti-flashbang", + "Overlay: General": "Overlay: General", + "%1\nInternet access": "%1\nInternet access", + "Font family name": "Font family name", + "Font roundness": "Font roundness", + "On": "On", + "Clear all": "Clear all", + "More Bluetooth settings": "More Bluetooth settings", + "Widgets": "Widgets", + "New desktop": "New desktop", + "Clock style (locked)": "Clock style (locked)", + "Swap": "Swap", + "Focusing": "Focusing", + "There might be a download in progress. Check your Downloads folder.": "There might be a download in progress. Check your Downloads folder.", + "Speakers (%1): %2": "Speakers (%1): %2", + "Creativity": "Creativity", + "remaining": "remaining", + "Show this window on all desktops": "Show this window on all desktops", + "Actions": "Actions", + "Enjoy your empty sidebar...": "Enjoy your empty sidebar...", + "Utilities & Tools": "Utilities & Tools", + "Super key symbol": "Super key symbol", + "Snipping area": "Snipping area", + "Battery: %1%2": "Battery: %1%2", + "All": "All", + "Expressive font": "Expressive font", + "System updates (Arch only)": "System updates (Arch only)", + "Darken screen": "Darken screen", + "Font family name (e.g., JetBrains Mono NF)": "Font family name (e.g., JetBrains Mono NF)", + "Description font size": "Description font size", + "Web": "Web", + "Show date": "Show date", + "Search for apps": "Search for apps", + "e.g. 󱊫 for F1, 󱊶 for F12": "e.g. 󱊫 for F1, 󱊶 for F12", + "Save paths": "Save paths", + "Used for general UI text": "Used for general UI text", + "Notes": "Notes", + "CPU": "CPU", + "Not connected": "Not connected", + "Write something here...\nUse '-' to create copyable bullet points, like this:\n\nSheep fricker\n- 4x Slab\n- 1x Boat\n- 4x Redstone Dust\n- 1x Sticky Piston\n- 1x End Rod\n- 4x Redstone Repeater\n- 1x Redstone Torch\n- 1x Sheep": "Write something here...\nUse '-' to create copyable bullet points, like this:\n\nSheep fricker\n- 4x Slab\n- 1x Boat\n- 4x Redstone Dust\n- 1x Sticky Piston\n- 1x End Rod\n- 4x Redstone Repeater\n- 1x Redstone Torch\n- 1x Sheep", + "Close all windows": "Close all windows", + "Search with Google Lens": "Search with Google Lens", + "Draggable": "Draggable", + "Screenshot Path (leave empty to just copy)": "Screenshot Path (leave empty to just copy)", + "Move right": "Move right", + "Local account": "Local account", + "Record region": "Record region", + "Display modifiers and keys in multiple keycap (e.g., \"Ctrl + A\" instead of \"Ctrl A\" or \"󰘴 + A\" instead of \"󰘴 A\")": "Display modifiers and keys in multiple keycap (e.g., \"Ctrl + A\" instead of \"Ctrl A\" or \"󰘴 + A\" instead of \"󰘴 A\")", + "Use symbols for mouse": "Use symbols for mouse", + "See fewer": "See fewer", + "More comfortable viewing at night": "More comfortable viewing at night", + "Best match": "Best match", + "Parallax": "Parallax", + "Enter a valid number": "Enter a valid number", + "Other": "Other", + "No applications": "No applications", + "Overlay: Crosshair": "Overlay: Crosshair", + "Center icons": "Center icons", + "Pinned": "Pinned", + "Use symbols for function keys": "Use symbols for function keys", + "Pin to taskbar": "Pin to taskbar", + "Click to show": "Click to show", + "Widget: Clock": "Widget: Clock", + "File Explorer": "File Explorer", + "Sound output": "Sound output", + "to full": "to full", + "Font width": "Font width", + "Commands": "Commands", + "Emoji": "Emoji", + "Use macOS-like symbols for mods keys": "Use macOS-like symbols for mods keys", + "Nerd font icons": "Nerd font icons", + "Charging": "Charging", + "Tooltips": "Tooltips", + "Most busy": "Most busy", + "Manage my account": "Manage my account", + "Sign out": "Sign out", + "Change password": "Change password", + "Image search": "Image search", + "Replace 󱕐 for \"Scroll ↓\", 󱕑 \"Scroll ↑\", L󰍽 \"LMB\", R󰍽 \"RMB\", 󱕒 \"Scroll ↑/↓\" and ⇞/⇟ for \"Page_↑/↓\"": "Replace 󱕐 for \"Scroll ↓\", 󱕑 \"Scroll ↑\", L󰍽 \"LMB\", R󰍽 \"RMB\", 󱕒 \"Scroll ↑/↓\" and ⇞/⇟ for \"Page_↑/↓\"", + "Sound input": "Sound input", + "Open recordings folder": "Open recordings folder", + "Secured": "Secured", + "Bottom-up": "Bottom-up", + "Top-down": "Top-down", + "Type /key to get started with online models\nCtrl+O to expand sidebar\nCtrl+P to pin sidebar\nCtrl+D to detach sidebar": "Type /key to get started with online models\nCtrl+O to expand sidebar\nCtrl+P to pin sidebar\nCtrl+D to detach sidebar", + "Left to right": "Left to right", + "Title font": "Title font", + "Font used for Nerd Font icons": "Font used for Nerd Font icons", + "e.g. 󰘴 for Ctrl, 󰘵 for Alt, 󰘶 for Shift, etc": "e.g. 󰘴 for Ctrl, 󰘵 for Alt, 󰘶 for Shift, etc", + "Font family name (e.g., Space Grotesk)": "Font family name (e.g., Space Grotesk)", + "Press Super+G to open the overlay and pin the crosshair": "Press Super+G to open the overlay and pin the crosshair", + "Rectangle": "Rectangle", + "RAM": "RAM", + "Font size": "Font size", + "Split buttons": "Split buttons", + "Unknown Application": "Unknown Application", + "Unpin from taskbar": "Unpin from taskbar", + "Close window": "Close window", + "Set FPS limit": "Set FPS limit", + "Keybind font size": "Keybind font size", + "Han chars": "Han chars", + "You can also manually edit cheatsheet.superKey": "You can also manually edit cheatsheet.superKey", + "Unpin from Start": "Unpin from Start", + "Overlay: Floating Image": "Overlay: Floating Image", + "Turn on from sunset to sunrise": "Turn on from sunset to sunrise", + "Input device": "Input device", + "End session": "End session", + "Used for displaying numbers": "Used for displaying numbers", + "Saved": "Saved", + "More volume settings": "More volume settings", + "Network": "Network", + "(Plugged in)": "(Plugged in)", + "Output device": "Output device", + "of %1": "of %1", + "Used for decorative/expressive text": "Used for decorative/expressive text" } \ No newline at end of file