You are not logged in.
Hi all
So I'm trying to set up a new machine with xfce, but it has a mac keyboard.
No problem, go into setting -> keyboard and select the correct keyboard.
Excellent, I have a working keyboard
$ setxkbmap -query
rules: base
model: macbook79
layout: gb
and a keyboard-layout.xml gets generated in my ~/.config/xfce4/xfconf/xfce-perchannel-xml
<?xml version="1.0" encoding="UTF-8"?>
<channel name="keyboard-layout" version="1.0">
<property name="Default" type="empty">
<property name="XkbDisable" type="bool" value="false"/>
<property name="XkbModel" type="string" value="macbook79"/>
<property name="XkbLayout" type="string" value="gb"/>
<property name="XkbVariant" type="string" value="mac"/>
</property>
</channel>
Alas, when I logout and back in, the xconf settings are still there, but the keyboard isn't set correctly?
$ xfconf-query -c keyboard-layout -l -v
/Default/XkbDisable false
/Default/XkbLayout gb
/Default/XkbModel macbook79
/Default/XkbVariant mac
But has switched back to default keyboard?
$ setxkbmap -query
rules: base
model: pc104
layout: gb
I've tried some horrible hacks like having an autostart desktop app run the `setxkbmap` to the correct model, but that also doesn't work.
Is there something else I need to give a poke?
Thanks for any help
Lee
Last edited by mouse808 (2024-10-03 14:14:13)
Offline
Hello and welcome.
What version of xfce4-settings are you running?
Does running:
xfsettingsd --replace
...fix the issue?
And finally, can you post the contents of your ~/.xsession-errors file, if it exists, or if not and you are using systemd, then the output of:
journalctl --user -b 0 --no-pager
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
Hi Toz
Thanks for your reply.
Yeah sorry I forgot the versions, I'm on 4.16.5. This is running on Redhat 8 and I'm using xrdp and xorg to connect from a mac running "Microsoft remote desktop"
I'm migrating this from an old Centos 7 box running xfce 4.12 where it was all working (I understand that its not just the version of xfce thats changed here)
Running the "xfsettingsd --replace" does indeed fix the issue. But there are a couple of quirks. First it produces the following errors
$ XFSETTINGSD_DEBUG=1 xfsettingsd --replace
xfce4-settings(xsettings): _XSETTINGS_S0 registered on screen 0
xfce4-settings(xsettings): 31 settings changed (serial=0, len=1216)
xfce4-settings(xsettings): resource manager (xft) changed (len=110)
xfce4-settings(displays): Detected CRTC 1306.
xfce4-settings(displays): Detected output 1307 rdp0.
xfce4-settings(pointers): initialized xi 2.3
xfce4-settings(keyboards): initialized xkb 1.0
xfce4-settings(keyboards): set auto repeat on
xfce4-settings(keyboards): set key repeat (delay=500, rate=50)
xfce4-settings(keyboards): set numlock on
xfce4-settings(accessibility): AccessXKeys disabled
xfce4-settings(accessibility): stickykeys disabled
xfce4-settings(accessibility): slowkeys disabled
xfce4-settings(accessibility): bouncekeys disabled
xfce4-settings(accessibility): mousekeys disabled
xfce4-settings(keyboard-shortcuts): 29 shortcuts loaded
xfce4-settings(keyboard-layout): set model to "macbook79"
Error: No Symbols named "mac_intl" in the include file "macintosh_vndr/gb"
Exiting
Abandoning symbols file "(null)"
[1727864821,000,xklavier_config_xkb.c:xkl_config_get_keyboard/] Could not load /usr/bin/xkbcomp output as XKM file, got 127 (asked 127)
xfce4-settings(keyboard-layout): set variants to "mac_intl"
xfce4-settings(fontconfig): monitoring 31 paths
xfce4-settings(workspaces): 4 desktop names set from xfconf
It also hangs, but if I CTRL-C it starts another one and everything continues
I also noticed that I can give xfsettingsd a HUP and that also fixes it.
So I tried again to create an autostart item that does an exec of a 'killall -HUP xfsettingsd" Alas no joy, but whats very odd is I broke that out into a little wrapper script that I got the autostart to run in a terminal with some debug. So when it runs I then check the keyboard status, and its worked. But if I then open another terminal, the keyboard has reverted back to the "pc104" one
What could be running after the autostart items that would reset the keyboard back to some default value, or am I looking down the wrong path?
Thanks again for your help
journalctl as follows
-- Logs begin at Wed 2024-10-02 16:42:46 BST, end at Wed 2024-10-02 16:52:44 BST. --
Oct 02 16:42:46 xrdphost systemd[3177]: Starting D-Bus User Message Bus Socket.
Oct 02 16:42:46 xrdphost systemd[3177]: Reached target Paths.
Oct 02 16:42:46 xrdphost systemd[3177]: Started Mark boot as successful after the user session has run 2 minutes.
Oct 02 16:42:46 xrdphost systemd[3177]: Reached target Timers.
Oct 02 16:42:46 xrdphost systemd[3177]: Listening on D-Bus User Message Bus Socket.
Oct 02 16:42:46 xrdphost systemd[3177]: Reached target Sockets.
Oct 02 16:42:46 xrdphost systemd[3177]: Reached target Basic System.
Oct 02 16:42:46 xrdphost systemd[3177]: Reached target Default.
Oct 02 16:42:46 xrdphost systemd[3177]: Startup finished in 45ms.
Oct 02 16:42:46 xrdphost xrdp-sesman[3192]: xauth: file .Xauthority does not exist
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: X.Org X Server 1.20.11
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: X Protocol Version 11, Revision 0
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Build Operating System: 4.18.0-513.18.1.el8_9.x86_64
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Current Operating System: Linux xrdphost 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Wed Sep 11 18:02:00 EDT 2024 x86_64
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Kernel command line: BOOT_IMAGE=(hd0,gpt3)/boot/vmlinuz-4.18.0-553.22.1.el8_10.x86_64 root=UUID=9fbfebad-ad19-4692-86f0-696c37b6c4ab ro net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto console=tty0 console=ttyS0,115200n8 ipv6.disable=1 audit=1 audit_backlog_limit=8192
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Build Date: 10 April 2024 04:59:13AM
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Build ID: xorg-x11-server 1.20.11-24.el8_10
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Current version of pixman: 0.38.4
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Before reporting problems, check http://wiki.x.org
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: to make sure that you have the latest version.
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: Markers: (--) probed, (**) from config file, (==) default setting,
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: (++) from command line, (!!) notice, (II) informational,
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: (++) Log file: ".xorgxrdp.10.log", Time: Wed Oct 2 16:42:46 2024
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: (++) Using config file: "/etc/X11/xrdp/xorg.conf"
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: (==) Using config directory: "/etc/X11/xorg.conf.d"
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: (==) Using system config directory "/usr/share/X11/xorg.conf.d"
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: xorgxrdpSetup:
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: xrdpdevSetup:
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpmousePlug:
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpkeybPlug:
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpIdentify:
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpDriverFunc: op 10
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpProbe:
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpPreInit:
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpScreenInit: virtualX 800 virtualY 600 rgbBits 8 depth 24
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpScreenInit: pfbMemory bytes 1920000
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpScreenInit: pfbMemory 0x7ffb6d54c010
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpSimdInit: assigning yuv functions
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpSimdInit: cpuid ax 1 cx 0 return ax 0x00a00f11 bx 0x01020800 cx 0xfefa3203 dx 0x178bfbff
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpSimdInit: sse2 amd64 yuv functions assigned
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpClientConInit: disconnect idle session after [0] sec
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpClientConInit: kill disconnected [0] timeout [0] sec
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpXvInit: depth 24
Oct 02 16:42:46 xrdphost xrdp-sesman[3191]: rdpScreenInit: out
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpCreateScreenResources:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpmousePreInit: drv 0x561baf049f60 info 0x561baf189380, flags 0x0
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpmouseControl: what 0
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpmouseDeviceInit:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpmouseCtrl:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRegisterInputCallback: type 1 proc 0x7ffb6d926110
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpmouseControl: what 1
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpmouseDeviceOn:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpkeybPreInit: drv 0x561baf049a00 info 0x561baf2f98f0, flags 0x0
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpkeybControl: what 0
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpkeybDeviceInit:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRegisterInputCallback: type 0 proc 0x7ffb6d7226c0
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpkeybControl: what 1
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpkeybDeviceOn:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpDeferredRandR:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpResizeSession: width 1024 height 768
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: calling RRScreenSizeSet
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRScreenSetSize: width 1024 height 768 mmWidth 271 mmHeight 203
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRGetInfo:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: screen resized to 1024x768
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: RRScreenSizeSet ok 1
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpResizeSession: width 2560 height 1440
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: calling RRScreenSizeSet
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRScreenSetSize: width 2560 height 1440 mmWidth 677 mmHeight 381
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRGetInfo:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: screen resized to 2560x1440
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: RRScreenSizeSet ok 1
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRSetRdpOutputs: numCrtcs 0 numOutputs 0 monitorCount 0
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRSetRdpOutputs: update output 0 left 0 top 0 width 2560 height 1440
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRConnectOutput:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpRRGetInfo:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpClientConGotConnection:
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpClientConGotConnection: g_sck_accept ok new_sck 7
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpClientConGetConnection: idle_disconnect_timeout set to non-positive value, idle timer turned off
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpAddClientConToDev: adding first clientCon 0x561baf330fa0
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpClientConProcessMsgVersion: version 0 0 0 1
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: rdpClientConProcessMsgClientInput: invalidate x 0 y 0 cx 2560 cy 1440
Oct 02 16:42:52 xrdphost xrdp-sesman[3191]: KbdSync: toggling num lock
Oct 02 16:42:52 xrdphost xrdp-sesman[3199]: /bin/startxfce4: X server already running on display :10.0
Oct 02 16:42:52 xrdphost systemd[3177]: Started D-Bus User Message Bus.
Oct 02 16:42:52 xrdphost systemd[3177]: Starting Accessibility services bus...
Oct 02 16:42:52 xrdphost systemd[3177]: Started Accessibility services bus.
Oct 02 16:42:53 xrdphost at-spi-bus-launcher[3218]: dbus-daemon[3218]: Activating service name='org.a11y.atspi.Registry' requested by ':1.0' (uid=1538163870 pid=3199 comm="xfce4-session " label="system_u:system_r:unconfined_service_t:s0")
Oct 02 16:42:53 xrdphost at-spi-bus-launcher[3218]: dbus-daemon[3218]: Successfully activated service 'org.a11y.atspi.Registry'
Oct 02 16:42:53 xrdphost at-spi-bus-launcher[3222]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
Oct 02 16:42:53 xrdphost xfwm4[3240]: g_str_has_prefix: assertion 'prefix != NULL' failed
Oct 02 16:42:53 xrdphost xfwm4[3240]: Unsupported GL renderer (llvmpipe (LLVM 17.0.6, 256 bits)).
Oct 02 16:42:53 xrdphost xrdp-sesman[3191]: rdpRRGetInfo:
Oct 02 16:42:54 xrdphost xfsettingsd[3248]: g_str_has_prefix: assertion 'prefix != NULL' failed
Oct 02 16:42:54 xrdphost xfsettingsd[3248]: g_value_get_string: assertion 'G_VALUE_HOLDS_STRING (value)' failed
Oct 02 16:42:54 xrdphost xfsettingsd[3248]: g_value_get_string: assertion 'G_VALUE_HOLDS_STRING (value)' failed
Oct 02 16:42:54 xrdphost xfsettingsd[3248]: g_value_get_string: assertion 'G_VALUE_HOLDS_STRING (value)' failed
Oct 02 16:42:54 xrdphost xfdesktop[3261]: Thumbnailer failed calling GetFlavors
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: rdpClientConProcessMsgClientInfo:
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: got client info bytes 7192
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: jpeg support 0
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: offscreen support 0
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: offscreen size 0
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: offscreen entries 0
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: rdpClientConAllocateSharedMemory: shmemfd 27 shmemptr 0x7ffb60474000 bytes 7372800
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: client can not do multimon
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: rdpRRSetRdpOutputs: numCrtcs 1 numOutputs 1 monitorCount 0
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: rdpRRSetRdpOutputs: update output 0 left 0 top 0 width 2560 height 1440
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: rdpRRConnectOutput:
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: client can not do offscreen to offscreen blits
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: client can do new(color) cursor
Oct 02 16:43:02 xrdphost xrdp-sesman[3191]: rdpLoadLayout: keylayout 0x00000809 variant display 10
Oct 02 16:43:12 xrdphost xrdp-sesman[3248]: xfsettingsd: Another instance took over. Leaving...
Oct 02 16:43:12 xrdphost xrdp-sesman[3191]: rdpRRGetInfo:
Oct 02 16:43:30 xrdphost xrdp-sesman[3191]: KbdSync: toggling num lock
Oct 02 16:45:01 xrdphost systemd[3177]: Starting Mark boot as successful...
Oct 02 16:45:01 xrdphost systemd[3177]: Started Mark boot as successful.
Offline
I believe this bug is fixed in later releases, but not backported to 4.16 (which isn't supported anymore).
Running the "xfsettingsd --replace" does indeed fix the issue. But there are a couple of quirks.
It also hangs,
You could start it and send it to the background:
xfsettingsd --replace &
What could be running after the autostart items that would reset the keyboard back to some default value, or am I looking down the wrong path?
Perhaps its a race condition of some sort. Try adding a 10 second delay before running that command in autostart to see if it works.
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
sleep 2
Was all it took
Not sure whats going on, but it working now, thanks for your help
Offline
[ Generated in 0.012 seconds, 7 queries executed - Memory usage: 600.79 KiB (Peak: 617.63 KiB) ]