diff --git a/quickshell/Common/SettingsData.qml b/quickshell/Common/SettingsData.qml index a673728c6..09cabd209 100644 --- a/quickshell/Common/SettingsData.qml +++ b/quickshell/Common/SettingsData.qml @@ -546,6 +546,7 @@ Singleton { property bool greeterAutoLogin: false property bool greeterEnableFprint: false property bool greeterEnableU2f: false + property bool greeterShowWeather: true property string greeterWallpaperPath: "" property string greeterLockDateFormat: "" property string greeterFontFamily: "" @@ -921,6 +922,7 @@ Singleton { property bool lockScreenShowProfileImage: true property bool lockScreenShowPasswordField: true property bool lockScreenShowMediaPlayer: true + property bool lockScreenShowWeather: true property bool lockScreenPowerOffMonitorsOnLock: false property bool lockAtStartup: false diff --git a/quickshell/Common/settings/SettingsSpec.js b/quickshell/Common/settings/SettingsSpec.js index ccef9e568..9159a5697 100644 --- a/quickshell/Common/settings/SettingsSpec.js +++ b/quickshell/Common/settings/SettingsSpec.js @@ -271,6 +271,7 @@ var SPEC = { greeterAutoLogin: { def: false, onChange: "scheduleGreeterAutoLoginSync" }, greeterEnableFprint: { def: false, onChange: "markGreeterSyncPending" }, greeterEnableU2f: { def: false, onChange: "markGreeterSyncPending" }, + greeterShowWeather: { def: true, onChange: "markGreeterSyncPending" }, greeterWallpaperPath: { def: "", onChange: "markGreeterSyncPending" }, greeterLockDateFormat: { def: "", onChange: "markGreeterSyncPending" }, greeterFontFamily: { def: "", onChange: "markGreeterSyncPending" }, @@ -485,6 +486,7 @@ var SPEC = { lockScreenShowProfileImage: { def: true }, lockScreenShowPasswordField: { def: true }, lockScreenShowMediaPlayer: { def: true }, + lockScreenShowWeather: { def: true }, lockScreenPowerOffMonitorsOnLock: { def: false }, lockAtStartup: { def: false }, enableFprint: { def: false }, diff --git a/quickshell/Modules/Greetd/GreetdSettings.qml b/quickshell/Modules/Greetd/GreetdSettings.qml index 9b83fc413..6b28cb473 100644 --- a/quickshell/Modules/Greetd/GreetdSettings.qml +++ b/quickshell/Modules/Greetd/GreetdSettings.qml @@ -53,6 +53,7 @@ Singleton { property string weatherCoordinates: "40.7128,-74.0060" property bool useAutoLocation: false property bool weatherEnabled: true + property bool greeterShowWeather: true property string iconTheme: "System Default" property bool useOSLogo: false property string osLogoColorOverride: "" @@ -126,6 +127,7 @@ Singleton { weatherCoordinates = settings.weatherCoordinates !== undefined ? settings.weatherCoordinates : "40.7128,-74.0060"; useAutoLocation = settings.useAutoLocation !== undefined ? settings.useAutoLocation : false; weatherEnabled = settings.weatherEnabled !== undefined ? settings.weatherEnabled : true; + greeterShowWeather = settings.greeterShowWeather !== undefined ? settings.greeterShowWeather : true; iconTheme = settings.iconTheme !== undefined ? settings.iconTheme : "System Default"; useOSLogo = settings.useOSLogo !== undefined ? settings.useOSLogo : false; osLogoColorOverride = settings.osLogoColorOverride !== undefined ? settings.osLogoColorOverride : ""; diff --git a/quickshell/Modules/Greetd/GreeterContent.qml b/quickshell/Modules/Greetd/GreeterContent.qml index 3345240b5..77e5f7bd2 100644 --- a/quickshell/Modules/Greetd/GreeterContent.qml +++ b/quickshell/Modules/Greetd/GreeterContent.qml @@ -103,7 +103,7 @@ Item { return; if (!GreetdSettings.settingsLoaded) return; - if (!GreetdSettings.weatherEnabled) + if (!GreetdSettings.greeterShowWeather) return; weatherInitialized = true; WeatherService.addRef(); @@ -1520,13 +1520,13 @@ Item { anchors.verticalCenter: parent.verticalCenter visible: { const keyboardVisible = (CompositorService.isNiri && NiriService.keyboardLayoutNames.length > 1) || (CompositorService.isHyprland && hyprlandLayoutCount > 1); - return keyboardVisible && GreetdSettings.weatherEnabled && WeatherService.weather.available; + return keyboardVisible && GreetdSettings.greeterShowWeather && WeatherService.weather.available; } } Row { spacing: Theme.spacingXS - visible: GreetdSettings.weatherEnabled && WeatherService.weather.available + visible: GreetdSettings.greeterShowWeather && WeatherService.weather.available anchors.verticalCenter: parent.verticalCenter DankIcon { @@ -1550,7 +1550,7 @@ Item { height: 24 color: Qt.rgba(255, 255, 255, 0.2) anchors.verticalCenter: parent.verticalCenter - visible: GreetdSettings.weatherEnabled && WeatherService.weather.available && (NetworkService.networkStatus !== "disconnected" || BluetoothService.enabled || (AudioService.sink && AudioService.sink.audio) || BatteryService.batteryAvailable) + visible: GreetdSettings.greeterShowWeather && WeatherService.weather.available && (NetworkService.networkStatus !== "disconnected" || BluetoothService.enabled || (AudioService.sink && AudioService.sink.audio) || BatteryService.batteryAvailable) } Row { diff --git a/quickshell/Modules/Lock/LockScreenContent.qml b/quickshell/Modules/Lock/LockScreenContent.qml index 64c178e18..2eec3ff77 100644 --- a/quickshell/Modules/Lock/LockScreenContent.qml +++ b/quickshell/Modules/Lock/LockScreenContent.qml @@ -1769,12 +1769,12 @@ Item { height: 24 color: Qt.rgba(255, 255, 255, 0.2) anchors.verticalCenter: parent.verticalCenter - visible: MprisController.activePlayer && SettingsData.lockScreenShowMediaPlayer && WeatherService.weather.available + visible: MprisController.activePlayer && SettingsData.lockScreenShowMediaPlayer && SettingsData.lockScreenShowWeather && WeatherService.weather.available } Row { spacing: Theme.spacingXS - visible: WeatherService.weather.available + visible: SettingsData.lockScreenShowWeather && WeatherService.weather.available anchors.verticalCenter: parent.verticalCenter DankIcon { @@ -1798,7 +1798,7 @@ Item { height: 24 color: Qt.rgba(255, 255, 255, 0.2) anchors.verticalCenter: parent.verticalCenter - visible: WeatherService.weather.available && (NetworkService.networkStatus !== "disconnected" || BluetoothService.enabled || (AudioService.sink && AudioService.sink.audio) || BatteryService.batteryAvailable) + visible: SettingsData.lockScreenShowWeather && WeatherService.weather.available && (NetworkService.networkStatus !== "disconnected" || BluetoothService.enabled || (AudioService.sink && AudioService.sink.audio) || BatteryService.batteryAvailable) } Row { diff --git a/quickshell/Modules/Settings/GreeterTab.qml b/quickshell/Modules/Settings/GreeterTab.qml index 260fd21cd..9149560ff 100644 --- a/quickshell/Modules/Settings/GreeterTab.qml +++ b/quickshell/Modules/Settings/GreeterTab.qml @@ -531,6 +531,15 @@ Item { onFontSelected: family => SettingsData.set("greeterFontFamily", family) } + SettingsToggleRow { + settingKey: "greeterShowWeather" + tags: ["greeter", "weather", "temperature", "login"] + text: I18n.tr("Weather", "Enable weather display on the login screen") + description: I18n.tr("Show weather on the login screen") + checked: SettingsData.greeterShowWeather + onToggled: checked => SettingsData.set("greeterShowWeather", checked) + } + StyledText { text: I18n.tr("Date format on greeter") font.pixelSize: Theme.fontSizeMedium diff --git a/quickshell/Modules/Settings/LockScreenTab.qml b/quickshell/Modules/Settings/LockScreenTab.qml index b92143e0d..1b5a43572 100644 --- a/quickshell/Modules/Settings/LockScreenTab.qml +++ b/quickshell/Modules/Settings/LockScreenTab.qml @@ -341,6 +341,14 @@ Item { onToggled: checked => SettingsData.set("lockScreenShowMediaPlayer", checked) } + SettingsToggleRow { + settingKey: "lockScreenShowWeather" + tags: ["lock", "screen", "weather", "temperature", "forecast"] + text: I18n.tr("Weather", "Enable weather display on the lock screen window") + checked: SettingsData.lockScreenShowWeather + onToggled: checked => SettingsData.set("lockScreenShowWeather", checked) + } + SettingsDropdownRow { settingKey: "lockScreenNotificationMode" tags: ["lock", "screen", "notification", "notifications", "privacy"] diff --git a/quickshell/translations/settings_search_index.json b/quickshell/translations/settings_search_index.json index 4f7a92a50..295afd446 100644 --- a/quickshell/translations/settings_search_index.json +++ b/quickshell/translations/settings_search_index.json @@ -6073,6 +6073,23 @@ "icon": "movie", "description": "Play a video when the screen locks." }, + { + "section": "lockScreenShowWeather", + "label": "Weather", + "tabIndex": 11, + "category": "Lock Screen", + "keywords": [ + "climate", + "forecast", + "lock", + "login", + "password", + "screen", + "security", + "temperature", + "weather" + ] + }, { "section": "_tab_12", "label": "Plugins", @@ -9478,6 +9495,26 @@ "description": "DMS removes its managed block from /etc/pam.d/greetd and stops write services", "conditionKey": "greeterAvailable" }, + { + "section": "greeterShowWeather", + "label": "Weather", + "tabIndex": 31, + "category": "Greeter", + "keywords": [ + "climate", + "display manager", + "forecast", + "greetd", + "greeter", + "login", + "screen", + "show", + "temperature", + "weather" + ], + "description": "Show weather on the login screen", + "conditionKey": "greeterAvailable" + }, { "section": "muxType", "label": "General",