Alexays / Waybar

Highly customizable Wayland bar for Sway and Wlroots based compositors. :v: :tada:
MIT License
6.59k stars 704 forks source link

hyprland/language: incorrect language parsing #3487

Open mexanoz opened 3 months ago

mexanoz commented 3 months ago

The issue seems related/similar to #3222. Waybar seems to not parse the layout name correctly when it has commas in it, which causes it to display an empty string instead of the language indication. In this case, the offending layout name is "English (intl., with AltGr dead keys)". Correct behavior:

[2024-07-30 19:46:48.254] [debug] hyprland IPC received activelayout>>at-translated-set-2-keyboard,Russian
[2024-07-30 19:46:48.322] [debug] hyprland language onevent with Russian
[2024-07-30 19:46:48.322] [debug] hyprland language update with full name Russian
[2024-07-30 19:46:48.322] [debug] hyprland language update with short name ru
[2024-07-30 19:46:48.322] [debug] hyprland language update with short description ru
[2024-07-30 19:46:48.322] [debug] hyprland language update with variant
[2024-07-30 19:46:48.322] [debug] hyprland language formatted layout name ru

Incorrect behavior:

[2024-07-30 19:47:23.460] [debug] hyprland IPC received activelayout>>at-translated-set-2-keyboard,English (intl., with AltGr dead keys)
[2024-07-30 19:47:23.514] [debug] hyprland language didn't find matching layout
[2024-07-30 19:47:23.514] [debug] hyprland language onevent with  with AltGr dead keys)
[2024-07-30 19:47:23.515] [debug] hyprland language update with full name
[2024-07-30 19:47:23.515] [debug] hyprland language update with short name
[2024-07-30 19:47:23.515] [debug] hyprland language update with short description
[2024-07-30 19:47:23.515] [debug] hyprland language update with variant
[2024-07-30 19:47:23.515] [debug] hyprland language formatted layout name

Note also that this only happens when switching the keymap and it works correctly when launching Waybar with this layout selected:

[2024-07-30 19:50:01.138] [debug] hyprland language update with full name English (intl., with AltGr dead keys)
[2024-07-30 19:50:01.138] [debug] hyprland language update with short name us
[2024-07-30 19:50:01.138] [debug] hyprland language update with short description en
[2024-07-30 19:50:01.138] [debug] hyprland language update with variant altgr-intl
[2024-07-30 19:50:01.138] [debug] hyprland language formatted layout name us

As additional info, I swear I remember this working correctly before and breaking like maybe a month ago. I didn't get to bisecting this yet but I might do so in some time.

rom4kov commented 3 months ago

I have the exact same problem. It's also when I switch to the "English (intl., with AltGr dead keys)" that the waybar language module shows nothing and when I reload the waybar configuration or restart waybar it's showing the language layout code again. I noticed this only today after I did a system update yesterday.

FlyinPancake commented 2 months ago

I have this issue too with Hungarian (QWERTY, 102-key, dot, dead keys) smh

szaffarano commented 2 months ago

Hi, same issue here

[2024-09-02 09:44:46.796] [debug] hyprland IPC received activelayout>>keychron-k2,English (intl., with AltGr dead keys)
[2024-09-02 09:44:46.803] [debug] hyprland language didn't find matching layout
[2024-09-02 09:44:46.803] [debug] hyprland language onevent with  with AltGr dead keys)
[2024-09-02 09:44:46.803] [debug] hyprland language update with full name 
[2024-09-02 09:44:46.803] [debug] hyprland language update with short name 
[2024-09-02 09:44:46.803] [debug] hyprland language update with short description 
[2024-09-02 09:44:46.803] [debug] hyprland language update with variant 
[2024-09-02 09:44:46.803] [debug] hyprland language formatted layout name US

It only happens when I switch keyboard layouts

rom4kov commented 1 week ago

I created a pull request to solve this issue: https://github.com/Alexays/Waybar/pull/3700

rom4kov commented 1 week ago

Just saw https://github.com/Alexays/Waybar/pull/3406 which offers a more complex solution of this issue that also addresses new problems that would have been introduced by my PR. My bad for not checking first.