ximperconf: add hyprland sync-xkb-layouts

parent 5833d702
...@@ -30,6 +30,9 @@ show_help() { ...@@ -30,6 +30,9 @@ show_help() {
print_white "" print_white ""
print_white " hyprland Управление модулями Hyprland" print_white " hyprland Управление модулями Hyprland"
print_yellow " check Проверить конфиг" print_yellow " check Проверить конфиг"
print_yellow " sync-xkb-layouts Синхронизировать раскладки с xkb"
print_blue " Флаги:"
print_yellow " --force Обновить принудительно"
print_white " module Управление модулями" print_white " module Управление модулями"
print_blue " Флаги:" print_blue " Флаги:"
print_yellow " --user Использовать пользовательские модули" print_yellow " --user Использовать пользовательские модули"
...@@ -127,6 +130,23 @@ hyprland_check() { ...@@ -127,6 +130,23 @@ hyprland_check() {
' '
} }
hyprland_sync_system_layouts() {
local force="${1:-false}"
local sys_layouts
sys_layouts=$(localectl status | sed -n 's/.*X11 Layout:\s*//p')
local hypr_layouts
hypr_layouts=$(hyprland_var_get kb_layout | sed 's/\x1b\[[0-9;]*m//g' | tr -d '[:space:]')
if [ "$force" = "true" ] || [ -z "$hypr_layouts" ]; then
hyprland_var_set kb_layout "$sys_layouts" > /dev/null 2>&1
print_green "Раскладка обновлена!"
else
print_error "Раскладка уже установлена, используйте '--force' для принудительного обновления."
fi
}
hyprland_get_module_file() { hyprland_get_module_file() {
local module="$1" local module="$1"
local user="${2:-false}" local user="${2:-false}"
...@@ -430,6 +450,15 @@ case "$cmd" in ...@@ -430,6 +450,15 @@ case "$cmd" in
hyprland) hyprland)
case "$subcmd" in case "$subcmd" in
check) hyprland_check ;; check) hyprland_check ;;
sync-xkb-layouts)
force_sync="false"
for arg in "$@"; do
case "$arg" in
--force) force_sync="true" ;;
esac
done
hyprland_sync_system_layouts "$force_sync"
;;
module) module)
user_flag=false user_flag=false
if [ "${1:-}" = "--user" ]; then if [ "${1:-}" = "--user" ]; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment