diff --git a/ublinux/os-config b/ublinux/os-config index d0b48db..72dc25c 100644 --- a/ublinux/os-config +++ b/ublinux/os-config @@ -113,12 +113,15 @@ HARDCONF=etc/ublinux/service.conf #MKKBDFXORG=yes # options (only if its not specified in /etc/ublinux/keyboard ) -XkbModel=pc105 -XkbLayout=us,ru +## /rc.desktop/all/keyboard +## /rc.xorg/10-fixkeyboard_layout +XKBMODEL=pc105 +XKBLAYOUT=us,ru +XKBVARIANT=ru +XKBOPTIONS=grp:lctrl_lshift_toggle,grp_led:scroll,compose:rwin + KEYBOARD=ru KEYTABLE=ru4 -GRP_TOGGLE=lctrl_lshift_toggle -XkbOptions=grp:lctrl_lshift_toggle,grp_led:scroll,compose:rwin #STEAMNODPMS=yes @@ -150,6 +153,8 @@ STEAMAPP=/mnt/livedata/ublinux-data/steam LOCALE="en_US.UTF-8,ru_RU.UTF-8" LANG="ru_RU.UTF-8" CONSOLE_FONT=cyr-sun16 +CONSOLE_KEYMAP=ru +CONSOLE_KEYMAP_TOGGLE="grp:lctrl_lshift_toggle" #/rc.preinit.d/20-services SERVICESSTART=dbus-broker,NetworkManager,sshd,systemd-swap,systemd-timesyncd,cups,cockpit.socket,avahi-daemon,avahi-dnsconfd,veyon,smb,nmb,winbind,bluetooth diff --git a/ublinux/rc.desktop/all/keyboard b/ublinux/rc.desktop/all/keyboard index f54c0b3..fc8f987 100755 --- a/ublinux/rc.desktop/all/keyboard +++ b/ublinux/rc.desktop/all/keyboard @@ -1,16 +1,20 @@ -#!/bin/sh +#!/usr/bin/env bash ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == yes ]] || exit 0 -. /usr/lib/ublinux/os-config -SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null -SOURCE=${SYSCONF}/keyboard; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null +unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +#SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 -[ "$RESETKBMODE" != "no" ] && setxkbmap $XkbLayout -model $XkbModel -option $XkbOptions +SYSCONF="${ROOTFS}/${SYSCONF}" +SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/keyboard; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null + +[[ ${RESETKBMODE} != @(no|disable) ]] && setxkbmap ${XKBLAYOUT} -model ${XKBMODEL} -option ${XKBOPTIONS} # Automatic detection PC/notebooks -if [ -z "$NUMLOCK" ] ; then +if [[ -z ${NUMLOCK} ]]; then if xinput list | grep -qi touchpad ; then NUMLOCK=no else @@ -18,5 +22,5 @@ if [ -z "$NUMLOCK" ] ; then fi fi -[ "$NUMLOCK" = "yes" -o "$NUMLOCK" = "on" ] && numlockx on -[ "$NUMLOCK" = "no" -o "$NUMLOCK" = "off" ] && numlockx off +[[ ${NUMLOCK} == @(yes|on) ]] && numlockx on +[[ ${NUMLOCK} == @(no|off) ]] && numlockx off diff --git a/ublinux/rc.local.d/52-consolesetup b/ublinux/rc.local.d/52-consolesetup index 722c34e..613b527 100755 --- a/ublinux/rc.local.d/52-consolesetup +++ b/ublinux/rc.local.d/52-consolesetup @@ -1,20 +1,22 @@ -#!/bin/bash +#!/usr/bin/env bash ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 -DEBUGMODE=no +[[ ${ENABLED} == yes ]] || exit 0 -SOURCE=/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 -SOURCE=/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +#SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 + +SYSCONF="${ROOTFS}/${SYSCONF}" SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/keyboard; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null debug_mode "$0" "$@" - - [ "$NUMLOCK" = "yes" ] && for tty in /dev/tty[1-8]; do setleds -D +num < $tty ; done - [ "$NUMLOCK" = "no" ] && for tty in /dev/tty[1-8]; do setleds -D -num < $tty ; done + [[ ${NUMLOCK} == @(yes|on) ]] && for tty in /dev/tty[1-8]; do setleds -D +num < ${tty}; done + [[ ${NUMLOCK} == @(no|off) ]] && for tty in /dev/tty[1-8]; do setleds -D -num < ${tty}; done # kill -RTMIN+21 1 || busybox kill -RTMIN+21 1 [[ -x /usr/bin/plymouth ]] && /usr/bin/plymouth --wait quit - [[ -x /lib/systemd/systemd-vconsole-setup ]] && /lib/systemd/systemd-vconsole-setup + [[ -x /usr/lib/systemd/systemd-vconsole-setup ]] && /usr/lib/systemd/systemd-vconsole-setup readlink -f /etc/systemd/system/default.target 2>/dev/null | grep -q multi-user.target && chvt 2 diff --git a/ublinux/rc.post.d/11-xorg b/ublinux/rc.post.d/11-xorg index cdafa9b..7df94de 100755 --- a/ublinux/rc.post.d/11-xorg +++ b/ublinux/rc.post.d/11-xorg @@ -152,10 +152,10 @@ EOF Section "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" - Option "XkbLayout" "$XkbLayout" - Option "XkbModel" "$XkbModel" - Option "XkbVariant" "$KEYBOARD" - Option "XkbOptions" "$XkbOptions" + Option "XkbLayout" "${XKBLAYOUT}" + Option "XkbModel" "${XKBMODEL}" + Option "XkbVariant" "${XKBVARIANT}" + Option "XkbOptions" "${XKBOPTIONS}" EndSection EOF fi diff --git a/ublinux/rc.preinit.d/53-language b/ublinux/rc.preinit.d/53-language index 29c9245..a4dac91 100755 --- a/ublinux/rc.preinit.d/53-language +++ b/ublinux/rc.preinit.d/53-language @@ -21,9 +21,8 @@ SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/keyboard; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/locale; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null - NEWLANG=$(cmdline_value lang) -[[ -z ${NEWLANG} ]] || { LOCALE+=",${NEWLANG}" && LANG="${NEWLANG}"; } +[[ -z ${NEWLANG} ]] || { LOCALE+=",${NEWLANG}"; LANG="${NEWLANG}"; } for I_LOCALE in ${LOCALE//,/ }; do sed -i "s/^#${I_LOCALE} /${I_LOCALE} /g" ${ROOTFS}/etc/locale.gen @@ -33,13 +32,15 @@ ${CMD_CHROOT} env LANG=${LANG} locale > ${ROOTFS}/etc/locale.conf [[ -n ${FORCE_LOCARCHIVE} ]] && FORCEGEN=1 [[ ! -f ${ROOTFS}/usr/lib/locale/locale-archive ]] && FORCEGEN=1 -#[[ "$(echo -e ${LOCALE//,/\\n} | sort -fu)" != "$(chroot . localedef --list-archive | sort -fu)" ]] && FORCEGEN=1 +LOCALE_CONF=${LOCALE//-/}; LOCALE_CONF=${LOCALE_CONF,,}; LOCALE_CONF=${LOCALE_CONF//,/$'\n'}; LOCALE_CONF=$(sort -fu <<< ${LOCALE_CONF}) +LOCALE_SYSTEM=$(${CMD_CHROOT} localedef --list-archive | sort -fu); LOCALE_SYSTEM=${LOCALE_SYSTEM,,} +[[ ${LOCALE_CONF} == ${LOCALE_SYSTEM} ]] || FORCEGEN=1 [[ -n ${FORCEGEN} ]] && chroot . locale-gen &>/dev/null #; unset LANG; source /etc/profile.d/locale.sh" # Если имеются языкозависимые файлы, то копируем в корень [[ -d ${ROOTFS}/usr/share/ublinux/langs/${LANG} ]] && cp -pfr ${ROOTFS}/usr/share/ublinux/langs/${LANG}/* ./ -echo FONT=${CONSOLE_FONT} > ${ROOTFS}/etc/vconsole.conf -echo KEYMAP=${KEYBOARD} >> ${ROOTFS}/etc/vconsole.conf -[[ -z ${KEYMAP_TOGGLE} ]] || echo KEYMAP_TOGGLE="${KEYMAP_TOGGLE}" >> ${ROOTFS}/etc/vconsole.conf +[[ -z ${CONSOLE_FONT} ]] || echo FONT=${CONSOLE_FONT} > ${ROOTFS}/etc/vconsole.conf +[[ -z ${CONSOLE_KEYMAP} ]] || echo KEYMAP=${CONSOLE_KEYMAP} >> ${ROOTFS}/etc/vconsole.conf +[[ -z ${CONSOLE_KEYMAP_TOGGLE} ]] || echo KEYMAP_TOGGLE="${CONSOLE_KEYMAP_TOGGLE}" >> ${ROOTFS}/etc/vconsole.conf diff --git a/ublinux/rc.xorg/10-fixkeyboard_layout b/ublinux/rc.xorg/10-fixkeyboard_layout index 5d2cb71..fc8f987 100755 --- a/ublinux/rc.xorg/10-fixkeyboard_layout +++ b/ublinux/rc.xorg/10-fixkeyboard_layout @@ -1,17 +1,20 @@ -#!/bin/bash +#!/usr/bin/env bash ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == yes ]] || exit 0 -. /usr/lib/ublinux/os-config +unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +#SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 -SOURCE=${SYSCONF}/config; [ -f "${SOURCE}" ] && . ${SOURCE} 2>/dev/null -SOURCE=${SYSCONF}/keyboard; [ -f "${SOURCE}" ] && . ${SOURCE} 2>/dev/null +SYSCONF="${ROOTFS}/${SYSCONF}" +SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/keyboard; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null -#setxkbmap $XkbLayout -model $XkbModel -option $XkbOptions +[[ ${RESETKBMODE} != @(no|disable) ]] && setxkbmap ${XKBLAYOUT} -model ${XKBMODEL} -option ${XKBOPTIONS} # Automatic detection PC/notebooks -if [ -z "$NUMLOCK" ] ; then +if [[ -z ${NUMLOCK} ]]; then if xinput list | grep -qi touchpad ; then NUMLOCK=no else @@ -19,5 +22,5 @@ if [ -z "$NUMLOCK" ] ; then fi fi -[ "$NUMLOCK" = "yes" -o "$NUMLOCK" = "on" ] && numlockx on -[ "$NUMLOCK" = "no" -o "$NUMLOCK" = "off" ] && numlockx off +[[ ${NUMLOCK} == @(yes|on) ]] && numlockx on +[[ ${NUMLOCK} == @(no|off) ]] && numlockx off diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index a747894..cf6d790 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -153,9 +153,6 @@ MACHINEID=hardware ## Исключение для общих разделов #PARTITIONSNOSHARE=archive,private -## Режим работы клавиатуры Num Lock (yes|no). По умолчанию включено, если нет тачпада. -#NUMLOCK=no - ## Настройка принтера ## PRINTERADD=manual (default) #PRINTERADD=auto @@ -207,6 +204,16 @@ DEPMOD=yes ## Алгоритм сжатия, используемый для сохранения измененний в модуль #MKSQFS_FASTALG="-b 512K -comp lz4 -Xhc" +################################################################################ +## Базовые настройка системы +[/etc/ublinux/system] +## Установить переменные окружения глобальные и пользовательские +## ENVIROMENT[system:]= +## ENVIROMENT[:]= +## system: # Установить глобальные переменные окружения в /etc/enviroment +## : # Имя пользователя для которого будет установлена переменная окружения в домашнем каталоге +## # Значение переменной + ################################################################################ ## Настройка загрузчика GRUB [/etc/ublinux/boot] @@ -907,17 +914,23 @@ NSSWITCHWINBIND=yes [/etc/ublinux/locale] #LOCALE="en_US.UTF-8,ru_RU.UTF-8" #LANG="ru_RU.UTF-8" -#CONSOLE_FONT=lat0-16 +#CONSOLE_FONT="lat0-16" ################################################################################ [/etc/ublinux/keyboard] -#XkbModel=pc105 -#XkbLayout="us,ru" -#KEYBOARD=ru -#KEYTABLE=ru -#Раскладка клавиатуры -#GRP_TOGGLE=lalt_lshift_toggle -#XkbOptions=grp:lalt_lshift_toggle,grp_led:scroll,compose:rwin +## Режим работы клавиатуры NumLock. По умолчанию включено, если нет тачпада. +## NUMLOCK=*yes|no|on|off +#NUMLOCK=off + +#XKBMODEL=pc105 +#XKBLAYOUT="us,ru" +#XKBVARIANT="ru" +#Переключение раскладки клавиатуры в X: grp:lalt_lshift_toggle +#XKBOPTIONS=grp:lalt_lshift_toggle,grp_led:scroll,compose:rwin + +#CONSOLE_KEYMAP="ru" +#Переключение раскладки клавиатуры в консоле: grp:lalt_lshift_toggle +#CONSOLE_KEYMAP_TOGGLE="grp:lalt_lshift_toggle" ################################################################################ [/etc/ublinux/ubm]