nwg-piotr / nwg-panel

GTK3-based panel for sway and Hyprland Wayland compositors
MIT License
647 stars 44 forks source link

[BUG] the actual value of the keyboard layout isnt shown #352

Open m54c1 opened 5 days ago

m54c1 commented 5 days ago

The keyboard layout does not change correctly in nwg-panel, even though it works fine in waybar. The layout remains incorrect even when specifying the keyboard by its identifier from swaymsg get_inputs. The keylayout file simply reads the current value from swaymsg.

Steps to reproduce the behavior: Simply add several languages in the sway config and add a keyboard layout switcher in nwg-panel.

Expected behavior i expected that everything would change correctly after changing the active keyboard layout

2024-11-24 01-31-06.webm

nwg-piotr commented 5 days ago

No idea what you did to your config, but it works perfectly well for me.

obraz

m54c1 commented 5 days ago

The problem is that the keyboard layout changes normally through this switch, but when you invoke the language switch using the hotkey defined in the config, nothing changes on the panel. The change is reflected in the waybar, but not here. I don't know how to display my script on the panel, as this switch does not change the keyboard layout in a timely manner. If needed, here is my bash script, and I would appreciate any help in getting it to show on the panel.

https://pastebin.com/ZvV8BH5S

nwg-piotr commented 5 days ago

The script has no refresh interval in order not to add to the CPU load. After all it could be refreshed on a signal, but I expected users just to use the panel UI to switch layouts.

m54c1 commented 5 days ago

We didn't understand each other. It is fundamentally important for me to change the keyboard layout using hotkeys and at the same time see the current keyboard layout on the panel. I can't do this here, and the question arises: how can I display the name of the language I will be typing in on the panel?

nwg-piotr commented 5 days ago

What you need is an executor. You could refresh in a time interval or on a signal.