fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Install lucid

This commit is contained in:
Sweetbread committed 2026-11-04 22:06:16 +03:00
1 parent 8ce7838f1f
commit 82087831a1
5 files changed
+134 -12

No files matched your search

+4 -4
View File
@@ -2,15 +2,15 @@
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
monitor = [ monitor = [
{ {
output = "DP-3"; output = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622";
mode = "3440x1440@165"; mode = "3440x1440@120";
position = "auto-right"; position = "1920x0";
scale = 1; scale = 1;
cm = "srgb"; cm = "srgb";
supports_hdr = -1; supports_hdr = -1;
} }
{ {
output = "HDMI-A-1"; output = "desc:Samsung Electric Company SAMSUNG 0x01000E00";
disabled = true; disabled = true;
} }
]; ];
+14 -3
View File
@@ -2,8 +2,19 @@
-- user-owned Lucid monitor list is empty. -- user-owned Lucid monitor list is empty.
return { return {
monitors = { monitors = {
{ output = "DP-3", mode = "3440x1440@165", position = "auto-right", scale = "1" }, { output = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622", mode = "3440x1440@120.00", position = "1920x0", scale = "1" },
{ output = "HDMI-A-1", disabled = true }, { output = "desc:Samsung Electric Company SAMSUNG 0x01000E00", disabled = true },
},
workspaces = {
{ workspace = "1", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622", default = true },
{ workspace = "2", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "3", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "4", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "5", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "6", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "7", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "8", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "9", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
{ workspace = "10", monitor = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622" },
}, },
workspaces = {},
} }
+4 -4
View File
@@ -170,11 +170,11 @@
"mediaStyle": "disc", "mediaStyle": "disc",
"mediaTitleWidth": 300, "mediaTitleWidth": 300,
"mediaWheelVolume": true, "mediaWheelVolume": true,
"monitorBarScreen": "", "monitorBarScreen": "*",
"monitorDockScreen": "", "monitorDockScreen": "",
"monitorSetups": "{}", "monitorSetups": "{\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\":{\"x\":1920,\"y\":0,\"mode\":\"3440x1440@120.00\"},\"desc:Samsung Electric Company SAMSUNG 0x01000E00\":{\"x\":0,\"y\":0,\"mode\":\"1920x1080@23.98\",\"off\":true}}",
"monitorShellScreen": "", "monitorShellScreen": "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622",
"monitorWorkspaces": "{}", "monitorWorkspaces": "{\"mode\":\"split\",\"assign\":{\"1\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"2\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"3\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"4\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"5\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"6\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"7\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"8\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"9\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\",\"10\":\"desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622\"}}",
"motionScale": 1, "motionScale": 1,
"nightLight": false, "nightLight": false,
"nightLightFrom": 1260, "nightLightFrom": 1260,
+3
View File
@@ -133,6 +133,9 @@ ShellRoot {
SettingsHost { SettingsHost {
} }
DisplayTrial {
}
Binding { Binding {
target: Monitors target: Monitors
property: "barWindows" property: "barWindows"
+109 -1
View File
@@ -84,6 +84,101 @@ PY
user = true; user = true;
}); });
themeName = pkgs.writeText "lucid-current-theme" "stylix\n"; themeName = pkgs.writeText "lucid-current-theme" "stylix\n";
themeAutoPatch = pkgs.writeText "lucid-theme-auto.patch" ''
--- a/Prefs.qml
+++ b/Prefs.qml
@@ -455,5 +455,12 @@
function setColorMode(mode) {
+ if (mode === "auto") {
+ root.setAutoColorMode(true);
+ return;
+ }
- if ((mode !== "dark" && mode !== "light") || mode === root.colorMode)
+ if (mode !== "dark" && mode !== "light")
return;
+ root.setAutoColorMode(false);
+ if (mode === root.colorMode)
+ return;
// set straight away so the control answers the click; the cache file is
@@ -484,2 +491,4 @@
function setAutoColorMode(on) {
+ if (on && root.currentTheme !== "matugen" && root.currentTheme !== "pywal")
+ return;
root.autoColorMode = on;
@@ -1669,1 +1678,5 @@
- onLoaded: root.currentTheme = text().trim() || "matugen"
+ onLoaded: {
+ root.currentTheme = text().trim() || "matugen";
+ if (root.currentTheme !== "matugen" && root.currentTheme !== "pywal" && root.autoColorMode)
+ root.setAutoColorMode(false);
+ }
--- a/lucidprefs/ThemePage.qml
+++ b/lucidprefs/ThemePage.qml
@@ -11,9 +11,14 @@
readonly property string home: Quickshell.env("HOME")
readonly property string currentTheme: Prefs.currentTheme
- readonly property var modeOptions: [{
+ readonly property bool wallpaperDerivedTheme: page.currentTheme === "matugen" || page.currentTheme === "pywal"
+ readonly property var modeOptions: [{
"key": "dark",
"label": "Dark"
}, {
"key": "light",
"label": "Light"
}]
+ readonly property var autoModeOptions: page.modeOptions.concat([{
+ "key": "auto",
+ "label": "Auto"
+ }])
@@ -22,1 +27,1 @@
- readonly property string modeHint: page.currentTheme === "matugen" || page.currentTheme === "pywal" ? "Re-derives the palette from your wallpaper in the mode you pick. Applications are asked to match." : (page.currentTheme === "colour" ? "Builds the palette from your colour again in the mode you pick. Applications are asked to match." : "Builds a light palette from this theme's own colours. Applications are asked to match.")
+ readonly property string modeHint: page.wallpaperDerivedTheme ? "Auto follows the wallpaper brightness whenever you change the wallpaper. Dark and Light stay fixed until you choose another mode." : (page.currentTheme === "colour" ? "Builds the palette from your colour again in the mode you pick. Applications are asked to match." : "Builds a light palette from this theme's own colours. Applications are asked to match.")
@@ -273,6 +278,6 @@
M3Segmented {
- width: Theme.dp(200)
- current: Prefs.colorMode
- options: page.modeOptions
+ width: Theme.dp(page.wallpaperDerivedTheme ? 300 : 200)
+ current: Prefs.autoColorMode && page.wallpaperDerivedTheme ? "auto" : Prefs.colorMode
+ options: page.wallpaperDerivedTheme ? page.autoModeOptions : page.modeOptions
onChosen: (key) => {
return Prefs.setColorMode(key);
@@ -284,13 +289,0 @@
- SettingRow {
- title: "Follow the wallpaper"
- description: "Picks light for a bright wallpaper and dark for a dark one, every time the wallpaper changes. A hand-picked mode holds until the wallpaper changes next."
-
- M3Switch {
- checked: Prefs.autoColorMode
- onToggled: (v) => {
- return Prefs.setAutoColorMode(v);
- }
- }
-
- }
-
'';
settingsScreenPatch = pkgs.writeText "lucid-settings-screen.patch" ''
--- a/lucidprefs/Settings.qml
+++ b/lucidprefs/Settings.qml
@@ -9,2 +9,4 @@
FloatingWindow {
id: win
+ property var preferredScreen: null
+ screen: win.preferredScreen || Monitors.mainScreen
'';
wallpaperAutoPatch = pkgs.writeText "lucid-wallpaper-auto.patch" ''
--- a/set-wallpaper.sh
+++ b/set-wallpaper.sh
@@ -32,4 +32,5 @@
MODE="''${2:-}"
if [[ -z "$MODE" ]]; then
- if grep -qE '"autoColorMode"[[:space:]]*:[[:space:]]*true' "$HOME/.config/quickshell/lucidprefs/prefs.json" 2>/dev/null; then
+ if [[ "$CURRENT_THEME" == matugen || "$CURRENT_THEME" == pywal ]] && \
+ grep -qE '"autoColorMode"[[:space:]]*:[[:space:]]*true' "$HOME/.config/quickshell/lucidprefs/prefs.json" 2>/dev/null; then
MODE=auto
'';
kdeConnectBridgePython = pkgs.python3.withPackages (ps: [ ps.pygobject3 ]); kdeConnectBridgePython = pkgs.python3.withPackages (ps: [ ps.pygobject3 ]);
applyTheme = pkgs.writeShellScript "lucid-apply-theme" '' applyTheme = pkgs.writeShellScript "lucid-apply-theme" ''
case "''${1:-}" in case "''${1:-}" in
@@ -145,6 +240,16 @@ in {
--exclude='/lucidwidgets/widgets.json' \ --exclude='/lucidwidgets/widgets.json' \
"${source}/" "$target/" "${source}/" "$target/"
$DRY_RUN_CMD ${pkgs.patch}/bin/patch --batch -p1 -d "$target" < ${../../../modules/user/lucid/idle-work.patch} $DRY_RUN_CMD ${pkgs.patch}/bin/patch --batch -p1 -d "$target" < ${../../../modules/user/lucid/idle-work.patch}
if ! grep -Fq 'mode === "auto"' "$target/Prefs.qml"; then
$DRY_RUN_CMD ${pkgs.patch}/bin/patch --batch --forward -p1 -d "$target" < ${themeAutoPatch}
fi
if ! grep -Fq 'property var preferredScreen: null' "$target/lucidprefs/Settings.qml"; then
$DRY_RUN_CMD ${pkgs.patch}/bin/patch --batch --forward -p1 -d "$target" < ${settingsScreenPatch}
fi
settings_qml="$target/lucidprefs/Settings.qml"
if ! grep -Fq 'win.preferredScreen = Monitors.focusedScreen || Monitors.mainScreen;' "$settings_qml"; then
$DRY_RUN_CMD sed -i '/if (win.visible) {/a\ win.preferredScreen = Monitors.focusedScreen || Monitors.mainScreen;' "$settings_qml"
fi
dock_qml="$target/luciddocks/Dock.qml" dock_qml="$target/luciddocks/Dock.qml"
if grep -Fq '/var/lib/snapd/desktop/applications; do' "$dock_qml"; then if grep -Fq '/var/lib/snapd/desktop/applications; do' "$dock_qml"; then
$DRY_RUN_CMD sed -i \ $DRY_RUN_CMD sed -i \
@@ -185,6 +290,9 @@ in {
"${config.home.homeDirectory}/.config/hypr/scripts/wallpaper" "${config.home.homeDirectory}/.config/hypr/scripts/wallpaper"
$DRY_RUN_CMD install -m755 "${source}/support/wallpaper/set-wallpaper.sh" \ $DRY_RUN_CMD install -m755 "${source}/support/wallpaper/set-wallpaper.sh" \
"${wallpaperScript}" "${wallpaperScript}"
if ! grep -Fq 'CURRENT_THEME" == matugen' "${wallpaperScript}"; then
$DRY_RUN_CMD ${pkgs.patch}/bin/patch --batch --forward -p1 -d "$(dirname ${lib.escapeShellArg wallpaperScript})" < ${wallpaperAutoPatch}
fi
lucid_dir="${config.home.homeDirectory}/.config/lucid" lucid_dir="${config.home.homeDirectory}/.config/lucid"
$DRY_RUN_CMD mkdir -p "$lucid_dir/themes" $DRY_RUN_CMD mkdir -p "$lucid_dir/themes"
@@ -331,7 +439,7 @@ in {
local lucid_monitor_apply = LucidMonitors.apply local lucid_monitor_apply = LucidMonitors.apply
LucidMonitors.apply = function(...) LucidMonitors.apply = function(...)
lucid_monitor_apply(...) lucid_monitor_apply(...)
hl.monitor({ output = "DP-3", cm = "srgb", supports_hdr = -1 }) hl.monitor({ output = "desc:Huawei Technologies Co. Inc. ZQE-CAA 0xC080F622", cm = "srgb", supports_hdr = -1 })
end end
LucidMonitors.apply() LucidMonitors.apply()
require("modules.settings") require("modules.settings")