git: 3eb3ecdb7238 - main - x11/sddm: Fix keyboard layout setting when using Breeze theme
Gleb Popov <[email protected]> Sat, 01 Aug 2026 16:00:26 +0000
| Newsgroups | gmane.os.freebsd.devel.cvs.ports |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by arrowd: URL: https://cgit.FreeBSD.org/ports/commit/?id=3eb3ecdb7238a60bcecbbb1265c7489668867714 commit 3eb3ecdb7238a60bcecbbb1265c7489668867714 Author: Gleb Popov <[email protected]> AuthorDate: 2026-08-01 14:52:11 +0000 Commit: Gleb Popov <[email protected]> CommitDate: 2026-08-01 15:25:58 +0000 x11/sddm: Fix keyboard layout setting when using Breeze theme PR: 296696 --- x11/sddm/Makefile | 5 +++-- x11/sddm/files/patch-data_scripts_Xsetup | 20 ++++++++++++++++++++ x11/sddm/files/sddm.in | 4 ++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/x11/sddm/Makefile b/x11/sddm/Makefile index 33b42d349f8b..5d6f5defaba5 100644 --- a/x11/sddm/Makefile +++ b/x11/sddm/Makefile @@ -2,7 +2,7 @@ PORTNAME= sddm DISTVERSIONPREFIX= v DISTVERSION= 0.21.0-36 DISTVERSIONSUFFIX= -gc2b97dd -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= x11 MAINTAINER= [email protected] @@ -24,7 +24,8 @@ RUN_DEPENDS= consolekit2>1.2.5:sysutils/consolekit2 \ xauth:x11/xauth \ xmessage:x11/xmessage \ xrdb:x11/xrdb \ - xsetroot:x11/xsetroot + xsetroot:x11/xsetroot \ + setxkbmap:x11/setxkbmap USES= cmake compiler:c++17-lang cpe gl pkgconfig python:build qt:6 xorg CPE_VENDOR= ${PORTNAME}_project diff --git a/x11/sddm/files/patch-data_scripts_Xsetup b/x11/sddm/files/patch-data_scripts_Xsetup new file mode 100644 index 000000000000..988dac46f9df --- /dev/null +++ b/x11/sddm/files/patch-data_scripts_Xsetup @@ -0,0 +1,20 @@ +--- data/scripts/Xsetup.orig 2025-01-31 09:57:01 UTC ++++ data/scripts/Xsetup +@@ -1,3 +1,17 @@ + #!/bin/sh + # Xsetup - run as root before the login dialog appears + ++if /usr/sbin/sysrc -ne sddm_xkb_layout; then ++ sddm_xkb_layout=$(/usr/sbin/sysrc -ne sddm_xkb_layout) ++elif /usr/sbin/sysrc -ne sddm_lang; then ++ sddm_lang=$(/usr/sbin/sysrc -ne sddm_lang) ++ sddm_xkb_layout=$(echo $sddm_lang | sed 's/.*_//' | tr '[:upper:]' '[:lower:]') ++else ++ sddm_xkb_layout="us" ++fi ++ ++if [ "$sddm_xkb_layout" != "us" ]; then ++ sddm_xkb_layout="us,${sddm_xkb_layout}" ++fi ++ ++setxkbmap -layout $sddm_xkb_layout diff --git a/x11/sddm/files/sddm.in b/x11/sddm/files/sddm.in index 13631420f546..b5358af736bf 100644 --- a/x11/sddm/files/sddm.in +++ b/x11/sddm/files/sddm.in @@ -15,6 +15,10 @@ rcvar=sddm_enable load_rc_config ${name} +# sddm_lang also controls the list of keyboard layouts in the breeze theme +# if your layouts are messed up you can override it by setting +# sddm_xkb_layout="us,de,fr,it,ru" +# in /etc/rc.conf : ${sddm_lang="en_US"} # .UTF-8 suffix will be added later to comply with locale format : ${sddm_enable="NO"}