|
1 | 1 | #!/usr/bin/with-contenv bash |
2 | 2 |
|
| 3 | +if [ ! -z "${LC_ALL}" ]; then |
| 4 | + normalized_locale_full=${LC_ALL%%.*} |
| 5 | + normalized_locale_lower=$(echo "$normalized_locale_full" | tr '[:upper:]' '[:lower:]') |
| 6 | + |
| 7 | + declare -A LOCALE_TO_XKB_MAP=( |
| 8 | + ["af_za"]="za" ["am_et"]="et -variant am" ["ar_sa"]="sa" ["ar_eg"]="eg" ["ar"]="ara" |
| 9 | + ["as_in"]="in -variant asm" ["az_az"]="az -variant latin" ["be_by"]="by" |
| 10 | + ["ber_dz"]="dz -variant tifinagh" ["ber_ma"]="ma -variant tifinagh" |
| 11 | + ["bn_bd"]="bd -variant probhat" ["bn_in"]="in -variant ben" ["bo_cn"]="cn -variant tib" |
| 12 | + ["bo_in"]="in -variant tib" ["br_fr"]="fr -variant bre" ["brx_in"]="in -variant bod" |
| 13 | + ["bs_ba"]="ba" ["ca_es"]="es -variant cat" ["ca"]="es -variant cat" ["cs_cz"]="cz" |
| 14 | + ["cy_gb"]="gb -variant welsh" ["da_dk"]="dk" ["de_de"]="de" ["de_ch"]="ch -variant de" |
| 15 | + ["de_at"]="at" ["de_lu"]="lu" ["de_be"]="be" ["de"]="de" ["dv_mv"]="mv" ["dz_bt"]="bt" |
| 16 | + ["el_gr"]="gr" ["el_cy"]="cy" ["el"]="gr" ["en_us"]="us" ["en_gb"]="gb" |
| 17 | + ["en_ca"]="ca -variant eng" ["en_au"]="au" ["en_ie"]="ie" ["en_in"]="in -variant eng" |
| 18 | + ["en"]="us" ["es_es"]="es" ["es_mx"]="latam" ["es_ar"]="latam" |
| 19 | + ["es_us"]="us -variant intl" ["es"]="es" ["et_ee"]="ee" ["eu_es"]="eu" ["fa_ir"]="ir" |
| 20 | + ["fi_fi"]="fi" ["fo_fo"]="fo" ["fr_fr"]="fr" ["fr_ca"]="ca -variant fr" ["fr_be"]="be" |
| 21 | + ["fr_ch"]="ch -variant fr" ["fr_lu"]="lu" ["fr"]="fr" ["ga_ie"]="ie" |
| 22 | + ["gd_gb"]="gb -variant gd" ["gl_es"]="gl" ["gu_in"]="in -variant guj" ["he_il"]="il" |
| 23 | + ["hi_in"]="in -variant hin" ["hr_hr"]="hr" ["hsb_de"]="de -variant hsb" ["ht_ht"]="ht" |
| 24 | + ["hu_hu"]="hu" ["hy_am"]="am -variant eastern" ["id_id"]="id" ["is_is"]="is" |
| 25 | + ["it_it"]="it" ["it_ch"]="ch -variant it" ["it"]="it" ["ja_jp"]="jp" ["ka_ge"]="ge" |
| 26 | + ["kk_kz"]="kz" ["kl_gl"]="kl" ["km_kh"]="kh" ["kn_in"]="in -variant kan" |
| 27 | + ["kok_in"]="in -variant kok" ["ko_kr"]="kr" ["ks_in"]="in -variant kas_dev" |
| 28 | + ["ku_tr"]="tr -variant ku" ["ky_kg"]="kg" ["lb_lu"]="lu" ["lo_la"]="la" ["lt_lt"]="lt" |
| 29 | + ["lv_lv"]="lv" ["mai_in"]="in -variant mai" ["mg_mg"]="mg" ["mk_mk"]="mk" |
| 30 | + ["ml_in"]="in -variant mal" ["mni_in"]="in -variant mni_bengali" ["mn_mn"]="mn" |
| 31 | + ["mr_in"]="in -variant mar" ["ms_my"]="my" ["mt_mt"]="mt" ["my_mm"]="mm" ["nb_no"]="no" |
| 32 | + ["nn_no"]="no" ["no"]="no" ["ne_np"]="np" ["nl_nl"]="nl" ["nl_be"]="be" ["nl"]="nl" |
| 33 | + ["oc_fr"]="fr -variant oc" ["or_in"]="in -variant ori" ["pa_in"]="in -variant pan" |
| 34 | + ["pa_pk"]="pk -variant ur" ["pl_pl"]="pl" ["ps_af"]="ps" ["pt_pt"]="pt" ["pt_br"]="br" |
| 35 | + ["pt"]="pt" ["ro_ro"]="ro" ["ru_ru"]="ru" ["ru_ua"]="ua -variant ru" ["ru"]="ru" |
| 36 | + ["rw_rw"]="rw" ["sa_in"]="in -variant san_devanagari" ["sat_in"]="in -variant sat_olchiki" |
| 37 | + ["se_no"]="no -variant sme" ["si_lk"]="lk -variant sinhala_qwerty_us" ["sk_sk"]="sk" |
| 38 | + ["sl_si"]="si" ["so_so"]="so" ["sq_al"]="al" ["sq_mk"]="mk -variant sq" ["sr_rs"]="rs" |
| 39 | + ["sr_me"]="me" ["nr_za"]="za" ["nso_za"]="za" ["ss_za"]="za" ["st_za"]="za" |
| 40 | + ["tn_za"]="za" ["ts_za"]="za" ["ve_za"]="za" ["xh_za"]="za" ["zu_za"]="za" |
| 41 | + ["sv_se"]="se" ["sv_fi"]="fi -variant se" ["sv"]="se" ["ta_in"]="in -variant tam" |
| 42 | + ["ta_lk"]="lk -variant tam_unicode" ["te_in"]="in -variant tel" ["tg_tj"]="tj" |
| 43 | + ["th_th"]="th" ["ti_er"]="er" ["ti_et"]="et" ["tk_tm"]="tm -variant latn" ["tr_tr"]="tr" |
| 44 | + ["tr"]="tr" ["tt_ru"]="ru -variant tat" ["ug_cn"]="ug" ["uk_ua"]="ua" |
| 45 | + ["ur_in"]="in -variant urd" ["ur_pk"]="pk -variant ur" ["uz_uz"]="uz -variant latin" |
| 46 | + ["vi_vn"]="vn" ["yi_us"]="il" ["zh_cn"]="cn" ["zh_hk"]="hk" ["zh_sg"]="sg" |
| 47 | + ["zh_tw"]="tw" ["zh"]="cn" |
| 48 | + ) |
| 49 | + |
| 50 | + if [[ -v "LOCALE_TO_XKB_MAP[$normalized_locale_lower]" ]]; then |
| 51 | + XKB_LAYOUT_ARGS="${LOCALE_TO_XKB_MAP[$normalized_locale_lower]}" |
| 52 | + fi |
| 53 | +fi |
| 54 | + |
| 55 | +if [ ! -z "$XKB_LAYOUT_ARGS" ]; then |
| 56 | + s6-setuidgid abc setxkbmap ${XKB_LAYOUT_ARGS} |
| 57 | +fi |
| 58 | + |
3 | 59 | cd $HOME |
4 | 60 | exec s6-setuidgid abc \ |
5 | 61 | /bin/bash /defaults/startwm.sh |
0 commit comments