From 2b854c50850e9fbaacc9d2cce74e222b89f42537 Mon Sep 17 00:00:00 2001 From: Aleksei Bavshin Date: Sat, 17 Feb 2024 22:06:01 -0800 Subject: [PATCH 1/4] sway: switch to `brightnessctl` `light` upstream repo is archived, so we have to switch to a maintained alternative. --- sway-config-fedora.spec.rpkg | 2 +- sway/config.d/60-bindings-brightness.conf | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sway-config-fedora.spec.rpkg b/sway-config-fedora.spec.rpkg index b2e28ff..208bbd7 100644 --- a/sway-config-fedora.spec.rpkg +++ b/sway-config-fedora.spec.rpkg @@ -41,9 +41,9 @@ Recommends: rofi-wayland Recommends: xdg-user-dirs Requires: /usr/bin/pgrep Requires: /usr/bin/pkill +Requires: brightnessctl >= 0.5.1-11 Requires: desktop-backgrounds-compat Requires: grimshot -Requires: light Requires: lxqt-policykit Requires: playerctl Requires: pulseaudio-utils diff --git a/sway/config.d/60-bindings-brightness.conf b/sway/config.d/60-bindings-brightness.conf index 0e53ec2..5c1e808 100644 --- a/sway/config.d/60-bindings-brightness.conf +++ b/sway/config.d/60-bindings-brightness.conf @@ -1,18 +1,18 @@ -# Key bindings for brightness control using `light`. +# Key bindings for brightness control using `brightnessctl`. # Displays a notification with the current value if /usr/bin/notify-send is available # # Brightness increase/decrease step can be customized by setting the `$brightness_step` # variable to a numeric value before including the file. # -# Requires: light +# Requires: brightnessctl >= 0.5.1-11 # Recommends: libnotify set $brightness_notification_cmd command -v notify-send >/dev/null && \ - VALUE=$(light) && VALUE=${VALUE%%.*} && \ + VALUE=$(brightnessctl --percentage get) && \ notify-send -e -h string:x-canonical-private-synchronous:brightness \ -h "int:value:$VALUE" -t 800 "Brightness: ${VALUE}%" bindsym XF86MonBrightnessDown exec \ - 'STEP="$brightness_step" && light -U ${STEP:-5} && $brightness_notification_cmd' + 'STEP="$brightness_step" && brightnessctl -q set ${STEP:-5}%- && $brightness_notification_cmd' bindsym XF86MonBrightnessUp exec \ - 'STEP="$brightness_step" && light -A ${STEP:-5} && $brightness_notification_cmd' + 'STEP="$brightness_step" && brightnessctl -q set +${STEP:-5}% && $brightness_notification_cmd' From 6a81162a2b75cf746377dc9d9308e983d0aa609b Mon Sep 17 00:00:00 2001 From: Aleksei Bavshin Date: Tue, 27 Feb 2024 19:39:20 -0800 Subject: [PATCH 2/4] sddm: sync theme with upstream 0.21.0 + PR#1876 Source: github.com/sddm/sddm@cc03fabf2f3025842cee30b5f05d20f56b6a2270 --- sddm/03-sway-fedora/Main.qml | 26 ++++++++++--------- .../{metadata.desktop => metadata.desktop.in} | 1 + 2 files changed, 15 insertions(+), 12 deletions(-) rename sddm/03-sway-fedora/{metadata.desktop => metadata.desktop.in} (92%) diff --git a/sddm/03-sway-fedora/Main.qml b/sddm/03-sway-fedora/Main.qml index 4fac9f3..17b1b8a 100644 --- a/sddm/03-sway-fedora/Main.qml +++ b/sddm/03-sway-fedora/Main.qml @@ -40,17 +40,16 @@ Rectangle { Connections { target: sddm - onLoginSucceeded: { + function onLoginSucceeded() { errorMessage.color = "steelblue" errorMessage.text = textConstants.loginSucceeded } - - onLoginFailed: { + function onLoginFailed() { password.text = "" errorMessage.color = "red" errorMessage.text = textConstants.loginFailed } - onInformationMessage: { + function onInformationMessage(message) { errorMessage.color = "red" errorMessage.text = message } @@ -58,11 +57,12 @@ Rectangle { Background { anchors.fill: parent - source: config.background + source: Qt.resolvedUrl(config.background) fillMode: Image.PreserveAspectCrop onStatusChanged: { - if (status == Image.Error && source != config.defaultBackground) { - source = config.defaultBackground + var defaultBackground = Qt.resolvedUrl(config.defaultBackground) + if (status == Image.Error && source != defaultBackground) { + source = defaultBackground } } } @@ -87,7 +87,7 @@ Rectangle { width: Math.max(320, mainColumn.implicitWidth + 50) height: Math.max(320, mainColumn.implicitHeight + 50) - source: "rectangle.png" + source: Qt.resolvedUrl("rectangle.png") Column { id: mainColumn @@ -125,7 +125,7 @@ Rectangle { KeyNavigation.backtab: rebootButton; KeyNavigation.tab: password - Keys.onPressed: { + Keys.onPressed: function (event) { if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { sddm.login(name.text, password.text, sessionIndex) event.accepted = true @@ -152,7 +152,7 @@ Rectangle { KeyNavigation.backtab: name; KeyNavigation.tab: session - Keys.onPressed: { + Keys.onPressed: function (event) { if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { sddm.login(name.text, password.text, sessionIndex) event.accepted = true @@ -186,7 +186,7 @@ Rectangle { width: parent.width; height: 30 font.pixelSize: 14 - arrowIcon: "angle-down.png" + arrowIcon: Qt.resolvedUrl("angle-down.png") model: sessionModel index: sessionModel.lastIndex @@ -201,6 +201,8 @@ Rectangle { spacing : 4 anchors.bottom: parent.bottom + visible: keyboard.enabled && keyboard.layouts.length > 0 + Text { id: lblLayout width: parent.width @@ -215,7 +217,7 @@ Rectangle { width: parent.width; height: 30 font.pixelSize: 14 - arrowIcon: "angle-down.png" + arrowIcon: Qt.resolvedUrl("angle-down.png") KeyNavigation.backtab: session; KeyNavigation.tab: loginButton } diff --git a/sddm/03-sway-fedora/metadata.desktop b/sddm/03-sway-fedora/metadata.desktop.in similarity index 92% rename from sddm/03-sway-fedora/metadata.desktop rename to sddm/03-sway-fedora/metadata.desktop.in index acd0fa4..8931da6 100644 --- a/sddm/03-sway-fedora/metadata.desktop +++ b/sddm/03-sway-fedora/metadata.desktop.in @@ -14,3 +14,4 @@ TranslationsDirectory=translations Email=abdurrahmanavci@gmail.com Theme-Id=maldives Theme-API=2.0 +QtVersion=@QT_MAJOR_VERSION@ From d197b89723eca3d717884de4cc90f76062410023 Mon Sep 17 00:00:00 2001 From: Aleksei Bavshin Date: Wed, 7 Aug 2024 22:03:24 -0700 Subject: [PATCH 3/4] sway: apply system keyboard configuration in live environment Fixes: SIG#36 --- sway/config.live.d/99-system-keyboard-config.conf | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 sway/config.live.d/99-system-keyboard-config.conf diff --git a/sway/config.live.d/99-system-keyboard-config.conf b/sway/config.live.d/99-system-keyboard-config.conf new file mode 100644 index 0000000..c2c65eb --- /dev/null +++ b/sway/config.live.d/99-system-keyboard-config.conf @@ -0,0 +1,9 @@ +# Apply system-wide XKB configuration stored in systemd-localed. +# +# The configuration can be viewed with `localectl` and modified +# with `localectl set-x11-keymap`. +# +# In the live installer environment, Anaconda relies on the localed +# D-Bus API to update the keyboard configuration. + +exec /usr/libexec/sway-systemd/locale1-xkb-config From 32d27f88e288cf1577fd67112630c70e70386531 Mon Sep 17 00:00:00 2001 From: Aleksei Bavshin Date: Sun, 16 Feb 2025 22:18:07 -0800 Subject: [PATCH 4/4] Switch to JXL for Fedora 42 backgrounds. --- Makefile | 13 ++++++++----- sddm/03-sway-fedora/theme.conf | 2 -- sddm/03-sway-fedora/theme.conf.in | 2 ++ sway-config-fedora.spec.rpkg | 16 ++++++++++++++-- sway/config.in | 4 ++-- swaylock/{config => config.in} | 2 +- 6 files changed, 27 insertions(+), 12 deletions(-) delete mode 100644 sddm/03-sway-fedora/theme.conf create mode 100644 sddm/03-sway-fedora/theme.conf.in rename swaylock/{config => config.in} (84%) diff --git a/Makefile b/Makefile index 21cf3e2..ecb72d1 100644 --- a/Makefile +++ b/Makefile @@ -5,16 +5,19 @@ SYSCONFDIR ?= /etc BINDIR ?= $(PREFIX)/bin DATADIR ?= $(PREFIX)/share LIBEXECDIR ?= $(PREFIX)/libexec +BACKGROUND ?= $(DATADIR)/backgrounds/default.png .PHONY: build clean install check requires .DEFAULT: build -GENERATED := $(patsubst %.in,%,$(wildcard sway/*.in sway/*/*.in )) -VARIABLES := PREFIX SYSCONFDIR DATADIR LIBEXECDIR +TEMPLATES := sway/*.in sway/*/*.in swaylock/*.in sddm/03-sway-fedora/theme.conf.in +GENERATED := $(patsubst %.in,%,$(wildcard $(TEMPLATES))) +VARIABLES := PREFIX SYSCONFDIR DATADIR LIBEXECDIR BACKGROUND -sway/%: sway/%.in - sed "$(foreach var,$(VARIABLES),s^@$(var)@^$($(var))^i;)" $^ > $@ - sed '$(foreach var,$(VARIABLES),s^$$$(var)\b^$($(var))^i;)' $^ > $@ +%: %.in + sed -e "$(foreach var,$(VARIABLES),s^@$(var)@^$($(var))^i;)" \ + -e '$(foreach var,$(VARIABLES),s^$$$(var)\b^$($(var))^i;)' \ + $^ > $@ build: $(GENERATED) diff --git a/sddm/03-sway-fedora/theme.conf b/sddm/03-sway-fedora/theme.conf deleted file mode 100644 index 80ad085..0000000 --- a/sddm/03-sway-fedora/theme.conf +++ /dev/null @@ -1,2 +0,0 @@ -[General] -background=/usr/share/backgrounds/default.png diff --git a/sddm/03-sway-fedora/theme.conf.in b/sddm/03-sway-fedora/theme.conf.in new file mode 100644 index 0000000..757799e --- /dev/null +++ b/sddm/03-sway-fedora/theme.conf.in @@ -0,0 +1,2 @@ +[General] +background=@BACKGROUND@ diff --git a/sway-config-fedora.spec.rpkg b/sway-config-fedora.spec.rpkg index 208bbd7..35f5ce8 100644 --- a/sway-config-fedora.spec.rpkg +++ b/sway-config-fedora.spec.rpkg @@ -2,6 +2,7 @@ %bcond initialsetup %[0%{?fedora} >= 40 || 0%{?rhel} >= 10] %bcond sddm 1 %global sway_ver 1.8 +%global bg_format %[ 0%{?fedora} >= 42 ? "jxl" : "png" ] Name: {{{ git_name }}} Version: {{{ git_version }}} @@ -44,6 +45,9 @@ Requires: /usr/bin/pkill Requires: brightnessctl >= 0.5.1-11 Requires: desktop-backgrounds-compat Requires: grimshot +%if "%{bg_format}" == "jxl" +Requires: jxl-pixbuf-loader +%endif Requires: lxqt-policykit Requires: playerctl Requires: pulseaudio-utils @@ -80,6 +84,9 @@ Provides: sddm-greeter-displayserver Conflicts: sddm-greeter-displayserver Requires: desktop-backgrounds-compat +%if "%{bg_format}" == "jxl" +Requires: kf6-kimageformats +%endif Requires: sddm >= 0.20.0 Requires: sway >= %{sway_ver} @@ -94,11 +101,16 @@ to use Sway for the greeter display server. %build -%make_build +%make_build \ + PREFIX='%{_prefix}' \ + BACKGROUND='%{_datadir}/backgrounds/default.%{bg_format}' %install -%make_install PREFIX='%{_prefix}' WITH_INITIALSETUP='%[%{with initialsetup}?"yes":"no"]' WITH_SDDM='%[%{with sddm}?"yes":"no"]' +%make_install \ + PREFIX='%{_prefix}' \ + WITH_INITIALSETUP='%[%{with initialsetup}?"yes":"no"]' \ + WITH_SDDM='%[%{with sddm}?"yes":"no"]' %files diff --git a/sway/config.in b/sway/config.in index 6e57ce5..53b8844 100644 --- a/sway/config.in +++ b/sway/config.in @@ -30,8 +30,8 @@ set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi ### Output configuration # # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) -# Requires: desktop-backgrounds-compat, swaybg -output * bg /usr/share/backgrounds/default.png fill +# Requires: desktop-backgrounds-compat, swaybg, jxl-pixbuf-loader +output * bg @BACKGROUND@ fill # # Example configuration: # diff --git a/swaylock/config b/swaylock/config.in similarity index 84% rename from swaylock/config rename to swaylock/config.in index ec2afc7..607bcf2 100644 --- a/swaylock/config +++ b/swaylock/config.in @@ -3,5 +3,5 @@ # # Image path supports environment variables and shell expansions, # e.g. image=$HOME/Pictures/default.png -image=/usr/share/backgrounds/default.png +image=@BACKGROUND@ scaling=fill