Merge branch 'main' into hefty-hype

This commit is contained in:
end-4
2026-05-04 10:18:09 +02:00
23 changed files with 71 additions and 125 deletions
+2 -2
View File
@@ -39,8 +39,8 @@ _exec() {
_check_distro_id() { _check_distro_id() {
OS_RELEASE_FILE=/etc/os-release OS_RELEASE_FILE=/etc/os-release
if [[ -f "$OS_RELEASE_FILE" ]]; then if [[ -f "$OS_RELEASE_FILE" ]]; then
OS_DISTRO_ID=$(awk -F'=' '/^ID=/ { gsub("\"","",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null) OS_DISTRO_ID=$(awk -F'=' '/^ID=/ { gsub(/["\x27]/,"",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null)
OS_DISTRO_ID_LIKE=$(awk -F'=' '/^ID_LIKE=/ { gsub("\"","",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null) OS_DISTRO_ID_LIKE=$(awk -F'=' '/^ID_LIKE=/ { gsub(/["\x27]/,"",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null)
echo "distro ID: $OS_DISTRO_ID" echo "distro ID: $OS_DISTRO_ID"
echo "distro ID_LIKE: $OS_DISTRO_ID_LIKE" echo "distro ID_LIKE: $OS_DISTRO_ID_LIKE"
else else
+42 -28
View File
@@ -173,54 +173,68 @@ splitbutton menubutton {
border-radius: 999px; border-radius: 999px;
} }
#NautilusPathBar #NautilusPathButton * { #NautilusPathBar #NautilusPathButton *,
color: @accent_color; .nautilus-pathbar .nautilus-path-button * {
font-weight: 400; color: @sidebar_row_active_fg_color;
font-weight: 400;
} }
#NautilusPathBar #NautilusPathButton { #NautilusPathBar #NautilusPathButton,
background: @accent_active_color; .nautilus-pathbar .nautilus-path-button {
border-radius: 4px; background: @accent_active_color;
margin: 0; border-radius: 4px;
margin-right: 2px; margin: 0;
margin-right: 2px;
} }
#NautilusPathBar { #NautilusPathBar #NautilusPathButton:hover,
background: transparent; .nautilus-pathbar .nautilus-path-button:hover {
background: @accent_vibrant_hover_color;
} }
#NautilusPathBar box box:first-child #NautilusPathButton { #NautilusPathBar #NautilusPathButton:active,
border-radius: 24px 4px 4px 24px; .nautilus-pathbar .nautilus-path-button:active {
background: @accent_vibrant_active_color;
} }
#NautilusPathBar box box:last-child #NautilusPathButton { #NautilusPathButton,
border-radius: 4px 24px 24px 4px; .nautilus-pathbar {
background: transparent;
} }
#NautilusPathBar #NautilusPathButton.current-dir.current-dir { #NautilusPathBar box box:first-child #NautilusPathButton,
border-radius: 999px; .nautilus-pathbar box box:first-child .nautilus-path-button {
border-radius: 24px 4px 4px 24px;
} }
#NautilusPathBar #NautilusPathButton * { #NautilusPathBar box box:last-child #NautilusPathButton,
color: @sidebar_row_active_fg_color; .nautilus-pathbar box box:last-child .nautilus-path-button {
border-radius: 4px 24px 24px 4px;
} }
#NautilusPathBar .dim-label { #NautilusPathBar #NautilusPathButton.current-dir.current-dir,
font-size: 0; .nautilus-pathbar .nautilus-path-button.current-dir.current-dir {
border-radius: 999px;
} }
#NautilusPathBar button .dim-label { #NautilusPathBar .dim-label,
font-size: 14px; .nautilus-pathbar .dim-label {
opacity: 100%; font-size: 0;
} }
#NautilusPathBar button { #NautilusPathBar button .dim-label,
border-radius: 8px; .nautilus-pathbar button .dim-label {
font-size: 14px;
opacity: 100%;
} }
#NautilusPathBar button,
#NautilusPathBar button:checked { .nautilus-pathbar button {
background: @accent_vibrant_hover_color; border-radius: 8px;
}
#NautilusPathBar button:checked,
.nautilus-pathbar button:checked {
background: @accent_vibrant_hover_color;
} }
headerbar button { headerbar button {
@@ -88,8 +88,6 @@ Rectangle {
width: root.imageWidth * root.scale width: root.imageWidth * root.scale
height: root.imageHeight * root.scale height: root.imageHeight * root.scale
sourceSize.width: width
sourceSize.height: height
} }
Loader { Loader {
@@ -7,7 +7,7 @@ import qs.modules.common.functions
// From https://github.com/caelestia-dots/shell with modifications. // From https://github.com/caelestia-dots/shell with modifications.
// License: GPLv3 // License: GPLv3
Image { StyledImage {
id: root id: root
required property var fileModelData required property var fileModelData
asynchronous: true asynchronous: true
@@ -30,7 +30,7 @@ MaterialShape { // App icon
color: isUrgent ? Appearance.colors.colPrimaryContainer : Appearance.colors.colSecondaryContainer color: isUrgent ? Appearance.colors.colPrimaryContainer : Appearance.colors.colSecondaryContainer
Loader { Loader {
id: materialSymbolLoader id: materialSymbolLoader
active: root.appIcon == "" active: root.appIcon == "" && root.image == ""
anchors.fill: parent anchors.fill: parent
sourceComponent: MaterialSymbol { sourceComponent: MaterialSymbol {
text: { text: {
@@ -63,7 +63,7 @@ MaterialShape { // App icon
anchors.fill: parent anchors.fill: parent
sourceComponent: Item { sourceComponent: Item {
anchors.fill: parent anchors.fill: parent
Image { StyledImage {
id: notifImage id: notifImage
anchors.fill: parent anchors.fill: parent
readonly property int size: parent.width readonly property int size: parent.width
@@ -74,11 +74,6 @@ MaterialShape { // App icon
antialiasing: true antialiasing: true
asynchronous: true asynchronous: true
width: size
height: size
sourceSize.width: size
sourceSize.height: size
layer.enabled: true layer.enabled: true
layer.effect: OpacityMask { layer.effect: OpacityMask {
maskSource: Rectangle { maskSource: Rectangle {
@@ -1,4 +1,5 @@
import QtQuick import QtQuick
import Quickshell
import qs.services import qs.services
import qs.modules.common import qs.modules.common
import qs.modules.common.widgets import qs.modules.common.widgets
@@ -22,4 +23,9 @@ Image {
currentFallbackIndex += 1; currentFallbackIndex += 1;
} }
} }
sourceSize: {
const dpr = (QsWindow.window as QsWindow)?.devicePixelRatio ?? 1;
return Qt.size(width * dpr, height * dpr);
}
} }
@@ -194,10 +194,6 @@ Variants {
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
sourceSize {
width: bgRoot.scaledWallpaperWidth
height: bgRoot.scaledWallpaperHeight
}
width: bgRoot.scaledWallpaperWidth width: bgRoot.scaledWallpaperWidth
height: bgRoot.scaledWallpaperHeight height: bgRoot.scaledWallpaperHeight
} }
@@ -113,12 +113,10 @@ Item { // Player instance
} }
} }
Image { StyledImage {
id: blurredArt id: blurredArt
anchors.fill: parent anchors.fill: parent
source: root.displayedArtFilePath source: root.displayedArtFilePath
sourceSize.width: background.width
sourceSize.height: background.height
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
cache: false cache: false
antialiasing: true antialiasing: true
@@ -179,8 +177,6 @@ Item { // Player instance
width: size width: size
height: size height: size
sourceSize.width: size
sourceSize.height: size
} }
} }
@@ -1,5 +1,6 @@
pragma ComponentBehavior: Bound pragma ComponentBehavior: Bound
import QtQuick import QtQuick
import Quickshell
import Qt5Compat.GraphicalEffects import Qt5Compat.GraphicalEffects
import qs.modules.common import qs.modules.common
import qs.modules.common.functions import qs.modules.common.functions
@@ -71,8 +72,10 @@ StyledOverlayWidget {
anchors.centerIn: parent anchors.centerIn: parent
width: root.imageWidth * root.scaleFactor width: root.imageWidth * root.scaleFactor
height: root.imageHeight * root.scaleFactor height: root.imageHeight * root.scaleFactor
sourceSize.width: width sourceSize: {
sourceSize.height: height const dpr = (QsWindow.window as QsWindow)?.devicePixelRatio ?? 1;
return Qt.size(width * dpr, height * dpr);
}
playing: visible playing: visible
asynchronous: true asynchronous: true
@@ -3,6 +3,7 @@ import qs
import qs.services import qs.services
import qs.modules.common import qs.modules.common
import qs.modules.common.functions import qs.modules.common.functions
import qs.modules.common.widgets
import Qt5Compat.GraphicalEffects import Qt5Compat.GraphicalEffects
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
@@ -109,7 +110,7 @@ Item { // Window
border.width : 1 border.width : 1
} }
Image { StyledImage {
id: windowIcon id: windowIcon
property real baseSize: Math.min(root.targetWindowWidth, root.targetWindowHeight) property real baseSize: Math.min(root.targetWindowWidth, root.targetWindowHeight)
anchors { anchors {
@@ -126,12 +127,11 @@ Item { // Window
// console.log("Final:", Math.min(targetWindowWidth, targetWindowHeight) * (root.compactMode ? root.iconToWindowRatioCompact : root.iconToWindowRatio) / root.monitorData.scale) // console.log("Final:", Math.min(targetWindowWidth, targetWindowHeight) * (root.compactMode ? root.iconToWindowRatioCompact : root.iconToWindowRatio) / root.monitorData.scale)
return baseSize * (root.compactMode ? root.iconToWindowRatioCompact : root.iconToWindowRatio); return baseSize * (root.compactMode ? root.iconToWindowRatioCompact : root.iconToWindowRatio);
} }
// mipmap: true mipmap: true
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
source: root.iconPath source: root.iconPath
width: iconSize width: iconSize
height: iconSize height: iconSize
sourceSize: Qt.size(iconSize, iconSize)
Behavior on width { Behavior on width {
animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this) animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
@@ -186,7 +186,6 @@ Item {
asynchronous: false asynchronous: false
width: root.windowWidth width: root.windowWidth
height: root.windowHeight height: root.windowHeight
sourceSize: Qt.size(root.windowWidth, root.windowHeight)
source: Qt.resolvedUrl(root.screenshotPath) source: Qt.resolvedUrl(root.screenshotPath)
visible: false visible: false
} }
@@ -67,8 +67,6 @@ Button {
height: root.rowHeight height: root.rowHeight
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
source: modelData.preview_url source: modelData.preview_url
sourceSize.width: root.rowHeight * modelData.aspect_ratio
sourceSize.height: root.rowHeight
layer.enabled: true layer.enabled: true
layer.effect: OpacityMask { layer.effect: OpacityMask {
@@ -36,12 +36,10 @@ Item {
text: root.node?.audio.muted ? Translation.tr("Click to unmute") : Translation.tr("Click to mute") text: root.node?.audio.muted ? Translation.tr("Click to unmute") : Translation.tr("Click to mute")
} }
Image { StyledImage {
id: iconImg id: iconImg
anchors.fill: parent anchors.fill: parent
visible: false visible: false
sourceSize.width: parent.size
sourceSize.height: parent.size
source: { source: {
let icon; let icon;
icon = AppSearch.guessIcon(root.node?.properties["application.icon-name"] ?? ""); icon = AppSearch.guessIcon(root.node?.properties["application.icon-name"] ?? "");
@@ -66,8 +66,6 @@ MouseArea {
cache: false cache: false
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
clip: true clip: true
sourceSize.width: wallpaperItemColumnLayout.width
sourceSize.height: wallpaperItemColumnLayout.height - wallpaperItemColumnLayout.spacing - wallpaperItemName.height
Connections { Connections {
target: Wallpapers target: Wallpapers
@@ -102,8 +100,6 @@ MouseArea {
anchors.fill: parent anchors.fill: parent
sourceComponent: DirectoryIcon { sourceComponent: DirectoryIcon {
fileModelData: root.fileModelData fileModelData: root.fileModelData
sourceSize.width: wallpaperItemColumnLayout.width
sourceSize.height: wallpaperItemColumnLayout.height - wallpaperItemColumnLayout.spacing - wallpaperItemName.height
} }
} }
} }
@@ -71,8 +71,6 @@ ContentPage {
StyledImage { StyledImage {
id: wallpaperPreview id: wallpaperPreview
anchors.fill: parent anchors.fill: parent
sourceSize.width: parent.implicitWidth
sourceSize.height: parent.implicitHeight
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
source: Config.options.background.wallpaperPath source: Config.options.background.wallpaperPath
cache: false cache: false
@@ -33,7 +33,7 @@ LockScreen {
interactables.switchToFocusedView(); interactables.switchToFocusedView();
} }
Image { StyledImage {
id: bg id: bg
z: 0 z: 0
width: parent.width width: parent.width
@@ -46,7 +46,6 @@ LockScreen {
openAnim.restart(); openAnim.restart();
} }
} }
sourceSize: Qt.size(lockSurfaceItem.width, lockSurfaceItem.height)
source: Config.options.background.wallpaperPath source: Config.options.background.wallpaperPath
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
@@ -102,8 +102,6 @@ MouseArea {
readonly property int size: 48 readonly property int size: 48
width: size width: size
height: size height: size
sourceSize.width: size
sourceSize.height: size
source: root.notification.image source: root.notification.image
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
} }
@@ -85,7 +85,6 @@ WMouseAreaButton {
active: !root.newWorkspace active: !root.newWorkspace
sourceComponent: StyledImage { sourceComponent: StyledImage {
cache: true cache: true
sourceSize: Qt.size(root.screenAspectRatio * root.wallpaperHeight, root.wallpaperHeight)
source: Config.options.background.wallpaperPath source: Config.options.background.wallpaperPath
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
@@ -1,45 +0,0 @@
# Original-Spec: https://copr-dist-git.fedorainfracloud.org/packages/solopasha/hyprland/hyprland-qt-support.git/plain/hyprland-qt-support.spec?h=master
Name: hyprland-qt-support
Version: 0.1.0
Release: %autorelease -b9
Summary: A Qt6 Qml style provider for hypr* apps
License: BSD-3-Clause
URL: https://github.com/hyprwm/hyprland-qt-support
Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: qt6-rpm-macros
BuildRequires: cmake(Qt6Quick)
BuildRequires: cmake(Qt6QuickControls2)
BuildRequires: cmake(Qt6Qml)
BuildRequires: pkgconfig(hyprlang)
%description
%{summary}.
%prep
%autosetup -p1
%build
%cmake -DINSTALL_QMLDIR=%{_qt6_qmldir}
%cmake_build
%install
%cmake_install
%files
%license LICENSE
%doc README.md
%{_prefix}/lib/libhyprland-quick-style-impl.so
%{_prefix}/lib/libhyprland-quick-style.so
%{_qt6_qmldir}/org/hyprland/
%changelog
%autochangelog
+4 -5
View File
@@ -1,11 +1,10 @@
%global commit e65259d68edc034905da477b6c1a349e89e2aa8d %global commit 4112d352914742ba69f6380fd07984adba02d376
%global shortcommit %(c=%{commit}; echo ${c:0:7}) %global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commits 719 %global snapdate 20260322
%global snapdate 20260213 %global tag 4.1.0
%global tag 4.0.0
Name: matugen Name: matugen
Version: %{tag}^%{commits}.%{shortcommit} Version: %{tag}.%{shortcommit}
Release: 0%{?dist} Release: 0%{?dist}
Summary: A cross-platform material you and base16 color generation tool Summary: A cross-platform material you and base16 color generation tool
+1 -1
View File
@@ -84,6 +84,7 @@ packages = [
packages = [ packages = [
"hyprland", "hyprland",
"hyprland-guiutils", "hyprland-guiutils",
"hyprland-qt-support",
"hyprsunset", "hyprsunset",
"wl-clipboard" "wl-clipboard"
] ]
@@ -205,4 +206,3 @@ packages = [
"unzip" "unzip"
] ]
install_opts = ["--setopt=install_weak_deps=False"] install_opts = ["--setopt=install_weak_deps=False"]
-1
View File
@@ -37,7 +37,6 @@ function install_RPMS() {
packages=( packages=(
"cpptrace" "cpptrace"
"quickshell-git" "quickshell-git"
"hyprland-qt-support"
"matugen" "matugen"
) )
for package in "${packages[@]}"; do for package in "${packages[@]}"; do
+2 -2
View File
@@ -78,8 +78,8 @@ elif test -f /etc/os-release; then
else else
printf "${STY_RED}/etc/os-release does not exist, aborting...${STY_RST}\n" ; exit 1 printf "${STY_RED}/etc/os-release does not exist, aborting...${STY_RST}\n" ; exit 1
fi fi
export OS_DISTRO_ID=$(awk -F'=' '/^ID=/ { gsub("\"","",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null) export OS_DISTRO_ID=$(awk -F'=' '/^ID=/ { gsub(/["\x27]/,"",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null)
export OS_DISTRO_ID_LIKE=$(awk -F'=' '/^ID_LIKE=/ { gsub("\"","",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null) export OS_DISTRO_ID_LIKE=$(awk -F'=' '/^ID_LIKE=/ { gsub(/["\x27]/,"",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null)
#################### ####################